vue3.2/Vite/Ts65: SKU静态搭建
·
Yin灏
目录结构
└─src
└─views
└─product
└─spu
├─index.vue
├─skuform.vue
└─spuform.vue
切换场景 2
src/views/product/spu/skuform.vue
<template>
<el-form label-width="100px">
<el-form-item label="SKU名称">
<el-input placeholder="SKU名称"></el-input>
</el-form-item>
<el-form-item label="价格(元)">
<el-input placeholder="价格(元)" type="number"></el-input>
</el-form-item>
<el-form-item label="重量(g)">
<el-input placeholder="重量(g)" type="number"></el-input>
</el-form-item>
<el-form-item label="SKU描述">
<el-input placeholder="SKU描述" type="textarea"></el-input>
</el-form-item>
<!-- 平台属性 -->
<el-form-item label="平台属性">
<el-form :inline="true">
<el-form-item label="内存">
<el-select>
<el-option label="256"></el-option>
<el-option label="256"></el-option>
<el-option label="256"></el-option>
<el-option label="256"></el-option>
</el-select>
</el-form-item>
</el-form>
</el-form-item>
<el-form-item label="销售属性">
<el-form :inline="true">
<el-form-item label="颜色">
<el-select>
<el-option label="256"></el-option>
<el-option label="256"></el-option>
<el-option label="256"></el-option>
<el-option label="256"></el-option>
</el-select>
</el-form-item>
</el-form>
</el-form-item>
<el-form-item label="图片名称">
<el-table>
<el-table-column
type="selection"
width="80px"
align="center"
></el-table-column>
<el-table-column label="图片"></el-table-column>
<el-table-column label="名称"></el-table-column>
<el-table-column label="操作"></el-table-column>
</el-table>
</el-form-item>
<!-- 按钮 -->
<el-form-item>
<el-button type="primary" size="small">保存</el-button>
<el-button type="primary" size="small" @click="cancel">取消</el-button>
</el-form-item>
</el-form>
</template>
<script setup lang="ts">
let $emit = defineEmits(['changeScene']);
const cancel = () => {
$emit('changeScene', {
flag: 0,
params: ''
})
}
</script>
处理父组件
src/views/product/spu/index.vue
<template>
<div>
<!-- ... -->
<el-card>
<!-- ... -->
<SpuForm v-show="scene === 1" @changeScene="changeScene"></SpuForm>
<SkuForm v-show="scene === 2" @changeScene="changeScene"></SkuForm>
</el-card>
</div>
</template>
<script setup lang="ts">
//...
const changeScene = (obj: any) => {
scene.value = obj.flag;
//...
if (obj.params === "update") {
getHasSpu(pageNo.value);
} else {
getHasSpu();
}
};
//...
</script>