效果图:
1.填写界面

2.改变的公告栏



3.代码实现:
1.填写页面
<template>
<!-- 表单,绑定form -->
<el-form :model="form" label-width="120px">
<el-form-item label="通知一">
<el-input
v-model="form.notice1"
:rows="2"
type="textarea"
placeholder="请输入"
/>
</el-form-item>
<el-form-item label="通知二">
<el-input
v-model="form.notice2"
:rows="2"
type="textarea"
placeholder="请输入"
/>
</el-form-item>
<el-form-item label="通知三">
<el-input
v-model="form.notice3"
:rows="2"
type="textarea"
placeholder="请输入"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">Create</el-button>
</el-form-item>
</el-form>
</template>
<script lang="ts" setup>
import { useStore } from "vuex";
import { reactive} from "vue";
const store = useStore();
const form = reactive({
notice1:"",
notice2:"",
notice3:"",
});
const onSubmit = () => {
// 更改提交给vuex
store.commit({
type:"upNotice",
newNotice:form
})
};
</script>
<style scoped>
</style>
2.轮播图代码
<template>
<div class="block text-center" m="t-4">
<el-carousel trigger="click" height="150px">
<el-carousel-item v-for="item in notice" :key="item">
<h3 class="small justify-center" text="2xl">{{ item }}</h3>
</el-carousel-item>
</el-carousel>
</div>
</template>
<script lang="ts" setup>
import { useStore } from "vuex";
const store = useStore();
// 获取vuex中notice数据
const notice = store.state.notice;
</script>
<style scoped>
.demonstration {
color: var(--el-text-color-secondary);
}
.el-carousel__item h3 {
color: #475669;
opacity: 0.75;
line-height: 150px;
margin: 0;
text-align: center;
}
.el-carousel__item:nth-child(2n) {
background-color: #99a9bf;
}
.el-carousel__item:nth-child(2n + 1) {
background-color: #d3dce6;
}
</style>
3.vuex代码
import { createStore } from 'vuex'
};
export default createStore({
state: {
notice: {
notice1: "1",
notice2: "2",
notice3: "3",
}
},
getters: {
notice:state=>state.notice
},
mutations: {
upNotice(state,payload){
state.notice=payload.newNotice
}
},
actions: {
},
modules: {
}
})
版权声明:本文为qq_45820271原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。