Bladeren bron

feat: delete and cancel commit related in treelist and buglist

claws 4 jaren geleden
bovenliggende
commit
ea08bc1c0a
3 gewijzigde bestanden met toevoegingen van 54 en 3 verwijderingen
  1. 27 1
      src/components/BugEditDrawer.vue
  2. 27 1
      src/components/RequirementDrawer.vue
  3. 0 1
      src/views/Project/CommitDetails.vue

+ 27 - 1
src/components/BugEditDrawer.vue

@@ -138,6 +138,21 @@
                       <RowItem :label="'ID:'" :label-span="5" :value-span="19">{{scope.row.id}}</RowItem>
                       <RowItem :label="'信息:'" :label-span="5" :value-span="19">{{scope.row.message}}</RowItem>
                       <RowItem :label="'时间:'" :label-span="5" :value-span="19">{{formatter(scope.row.timestamp)}}</RowItem>
+                      <RowItem :label="'操作:'" :label-span="5" :value-span="19">
+                        <el-button
+                          v-if="!deletedCommitIndex.has(scope.$index)"
+                          size="small"
+                          type="danger"
+                          @click="handleDelete(scope.$index,scope.row.id)"
+                        >删除</el-button
+                        >
+                        <el-button
+                          v-else
+                          size="small"
+                          type="info"
+                          @click="handleRestore(scope.$index, scope.row.id)"
+                          >撤销</el-button>
+                      </RowItem>
                     </template>
                   </el-table-column>
                   <el-table-column
@@ -163,7 +178,7 @@
 </template>
 
 <script>
-import { BugListAPI } from '@/api';
+import { BugListAPI, ProjectAPI } from '@/api';
 import PriorityTag from '@/components/PriorityTag.vue';
 import StateTag from '@/components/StateTag.vue';
 import { priorityOptions, stateOptions } from '@/utils/constants';
@@ -204,6 +219,7 @@ export default {
       confirmLoading: false,
       stateOptions,
       priorityOptions,
+      deletedCommitIndex: new Set(),
     };
   },
   computed: {
@@ -239,6 +255,16 @@ export default {
       this.isEditing = false;
       this.fillDefaultValue();
     },
+    async handleDelete(index, commitId) {
+      await ProjectAPI.linkCommit(this.$store.state.workspace.currentProjectId, commitId, 'NONE', this.id);
+      this.deletedCommitIndex.add(index);
+    },
+    async handleRestore(index, commitId) {
+      console.log(commitId);
+      console.log(index);
+      await ProjectAPI.linkCommit(this.$store.state.workspace.currentProjectId, commitId, 'BUG_ID', this.id);
+      this.deletedCommitIndex.delete(index);
+    },
   },
 };
 </script>

+ 27 - 1
src/components/RequirementDrawer.vue

@@ -158,6 +158,21 @@
                       <RowItem :label="'ID:'" :label-span="5" :value-span="19">{{scope.row.id}}</RowItem>
                       <RowItem :label="'信息:'" :label-span="5" :value-span="19">{{scope.row.message}}</RowItem>
                       <RowItem :label="'时间:'" :label-span="5" :value-span="19">{{formatter(scope.row.timestamp)}}</RowItem>
+                      <RowItem :label="'操作:'" :label-span="5" :value-span="19">
+                        <el-button
+                          v-if="!deletedCommitIndex.has(scope.$index)"
+                          size="small"
+                          type="danger"
+                          @click="handleDelete(scope.$index,scope.row.id)"
+                        >删除</el-button
+                        >
+                        <el-button
+                          v-else
+                          size="small"
+                          type="info"
+                          @click="handleRestore(scope.$index, scope.row.id)"
+                        >撤销</el-button>
+                      </RowItem>
                     </template>
                   </el-table-column>
                   <el-table-column
@@ -184,7 +199,7 @@
 </template>
 
 <script>
-import { RequirementAPI } from '@/api';
+import { ProjectAPI, RequirementAPI } from '@/api';
 import PriorityTag from '@/components/PriorityTag.vue';
 import StateTag from '@/components/StateTag.vue';
 import { priorityOptions, stateOptions } from '@/utils/constants';
@@ -232,6 +247,7 @@ export default {
       confirmLoading: false,
       stateOptions,
       priorityOptions,
+      deletedCommitIndex: new Set(),
     };
   },
   computed: {
@@ -278,6 +294,16 @@ export default {
     changeContent(id) {
       this.$emit('change', id);
     },
+    async handleDelete(index, commitId) {
+      await ProjectAPI.linkCommit(this.$store.state.workspace.currentProjectId, commitId, 'NONE', this.id);
+      this.deletedCommitIndex.add(index);
+    },
+    async handleRestore(index, commitId) {
+      console.log(commitId);
+      console.log(index);
+      await ProjectAPI.linkCommit(this.$store.state.workspace.currentProjectId, commitId, 'TREE_ID', this.id);
+      this.deletedCommitIndex.delete(index);
+    },
   },
 };
 </script>

+ 0 - 1
src/views/Project/CommitDetails.vue

@@ -269,7 +269,6 @@ export default {
     },
     async saveRelated() {
       const response = ProjectAPI.linkCommit(this.projectId, this.commitId, this.relatedTypeEdit, this.relatedIdEdit);
-      console.log(response);
       ElMessage('success');
       await this.loadCommitInfo();
       this.typeEditMode = false;