Эх сурвалжийг харах

feat: 实现待认领不能和维护人同时筛选

cuiyalong 10 сар өмнө
parent
commit
d7cc0e6757

+ 41 - 14
frontend/src/views/CodeList.vue

@@ -15,7 +15,7 @@
                 <el-space class="action-bar-item-container action-bar-action-right">
                     <div class="action-bar-item" v-if="showModifyUserFilter">
                         <span class="action-bar-name">维护人:</span>
-                        <el-select v-model="filters.modifyuser" style="width: 140px" @change="onModifyUserSelectChange">
+                        <el-select v-model="filters.modifyuser" style="width: 140px" @change="onModifyUserSelectChange" :disabled="modifyUserSelectDisabled">
                             <el-option
                                 v-for="item in filterConfig.modifyUserList"
                                 :key="item.value"
@@ -43,6 +43,7 @@
                                 :key="item.value"
                                 :label="item.label"
                                 :value="item.value"
+                                :disabled="item.disabled"
                             />
                         </el-select>
                     </div>
@@ -134,7 +135,7 @@
 </template>
 
 <script setup>
-import { ref, computed, onMounted, onUnmounted, reactive } from 'vue'
+import { ref, computed, onMounted, onUnmounted, reactive, watch } from 'vue'
 import { useRouter } from 'vue-router';
 import { useStore } from 'vuex';
 import { ElMessage, ElMessageBox } from 'element-plus'
@@ -153,9 +154,11 @@ const spiderTable = ref(null)
 const { stateOptions, claimOptions } = useCodeListFiltersWithRole()
 
 const filterConfig = reactive({
-    // 爬虫状态
+    // 爬虫状态备选项
     stateOptions: stateOptions,
+    // 认领状态备选项
     claimOptions: claimOptions,
+    // 维护人备选项
     modifyUserList: [
         {
             label: '全部',
@@ -166,9 +169,13 @@ const filterConfig = reactive({
 
 // 选择器数据
 const filters = reactive({
+    // 搜索
     search: '',
+    // 爬虫状态
     state: -1,
+    // 维护人
     modifyuser: '-1',
+    // 认领状态
     claimtype: -1,
 })
 // 选择器数据(用来重置)
@@ -207,10 +214,31 @@ const defaultListState = {
     list: [],
 }
 
+// 用户身份标识
 const userRole = computed(() => store.getters.userRole)
+// 是否展示维护人模块
 const showModifyUserFilter = computed(() => [USER_ROLE_ADMIN, USER_ROLE_REVIEWER].includes(userRole.value))
+// 是否展示认领按钮
 const showRenLingButton = computed(() => [USER_ROLE_DEVELOPER].includes(userRole.value))
 
+// 实现待认领不能和维护人同时筛选
+// 是否禁用维护人模块(待认领筛选下,禁用维护人筛选模块)
+const modifyUserSelectDisabled = computed(() => filters.claimtype === 0)
+// 是否禁用待认领筛选(维护人不为全部,则禁用待认领的选中)
+const stopWatch = watch(() => filters.modifyuser, (n) => {
+    const target = filterConfig.claimOptions.find(i => i.value === 0)
+    if (target) {
+        if (n === defaultFilters.modifyuser) {
+            // 解除禁用待认领
+            target.disabled = false
+        } else {
+            // 禁用待认领
+            target.disabled = true
+        }
+    } else {
+        stopWatch()
+    }
+})
 
 const editSpiderDialog = ref(null)
 
@@ -233,6 +261,7 @@ const dialogEvents = {
     },
 }
 
+// table的按钮事件集合
 const tableEvents = {
     handleDataTag(index, row) {
         // 自定义关闭时间
@@ -269,7 +298,7 @@ const calcStateText = (state) => {
     if (target) {
         return target.label
     } else {
-        return '未知状态'
+        return ''
     }
 }
 // 计算认领状态
@@ -278,7 +307,7 @@ const calcClaimText = (state) => {
     if (target) {
         return target.label
     } else {
-        return '未知状态'
+        return ''
     }
 }
 // 获取列表数据
@@ -293,7 +322,7 @@ const getTableList = async () => {
             pageSize: listState.pageSize,
             pageNum: listState.pageNum
         });
-        const { data, code } = r
+        const { data, err, msg } = r
         if (data) {
             listState.total = data.total || 0
             if (Array.isArray(data.list)) {
@@ -336,7 +365,7 @@ const resetFilterAndRefreshTableList = () => {
     refreshTableList()
 }
 
-// 认领
+// 认领按钮事件
 const userClaimCodes = async () => {
     try {
         const r = await store.dispatch('rulesList/userClaimCodes')
@@ -344,22 +373,19 @@ const userClaimCodes = async () => {
         if (err === 0) {
             ElMessage({
                 message: msg || '认领成功',
-                showClose: true,
-                duration: 3000,
+                type: 'success',
             })
             resetFilterAndRefreshTableList()
         } else {
             ElMessage({
                 message: msg || '认领失败',
-                showClose: true,
-                duration: 3000,
+                type: 'error',
             })
         }
     } catch (error) {
         ElMessage({
             message: '认领失败',
-            showClose: true,
-            duration: 3000,
+            type: 'error',
         })
     }
 }
@@ -377,9 +403,10 @@ const handleCurrentChange = (val) => {
     getTableList()
 };
 
+// 获取维护人劣列表
 const getModifyUserList = async () => {
     const r = await store.dispatch('rulesList/getModifyUserList')
-    const { data, code } = r
+    const { data, err, msg } = r
     if (data) {
         if (Array.isArray(data.list)) {
             const arr = filterConfig.modifyUserList