Xiao_123 1 týždeň pred
rodič
commit
1cf2196897

+ 1 - 1
src/views/dataGovernance/metadata/index.vue

@@ -72,7 +72,7 @@
 
     <edit-dialog
       :visible.sync="showAudit"
-      title="疑似元数据添加审核"
+      title="创建审核记录"
       width-type="0"
       @submit="handleAuditSubmit"
       @close="handleAuditClose"

+ 0 - 114
src/views/dataReview/components/change.vue

@@ -1,114 +0,0 @@
-<template>
-  <div style="height: calc(100% - 48px);">
-    <v-tabs v-model="activeIndex" background-color="#f7f8fa">
-      <v-tab>元数据新旧差异</v-tab>
-      <v-tab>影响关系图谱</v-tab>
-    </v-tabs>
-    <v-tabs-items v-model="activeIndex" style="flex: 1">
-      <v-tab-item>
-        <common-component :info="info" class="mt-3" @notesChange="handleNotesChange" />
-        <m-table
-          :headers="headers"
-          :items="items"
-          :loading="false"
-          :is-tools="false"
-          :disable-sort="true"
-          :show-select="false"
-          :can-delete="false"
-          :show-page="false"
-          :items-per-page="-1"
-          :no-radius="true"
-        >
-        </m-table>
-      </v-tab-item>
-      <v-tab-item>
-        <m-card style="height: calc(100% - 12px);" no-title class="d-flex flex-column mt-3" bodyStyle="flex: 1">
-          <Graph :graphData="info.impact_graph"></Graph>
-        </m-card>
-      </v-tab-item>
-    </v-tabs-items>
-  </div>
-</template>
-
-<script>
-import MCard from '@/components/MCard'
-import MTable from '@/components/List/table.vue'
-import Graph from './graph.vue'
-import CommonComponent from './common.vue'
-
-export default {
-  name: 'changeComponent',
-  components: {
-    MCard,
-    MTable,
-    Graph,
-    CommonComponent
-  },
-  props: {
-    info: {
-      type: Object,
-      default: () => ({})
-    }
-  },
-  data () {
-    return {
-      activeIndex: 0
-    }
-  },
-  computed: {
-    headers () {
-      return [
-        { text: '', align: 'start', value: 'title' },
-        { text: '元数据(新)', align: 'start', value: 'new' },
-        { text: '元数据(旧)', align: 'start', value: 'old' }
-      ]
-    },
-    items () {
-      if (!this.info || !this.info.new_meta || !this.info.old_meta) {
-        return []
-      }
-      const newMeta = this.info.new_meta || {}
-      const oldMeta = this.info.old_meta.snapshot || {}
-
-      const newTags = newMeta.tags && newMeta.tags.length ? newMeta.tags.map(tag => tag.name_zh).join(', ') : '-'
-      const oldTags = oldMeta.tags && oldMeta.tags.length ? oldMeta.tags.map(tag => tag.name_zh).join(', ') : '-'
-      return [
-        {
-          title: '中文名',
-          new: newMeta?.name_zh || '-',
-          old: oldMeta?.name_zh || '-'
-        },
-        {
-          title: '英文名',
-          new: newMeta?.name_en || '-',
-          old: oldMeta?.name_en || '-'
-        },
-        {
-          title: '数据类型',
-          new: newMeta?.data_type || '-',
-          old: oldMeta?.data_type || '-'
-        },
-        {
-          title: '数据标签',
-          new: newTags,
-          old: oldTags
-        }
-      ]
-    }
-  },
-  methods: {
-    handleNotesChange (notes) {
-      this.$emit('notesChange', notes)
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-::v-deep .v-window {
-  height: 100%;
-}
-::v-deep .v-window__container, .v-window-item {
-  height: 100%;
-}
-</style>

+ 0 - 108
src/views/dataReview/components/common.vue

@@ -1,108 +0,0 @@
-<template>
-  <div>
-    <v-row>
-      <v-col cols="12">
-        <m-card title="基本信息" style="min-height: 260px;">
-          <div class="snapshot-wrapper mt-3">
-            <ul class="snapshot-labels">
-              <li>状态:</li>
-              <li>记录类型:</li>
-              <li>创建时间:</li>
-              <li>更新时间:</li>
-              <li>备注:</li>
-            </ul>
-            <ul class="snapshot-values">
-              <li>
-                <v-chip small :color="info.status === 'pending' ? 'warning' : info.status === 'resolved' ? 'success' : ''">
-                  {{ info.status === 'pending' ? '待处理' : info.status === 'resolved' ? '已处理' : '已忽略' }}
-                </v-chip>
-              </li>
-              <li>{{ info.record_type === 'redundancy' ? '疑似冗余' : '疑似变动' || '-' }}</li>
-              <li>{{ formatDate(info.created_at) || '-' }}</li>
-              <li>{{ formatDate(info.updated_at) || '-' }}</li>
-              <li>
-                <v-text-field
-                  v-if="info?.status === 'pending'"
-                  v-model="notes"
-                  label=""
-                  filled
-                  clearable
-                  dense
-                  hide-details
-                  placeholder="请输入备注信息"
-                  @input="handleNotesChange"
-                />
-                <span v-else>{{ info.notes || '-' }}</span>
-              </li>
-            </ul>
-          </div>
-        </m-card>
-      </v-col>
-    </v-row>
-  </div>
-</template>
-
-<script>
-import MCard from '@/components/MCard'
-import { formatDate } from '@/utils/date'
-
-export default {
-  name: 'commonComponent',
-  components: {
-    MCard
-  },
-  props: {
-    info: {
-      type: Object,
-      default: () => ({ notes: null })
-    }
-  },
-  data () {
-    return {
-      notes: this.info.notes || null
-    }
-  },
-  methods: {
-    formatDate (date) {
-      return formatDate(date)
-    },
-    handleNotesChange () {
-      this.$emit('notesChange', this.notes)
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.snapshot-wrapper {
-  display: flex;
-  align-items: flex-start;
-}
-
-.snapshot-labels,
-.snapshot-values {
-  list-style: none;
-  padding: 0;
-  margin: 0;
-  font-size: 15px;
-  line-height: 1.6;
-}
-
-.snapshot-labels {
-  // flex: 0 0 90px;
-  text-align: right;
-  margin-right: 12px;
-  color: #403b3b;
-  // font-weight: 700;
-}
-
-.snapshot-values {
-  flex: 1;
-  word-break: break-all;
-}
-
-.snapshot-labels li,
-.snapshot-values li {
-  margin: 6px 0;
-}
-</style>

+ 0 - 198
src/views/dataReview/components/redundancy.vue

@@ -1,198 +0,0 @@
-<template>
-  <div>
-    <common-component :info="info" @notesChange="handleNotesChange" />
-    <v-row>
-      <!-- 左侧:新解析元数据快照 new_meta -->
-      <v-col cols="5">
-        <m-card title="新解析元数据信息">
-          <div class="snapshot-wrapper mt-3">
-            <ul class="snapshot-labels">
-              <li>中文名称:</li>
-              <li>英文名称:</li>
-              <li>数据类型:</li>
-              <li>数据标签:</li>
-            </ul>
-            <ul class="snapshot-values">
-              <li>{{ newMetaSnapshot.name_zh || '-' }}</li>
-              <li>{{ newMetaSnapshot.name_en || '-' }}</li>
-              <li>{{ newMetaSnapshot.data_type || '-' }}</li>
-              <li>
-                <span v-if="Array.isArray(newMetaSnapshot.tags) && newMetaSnapshot.tags.length">
-                  {{ newMetaSnapshot.tags.map(tag => tag.name_zh).join(', ') }}
-                </span>
-                <span v-else>-</span>
-              </li>
-            </ul>
-          </div>
-        </m-card>
-      </v-col>
-
-      <!-- 右侧:候选列表 candidates -->
-      <v-col cols="7">
-        <m-card title="候选元数据列表">
-          <m-table
-            class="candidate-table"
-            :headers="candidateHeaders"
-            :items="candidateList"
-            :loading="false"
-            :is-tools="false"
-            :disable-sort="true"
-            :show-select="false"
-            :can-delete="false"
-            :show-page="false"
-            :items-per-page="-1"
-            :no-radius="true"
-          >
-            <template #name_zh="{ item }">
-              {{ item.snapshot?.name_zh || '-' }}
-            </template>
-            <template #name_en="{ item }">
-              {{ item.snapshot?.name_en || '-' }}
-            </template>
-            <template #data_type="{ item }">
-              {{ item.snapshot?.data_type || '-' }}
-            </template>
-            <template #diff_fields="{ item }">
-              <span v-if="Array.isArray(item.diff_fields) && item.diff_fields.length">
-                {{ item.diff_fields.join(', ') }}
-              </span>
-              <span v-else>-</span>
-            </template>
-            <template #actions="{ item }">
-              <v-btn
-                v-if="info?.status === 'pending'"
-                class="mr-2"
-                :color="selectedCandidateMetaId === item.candidate_meta_id ? '' : 'success'"
-                text
-                :disabled="selectedCandidateMetaId === item.candidate_meta_id"
-                @click="handleSelect(item.candidate_meta_id)"
-                >
-                {{ selectedCandidateMetaId === item.candidate_meta_id ? '已选择' : '选择' }}
-              </v-btn>
-            </template>
-          </m-table>
-        </m-card>
-      </v-col>
-    </v-row>
-  </div>
-</template>
-
-<script>
-import MCard from '@/components/MCard'
-import MTable from '@/components/List/table.vue'
-import CommonComponent from './common.vue'
-
-export default {
-  name: 'redundancyComponent',
-  components: {
-    MCard,
-    MTable,
-    CommonComponent
-  },
-  props: {
-    info: {
-      type: Object,
-      default: () => ({})
-    }
-  },
-  data () {
-    return {
-      selectedCandidateMetaId: null
-    }
-  },
-  computed: {
-    newMetaSnapshot () {
-      if (!this.info || !this.info.new_meta) {
-        return {}
-      }
-      return this.info.new_meta
-    },
-    candidateList () {
-      if (!this.info || !Array.isArray(this.info.candidates)) {
-        return []
-      }
-      return this.info.candidates
-    },
-    candidateHeaders () {
-      return [
-        { text: '中文名称', align: 'start', value: 'name_zh' },
-        { text: '英文名称', align: 'start', value: 'name_en' },
-        { text: '数据类型', align: 'start', value: 'data_type' },
-        { text: '差异字段', align: 'start', value: 'diff_fields' },
-        { text: '操作', align: 'center', value: 'actions' }
-      ]
-    }
-  },
-  methods: {
-    handleSelect (candidateMetaId) {
-      this.selectedCandidateMetaId = candidateMetaId
-      this.$emit('selectCandidateMeta', candidateMetaId)
-    },
-    handleNotesChange (notes) {
-      this.$emit('notesChange', notes)
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.snapshot-card {
-  background: #f5f3f3;
-  border-radius: 6px;
-  padding: 16px 20px;
-  box-shadow: 0 0 0 1px #eee;
-}
-
-.snapshot-title {
-  font-weight: 700;
-  margin-bottom: 16px;
-  // font-size: 14px;
-  color: #333;
-}
-
-.snapshot-wrapper {
-  display: flex;
-  align-items: flex-start;
-}
-
-.snapshot-labels,
-.snapshot-values {
-  list-style: none;
-  padding: 0;
-  margin: 0;
-  font-size: 15px;
-  line-height: 1.6;
-}
-
-.snapshot-labels {
-  // flex: 0 0 90px;
-  text-align: right;
-  margin-right: 12px;
-  color: #403b3b;
-  // font-weight: 700;
-}
-
-.snapshot-values {
-  flex: 1;
-  word-break: break-all;
-}
-
-.snapshot-labels li,
-.snapshot-values li {
-  margin: 6px 0;
-}
-
-.candidate-table thead th {
-  background-color: #f5f5f5;
-  font-weight: 600;
-  font-size: 13px;
-}
-
-.candidate-table tbody tr:hover {
-  background-color: #f9f9f9;
-}
-
-.candidate-table td {
-  font-size: 13px;
-}
-</style>

+ 1 - 1
src/views/dataService/dataProduct/components/preview.vue

@@ -76,7 +76,7 @@
         :loading="false"
       >
         <template #actions="{ item }">
-          <v-btn text color="primary" @click="handleVisualize(item)">数据溯源</v-btn>
+          <v-btn text color="primary" @click="handleVisualize(item)">可视化</v-btn>
         </template>
       </TableList>
       <div v-else class="text-center pa-10 text--secondary">