瀏覽代碼

上一条、下一条bug

Rmengdi 5 月之前
父節點
當前提交
80076dfc28

+ 23 - 29
src/layout/components/Navbar.vue

@@ -5,21 +5,20 @@
     <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
 
     <div class="right-menu">
-      <template v-if="device!=='mobile'">
+      <template v-if="device !== 'mobile'">
         <error-log class="errLog-container right-menu-item hover-effect" />
         <screenfull id="screenfull" class="right-menu-item hover-effect" />
 
-<!--        <el-tooltip :content="$t('navbar.size')" effect="dark" placement="bottom">-->
-<!--          <size-select id="size-select" class="right-menu-item hover-effect" />-->
-<!--        </el-tooltip>-->
+        <!--        <el-tooltip :content="$t('navbar.size')" effect="dark" placement="bottom">-->
+        <!--          <size-select id="size-select" class="right-menu-item hover-effect" />-->
+        <!--        </el-tooltip>-->
 
         <!-- <lang-select class="right-menu-item hover-effect" /> -->
       </template>
       <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
-
         <div class="avatar-wrapper">
-<!--          <img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">-->
-          <span style="font-size: 14px;">您好,{{name}}</span>
+          <!--          <img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">-->
+          <span style="font-size: 14px">您好,{{ name }}</span>
           <i class="el-icon-caret-bottom" />
         </div>
         <el-dropdown-menu slot="dropdown">
@@ -33,13 +32,13 @@
               {{ $t('navbar.dashboard') }}
             </el-dropdown-item>
           </router-link>
-          <a target="_blank" href="https://gitee.com/MMinter/vue_node">
+          <!-- <a target="_blank" href="https://gitee.com/MMinter/vue_node">
             <el-dropdown-item>
               {{ $t('navbar.github') }}
             </el-dropdown-item>
-          </a>
+          </a> -->
           <el-dropdown-item divided @click.native="logout">
-            <span style="display:block;">{{ $t('navbar.logOut') }}</span>
+            <span style="display: block">{{ $t('navbar.logOut') }}</span>
           </el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
@@ -53,27 +52,22 @@ import Breadcrumb from '@/components/Breadcrumb'
 import Hamburger from '@/components/Hamburger'
 import ErrorLog from '@/components/ErrorLog'
 import Screenfull from '@/components/Screenfull'
