| | |
| | | <template> |
| | | <div class="large-glass-config"> |
| | | <el-form-item label="格子范围配置"> |
| | | <el-form-item label="笼子格子配置"> |
| | | </el-form-item> |
| | | <div class="grid-ranges"> |
| | | <div |
| | | v-for="(range, index) in config.gridRanges" |
| | | :key="index" |
| | | class="grid-range-item" |
| | | > |
| | | <el-input-number |
| | | v-model="range.row" |
| | | :min="1" |
| | | :max="100" |
| | | :step="1" |
| | | style="width: 100px; margin-right: 10px;" |
| | | placeholder="行号" |
| | | /> |
| | | <span>行:</span> |
| | | <span style="margin-right: 10px;">笼子{{ range.row }}:</span> |
| | | <el-input-number |
| | | v-model="range.start" |
| | | :min="1" |
| | |
| | | </el-button> |
| | | </div> |
| | | <el-button type="primary" size="small" @click="addGridRange"> |
| | | 添加格子范围 |
| | | 添加笼子 |
| | | </el-button> |
| | | </div> |
| | | <span class="form-tip">配置每行的格子范围,例如:第一行1~52格,第二行53~101格</span> |
| | | </el-form-item> |
| | | <span class="form-tip">配置每个笼子的格子范围,例如:笼子1是1~52格,笼子2是53~101格。</span> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | |
| | | // 监听props变化 |
| | | watch(() => props.modelValue, (newVal) => { |
| | | if (newVal && Object.keys(newVal).length > 0) { |
| | | let gridRanges = newVal.gridRanges || [ |
| | | { row: 1, start: 1, end: 52 }, |
| | | { row: 2, start: 53, end: 101 } |
| | | ] |
| | | // 确保每个范围都有row字段(如果没有则自动生成) |
| | | gridRanges = gridRanges.map((range, index) => ({ |
| | | ...range, |
| | | row: range.row || (index + 1) |
| | | })) |
| | | |
| | | config.value = { |
| | | gridRanges: newVal.gridRanges || [ |
| | | { row: 1, start: 1, end: 52 }, |
| | | { row: 2, start: 53, end: 101 } |
| | | ], |
| | | gridRanges: gridRanges, |
| | | gridLength: newVal.gridLength ?? 2000, |
| | | gridWidth: newVal.gridWidth ?? 1500, |
| | | gridThickness: newVal.gridThickness ?? 5 |
| | |
| | | // 格子范围相关方法 |
| | | const addGridRange = () => { |
| | | const maxRow = config.value.gridRanges.length > 0 |
| | | ? Math.max(...config.value.gridRanges.map(r => r.row)) |
| | | ? Math.max(...config.value.gridRanges.map(r => r.row || 0)) |
| | | : 0 |
| | | const lastEnd = config.value.gridRanges.length > 0 |
| | | ? Math.max(...config.value.gridRanges.map(r => r.end)) |
| | | ? Math.max(...config.value.gridRanges.map(r => r.end || 0)) |
| | | : 0 |
| | | config.value.gridRanges.push({ |
| | | row: maxRow + 1, |
| | | row: maxRow + 1, // 自动生成笼子编号 |
| | | start: lastEnd + 1, |
| | | end: lastEnd + 50 |
| | | }) |