|
@@ -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
|