style: 优化库位树层级颜色,并升级入库页面的库位选择为树形选择器
This commit is contained in:
@ -85,7 +85,7 @@
|
|||||||
<span class="node-label">{{ node.label }}</span>
|
<span class="node-label">{{ node.label }}</span>
|
||||||
<span class="node-actions">
|
<span class="node-actions">
|
||||||
<el-button
|
<el-button
|
||||||
:type="getLevelButtonType(node.level, 'add')"
|
:type="getAddBtnType(node.level)"
|
||||||
link
|
link
|
||||||
size="small"
|
size="small"
|
||||||
@click="handleAddChild(data)"
|
@click="handleAddChild(data)"
|
||||||
@ -94,7 +94,7 @@
|
|||||||
新增下级
|
新增下级
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
:type="getLevelButtonType(node.level, 'edit')"
|
type="warning"
|
||||||
link
|
link
|
||||||
size="small"
|
size="small"
|
||||||
@click="handleEdit(data)"
|
@click="handleEdit(data)"
|
||||||
@ -103,7 +103,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
:type="getLevelButtonType(node.level, 'delete')"
|
type="danger"
|
||||||
link
|
link
|
||||||
size="small"
|
size="small"
|
||||||
@click="handleDelete(data)"
|
@click="handleDelete(data)"
|
||||||
@ -213,19 +213,15 @@ const savePrinterConfig = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ==================== 库位管理相关 ====================
|
// ==================== 库位管理相关 ====================
|
||||||
// 根据层级返回按钮颜色类型
|
// 根据层级返回"新增下级"按钮颜色
|
||||||
const getLevelButtonType = (level: number, action: string) => {
|
// 第1层(顶级)=primary蓝色, 第2层=success绿色, 第3层=warning橙色, 第4层及以上=info灰色
|
||||||
// 层级颜色映射
|
const getAddBtnType = (level: number) => {
|
||||||
const levelColors: Record<number, Record<string, string>> = {
|
const levelTypes: Record<number, string> = {
|
||||||
0: { add: 'primary', edit: 'info', delete: 'danger' }, // 顶级: 蓝/灰/红
|
0: 'primary', // 第1层(顶级)
|
||||||
1: { add: 'success', edit: 'warning', delete: 'danger' }, // 二级: 绿/橙/红
|
1: 'success', // 第2层
|
||||||
2: { add: 'warning', edit: 'info', delete: 'danger' }, // 三级: 橙/灰/红
|
2: 'warning', // 第3层
|
||||||
}
|
}
|
||||||
// 4级及以上统一使用危险色
|
return levelTypes[level] || 'info' // 第4层及以上
|
||||||
if (level >= 3) {
|
|
||||||
return 'danger'
|
|
||||||
}
|
|
||||||
return levelColors[level]?.[action] || 'primary'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const warehouseDialogVisible = ref(false)
|
const warehouseDialogVisible = ref(false)
|
||||||
|
|||||||
@ -327,15 +327,21 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="库位" prop="warehouse_location">
|
<el-form-item label="库位" prop="warehouse_location">
|
||||||
<el-cascader
|
<el-tree-select
|
||||||
v-model="form.warehouse_location"
|
v-model="form.warehouse_location"
|
||||||
:options="warehouseOptions"
|
:data="warehouseOptions"
|
||||||
:props="{ value: 'full_path', label: 'name', children: 'children', checkStrictly: true, emitPath: false }"
|
:props="{ label: 'full_path', value: 'full_path', children: 'children' }"
|
||||||
placeholder="请选择库位"
|
placeholder="请选择库位"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
/>
|
check-strictly
|
||||||
|
:render-after-expand="false"
|
||||||
|
>
|
||||||
|
<template #default="{ data }">
|
||||||
|
<span>{{ data.name }}</span>
|
||||||
|
</template>
|
||||||
|
</el-tree-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|||||||
@ -287,15 +287,21 @@
|
|||||||
<el-row :gutter="24">
|
<el-row :gutter="24">
|
||||||
<el-col :span="6"><el-form-item label="SKU" prop="sku"><el-input v-model="form.sku" placeholder="自动生成" disabled /></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="SKU" prop="sku"><el-input v-model="form.sku" placeholder="自动生成" disabled /></el-form-item></el-col>
|
||||||
<el-col :span="6"><el-form-item label="库位" prop="warehouse_location">
|
<el-col :span="6"><el-form-item label="库位" prop="warehouse_location">
|
||||||
<el-cascader
|
<el-tree-select
|
||||||
v-model="form.warehouse_location"
|
v-model="form.warehouse_location"
|
||||||
:options="warehouseOptions"
|
:data="warehouseOptions"
|
||||||
:props="{ value: 'full_path', label: 'name', children: 'children', checkStrictly: true, emitPath: false }"
|
:props="{ label: 'full_path', value: 'full_path', children: 'children' }"
|
||||||
placeholder="请选择库位"
|
placeholder="请选择库位"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
/>
|
check-strictly
|
||||||
|
:render-after-expand="false"
|
||||||
|
>
|
||||||
|
<template #default="{ data }">
|
||||||
|
<span>{{ data.name }}</span>
|
||||||
|
</template>
|
||||||
|
</el-tree-select>
|
||||||
</el-form-item></el-col>
|
</el-form-item></el-col>
|
||||||
<el-col :span="6"><el-form-item label="入库日期"><el-date-picker v-model="form.in_date" type="date" value-format="YYYY-MM-DD" style="width:100%" disabled /></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="入库日期"><el-date-picker v-model="form.in_date" type="date" value-format="YYYY-MM-DD" style="width:100%" disabled /></el-form-item></el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|||||||
@ -346,15 +346,21 @@
|
|||||||
<el-col :span="6"><el-form-item label="编码/SKU" prop="sku"><el-input v-model="form.sku" placeholder="系统自动生成" disabled/></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="编码/SKU" prop="sku"><el-input v-model="form.sku" placeholder="系统自动生成" disabled/></el-form-item></el-col>
|
||||||
<el-col :span="6"><el-form-item label="入库日期" prop="in_date"><el-date-picker v-model="form.in_date" type="date" value-format="YYYY-MM-DD" style="width:100%" disabled/></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="入库日期" prop="in_date"><el-date-picker v-model="form.in_date" type="date" value-format="YYYY-MM-DD" style="width:100%" disabled/></el-form-item></el-col>
|
||||||
<el-col :span="6"><el-form-item label="库位" prop="warehouse_location">
|
<el-col :span="6"><el-form-item label="库位" prop="warehouse_location">
|
||||||
<el-cascader
|
<el-tree-select
|
||||||
v-model="form.warehouse_location"
|
v-model="form.warehouse_location"
|
||||||
:options="warehouseOptions"
|
:data="warehouseOptions"
|
||||||
:props="{ value: 'full_path', label: 'name', children: 'children', checkStrictly: true, emitPath: false }"
|
:props="{ label: 'full_path', value: 'full_path', children: 'children' }"
|
||||||
placeholder="请选择库位"
|
placeholder="请选择库位"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
/>
|
check-strictly
|
||||||
|
:render-after-expand="false"
|
||||||
|
>
|
||||||
|
<template #default="{ data }">
|
||||||
|
<span>{{ data.name }}</span>
|
||||||
|
</template>
|
||||||
|
</el-tree-select>
|
||||||
</el-form-item></el-col>
|
</el-form-item></el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user