筛选高级权限修改,基础信息启用禁用修改
This commit is contained in:
@ -58,8 +58,8 @@
|
||||
style="width: 100px; margin-right: 10px;"
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-option label="启用" :value="1" />
|
||||
<el-option label="禁用" :value="0" />
|
||||
<el-option label="启用" :value="true" />
|
||||
<el-option label="禁用" :value="false" />
|
||||
</el-select>
|
||||
|
||||
<el-button type="primary" plain @click="handleQuery">搜索</el-button>
|
||||
@ -70,26 +70,26 @@
|
||||
title="高级筛选"
|
||||
width="600"
|
||||
trigger="manual">
|
||||
<template #reference>
|
||||
<el-button plain @click="advancedFilterVisible = !advancedFilterVisible">高级筛选</el-button>
|
||||
</template>
|
||||
<div class="advanced-filter">
|
||||
<div v-for="(condition, index) in advancedConditions" :key="index" class="condition-row" style="display: flex; align-items: center; margin-bottom: 10px;">
|
||||
<el-select v-model="condition.field" placeholder="字段" style="width: 180px">
|
||||
<el-option v-for="field in fieldOptions" :key="field.value" :label="field.label" :value="field.value" />
|
||||
</el-select>
|
||||
<el-select v-model="condition.operator" placeholder="操作符" style="width: 120px; margin-left: 8px">
|
||||
<el-option v-for="op in operatorOptions" :key="op.value" :label="op.label" :value="op.value" />
|
||||
</el-select>
|
||||
<el-input v-model="condition.value" placeholder="值" style="width: 180px; margin-left: 8px" />
|
||||
<el-button v-if="advancedConditions.length > 1" type="danger" link @click="removeCondition(index)" style="margin-left: 8px">删除</el-button>
|
||||
</div>
|
||||
<div style="margin-top: 12px">
|
||||
<el-button type="primary" link @click="addCondition">添加条件</el-button>
|
||||
<el-button @click="applyAdvancedFilter" type="primary">应用筛选</el-button>
|
||||
<el-button @click="resetAdvancedFilter">重置</el-button>
|
||||
</div>
|
||||
<template #reference>
|
||||
<el-button plain @click="advancedFilterVisible = !advancedFilterVisible">高级筛选</el-button>
|
||||
</template>
|
||||
<div class="advanced-filter">
|
||||
<div v-for="(condition, index) in advancedConditions" :key="index" class="condition-row" style="display: flex; align-items: center; margin-bottom: 10px;">
|
||||
<el-select v-model="condition.field" placeholder="字段" style="width: 180px">
|
||||
<el-option v-for="field in fieldOptions" :key="field.value" :label="field.label" :value="field.value" />
|
||||
</el-select>
|
||||
<el-select v-model="condition.operator" placeholder="操作符" style="width: 120px; margin-left: 8px">
|
||||
<el-option v-for="op in operatorOptions" :key="op.value" :label="op.label" :value="op.value" />
|
||||
</el-select>
|
||||
<el-input v-model="condition.value" placeholder="值" style="width: 180px; margin-left: 8px" />
|
||||
<el-button v-if="advancedConditions.length > 1" type="danger" link @click="removeCondition(index)" style="margin-left: 8px">删除</el-button>
|
||||
</div>
|
||||
<div style="margin-top: 12px">
|
||||
<el-button type="primary" link @click="addCondition">添加条件</el-button>
|
||||
<el-button @click="applyAdvancedFilter" type="primary">应用筛选</el-button>
|
||||
<el-button @click="resetAdvancedFilter">重置</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-popover>
|
||||
</div>
|
||||
|
||||
@ -117,7 +117,7 @@
|
||||
</template>
|
||||
</el-dropdown>
|
||||
|
||||
<el-popover placement="bottom" :width="150" trigger="click">
|
||||
<el-popover placement="bottom" :width="200" trigger="click">
|
||||
<template #reference>
|
||||
<el-button circle :icon="Setting" style="margin-left: 8px" title="列设置" />
|
||||
</template>
|
||||
@ -125,18 +125,18 @@
|
||||
<div style="font-weight: bold; margin-bottom: 5px; border-bottom: 1px solid #eee; padding-bottom: 5px">
|
||||
列展示设置
|
||||
</div>
|
||||
<el-checkbox v-model="columns.id.visible" label="ID" :disabled="!userStore.hasPermission(permissionMap.id)" />
|
||||
<el-checkbox v-model="columns.companyName.visible" label="所属公司" :disabled="!userStore.hasPermission(permissionMap.companyName)" />
|
||||
<el-checkbox v-model="columns.name.visible" label="名称" :disabled="!userStore.hasPermission(permissionMap.name)" />
|
||||
<el-checkbox v-model="columns.commonName.visible" label="俗名" :disabled="!userStore.hasPermission(permissionMap.commonName)" />
|
||||
<el-checkbox v-model="columns.category.visible" label="类别" :disabled="!userStore.hasPermission(permissionMap.category)" />
|
||||
<el-checkbox v-model="columns.type.visible" label="类型" :disabled="!userStore.hasPermission(permissionMap.type)" />
|
||||
<el-checkbox v-model="columns.spec.visible" label="规格型号" :disabled="!userStore.hasPermission(permissionMap.spec)" />
|
||||
<el-checkbox v-model="columns.unit.visible" label="单位" :disabled="!userStore.hasPermission(permissionMap.unit)" />
|
||||
<el-checkbox v-model="columns.inventory.visible" label="库存数" :disabled="!userStore.hasPermission(permissionMap.inventory)" />
|
||||
<el-checkbox v-model="columns.available.visible" label="可用数" :disabled="!userStore.hasPermission(permissionMap.available)" />
|
||||
<el-checkbox v-model="columns.files.visible" label="资料" :disabled="!userStore.hasPermission(permissionMap.files)" />
|
||||
<el-checkbox v-model="columns.isEnabled.visible" label="状态" :disabled="!userStore.hasPermission(permissionMap.isEnabled)" />
|
||||
<el-checkbox v-model="columns.id.visible" label="ID" />
|
||||
<el-checkbox v-model="columns.companyName.visible" label="所属公司" />
|
||||
<el-checkbox v-model="columns.name.visible" label="名称" />
|
||||
<el-checkbox v-model="columns.commonName.visible" label="俗名" />
|
||||
<el-checkbox v-model="columns.category.visible" label="类别" />
|
||||
<el-checkbox v-model="columns.type.visible" label="类型" />
|
||||
<el-checkbox v-model="columns.spec.visible" label="规格型号" />
|
||||
<el-checkbox v-model="columns.unit.visible" label="单位" />
|
||||
<el-checkbox v-model="columns.inventory.visible" label="库存数" />
|
||||
<el-checkbox v-model="columns.available.visible" label="可用数" />
|
||||
<el-checkbox v-model="columns.files.visible" label="资料" />
|
||||
<el-checkbox v-model="columns.isEnabled.visible" label="状态" />
|
||||
</div>
|
||||
</el-popover>
|
||||
</div>
|
||||
@ -235,8 +235,8 @@
|
||||
<template #default="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.isEnabled"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
:active-value="true"
|
||||
:inactive-value="false"
|
||||
:loading="scope.row.statusLoading"
|
||||
:disabled="!userStore.hasPermission('material_list:operation')"
|
||||
@change="handleStatusChange(scope.row)"
|
||||
@ -416,8 +416,8 @@
|
||||
|
||||
<el-form-item label="状态" prop="isEnabled" v-if="hasFieldPermission('isEnabled')">
|
||||
<el-radio-group v-model="form.isEnabled">
|
||||
<el-radio :value="1">启用</el-radio>
|
||||
<el-radio :value="0">禁用</el-radio>
|
||||
<el-radio :value="true">启用</el-radio>
|
||||
<el-radio :value="false">禁用</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@ -477,7 +477,7 @@ interface MaterialBaseVO {
|
||||
visibilityLevel: number;
|
||||
generalManual: string[];
|
||||
generalImage: string[];
|
||||
isEnabled: number;
|
||||
isEnabled: boolean; // 已彻底修改为布尔值
|
||||
statusLoading?: boolean;
|
||||
inventoryCount?: number;
|
||||
availableCount?: number;
|
||||
@ -490,7 +490,7 @@ interface QueryParams {
|
||||
category: string;
|
||||
type: string;
|
||||
company: string;
|
||||
isEnabled?: number;
|
||||
isEnabled?: boolean; // 已修改为布尔值可选
|
||||
orderByColumn: string;
|
||||
isAsc: string | undefined;
|
||||
advancedFilters?: any[];
|
||||
@ -647,7 +647,7 @@ const initForm = {
|
||||
visibilityLevel: 0,
|
||||
generalManual: [] as string[],
|
||||
generalImage: [] as string[],
|
||||
isEnabled: 1
|
||||
isEnabled: true // 已修改为默认 true
|
||||
};
|
||||
|
||||
const form = ref({...initForm});
|
||||
@ -991,13 +991,14 @@ const resetForm = () => {
|
||||
if (formRef.value) formRef.value.resetFields();
|
||||
};
|
||||
|
||||
// 确保这里的布尔值切换逻辑正确匹配真伪值的切换
|
||||
const handleStatusChange = (row: MaterialBaseVO) => {
|
||||
row.statusLoading = true;
|
||||
const text = row.isEnabled === 1 ? "启用" : "停用";
|
||||
const text = row.isEnabled === true ? "启用" : "停用";
|
||||
const updateData = { id: row.id, isEnabled: row.isEnabled };
|
||||
updateMaterialBase(updateData)
|
||||
.then(() => ElMessage.success(`已${text} "${row.name}"`))
|
||||
.catch(() => { row.isEnabled = row.isEnabled === 1 ? 0 : 1; })
|
||||
.catch(() => { row.isEnabled = !row.isEnabled; }) // 回退时布尔值反转
|
||||
.finally(() => { row.statusLoading = false; });
|
||||
};
|
||||
|
||||
@ -1195,4 +1196,4 @@ onMounted(() => {
|
||||
.long-dropdown .el-select-dropdown__wrap {
|
||||
max-height: 600px !important; /* 可以根据屏幕大小适当调整 */
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
Reference in New Issue
Block a user