refactor: 统一组件导入与消息提示方式

- 将多个组件中的 require 替换为 import,提升代码一致性。
- 更新消息提示方式,使用统一的 Message 和 Modal 组件,增强用户体验。
- 调整部分组件的样式和逻辑,确保界面一致性与可读性。
This commit is contained in:
田香琪
2026-07-08 18:36:06 +08:00
parent f6ddcf4f99
commit 106e059d1a
63 changed files with 429 additions and 314 deletions

View File

@@ -49,8 +49,7 @@
<div
class="discountAdvert"
:style="{
backgroundImage:
'url(' + require('@/assets/images/decorate.png') + ')',
backgroundImage: 'url(' + decorateImg + ')',
}"
>
<div>
@@ -153,7 +152,7 @@ import goodsAndType from "./modelList/goodsAndType.vue";
import onlyGoodsModel from "./modelList/onlyGoodsModel.vue";
import mixModel from "./modelList/mixModel.vue";
import forYour from "./modelList/forYour.vue";
import decorateImg from "@/assets/images/decorate.png";
export default {
name: "modelFormItem",
@@ -175,6 +174,7 @@ export default {
},
data() {
return {
decorateImg,
showModal: false, // 控制模态框显隐
selected: {}, // 已选数据
};

View File

@@ -51,18 +51,14 @@
</div> -->
</div>
<div v-else class="flex flex-a-c ">
<div class="btns" @click="$router.push('login')" shape="circle"
>登录</div
>
<div class="btns sign-up" @click="$router.push('signUp')" shape="circle"
>注册</div
>
<div class="btns" @click="$router.push('login')">登录</div>
<div class="btns sign-up" @click="$router.push('signUp')">注册</div>
</div>
<div class="gray-line"></div>
<div class="icon-list flex flex-j-sb" >
<div class="icon-item" @click="entryControl(item)" :key="index" v-for="(item, index) in entranceList">
<img class="icon" :src="require(`@/assets/iconfont/${item.icon}.png`)">
<img class="icon" :src="getIconUrl(item.icon)">
<div>
{{ item.label }}
</div>
@@ -70,7 +66,7 @@
</div>
<div class="icon-list flex flex-j-sb" >
<div class="icon-item" :key="index" @click="entryControl(item)" v-for="(item, index) in appendList">
<img class="icon" :src="require(`@/assets/iconfont/${item.icon}.png`)">
<img class="icon" :src="getIconUrl(item.icon)">
<div>
{{ item.label }}
</div>
@@ -89,6 +85,9 @@
<script>
import storage from "@/plugins/storage";
import config from "@/config";
import defaultAvatar from "@/assets/images/default.png";
import { getIconUrl } from "@/assets/iconfont/iconMap";
export default {
name: "modelCarousel",
props: ["data"],
@@ -102,8 +101,8 @@ export default {
},
data() {
return {
config: require("@/config"),
defaultAvatar: require("@/assets/images/default.png"),
config,
defaultAvatar,
userInfo: {}, // 用户信息
entranceList: [
{
@@ -170,6 +169,7 @@ export default {
};
},
methods: {
getIconUrl,
carouselItemKey(item, index) {
return item?.img || item?.url || `slide-${index}`;
},

View File

@@ -34,10 +34,10 @@
<el-avatar v-else :size="80" class="mb_10"><el-icon><User /></el-icon></el-avatar>
<div>Hi{{ $filters.secrecyMobile(userInfo.nickName || `欢迎来到${config.title}`) }}</div>
<div v-if="userInfo.id">
<el-button type="danger" shape="circle">会员中心</el-button>
<el-button type="danger">会员中心</el-button>
</div>
<div v-else>
<el-button type="danger" shape="circle">请登录</el-button>
<el-button type="danger">请登录</el-button>
</div>
</div>
<div class="shop-msg">
@@ -60,13 +60,14 @@
import {articleList} from '@/api/common.js'
import storage from '@/plugins/storage';
import { User } from '@element-plus/icons-vue';
import config from '@/config';
export default {
components: { User },
name: 'modelCarousel2',
props: ['data'],
data () {
return {
config:require('@/config'),
config,
userInfo: {}, // 用户信息
articleList: [], // 常见问题
params: { // 请求常见问题参数