请再修改一下上面的代码,使选择药品的框和输入药品数量的框还有删除按钮都在一行上面,更加美观一点
时间: 2024-04-14 11:30:37 浏览: 67
当选择药品的下拉框、输入药品数量的框和删除按钮都在同一行时,你可以使用Flex布局来实现。下面是修改后的代码:
```html
<template>
<div>
<div v-for="(drug, index) in drugs" :key="drug.key" class="drug-row">
<select v-model="drug.drugName" class="drug-select">
<option v-for="option in drugOptions" :value="option.drugName">{{ option.drugName }}</option>
</select>
<input type="number" v-model="drug.drugNumber" class="drug-input">
<button @click="removeDrug(index)" class="delete-button">删除</button>
</div>
<button @click="addDrug" class="add-button">新增</button>
</div>
</template>
<style>
.drug-row {
display: flex;
align-items: center;
margin-bottom: 10px;
}
.drug-select {
flex: 1;
margin-right: 10px;
}
.drug-input {
flex: 1;
margin-right: 10px;
}
.delete-button {
flex-shrink: 0;
margin-left: 10px;
}
.add-button {
margin-top: 10px;
}
</style>
<script>
export default {
data() {
return {
drugs: [
{
key: 1,
drugName: "",
drugNumber: ""
}
],
drugOptions: [
{
id: -493924350,
orderId: 64,
drugId: 1,
drugName: "999感冒灵",
drugNumber: 1
},
{
id: 1,
orderId: 64,
drugId: 2,
drugName: "云南白药",
drugNumber: 2
}
]
};
},
methods: {
addDrug() {
const newKey = this.drugs.length + 1;
this.drugs.push({
key: newKey,
drugName: "",
drugNumber: ""
});
},
removeDrug(index) {
this.drugs.splice(index, 1);
}
}
};
</script>
```
在上述代码中,我们添加了一些CSS样式来调整布局。`.drug-row`类使用Flex布局,使选择药品的下拉框、输入药品数量的框和删除按钮在同一行上水平排列。`.drug-select`和`.drug-input`类使用`flex: 1`属性来平均分配剩余的空间。`.delete-button`类使用`flex-shrink: 0`属性来防止删除按钮缩小。
请根据需要自行调整CSS样式以达到更好的美观效果。
阅读全文