-import SizeSelect from '@/components/SizeSelect'
-import LangSelect from '@/components/LangSelect'
-import Search from '@/components/HeaderSearch'
+// import SizeSelect from '@/components/SizeSelect'
+// import LangSelect from '@/components/LangSelect'
+// import Search from '@/components/HeaderSearch'
 
 export default {
   components: {
     Breadcrumb,
     Hamburger,
     ErrorLog,
-    Screenfull,
-    SizeSelect,
-    LangSelect,
-    Search
+    Screenfull
+    // SizeSelect,
+    // LangSelect,
+    // Search
   },
   computed: {
-    ...mapGetters([
-      'sidebar',
-      'avatar',
-      'device',
-        'name'
-    ])
+    ...mapGetters(['sidebar', 'avatar', 'device', 'name'])
   },
   methods: {
     toggleSideBar() {
@@ -92,18 +86,18 @@ export default {
   overflow: hidden;
   position: relative;
   background: #fff;
-  box-shadow: 0 1px 4px rgba(0,21,41,.08);
+  box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
 
   .hamburger-container {
     line-height: 46px;
     height: 100%;
     float: left;
     cursor: pointer;
-    transition: background .3s;
-    -webkit-tap-highlight-color:transparent;
+    transition: background 0.3s;
+    -webkit-tap-highlight-color: transparent;
 
     &:hover {
-      background: rgba(0, 0, 0, .025)
+      background: rgba(0, 0, 0, 0.025);
     }
   }
 
@@ -135,10 +129,10 @@ export default {
 
       &.hover-effect {
         cursor: pointer;
-        transition: background .3s;
+        transition: background 0.3s;
 
         &:hover {
-          background: rgba(0, 0, 0, .025)
+          background: rgba(0, 0, 0, 0.025);
         }
       }
     }

+ 6 - 7
src/views/data_mark/dataManage/datasetDetail.vue

@@ -10,7 +10,7 @@
       </el-form-item>
     </el-form>
     <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete">删除</el-button>
-    <el-button type="primary" plain icon="el-icon-delete" size="mini" @click="handleExport">导出</el-button>
+    <el-button type="primary" plain icon="el-icon-upload2" size="mini" @click="handleExport">导出</el-button>
     <el-table :data="dataList" style="width: 100%" row-key="id" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" />
       <el-table-column prop="number" align="center" label="序号" width="55" />
@@ -22,16 +22,15 @@
       </el-table-column> -->
       <el-table-column prop="state" align="center" label="标注状态" width="120">
         <template slot-scope="scope">
-          <el-tag size="mini" :type="scope.row.state?'success':'danger'">{{ scope.row.state?'已标注':'未标注' }}</el-tag>
-
+          <el-tag size="mini" :type="scope.row.state ? 'success' : 'danger'">{{ scope.row.state ? '已标注' : '未标注' }}</el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="examine" align="center" label="审核状态" width="120">
+      <!-- <el-table-column prop="examine" align="center" label="审核状态" width="120">
         <template slot-scope="scope">
           <el-tag size="mini" :type="scope.row.examine?'success':'warning'">{{ scope.row.examine?'已审核':'未审核' }}</el-tag>
 
         </template>
-      </el-table-column>
+      </el-table-column> -->
       <el-table-column label="操作" align="center" width="200">
         <template slot-scope="scope">
           <el-button type="text" size="small" @click="handleCheck(scope.row)">查看</el-button>
@@ -57,8 +56,8 @@
       <checkMarkData :mark-data="markDataDetail" :handle-change="handleChange" :tag-label="tagLabelList" />
       <div slot="footer" class="dialog-footer">
         <!-- <el-button @click="dialogVisible = false">删除文本</el-button> -->
-        <el-button @click="dialogVisible = false">作 废</el-button>
-        <el-button type="primary" @click="dialogVisible = false">通 过</el-button>
+        <!-- <el-button @click="dialogVisible = false">作 废</el-button>
+        <el-button type="primary" @click="dialogVisible = false">通 过</el-button> -->
       </div>
     </el-dialog>
   </div>

+ 1 - 1
src/views/data_mark/dataManage/index.vue

@@ -41,7 +41,7 @@
         <el-table-column prop="name" align="center" label="文件名称" />
         <el-table-column prop="importerName" align="center" label="创建人" />
         <el-table-column prop="time" align="center" label="导入时间" />
-        <el-table-column prop="data_volume" align="center" label="文件数据量" />
+        <!-- <el-table-column prop="data_volume" align="center" label="文件数据量" /> -->
       </el-table>
     </el-dialog>
     <el-dialog :title="title" :visible.sync="dialogVisible" width="40%" append-to-body :close-on-click-modal="false">

+ 65 - 51
src/views/data_mark/dataMark/markPage.vue

@@ -7,7 +7,7 @@
             <el-table-column show-overflow-tooltip prop="text" align="center" label="标注文本" />
             <el-table-column prop="state" align="center" label="状态" width="70">
               <template slot-scope="scope">
-                <el-tag size="mini" :type="scope.row.state?'success':'danger'">{{ scope.row.state?'已标注':'未标注' }}</el-tag>
+                <el-tag size="mini" :type="scope.row.state ? 'success' : 'danger'">{{ scope.row.state ? '已标注' : '未标注' }}</el-tag>
               </template>
             </el-table-column>
           </el-table>
@@ -79,41 +79,37 @@
           <el-table :data="markRelationList" style="width: 100%" row-key="id">
             <el-table-column prop="subject" align="center" label="主体">
               <template slot-scope="scope">
-                <span style="margin-right: 8px;">{{ scope.row.subject }}</span>
+                <span style="margin-right: 8px">{{ scope.row.subject }}</span>
                 <!-- <el-button icon="el-icon-plus" size="mini" circle /> -->
                 <i class="el-icon-circle-plus-outline addIcon" @click="addRelation(scope.row)" />
               </template>
             </el-table-column>
             <el-table-column prop="object" align="center" label="客体">
               <template slot-scope="scope">
-                <el-select v-model="scope.row.object" clearable placeholder="请选择客体" size="mini" @change="((value)=>{handleObject(value, scope.row)})">
-                  <el-option
-                    v-for="item in markTextList"
-                    :key="item.mark_id"
-                    :label="item.mark_content"
-                    :value="item.mark_content"
-                  />
+                <el-select
+                  v-model="scope.row.object"
+                  clearable
+                  placeholder="请选择客体"
+                  size="mini"
+                  @change="
+                    (value) => {
+                      handleObject(value, scope.row)
+                    }
+                  "
+                >
+                  <el-option v-for="item in markTextList" :key="item.mark_id" :label="item.mark_content" :value="item.mark_content" />
                 </el-select>
               </template>
             </el-table-column>
             <el-table-column prop="relation" align="center" label="关系">
               <template slot-scope="scope">
                 <el-select v-model="scope.row.relation" clearable placeholder="请选择关系" size="mini">
-                  <el-option
-                    v-for="item in relationOption"
-                    :key="item.relationshipId"
-                    :label="item.name"
-                    :value="item.name"
-                  />
+                  <el-option v-for="item in relationOption" :key="item.relationshipId" :label="item.name" :value="item.name" />
                 </el-select>
               </template>
             </el-table-column>
 
-            <el-table-column
-              fixed="right"
-              label="操作"
-              width="100"
-            >
+            <el-table-column fixed="right" label="操作" width="100">
               <template slot-scope="scope">
                 <el-button type="text" size="small" @click="handleDeleteRelation(scope.row)">删除</el-button>
               </template>
@@ -210,7 +206,7 @@ export default {
           const newData = this.dataList[0]
           this.setNewData(newData)
         } else {
-          const flag = this.dataList.findIndex(item => {
+          const flag = this.dataList.findIndex((item) => {
             return item.id === Number(this.queryParams.id)
           })
           if (flag !== -1) {
@@ -256,16 +252,18 @@ export default {
     handleCurrentChange(val) {
       // this.queryParams.id = val.id
       // this.loading = true
-      const isSave = this.ifCompare(JSON.stringify(this.markRelationList), this.markData.markInfo)
+      const isSave = this.ifCompare(this.markRelationList, this.markData.markInfo)
       if (!isSave) {
         this.$confirm('标注内容未保存,请保存后再继续', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'warning'
-        }).then(() => {}).catch(() => {})
+        })
+          .then(() => {})
+          .catch(() => {})
       } else {
         document.getElementById('text-container').innerHTML = ''
-        const flag = this.dataList.findIndex(item => {
+        const flag = this.dataList.findIndex((item) => {
           return item.id === val.id
         })
         if (flag !== -1) {
@@ -349,7 +347,7 @@ export default {
       const markId = uuidv4()
       this.strNum = null
 
-      const repeatFlag = this.markTextList.findIndex(item => {
+      const repeatFlag = this.markTextList.findIndex((item) => {
         return item.mark_content === this.selectedText.content
       })
       if (repeatFlag !== -1) {
@@ -441,7 +439,7 @@ export default {
       this.cancelTagInfo.visible = false
 
       if (!this.selectMarkedId) return
-      const selectMarkItem = this.markTextList.find(list => list.mark_id === this.selectMarkedId)
+      const selectMarkItem = this.markTextList.find((list) => list.mark_id === this.selectMarkedId)
       // console.log('item', item)
 
       const textContainer = document.getElementById('text-container')
@@ -497,18 +495,16 @@ export default {
           message: '主体与客体不能相同,请重新选择',
           type: 'warning'
         })
-        this.markRelationList.forEach(item => {
+        this.markRelationList.forEach((item) => {
           if (item === row) {
             item.object = ''
           }
         })
         return
       }
-      const selectOptions = this.markTextList.filter((item) =>
-        selectVal.includes(item.mark_content)
-      )
+      const selectOptions = this.markTextList.filter((item) => selectVal.includes(item.mark_content))
       const selectItem = selectOptions[0]
-      this.markRelationList.forEach(item => {
+      this.markRelationList.forEach((item) => {
         if (item === row) {
           item.objectClass = selectItem.entityName
           item.objectPosition = [selectItem.start, selectItem.end]
@@ -516,7 +512,8 @@ export default {
       })
     },
     addRelation(row) {
-      let selectOptions = {}; let indexPos
+      let selectOptions = {}
+      let indexPos
       this.markRelationList.forEach((item, index) => {
         if (item === row) {
           selectOptions = { ...row }
@@ -556,7 +553,7 @@ export default {
     // 标注回显
     handleBackShow(itemMarkInfo, index) {
       const marker = new Mark(document.getElementById('text-container'))
-      const entityData = this.tagLabelList.find(item => {
+      const entityData = this.tagLabelList.find((item) => {
         return item.name === itemMarkInfo.subjectClass
       })
       const markId = uuidv4()
@@ -636,15 +633,17 @@ export default {
 
     // 上一条
     handlePrev() {
-      const isSave = this.ifCompare(JSON.stringify(this.markRelationList), this.markData.markInfo)
+      const isSave = this.ifCompare(this.markRelationList, this.markData.markInfo)
       if (!isSave) {
         this.$confirm('标注内容未保存,请保存后再继续', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'warning'
-        }).then(() => {}).catch(() => {})
+        })
+          .then(() => {})
+          .catch(() => {})
       } else {
-        const flag = this.dataList.findIndex(item => {
+        const flag = this.dataList.findIndex((item) => {
           return item.id === this.markData.id
         })
         if (flag !== -1 && flag === 0) {
@@ -671,15 +670,17 @@ export default {
 
     // 下一条
     handleNext() {
-      const isSave = this.ifCompare(JSON.stringify(this.markRelationList), this.markData.markInfo)
+      const isSave = this.ifCompare(this.markRelationList, this.markData.markInfo)
       if (!isSave) {
         this.$confirm('标注内容未保存,请保存后再继续', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'warning'
-        }).then(() => {}).catch(() => {})
+        })
+          .then(() => {})
+          .catch(() => {})
       } else {
-        const flag = this.dataList.findIndex(item => {
+        const flag = this.dataList.findIndex((item) => {
           return item.id === this.markData.id
         })
         if (flag !== -1 && flag === this.dataList.length - 1) {
@@ -706,15 +707,28 @@ export default {
 
     // 比较两个对象是否全等
     ifCompare(object1, object2) {
-      var o1keys = Object.keys(object1)
-      var o2keys = Object.keys(object2)
-      if (o2keys.length !== o1keys.length) return false
-      for (let i = 0; i <= o1keys.length - 1; i++) {
-        const key = o1keys[i]
-        if (!o2keys.includes(key)) return false
-        if (object2[key] !== object1[key]) return false
+      if (object1.length === 0) {
+        if (!object2 || JSON.parse(object2).length === 0) {
+          return true
+        } else {
+          return false
+        }
+      } else {
+        const data1 = JSON.stringify(object1)
+        if (!object2 || JSON.parse(object2).length === 0) {
+          return false
+        } else {
+          if (data1 === object2) return true
+          else return false
+        }
       }
-      return true
+      // if (o2keys.length !== o1keys.length) return false
+      // for (let i = 0; i <= o1keys.length - 1; i++) {
+      //   const key = o1keys[i]
+      //   if (!o2keys.includes(key)) return false
+      //   if (object2[key] !== object1[key]) return false
+      // }
+      // return true
     },
 
     // 清空标记
@@ -755,7 +769,7 @@ export default {
 
     // 删除该条关系
     handleDeleteRelation(row) {
-      const delIndex = this.markRelationList.findIndex(item => {
+      const delIndex = this.markRelationList.findIndex((item) => {
         return item === row
       })
       if (delIndex !== -1) {
@@ -766,14 +780,14 @@ export default {
         }).then(() => {
           this.markRelationList.splice(delIndex, 1)
           // 判断删除后,标注中还有没有该主体,没有的话在回显中也取消标注
-          const lastFlag = this.markTextList.forEach(item => {
+          const lastFlag = this.markTextList.forEach((item) => {
             if (item.mark_content === row.subject) {
               // true代表还有
               return true
             }
           })
           if (lastFlag !== true) {
-            const selectMarkItem = this.markTextList.find(list => list.mark_content === row.subject)
+            const selectMarkItem = this.markTextList.find((list) => list.mark_content === row.subject)
             const bigContainer = document.getElementById(selectMarkItem.mark_id)
 
             const textSpan = bigContainer.firstElementChild.innerText
@@ -781,7 +795,7 @@ export default {
             markEl.unmark()
             bigContainer.insertAdjacentText('beforebegin', textSpan)
             bigContainer.remove()
-            this.markTextList = this.markTextList.filter(item => item.mark_content !== row.subject)
+            this.markTextList = this.markTextList.filter((item) => item.mark_content !== row.subject)
           }
         })
       }

+ 1 - 1
src/views/data_mark/labelManage/index.vue

@@ -11,7 +11,7 @@
     </el-form>
     <el-button icon="el-icon-plus" type="primary" plain size="small" @click="handleAdd">添加实体类</el-button>
     <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete">删除</el-button>
-    <el-button type="success" plain size="small" icon="el-icon-download" @click="importEvent">导入</el-button>
+    <!-- <el-button type="success" plain size="small" icon="el-icon-download" @click="importEvent">导入</el-button> -->
     <el-table
       :data="entityList"
       style="width: 100%"

+ 1 - 1
src/views/data_mark/relationshipManage/index.vue

@@ -18,7 +18,7 @@
       <el-table-column prop="name" align="center" label="关系名称" />
       <el-table-column label="操作" align="center">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleCheck(scope.row)">查看该关系的实体</el-button>
+          <!-- <el-button type="text" size="small" @click="handleCheck(scope.row)">查看该关系的实体</el-button> -->
           <el-button size="mini" type="text" @click="handleUpdate(scope.row)">编辑</el-button>
           <el-button size="mini" type="text" @click="handleDelete(scope.row)">删除</el-button>
         </template>