feat: 优化组件导入与样式调整

- 在多个组件中将 require 替换为 import,提升代码可读性和一致性。
- 在 App.vue 中添加分类树的 API 请求,优化分类数据的加载逻辑。
- 更新样式以适配 Element Plus 组件,确保界面一致性。
- 删除不再使用的样式文件,简化项目结构。
This commit is contained in:
田香琪
2026-07-07 19:50:07 +08:00
parent cc86430ea4
commit 6b61b86585
42 changed files with 303 additions and 1375 deletions

View File

@@ -7,6 +7,7 @@
<script> <script>
import Cookies from "js-cookie"; import Cookies from "js-cookie";
import util from "@/libs/util"; import util from "@/libs/util";
import { getCategoryTree } from "@/api/goods.js";
export default { export default {
name: "App", name: "App",
@@ -18,6 +19,13 @@ export default {
util.initRouter(this); util.initRouter(this);
this.$store.commit("setOpenedList"); this.$store.commit("setOpenedList");
this.$store.commit("initCachepage"); this.$store.commit("initCachepage");
if (!localStorage.getItem("category")) {
getCategoryTree().then((res) => {
if (res.success && Array.isArray(res.result)) {
localStorage.setItem("category", JSON.stringify(res.result));
}
});
}
} }
}, },
}; };

View File

@@ -2,8 +2,7 @@ import { getCurrentPermissionList } from "@/api/index";
import lazyLoading from "./lazyLoading.js"; import lazyLoading from "./lazyLoading.js";
import { router } from "@/router/index"; import { router } from "@/router/index";
import Cookies from "js-cookie"; import Cookies from "js-cookie";
import config from "@/config/index";
const config = require("@/config/index");
let util = {}; let util = {};

View File

@@ -22,8 +22,11 @@ import { setStore, getStore, removeStore } from "@/libs/storage";
import util from "@/libs/util"; import util from "@/libs/util";
import { md5 } from "@/utils/md5.js"; import { md5 } from "@/utils/md5.js";
import * as filters from "@/utils/filters"; import * as filters from "@/utils/filters";
import config from "@/config/index";
import imgError from "./assets/img-error.png";
import loadingGif from "./assets/loading2.gif";
const { aMapSecurityJsCode, mainColor } = require("@/config"); const { aMapSecurityJsCode, mainColor } = config;
if (aMapSecurityJsCode) { if (aMapSecurityJsCode) {
window._AMapSecurityConfig = { window._AMapSecurityConfig = {
@@ -43,8 +46,8 @@ setupLegacyMessage(app);
installVueQr(app); installVueQr(app);
app.use(VueLazyload, { app.use(VueLazyload, {
error: require("./assets/img-error.png"), error: imgError,
loading: require("./assets/loading2.gif"), loading: loadingGif,
}); });
app.use(router); app.use(router);

View File

@@ -1,6 +1,5 @@
import Main from "@/views/Main.vue"; import Main from "@/views/Main.vue";
import config from "@/config/index";
const config = require('@/config/index')
// 不作为Main组件的子页面展示的页面单独写如下 // 不作为Main组件的子页面展示的页面单独写如下
export const loginRouter = { export const loginRouter = {
path: "/login", path: "/login",

View File

@@ -1,4 +1,6 @@
const { setting } = require("@/config"); import config from "@/config/index";
const { setting } = config;
const localSetting = window.localStorage.getItem('setting') const localSetting = window.localStorage.getItem('setting')
const settingData = { const settingData = {

View File

@@ -19,7 +19,6 @@
border-radius: 0.4em; border-radius: 0.4em;
flex-wrap: wrap; flex-wrap: wrap;
> .ivu-form-item,
> .el-form-item { > .el-form-item {
margin: 8px 10px !important; margin: 8px 10px !important;
} }
@@ -44,8 +43,3 @@
.search > .el-card + .el-card { .search > .el-card + .el-card {
margin-top: 10px; margin-top: 10px;
} }
// 兼容遗留 iView
.ivu-card + .ivu-card {
margin-top: 10px;
}

View File

@@ -120,6 +120,7 @@ import { Iphone, Message, Lock } from "@element-plus/icons-vue";
import * as RegExp from "@/utils/regular.js"; import * as RegExp from "@/utils/regular.js";
import * as apiLogin from "@/api/index.js"; import * as apiLogin from "@/api/index.js";
import { sendSms } from "@/api/common.js"; import { sendSms } from "@/api/common.js";
import config from "@/config/index";
import verify from "@/views/my-components/verify"; import verify from "@/views/my-components/verify";
export default { export default {
@@ -127,7 +128,7 @@ export default {
components: { verify, Iphone, Message, Lock }, components: { verify, Iphone, Message, Lock },
data() { data() {
return { return {
config: require("@/config"), config,
loading: false, loading: false,
loading1: false, loading1: false,
formFirst: { formFirst: {
@@ -207,7 +208,7 @@ export default {
} }
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading1 = false;
}); });
} }
}); });

View File

@@ -16,7 +16,6 @@
<div></div> <div></div>
<div class="user-dropdown-menu-con"> <div class="user-dropdown-menu-con">
<el-row <el-row
type="flex"
justify="end" justify="end"
align="middle" align="middle"
class="user-dropdown-innercon" class="user-dropdown-innercon"
@@ -90,8 +89,7 @@ import util from "@/libs/util.js";
import { logout } from "@/api/index"; import { logout } from "@/api/index";
import { getIMDetail } from "@/api/common"; import { getIMDetail } from "@/api/common";
import { userMsg } from "@/api/index"; import { userMsg } from "@/api/index";
import config from "@/config/index.js";
const config = require("@/config/index.js");
export default { export default {
components: { components: {

View File

@@ -1,19 +0,0 @@
.change-pass {
&-btn-box {
margin-bottom: 10px;
button {
padding-left: 0;
span {
color: #2D8CF0;
transition: all .2s;
}
span:hover {
color: #0C25F1;
transition: all .2s;
}
}
}
}

View File

@@ -93,18 +93,20 @@ export default {
this.$refs.editPasswordForm.validate((valid) => { this.$refs.editPasswordForm.validate((valid) => {
if (!valid) return; if (!valid) return;
this.savePassLoading = true; this.savePassLoading = true;
changePass(params).then((res) => { changePass(params)
this.savePassLoading = false; .then((res) => {
if (res.success) { if (res?.success) {
ElMessageBox.alert("修改密码成功,需重新登录", "修改密码成功", { ElMessageBox.alert("修改密码成功,需重新登录", "修改密码成功", {
confirmButtonText: "确定", confirmButtonText: "确定",
callback: () => { }).then(() => {
this.$store.commit("logout", this); this.$store.commit("logout", this);
this.$store.commit("clearOpenedSubmenu"); this.$store.commit("clearOpenedSubmenu");
this.$router.push({ name: "login" }); this.$router.push({ name: "login" });
},
}); });
} }
})
.finally(() => {
this.savePassLoading = false;
}); });
}); });
}, },
@@ -120,25 +122,3 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped>
.change-pass {
&-btn-box {
margin-bottom: 10px;
button {
padding-left: 0;
span {
color: #2d8cf0;
transition: all 0.2s;
}
span:hover {
color: #0c25f1;
transition: all 0.2s;
}
}
}
}
</style>

View File

@@ -94,7 +94,7 @@
width: 100%; width: 100%;
} }
>.ivu-form { >.el-form {
flex-wrap: wrap !important; flex-wrap: wrap !important;
} }
@@ -175,11 +175,11 @@ div.base-info-item {
justify-content: flex-start; justify-content: flex-start;
width: 100%; width: 100%;
>.ivu-card-body { >.el-card__body {
width: 100%; width: 100%;
} }
.ivu-card-body { .el-card__body {
width: 100%; width: 100%;
justify-content: center; justify-content: center;
align-items: flex-start; align-items: flex-start;
@@ -344,7 +344,7 @@ div.base-info-item {
text-align: center; text-align: center;
z-index: 999; z-index: 999;
>.ivu-btn { >.el-button {
margin: 0 10px; margin: 0 10px;
} }
} }

View File

@@ -78,6 +78,8 @@
</template> </template>
<script> <script>
import * as API_GOODS from "@/api/goods"; import * as API_GOODS from "@/api/goods";
import goodsType1Img from "@/assets/goodsType1.png";
import goodsType2Img from "@/assets/goodsType2.png";
export default { export default {
data() { data() {
return { return {
@@ -85,14 +87,14 @@ export default {
goodsTypeWay: [ goodsTypeWay: [
{ {
title: "实物商品", title: "实物商品",
img: require("@/assets/goodsType1.png"), img: goodsType1Img,
desc: "零售批发,物流配送", desc: "零售批发,物流配送",
type: "PHYSICAL_GOODS", type: "PHYSICAL_GOODS",
check: false, check: false,
}, },
{ {
title: "虚拟商品", title: "虚拟商品",
img: require("@/assets/goodsType2.png"), img: goodsType2Img,
desc: "虚拟核验,无需物流", desc: "虚拟核验,无需物流",
type: "VIRTUAL_GOODS", type: "VIRTUAL_GOODS",
check: false, check: false,

View File

@@ -10,10 +10,10 @@
<div class="form-item-view"> <div class="form-item-view">
<el-form-item label="商品分类"> <el-form-item label="商品分类">
<span class="goods-category-name">{{ <span class="goods-category-name">{{
this.baseInfoForm.categoryName[0] baseInfoForm.categoryName[0]
}}</span> }}</span>
<span> &gt; {{ this.baseInfoForm.categoryName[1] }}</span> <span> &gt; {{ baseInfoForm.categoryName[1] }}</span>
<span> &gt; {{ this.baseInfoForm.categoryName[2] }}</span> <span> &gt; {{ baseInfoForm.categoryName[2] }}</span>
</el-form-item> </el-form-item>
<el-form-item label="商品名称" prop="goodsName"> <el-form-item label="商品名称" prop="goodsName">
<el-input v-model="baseInfoForm.goodsName" clearable placeholder="商品名称" style="width: 260px" type="text" /> <el-input v-model="baseInfoForm.goodsName" clearable placeholder="商品名称" style="width: 260px" type="text" />
@@ -190,7 +190,7 @@
<el-collapse-item title="自定义规格项" name="1"> <el-collapse-item title="自定义规格项" name="1">
<div> <div>
<div v-for="(item, $index) in skuInfo" :key="$index" class="sku-item-content"> <div v-for="(item, $index) in skuInfo" :key="$index" class="sku-item-content">
<el-card class="ivu-card-body"> <el-card>
<template #header> <template #header>
<el-button link type="danger" @click="handleCloseSkuItem($index, item)">删除规格项</el-button> <el-button link type="danger" @click="handleCloseSkuItem($index, item)">删除规格项</el-button>
</template> </template>
@@ -478,7 +478,7 @@
<div class="footer-btns"> <div class="footer-btns">
<el-button type="primary" @click="pre">上一步</el-button> <el-button type="primary" @click="pre">上一步</el-button>
<el-button :loading="submitLoading" type="primary" @click="save"> <el-button :loading="submitLoading" type="primary" @click="save">
{{ this.$route.query.id ? "保存" : "保存商品" }} {{ $route.query.id ? "保存" : "保存商品" }}
</el-button> </el-button>
</div> </div>
</div> </div>
@@ -1310,7 +1310,12 @@ export default {
this.params_panel = []; this.params_panel = [];
API_GOODS.getCategoryParamsListDataSeller(this.categoryId).then( API_GOODS.getCategoryParamsListDataSeller(this.categoryId).then(
(response) => { (response) => {
if (!response || response.length <= 0) { const list = Array.isArray(response)
? response
: Array.isArray(response?.result)
? response.result
: [];
if (!list.length) {
return; return;
} }
@@ -1355,15 +1360,15 @@ export default {
return undefined; return undefined;
}; };
const isGrouped = response[0] && Array.isArray(response[0].params); const isGrouped = list[0] && Array.isArray(list[0].params);
const flatParams = isGrouped const flatParams = isGrouped
? response.reduce((acc, g) => { ? list.reduce((acc, g) => {
if (g && Array.isArray(g.params)) { if (g && Array.isArray(g.params)) {
acc.push(...g.params); acc.push(...g.params);
} }
return acc; return acc;
}, []) }, [])
: response; : list;
this.goodsParams = flatParams this.goodsParams = flatParams
.map((p) => { .map((p) => {
@@ -1547,7 +1552,7 @@ export default {
} }
} else if (val._error) { } else if (val._error) {
// 清除错误 // 清除错误
this.$delete(val, '_error'); delete val._error;
if (this.skuInfo[groupIndex]) { if (this.skuInfo[groupIndex]) {
this.skuInfo[groupIndex].spec_values = this.skuInfo[groupIndex].spec_values.filter((i) => i.value !== ""); this.skuInfo[groupIndex].spec_values = this.skuInfo[groupIndex].spec_values.filter((i) => i.value !== "");
} }
@@ -2316,7 +2321,7 @@ export default {
</style> </style>
<style scoped> <style scoped>
.ivu-select .ivu-select-dropdown { .el-select .el-select-dropdown {
overflow: hidden !important; overflow: hidden !important;
} }

View File

@@ -10,7 +10,7 @@
<h4>Hi,<span style="margin-left: 5px">{{ userData.nickName }}</span></h4> <h4>Hi,<span style="margin-left: 5px">{{ userData.nickName }}</span></h4>
<img <img
class="shop-logo" class="shop-logo"
:src="userData.storeLogo || require('@/assets/logo1.png')" :src="userData.storeLogo || defaultLogo"
alt="" alt=""
/> />
</div> </div>
@@ -199,6 +199,7 @@
</template> </template>
<script> <script>
import defaultLogo from "@/assets/logo1.png";
import { Picture, CreditCard, List, User } from "@element-plus/icons-vue"; import { Picture, CreditCard, List, User } from "@element-plus/icons-vue";
import { getSellerHomeData, getHomeNotice } from "@/api/index"; import { getSellerHomeData, getHomeNotice } from "@/api/index";
import { getIMDetail } from "@/api/common"; import { getIMDetail } from "@/api/common";
@@ -216,6 +217,7 @@ export default {
}, },
data() { data() {
return { return {
defaultLogo,
noticeFlage: false, noticeFlage: false,
homeData: {}, homeData: {},
userData: "", userData: "",

View File

@@ -1,4 +1,4 @@
const plugins = [ const plugins = [
'advlist', 'anchor', 'autolink', 'autosave', 'code', 'codesample', 'directionality', 'emoticons', 'fullscreen', 'image', 'importcss', 'insertdatetime', 'link', 'lists', 'media', 'nonbreaking', 'pagebreak', 'preview', 'save', 'searchreplace', 'table', 'template', 'visualblocks', 'visualchars', 'wordcount' 'advlist', 'anchor', 'autolink', 'autosave', 'charmap', 'code', 'codesample', 'directionality', 'emoticons', 'fullscreen', 'image', 'importcss', 'insertdatetime', 'link', 'lists', 'media', 'nonbreaking', 'pagebreak', 'preview', 'save', 'searchreplace', 'table', 'template', 'visualblocks', 'visualchars', 'wordcount'
] ]
export default plugins export default plugins

View File

@@ -23,6 +23,7 @@
</template> </template>
<script> <script>
import { getCategoryTree } from "@/api/goods.js";
export default { export default {
data() { data() {
@@ -40,10 +41,32 @@ export default {
this.init(); this.init();
}, },
methods: { methods: {
loadCategoryFromCache() {
try {
const raw = localStorage.getItem("category");
if (!raw) {
return null;
}
const parsed = JSON.parse(raw);
return Array.isArray(parsed) ? parsed : null;
} catch {
return null;
}
},
applyCategoryList(category) {
if (!Array.isArray(category)) {
this.categoryList = [];
return;
}
category.forEach((item) => {
item.___type = "category";
});
this.categoryList = category;
},
// 点击一级 // 点击一级
handleClickChild(item, index) { handleClickChild(item, index) {
this.parentIndex = index; this.parentIndex = index;
this.secondLevel = item.children; this.secondLevel = item.children || [];
item.___type = "category"; item.___type = "category";
item.allId = item.id; item.allId = item.id;
@@ -51,8 +74,6 @@ export default {
this.thirdIndex = ''; this.thirdIndex = '';
this.thirdLevel = [] this.thirdLevel = []
this.$emit("selected", [item]); this.$emit("selected", [item]);
// 点击第一级的时候默认显示第二级第一个
// this.handleClickSecondChild(item.children, 0);
}, },
// 点击二级 // 点击二级
handleClickSecondChild(second, index) { handleClickSecondChild(second, index) {
@@ -60,10 +81,9 @@ export default {
second.allId = `${second.parentId},${second.id}` second.allId = `${second.parentId},${second.id}`
this.secondIndex = index; this.secondIndex = index;
this.thirdLevel = second.children; this.thirdLevel = second.children || [];
this.thirdIndex = ''; this.thirdIndex = '';
this.$emit("selected", [second]); this.$emit("selected", [second]);
// this.handleClickthirdChild(second.children[0], 0);
}, },
// 点击三级 // 点击三级
handleClickthirdChild(item, index) { handleClickthirdChild(item, index) {
@@ -73,21 +93,17 @@ export default {
this.thirdIndex = index; this.thirdIndex = index;
}, },
init() { init() {
const loadCategory = () => { const cached = this.loadCategoryFromCache();
const category = JSON.parse(localStorage.getItem("category")); if (cached) {
if (!Array.isArray(category)) { this.applyCategoryList(cached);
return; return;
} }
category.forEach((item) => { getCategoryTree().then((res) => {
item.___type = "category"; if (res.success && Array.isArray(res.result)) {
}); localStorage.setItem("category", JSON.stringify(res.result));
this.categoryList = category; this.applyCategoryList(res.result);
};
loadCategory();
if (!this.categoryList.length) {
setTimeout(loadCategory, 3000);
} }
});
}, },
}, },
}; };

View File

@@ -3,10 +3,12 @@ import category from "./category.vue";
import pages from "./pages.vue"; import pages from "./pages.vue";
import goods from "../goods-dialog.vue"; import goods from "../goods-dialog.vue";
import other from "./other.vue"; import other from "./other.vue";
import shops from "./shops.vue";
export default { export default {
category: markRaw(category), category: markRaw(category),
goods: markRaw(goods), goods: markRaw(goods),
other: markRaw(other), other: markRaw(other),
pages: markRaw(pages), pages: markRaw(pages),
shops: markRaw(shops),
}; };

View File

@@ -44,12 +44,12 @@
</div> </div>
</div> </div>
<el-pagination <el-pagination
v-model:current-page="params.pageNumber"
class="pageration" class="pageration"
size="small" size="small"
layout="total, prev, pager, next, jumper" layout="total, prev, pager, next, jumper"
:total="total" :total="total"
:page-size="params.pageSize" :page-size="params.pageSize"
:current-page="params.pageNumber"
@current-change="changePageSize" @current-change="changePageSize"
/> />
</div> </div>

View File

@@ -19,7 +19,7 @@
</template> </template>
<script> <script>
const config = require("@/config/index"); import config from "@/config/index";
export default { export default {
data() { data() {
return { return {

View File

@@ -7,12 +7,13 @@
</template> </template>
<script> <script>
import defaultLogo from "@/assets/logo.png";
import { getBaseSite } from "@/api/common.js"; import { getBaseSite } from "@/api/common.js";
export default { export default {
data() { data() {
return { return {
storeSideLogo: require("@/assets/logo.png"), storeSideLogo: defaultLogo,
}; };
}, },
methods: { methods: {

View File

@@ -157,17 +157,6 @@
height: 100%; height: 100%;
.options {
.ivu-select-dropdown {
transform-origin: center top 0px;
position: absolute;
top: 45px !important;
left: -2px;
will-change: top, left;
}
}
.message-con { .message-con {
display: inline-block; display: inline-block;

View File

@@ -20,8 +20,7 @@
<script> <script>
import AMapLoader from "@amap/amap-jsapi-loader"; import AMapLoader from "@amap/amap-jsapi-loader";
import { getRegion } from "@/api/common.js"; import { getRegion } from "@/api/common.js";
import config from "@/config/index";
const config = require("@/config/index");
export default { export default {
name: "map", name: "map",
data() { data() {

View File

@@ -214,11 +214,8 @@ export default {
default: () => [] default: () => []
}, },
size: { size: {
default() { type: String,
return !this.$IVIEW || this.$IVIEW.size === "" default: "default",
? "default"
: this.$IVIEW.size;
}
}, },
loading: { loading: {
type: Boolean, type: Boolean,

View File

@@ -350,12 +350,8 @@
<script> <script>
import * as API_Order from "@/api/order"; import * as API_Order from "@/api/order";
import vueQr from "vue-qr";
export default { export default {
components: { name: "returnGoodsOrderDetail",
"vue-qr": vueQr,
},
name: "orderDetail",
data() { data() {
return { return {
sn: "", // 订单号 sn: "", // 订单号
@@ -624,9 +620,6 @@ export default {
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
.ivu-col {
width: 100% !important;
}
.main-content { .main-content {
min-height: 600px; min-height: 600px;
padding: 10px; padding: 10px;

View File

@@ -49,6 +49,9 @@
import { UploadFilled } from "@element-plus/icons-vue"; import { UploadFilled } from "@element-plus/icons-vue";
import { downLoadDeliverExcel, uploadDeliverExcel } from "@/api/order.js"; import { downLoadDeliverExcel, uploadDeliverExcel } from "@/api/order.js";
import { baseUrl } from "@/libs/axios.js"; import { baseUrl } from "@/libs/axios.js";
import downloadImg from "@/assets/download.png";
import uploadImg from "@/assets/upload.png";
import successImg from "@/assets/success.png";
export default { export default {
components: { UploadFilled }, components: { UploadFilled },
@@ -59,17 +62,17 @@ export default {
accessToken: {}, accessToken: {},
stepList: [ stepList: [
{ {
img: require("@/assets/download.png"), img: downloadImg,
title: "1.下载批量发货导入模板", title: "1.下载批量发货导入模板",
checked: true, checked: true,
}, },
{ {
img: require("@/assets/upload.png"), img: uploadImg,
title: "2.上传数据", title: "2.上传数据",
checked: false, checked: false,
}, },
{ {
img: require("@/assets/success.png"), img: successImg,
title: "3.完成", title: "3.完成",
checked: false, checked: false,
}, },

View File

@@ -578,7 +578,7 @@ export default {
}; };
</script> </script>
<style lang="scss" scpoed> <style lang="scss" scoped>
h4 { h4 {
margin-bottom: 10px; margin-bottom: 10px;
padding: 0 10px; padding: 0 10px;

View File

@@ -116,7 +116,7 @@
<img v-if="imageVisible" :src="imageSrc" style="width: 100%" alt="" /> <img v-if="imageVisible" :src="imageSrc" style="width: 100%" alt="" />
</el-dialog> </el-dialog>
<el-dialog v-model="liveGoodsVisible" width="800px" :show-footer="false"> <el-dialog v-model="liveGoodsVisible" width="800px">
<liveGoods reviewed @selectedGoods="callBackData" /> <liveGoods reviewed @selectedGoods="callBackData" />
</el-dialog> </el-dialog>
</div> </div>

View File

@@ -83,7 +83,7 @@
<!-- 选择商品链接 --> <!-- 选择商品链接 -->
<liliDialog ref="liliDialog" @selectedLink="selectedLink"></liliDialog> <liliDialog ref="liliDialog" @selectedLink="selectedLink"></liliDialog>
<!-- 选择图片 --> <!-- 选择图片 -->
<el-dialog width="1200px" v-model="picModelFlag" :show-footer="false"> <el-dialog width="1200px" v-model="picModelFlag">
<ossManage @callback="callbackSelected" :isComponent="true" :initialize="picModelFlag" ref="ossManage"/> <ossManage @callback="callbackSelected" :isComponent="true" :initialize="picModelFlag" ref="ossManage"/>
</el-dialog> </el-dialog>
</li> </li>

View File

@@ -1,7 +1 @@
import hotzone from './index.vue' export { default } from "./index.vue";
hotzone.install = (Vue) => {
Vue.component(hotzone.name, hotzone)
}
export default hotzone

View File

@@ -1,3 +1,20 @@
import nav1 from '@/assets/nav/1.jpg';
import nav2 from '@/assets/nav/2.jpg';
import nav3 from '@/assets/nav/3.jpg';
import nav4 from '@/assets/nav/4.jpg';
import nav5 from '@/assets/nav/5.jpg';
import navDecorate from '@/assets/nav/decorate.png';
import navDecorate1 from '@/assets/nav/decorate1.png';
import navDecorate2 from '@/assets/nav/decorate2.jpeg';
import navDecorate3 from '@/assets/nav/decorate3.jpeg';
import navDecorate4 from '@/assets/nav/decorate4.jpeg';
import navDecorate5 from '@/assets/nav/decorate5.jpeg';
import navDecorate6 from '@/assets/nav/decorate6.jpeg';
import navDecorate7 from '@/assets/nav/decorate7.jpeg';
import navDecorate8 from '@/assets/nav/decorate8.png';
import navDecorate9 from '@/assets/nav/decorate9.png';
import navDecorate10 from '@/assets/nav/decorate10.jpeg';
import navDecorate11 from '@/assets/nav/decorate11.jpeg';
export const modelData = [ export const modelData = [
{ {
@@ -7,32 +24,32 @@ export const modelData = [
showName: '', showName: '',
options: { options: {
list: [{ list: [{
img: require('@/assets/nav/decorate1.png'), img: navDecorate1,
url: '', url: '',
size: '1200*自定义' size: '1200*自定义'
}, },
{ {
img: require('@/assets/nav/1.jpg'), img: nav1,
url: '', url: '',
size: '230*190' size: '230*190'
}, },
{ {
img: require('@/assets/nav/1.jpg'), img: nav1,
url: '', url: '',
size: '230*190' size: '230*190'
}, },
{ {
img: require('@/assets/nav/1.jpg'), img: nav1,
url: '', url: '',
size: '230*190' size: '230*190'
}, },
{ {
img: require('@/assets/nav/1.jpg'), img: nav1,
url: '', url: '',
size: '230*190' size: '230*190'
}, },
{ {
img: require('@/assets/nav/1.jpg'), img: nav1,
url: '', url: '',
size: '230*190' size: '230*190'
} }
@@ -48,70 +65,70 @@ export const modelData = [
list: [{ list: [{
time: 6, time: 6,
goodsList: [{ goodsList: [{
img: require('@/assets/nav/1.jpg'), img: nav1,
price: 20, price: 20,
originalPrice: 30, originalPrice: 30,
name: '阿迪达斯三叶草asdasdafads123213a', name: '阿迪达斯三叶草asdasdafads123213a',
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/2.jpg'), img: nav2,
price: 20, price: 20,
originalPrice: 30, originalPrice: 30,
name: '阿迪达斯三叶草asdasdafadsa', name: '阿迪达斯三叶草asdasdafadsa',
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/3.jpg'), img: nav3,
price: 20, price: 20,
originalPrice: 30, originalPrice: 30,
name: '阿迪达斯三叶草asdasdafadsa', name: '阿迪达斯三叶草asdasdafadsa',
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/4.jpg'), img: nav4,
price: 20, price: 20,
originalPrice: 30, originalPrice: 30,
name: '阿迪达斯三叶草asdasdafadsa', name: '阿迪达斯三叶草asdasdafadsa',
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/5.jpg'), img: nav5,
price: 20, price: 20,
originalPrice: 30, originalPrice: 30,
name: '阿迪达斯三叶草asdasdafadsa', name: '阿迪达斯三叶草asdasdafadsa',
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/1.jpg'), img: nav1,
price: 20, price: 20,
originalPrice: 30, originalPrice: 30,
name: '阿迪达斯三叶草asdasdafadsa', name: '阿迪达斯三叶草asdasdafadsa',
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/2.jpg'), img: nav2,
price: 20, price: 20,
originalPrice: 30, originalPrice: 30,
name: '阿迪达斯三叶草asdasdafadsa', name: '阿迪达斯三叶草asdasdafadsa',
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/3.jpg'), img: nav3,
price: 20, price: 20,
originalPrice: 30, originalPrice: 30,
name: '阿迪达斯三叶草asdasdafadsa', name: '阿迪达斯三叶草asdasdafadsa',
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/4.jpg'), img: nav4,
price: 20, price: 20,
originalPrice: 30, originalPrice: 30,
name: '阿迪达斯三叶草asdasdafadsa', name: '阿迪达斯三叶草asdasdafadsa',
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/5.jpg'), img: nav5,
price: 20, price: 20,
originalPrice: 30, originalPrice: 30,
name: '阿迪达斯三叶草asdasdafadsa', name: '阿迪达斯三叶草asdasdafadsa',
@@ -122,23 +139,23 @@ export const modelData = [
{ {
time: 8, time: 8,
goodsList: [{ goodsList: [{
img: require('@/assets/nav/1.jpg'), img: nav1,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/2.jpg'), img: nav2,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/3.jpg'), img: nav3,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/4.jpg'), img: nav4,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/5.jpg'), img: nav5,
url: '' url: ''
}, },
] ]
@@ -146,23 +163,23 @@ export const modelData = [
{ {
time: 10, time: 10,
goodsList: [{ goodsList: [{
img: require('@/assets/nav/1.jpg'), img: nav1,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/2.jpg'), img: nav2,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/3.jpg'), img: nav3,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/4.jpg'), img: nav4,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/5.jpg'), img: nav5,
url: '' url: ''
}, },
] ]
@@ -170,23 +187,23 @@ export const modelData = [
{ {
time: 12, time: 12,
goodsList: [{ goodsList: [{
img: require('@/assets/nav/1.jpg'), img: nav1,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/2.jpg'), img: nav2,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/3.jpg'), img: nav3,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/4.jpg'), img: nav4,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/5.jpg'), img: nav5,
url: '' url: ''
}, },
] ]
@@ -213,65 +230,65 @@ export const modelData = [
icon: 'md-image', icon: 'md-image',
options: { options: {
bgImg: { bgImg: {
img: require('@/assets/nav/decorate.png'), img: navDecorate,
url: '', url: '',
size: "1300*585" size: "1300*585"
}, },
classification: [{ classification: [{
img: require('@/assets/nav/decorate2.jpeg'), img: navDecorate2,
url: '', url: '',
size: '190*210' size: '190*210'
}, { }, {
img: require('@/assets/nav/decorate2.jpeg'), img: navDecorate2,
url: '', url: '',
size: '190*210' size: '190*210'
}, { }, {
img: require('@/assets/nav/decorate2.jpeg'), img: navDecorate2,
url: '', url: '',
size: '190*210' size: '190*210'
}, { }, {
img: require('@/assets/nav/decorate2.jpeg'), img: navDecorate2,
url: '', url: '',
size: '190*210' size: '190*210'
}, { }, {
img: require('@/assets/nav/decorate2.jpeg'), img: navDecorate2,
url: '', url: '',
size: '190*210' size: '190*210'
}, { }, {
img: require('@/assets/nav/decorate2.jpeg'), img: navDecorate2,
url: '', url: '',
size: '190*210' size: '190*210'
}, { }, {
img: require('@/assets/nav/decorate2.jpeg'), img: navDecorate2,
url: '', url: '',
size: '190*210' size: '190*210'
}, { }, {
img: require('@/assets/nav/decorate2.jpeg'), img: navDecorate2,
url: '', url: '',
size: '190*210' size: '190*210'
}, { }, {
img: require('@/assets/nav/decorate2.jpeg'), img: navDecorate2,
url: '', url: '',
size: '190*210' size: '190*210'
}, { }, {
img: require('@/assets/nav/decorate2.jpeg'), img: navDecorate2,
url: '', url: '',
size: '190*210' size: '190*210'
}, ], }, ],
brandList: [{ brandList: [{
img: require('@/assets/nav/decorate11.jpeg'), img: navDecorate11,
url: '', url: '',
size: '240*105' size: '240*105'
}, { }, {
img: require('@/assets/nav/decorate11.jpeg'), img: navDecorate11,
url: '', url: '',
size: '240*105' size: '240*105'
}, { }, {
img: require('@/assets/nav/decorate11.jpeg'), img: navDecorate11,
url: '', url: '',
size: '240*105' size: '240*105'
}, { }, {
img: require('@/assets/nav/decorate11.jpeg'), img: navDecorate11,
url: '', url: '',
size: '240*105' size: '240*105'
}, ] }, ]
@@ -288,49 +305,49 @@ export const modelData = [
bgColor: '#449dae', bgColor: '#449dae',
url: '', url: '',
list: [{ list: [{
img: require('@/assets/nav/decorate3.jpeg'), img: navDecorate3,
name: '阿迪达斯三叶草', name: '阿迪达斯三叶草',
describe: '也许是每一款经典系列都应该有一个独特的故事吧', describe: '也许是每一款经典系列都应该有一个独特的故事吧',
url: '', url: '',
size: '160*160' size: '160*160'
}, },
{ {
img: require('@/assets/nav/decorate4.jpeg'), img: navDecorate4,
name: '360行车记录', name: '360行车记录',
describe: '夜行 监控 电子狗 蓝牙', describe: '夜行 监控 电子狗 蓝牙',
url: '', url: '',
size: '80*80' size: '80*80'
}, },
{ {
img: require('@/assets/nav/decorate4.jpeg'), img: navDecorate4,
name: '360行车记录', name: '360行车记录',
describe: '夜行 监控 电子狗 蓝牙', describe: '夜行 监控 电子狗 蓝牙',
url: '', url: '',
size: '80*80' size: '80*80'
}, },
{ {
img: require('@/assets/nav/decorate4.jpeg'), img: navDecorate4,
name: '360行车记录', name: '360行车记录',
describe: '夜行 监控 电子狗 蓝牙', describe: '夜行 监控 电子狗 蓝牙',
url: '', url: '',
size: '80*80' size: '80*80'
}, },
{ {
img: require('@/assets/nav/decorate4.jpeg'), img: navDecorate4,
name: '360行车记录', name: '360行车记录',
describe: '夜行 监控 电子狗 蓝牙', describe: '夜行 监控 电子狗 蓝牙',
url: '', url: '',
size: '80*80' size: '80*80'
}, },
{ {
img: require('@/assets/nav/decorate4.jpeg'), img: navDecorate4,
name: '360行车记录', name: '360行车记录',
describe: '夜行 监控 电子狗 蓝牙', describe: '夜行 监控 电子狗 蓝牙',
url: '', url: '',
size: '80*80' size: '80*80'
}, },
{ {
img: require('@/assets/nav/decorate4.jpeg'), img: navDecorate4,
name: '360行车记录', name: '360行车记录',
describe: '夜行 监控 电子狗 蓝牙', describe: '夜行 监控 电子狗 蓝牙',
url: '', url: '',
@@ -344,28 +361,28 @@ export const modelData = [
bgColor: '#a25684', bgColor: '#a25684',
url: '', url: '',
list: [{ list: [{
img: require('@/assets/nav/decorate5.jpeg'), img: navDecorate5,
name: '好心情喝出来', name: '好心情喝出来',
describe: '遇见懂你的饮品', describe: '遇见懂你的饮品',
url: '', url: '',
size: '100*100' size: '100*100'
}, },
{ {
img: require('@/assets/nav/decorate5.jpeg'), img: navDecorate5,
name: '好心情喝出来', name: '好心情喝出来',
describe: '遇见懂你的饮品', describe: '遇见懂你的饮品',
url: '', url: '',
size: '100*100' size: '100*100'
}, },
{ {
img: require('@/assets/nav/decorate5.jpeg'), img: navDecorate5,
name: '好心情喝出来', name: '好心情喝出来',
describe: '遇见懂你的饮品', describe: '遇见懂你的饮品',
url: '', url: '',
size: '100*100' size: '100*100'
}, },
{ {
img: require('@/assets/nav/decorate5.jpeg'), img: navDecorate5,
name: '好心情喝出来', name: '好心情喝出来',
describe: '遇见懂你的饮品', describe: '遇见懂你的饮品',
url: '', url: '',
@@ -388,35 +405,35 @@ export const modelData = [
list: [{ list: [{
name: '新年心愿单', name: '新年心愿单',
describe: '满269减50,满999减100', describe: '满269减50,满999减100',
img: require('@/assets/nav/decorate6.jpeg'), img: navDecorate6,
url: '', url: '',
size: "160*160" size: "160*160"
}, },
{ {
name: 'Ms.Maggie 冬季时尚', name: 'Ms.Maggie 冬季时尚',
describe: '满269减50', describe: '满269减50',
img: require('@/assets/nav/decorate6.jpeg'), img: navDecorate6,
url: '', url: '',
size: "90*90" size: "90*90"
}, },
{ {
name: 'Ms.Maggie 冬季时尚', name: 'Ms.Maggie 冬季时尚',
describe: '满269减50', describe: '满269减50',
img: require('@/assets/nav/decorate6.jpeg'), img: navDecorate6,
url: '', url: '',
size: "90*90" size: "90*90"
}, },
{ {
name: 'Ms.Maggie 冬季时尚', name: 'Ms.Maggie 冬季时尚',
describe: '满269减50', describe: '满269减50',
img: require('@/assets/nav/decorate6.jpeg'), img: navDecorate6,
url: '', url: '',
size: "90*90" size: "90*90"
}, },
{ {
name: '阿迪达斯 领跑时尚', name: '阿迪达斯 领跑时尚',
describe: '满269减50', describe: '满269减50',
img: require('@/assets/nav/decorate6.jpeg'), img: navDecorate6,
url: '', url: '',
size: "90*90" size: "90*90"
}, },
@@ -430,42 +447,42 @@ export const modelData = [
list: [{ list: [{
name: '阿迪达斯 领跑时尚', name: '阿迪达斯 领跑时尚',
describe: '满269减50', describe: '满269减50',
img: require('@/assets/nav/decorate6.jpeg'), img: navDecorate6,
url: '', url: '',
size: "90*90" size: "90*90"
}, },
{ {
name: '阿迪达斯 领跑时尚', name: '阿迪达斯 领跑时尚',
describe: '满269减50', describe: '满269减50',
img: require('@/assets/nav/decorate6.jpeg'), img: navDecorate6,
url: '', url: '',
size: "90*90" size: "90*90"
}, },
{ {
name: '阿迪达斯 领跑时尚', name: '阿迪达斯 领跑时尚',
describe: '满269减50', describe: '满269减50',
img: require('@/assets/nav/decorate6.jpeg'), img: navDecorate6,
url: '', url: '',
size: "90*90" size: "90*90"
}, },
{ {
name: '阿迪达斯 领跑时尚', name: '阿迪达斯 领跑时尚',
describe: '满269减50', describe: '满269减50',
img: require('@/assets/nav/decorate6.jpeg'), img: navDecorate6,
url: '', url: '',
size: "90*90" size: "90*90"
}, },
{ {
name: '阿迪达斯 领跑时尚', name: '阿迪达斯 领跑时尚',
describe: '满269减50', describe: '满269减50',
img: require('@/assets/nav/decorate6.jpeg'), img: navDecorate6,
url: '', url: '',
size: "90*90" size: "90*90"
}, },
{ {
name: '阿迪达斯 领跑时尚', name: '阿迪达斯 领跑时尚',
describe: '满269减50', describe: '满269减50',
img: require('@/assets/nav/decorate6.jpeg'), img: navDecorate6,
url: '', url: '',
size: "90*90" size: "90*90"
}, },
@@ -479,37 +496,37 @@ export const modelData = [
list: [{ list: [{
name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包', name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包',
price: 14.9, price: 14.9,
img: require('@/assets/nav/decorate7.jpeg'), img: navDecorate7,
url: '' url: ''
}, },
{ {
name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包', name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包',
price: 14.9, price: 14.9,
img: require('@/assets/nav/decorate7.jpeg'), img: navDecorate7,
url: '' url: ''
}, },
{ {
name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包', name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包',
price: 14.9, price: 14.9,
img: require('@/assets/nav/decorate7.jpeg'), img: navDecorate7,
url: '' url: ''
}, },
{ {
name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包', name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包',
price: 14.9, price: 14.9,
img: require('@/assets/nav/decorate7.jpeg'), img: navDecorate7,
url: '' url: ''
}, },
{ {
name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包', name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包',
price: 14.9, price: 14.9,
img: require('@/assets/nav/decorate7.jpeg'), img: navDecorate7,
url: '' url: ''
}, },
{ {
name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包', name: '小米红米3s手机壳保护套红米3高配版指纹男女款潮版磨砂硬壳防摔 收藏截图 送大礼包',
price: 14.9, price: 14.9,
img: require('@/assets/nav/decorate7.jpeg'), img: navDecorate7,
url: '' url: ''
}, },
] ]
@@ -524,7 +541,7 @@ export const modelData = [
list: [{ list: [{
name: '生鲜', name: '生鲜',
describe: "年货带回家 满199减60", describe: "年货带回家 满199减60",
img: require('@/assets/nav/decorate8.png'), img: navDecorate8,
url: '', url: '',
fromColor: '#e89621', fromColor: '#e89621',
toColor: "#f5c568", toColor: "#f5c568",
@@ -533,7 +550,7 @@ export const modelData = [
{ {
name: '众筹', name: '众筹',
describe: "年货带回家", describe: "年货带回家",
img: require('@/assets/nav/decorate9.png'), img: navDecorate9,
url: '', url: '',
fromColor: "#325bb4", fromColor: "#325bb4",
toColor: '#4c9afe', toColor: '#4c9afe',
@@ -542,7 +559,7 @@ export const modelData = [
{ {
name: '生鲜', name: '生鲜',
describe: "年货带回家 满199减60", describe: "年货带回家 满199减60",
img: require('@/assets/nav/decorate8.png'), img: navDecorate8,
url: '', url: '',
fromColor: "#1c9daf", fromColor: "#1c9daf",
toColor: '#40cda7', toColor: '#40cda7',
@@ -551,7 +568,7 @@ export const modelData = [
{ {
name: '众筹', name: '众筹',
describe: "备孕有孕检测仪", describe: "备孕有孕检测仪",
img: require('@/assets/nav/decorate9.png'), img: navDecorate9,
url: '', url: '',
fromColor: "#d13837", fromColor: "#d13837",
toColor: '#df6d4f', toColor: '#df6d4f',
@@ -560,7 +577,7 @@ export const modelData = [
{ {
name: '生鲜', name: '生鲜',
describe: "年货带回家 满199减60", describe: "年货带回家 满199减60",
img: require('@/assets/nav/decorate8.png'), img: navDecorate8,
url: '', url: '',
fromColor: "#ca4283", fromColor: "#ca4283",
toColor: '#eb75cf', toColor: '#eb75cf',
@@ -569,7 +586,7 @@ export const modelData = [
{ {
name: '众筹', name: '众筹',
describe: "备孕有孕检测仪", describe: "备孕有孕检测仪",
img: require('@/assets/nav/decorate9.png'), img: navDecorate9,
url: '', url: '',
fromColor: "#5d40c1", fromColor: "#5d40c1",
toColor: '#8c5fdb', toColor: '#8c5fdb',
@@ -595,244 +612,244 @@ export const modelData = [
options: { options: {
list: [ list: [
[{ [{
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
], ],
[{ [{
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
], ],
[{ [{
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
], ],
[{ [{
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''
}, },
{ {
img: require('@/assets/nav/decorate10.jpeg'), img: navDecorate10,
name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量', name: 'Apple/苹果 13 英寸MacBook Pro Multi-Touch Bar 和 Touch ID 2.9GHz 处理器 512GB 存储容量',
price: 6666, price: 6666,
url: '' url: ''

View File

@@ -25,7 +25,7 @@
</ul> </ul>
</div> </div>
<div class="search-con"> <div class="search-con">
<img :src="require('@/assets/logo.png')" class="logo" alt="" /> <img :src="logoImg" class="logo" alt="" />
<div class="search"> <div class="search">
<el-input size="large" placeholder="输入你想查找的商品"> <el-input size="large" placeholder="输入你想查找的商品">
<template #append> <template #append>
@@ -144,6 +144,7 @@
</template> </template>
<script> <script>
import { ShoppingCart } from "@element-plus/icons-vue"; import { ShoppingCart } from "@element-plus/icons-vue";
import logoImg from "@/assets/logo.png";
import Draggable from "vuedraggable"; import Draggable from "vuedraggable";
import ModelFormItem from "./modelFormItem.vue"; import ModelFormItem from "./modelFormItem.vue";
import ossManage from "@/views/sys/oss-manage/ossManage"; import ossManage from "@/views/sys/oss-manage/ossManage";
@@ -158,6 +159,7 @@ export default {
props: ["data"], props: ["data"],
data() { data() {
return { return {
logoImg,
picModelFlag: false, picModelFlag: false,
showModal: false, showModal: false,
showModalNav: false, showModalNav: false,

View File

@@ -67,7 +67,7 @@
class="discountAdvert" class="discountAdvert"
:style="{ :style="{
'background-image': 'background-image':
'url(' + require('@/assets/nav/decorate.png') + ')', 'url(' + decorateImg + ')',
}" }"
> >
<div> <div>
@@ -280,6 +280,7 @@ import onlyGoodsModel from "./modelList/onlyGoodsModel.vue";
import oneRowThreeColumns from "./modelList/oneRowThreeColumns.vue"; import oneRowThreeColumns from "./modelList/oneRowThreeColumns.vue";
import seckillOnlyAlbum from "./modelList/seckill-only-album.vue"; import seckillOnlyAlbum from "./modelList/seckill-only-album.vue";
import decorateImg from "@/assets/nav/decorate.png";
export default { export default {
name: "modelFormItem", name: "modelFormItem",
props: ["element", "select", "index", "data"], props: ["element", "select", "index", "data"],
@@ -302,6 +303,7 @@ export default {
}, },
data() { data() {
return { return {
decorateImg,
showModal: false, // modal显隐 showModal: false, // modal显隐
selected: {}, // 弹窗编辑草稿 selected: {}, // 弹窗编辑草稿
editTarget: null, // 确定后写回的原数据 editTarget: null, // 确定后写回的原数据

View File

@@ -36,7 +36,6 @@ export default {
default: {} default: {}
} }
}, },
components: {},
mounted() { mounted() {
}, },

View File

@@ -16,7 +16,6 @@
z-index: 99; z-index: 99;
width: 100%; width: 100%;
height: 100%; height: 100%;
.ivu-btn,
.el-button{ .el-button{
float: right; float: right;
margin-right: 5px; margin-right: 5px;

View File

@@ -35,7 +35,7 @@
cursor: pointer; cursor: pointer;
.ivu-card-body { .el-card__body {
padding: 0; padding: 0;
} }
@@ -243,7 +243,7 @@
flex-direction: row-reverse; flex-direction: row-reverse;
} }
.demo-tree-render .ivu-tree-title{ .demo-tree-render .el-tree-node__content{
width: 94%; width: 94%;
} }
} }

View File

@@ -222,166 +222,8 @@
</el-col> </el-col>
</el-row> </el-row>
<!--<div class="oss-operation padding-row">-->
<!--<div>-->
<!--<Upload-->
<!--ref="up"-->
<!--:action="commonUrl + '/common/common/upload/file'"-->
<!--:data="{-->
<!--directoryPath: searchForm.fileDirectoryId,-->
<!--}"-->
<!--:headers="accessToken"-->
<!--:max-size="20480"-->
<!--:on-error="handleError"-->
<!--:on-exceeded-size="handleMaxSize"-->
<!--:on-success="handleSuccess"-->
<!--:show-upload-list="false"-->
<!--multiple-->
<!--style="display: inline-block"-->
<!--&gt;-->
<!--<Button>上传图片</Button>-->
<!--</Upload>-->
<!--<Dropdown @on-click="handleDropdown" v-if="!isComponent">-->
<!--<Button>-->
<!--更多操作-->
<!--<Icon type="md-arrow-dropdown"/>-->
<!--</Button>-->
<!--<DropdownMenu slot="list">-->
<!--<DropdownItem name="refresh">刷新</DropdownItem>-->
<!--<DropdownItem v-show="showType == 'list'" name="removeAll"-->
<!--&gt;批量删除-->
<!--</DropdownItem>-->
<!--</DropdownMenu>-->
<!--</Dropdown>-->
<!--</div>-->
<!--</div>-->
</div> </div>
<!--<Alert show-icon v-if="!isComponent">-->
<!--已选择-->
<!--<span>{{ selectCount }}</span> -->
<!--<a class="select-clear" @click="clearSelectAll">清空</a>-->
<!--<span v-if="selectCount > 0" style="margin-left: 15px"-->
<!--&gt;共计 {{ totalSize }} 存储量</span-->
<!--&gt;-->
<!--</Alert>-->
<!--<div v-show="showType === 'list'" >-->
<!--<div class="flex">-->
<!--<div class="article-category mr_10">-->
<!--<Tree-->
<!--:data="treeData"-->
<!--@on-contextmenu="handleContextMenu"-->
<!--@on-select-change="handleCateChange"-->
<!--&gt;-->
<!--<template slot="contextMenu" v-if="!isComponent">-->
<!--<DropdownItem @click.native="handleContextMenuEdit"-->
<!--&gt;编辑-->
<!--</DropdownItem-->
<!--&gt;-->
<!--<DropdownItem-->
<!--style="color: #ed4014"-->
<!--@click.native="handleContextMenuDelete"-->
<!--&gt;删除-->
<!--</DropdownItem-->
<!--&gt;-->
<!--</template>-->
<!--</Tree>-->
<!--<Alert v-if="!isComponent">鼠标右键编辑/删除分组</Alert>-->
<!--<div class="group-row flex" v-if="!isComponent">-->
<!--<Button @click="handleClickAddGroup">添加分组</Button>-->
<!--</div>-->
<!--</div>-->
<!--<Table-->
<!--ref="table"-->
<!--:columns="isComponent ? viewColumns : columns"-->
<!--:data="data"-->
<!--:loading="loading"-->
<!--border-->
<!--class="table"-->
<!--sortable="custom"-->
<!--@on-sort-change="changeSort"-->
<!--@on-selection-change="changeSelect"-->
<!--&gt;-->
<!--<template slot="fileKey" slot-scope="{ row }">-->
<!--<a @click="copyFileUrl(row)">{{ row.fileKey }}</a>-->
<!--</template>-->
<!--</Table>-->
<!--</div>-->
<!--</div>-->
<!--<div v-show="showType === 'thumb'">-->
<!--<div class="oss-wrapper">-->
<!--<Card v-for="(item, i) in data" :key="i" class="oss-card">-->
<!--<div class="content">-->
<!--<img-->
<!--v-if="item.fileType.indexOf('image') >= 0"-->
<!--:src="item.url"-->
<!--class="img"-->
<!--@click="showPic(item)"-->
<!--/>-->
<!--<div-->
<!--v-else-if="item.fileType.indexOf('video') >= 0"-->
<!--class="video"-->
<!--@click="showVideo(item)"-->
<!--&gt;-->
<!--&lt;!&ndash; 文件小于5MB显示video &ndash;&gt;-->
<!--<video v-if="item.fileSize < 1024 * 1024 * 5" class="cover">-->
<!--<source :src="item.url"/>-->
<!--</video>-->
<!--<img class="play" src="@/assets/play.png"/>-->
<!--</div>-->
<!--<div v-else class="other">-->
<!--<div class="name">{{ item.name }}</div>-->
<!--<div class="key">{{ item.fileKey }}</div>-->
<!--<div class="info">-->
<!--文件类型{{ item.fileType }} 文件大小{{-->
<!--((item.fileSize * 1.0) / (1024 * 1024)).toFixed(2)-->
<!--}}-->
<!--MB 创建时间{{ item.createTime }}-->
<!--</div>-->
<!--</div>-->
<!--<div class="actions">-->
<!--<div class="btn">-->
<!--<Tooltip content="下载" placement="top">-->
<!--<Icon-->
<!--size="16"-->
<!--type="md-download"-->
<!--@click="download(item)"-->
<!--/>-->
<!--</Tooltip>-->
<!--</div>-->
<!--<div class="btn">-->
<!--<Tooltip content="重命名" placement="top">-->
<!--<Icon size="16" type="md-create" @click="rename(item)"/>-->
<!--</Tooltip>-->
<!--</div>-->
<!--<div class="btn-no">-->
<!--<Tooltip content="删除" placement="top">-->
<!--<Icon size="16" type="md-trash" @click="remove(item)"/>-->
<!--</Tooltip>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--</Card>-->
<!--</div>-->
<!--</div>-->
<!--<Row class="mt_10" justify="end" type="flex">-->
<!--<Page-->
<!--:current="searchForm.pageNumber"-->
<!--:page-size="searchForm.pageSize"-->
<!--:page-size-opts="pageSizeOpts"-->
<!--:total="total"-->
<!--show-elevator-->
<!--show-sizer-->
<!--show-total-->
<!--size="small"-->
<!--@on-change="changePage"-->
<!--@on-page-size-change="changePageSize"-->
<!--&gt;</Page>-->
<!--</Row>-->
</el-card> </el-card>
</el-row> </el-row>
<el-dialog <el-dialog
@@ -477,7 +319,8 @@ import {
import DPlayer from "dplayer"; import DPlayer from "dplayer";
import {commonUrl} from "@/libs/axios"; import {commonUrl} from "@/libs/axios";
const config = require("@/config/index"); import config from "@/config/index";
import playImg from "@/assets/play.png";
let dp; let dp;
export default { export default {
@@ -631,7 +474,7 @@ export default {
} else { } else {
return h("img", { return h("img", {
attrs: { attrs: {
src: require("@/assets/play.png"), src: playImg,
}, },
style: { style: {
cursor: "pointer", cursor: "pointer",
@@ -832,7 +675,7 @@ export default {
} else { } else {
return h("img", { return h("img", {
attrs: { attrs: {
src: require("@/assets/play.png"), src: playImg,
}, },
style: { style: {
cursor: "pointer", cursor: "pointer",
@@ -917,41 +760,6 @@ export default {
groupLoading: false, groupLoading: false,
// 图片列表 // 图片列表
selectedOss: [], selectedOss: [],
myData: [
{
title: 'parent 1',
expand: true,
render: (h, {root, node, data}) => {
return h('span', {style: {display: 'inline-block', width: '100%'}}, [
h('span', [h("Icon", {type: 'ios-folder-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
h('span', {style: {display: 'inline-block', float: 'right', marginRight: '32px'}},
[h("Button", {
...this.buttonProps,
icon: 'ios-add',
type: 'primary',
style: {width: '64px'},
onClick: () => {
this.append(data)
}
})
])
]);
},
children: [
{
title: 'child 1-1',
expand: true,
children: [{title: 'leaf 1-1-1', expand: true}, {title: 'leaf 1-1-2', expand: true}]
},
{
title: 'child 1-2',
expand: true,
children: [{title: 'leaf 1-2-1', expand: true}, {title: 'leaf 1-2-1', expand: true}]
}
]
}
],
buttonProps: {type: 'default', size: 'small',},
}; };
}, },
watch: { watch: {
@@ -1099,57 +907,6 @@ export default {
this.searchForm.pageNumber = value; this.searchForm.pageNumber = value;
this.getDataList(); this.getDataList();
}, },
// 自定义tree节点显示内容和交互
renderContent(h, {root, node, data}) {
if (data.value === '0') {
return h('span', {style: {display: 'inline-block', width: '100%'}},
[
h('span', [h("Icon", {type: 'ios-paper-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
h('span', {style: {display: 'inline-block', float: 'right', marginRight: '10px'}}, [])
]
);
} else {
return h('span', {style: {display: 'inline-block', width: '100%'}},
[
h('span', [h("Icon", {type: 'ios-paper-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
h('span', {style: {display: 'inline-block', float: 'right', marginRight: '10px'}},
[
h("Dropdown", {style: {marginLeft: "4px"}},
[
h("Icon", {
props: {type: 'ios-more', size: "20",},
style: {display: 'inline-block'},
on: {
click: () => {
}
}
}),
h("DropdownMenu", {
slot: "list"
}, [
h("DropdownItem", {
nativeOn: {
click: () => {
this.handleContextMenuEdit(root, node, data)
}
}
}, "编辑"),
h("DropdownItem", {
nativeOn: {
click: () => {
this.handleContextMenuDelete()
}
}
}, "删除"),
])
]),
])
]
);
}
},
handleContextMenu(val) { handleContextMenu(val) {
console.log('handleContextMenu', val); console.log('handleContextMenu', val);

View File

@@ -218,166 +218,8 @@
</el-col> </el-col>
</el-row> </el-row>
<!--<div class="oss-operation padding-row">-->
<!--<div>-->
<!--<Upload-->
<!--ref="up"-->
<!--:action="commonUrl + '/common/common/upload/file'"-->
<!--:data="{-->
<!--directoryPath: searchForm.fileDirectoryId,-->
<!--}"-->
<!--:headers="accessToken"-->
<!--:max-size="20480"-->
<!--:on-error="handleError"-->
<!--:on-exceeded-size="handleMaxSize"-->
<!--:on-success="handleSuccess"-->
<!--:show-upload-list="false"-->
<!--multiple-->
<!--style="display: inline-block"-->
<!--&gt;-->
<!--<el-button>上传图片</el-button>-->
<!--</Upload>-->
<!--<Dropdown @click="handleDropdown" v-if="!isComponent">-->
<!--<el-button>-->
<!--更多操作-->
<!--<Icon type="md-arrow-dropdown"/>-->
<!--</el-button>-->
<!--<DropdownMenu #list>-->
<!--<DropdownItem name="refresh">刷新</DropdownItem>-->
<!--<DropdownItem v-show="showType == 'list'" name="removeAll"-->
<!--&gt;批量删除-->
<!--</DropdownItem>-->
<!--</DropdownMenu>-->
<!--</Dropdown>-->
<!--</div>-->
<!--</div>-->
</div> </div>
<!--<Alert show-icon v-if="!isComponent">-->
<!--已选择-->
<!--<span>{{ selectCount }}</span> -->
<!--<a class="select-clear" @click="clearSelectAll">清空</a>-->
<!--<span v-if="selectCount > 0" style="margin-left: 15px"-->
<!--&gt;共计 {{ totalSize }} 存储量</span-->
<!--&gt;-->
<!--</Alert>-->
<!--<div v-show="showType === 'list'" >-->
<!--<div class="flex">-->
<!--<div class="article-category mr_10">-->
<!--<Tree-->
<!--:data="treeData"-->
<!--@on-contextmenu="handleContextMenu"-->
<!--@on-select-change="handleCateChange"-->
<!--&gt;-->
<!--<template #contextMenu v-if="!isComponent">-->
<!--<DropdownItem @click.native="handleContextMenuEdit"-->
<!--&gt;编辑-->
<!--</DropdownItem-->
<!--&gt;-->
<!--<DropdownItem-->
<!--style="color: #ed4014"-->
<!--@click.native="handleContextMenuDelete"-->
<!--&gt;删除-->
<!--</DropdownItem-->
<!--&gt;-->
<!--</template>-->
<!--</Tree>-->
<!--<Alert v-if="!isComponent">鼠标右键编辑/删除分组</Alert>-->
<!--<div class="group-row flex" v-if="!isComponent">-->
<!--<el-button @click="handleClickAddGroup">添加分组</el-button>-->
<!--</div>-->
<!--</div>-->
<!--<Table-->
<!--ref="table"-->
<!--:columns="isComponent ? viewColumns : columns"-->
<!--:data="data"-->
<!--:loading="loading"-->
<!--border-->
<!--class="table"-->
<!--sortable="custom"-->
<!--@on-sort-change="changeSort"-->
<!--@on-selection-change="changeSelect"-->
<!--&gt;-->
<!--<template #fileKey #default="{ row }">-->
<!--<a @click="copyFileUrl(row)">{{ row.fileKey }}</a>-->
<!--</template>-->
<!--</Table>-->
<!--</div>-->
<!--</div>-->
<!--<div v-show="showType === 'thumb'">-->
<!--<div class="oss-wrapper">-->
<!--<Card v-for="(item, i) in data" :key="i" class="oss-card">-->
<!--<div class="content">-->
<!--<img-->
<!--v-if="item.fileType.indexOf('image') >= 0"-->
<!--:src="item.url"-->
<!--class="img"-->
<!--@click="showPic(item)"-->
<!--/>-->
<!--<div-->
<!--v-else-if="item.fileType.indexOf('video') >= 0"-->
<!--class="video"-->
<!--@click="showVideo(item)"-->
<!--&gt;-->
<!--&lt;!&ndash; 文件小于5MB显示video &ndash;&gt;-->
<!--<video v-if="item.fileSize < 1024 * 1024 * 5" class="cover">-->
<!--<source :src="item.url"/>-->
<!--</video>-->
<!--<img class="play" src="@/assets/play.png"/>-->
<!--</div>-->
<!--<div v-else class="other">-->
<!--<div class="name">{{ item.name }}</div>-->
<!--<div class="key">{{ item.fileKey }}</div>-->
<!--<div class="info">-->
<!--文件类型{{ item.fileType }} 文件大小{{-->
<!--((item.fileSize * 1.0) / (1024 * 1024)).toFixed(2)-->
<!--}}-->
<!--MB 创建时间{{ item.createTime }}-->
<!--</div>-->
<!--</div>-->
<!--<div class="actions">-->
<!--<div class="btn">-->
<!--<el-tooltip content="下载" placement="top">-->
<!--<Icon-->
<!--size="16"-->
<!--type="md-download"-->
<!--@click="download(item)"-->
<!--/>-->
<!--</el-tooltip>-->
<!--</div>-->
<!--<div class="btn">-->
<!--<el-tooltip content="重命名" placement="top">-->
<!--<Icon size="16" type="md-create" @click="rename(item)"/>-->
<!--</el-tooltip>-->
<!--</div>-->
<!--<div class="btn-no">-->
<!--<el-tooltip content="删除" placement="top">-->
<!--<Icon size="16" type="md-trash" @click="remove(item)"/>-->
<!--</el-tooltip>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--</el-card>-->
<!--</div>-->
<!--</div>-->
<!--<div class="mt_10" justify="end" type="flex">-->
<!--<Page-->
<!--:current="searchForm.pageNumber"-->
<!--:page-size="searchForm.pageSize"-->
<!--:page-size-opts="pageSizeOpts"-->
<!--:total="total"-->
<!--show-elevator-->
<!--show-sizer-->
<!--show-total-->
<!--size="small"-->
<!--@change="changePage"-->
<!--@size-change="changePageSize"-->
<!--&gt;</el-pagination>-->
<!--</div>-->
</el-card> </el-card>
</el-row> </el-row>
<el-dialog <el-dialog
@@ -473,7 +315,8 @@ import {
import DPlayer from "dplayer"; import DPlayer from "dplayer";
import {commonUrl} from "@/libs/axios"; import {commonUrl} from "@/libs/axios";
const config = require("@/config/index"); import config from "@/config/index";
import playImg from "@/assets/play.png";
let dp; let dp;
export default { export default {
@@ -632,7 +475,7 @@ export default {
} else { } else {
return h("img", { return h("img", {
attrs: { attrs: {
src: require("@/assets/play.png"), src: playImg,
}, },
style: { style: {
cursor: "pointer", cursor: "pointer",
@@ -833,7 +676,7 @@ export default {
} else { } else {
return h("img", { return h("img", {
attrs: { attrs: {
src: require("@/assets/play.png"), src: playImg,
}, },
style: { style: {
cursor: "pointer", cursor: "pointer",
@@ -918,41 +761,6 @@ export default {
groupLoading: false, groupLoading: false,
// 图片列表 // 图片列表
selectedOss: [], selectedOss: [],
myData: [
{
title: 'parent 1',
expand: true,
render: (h, {root, node, data}) => {
return h('span', {style: {display: 'inline-block', width: '100%'}}, [
h('span', [h("Icon", {type: 'ios-folder-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
h('span', {style: {display: 'inline-block', float: 'right', marginRight: '32px'}},
[h("Button", {
...this.buttonProps,
icon: 'ios-add',
type: 'primary',
style: {width: '64px'},
onClick: () => {
this.append(data)
}
})
])
]);
},
children: [
{
title: 'child 1-1',
expand: true,
children: [{title: 'leaf 1-1-1', expand: true}, {title: 'leaf 1-1-2', expand: true}]
},
{
title: 'child 1-2',
expand: true,
children: [{title: 'leaf 1-2-1', expand: true}, {title: 'leaf 1-2-1', expand: true}]
}
]
}
],
buttonProps: {type: 'default', size: 'small',},
}; };
}, },
watch: { watch: {
@@ -1104,57 +912,6 @@ export default {
this.searchForm.pageNumber = value; this.searchForm.pageNumber = value;
this.getDataList(); this.getDataList();
}, },
// 自定义tree节点显示内容和交互
renderContent(h, {root, node, data}) {
if (data.value === '0') {
return h('span', {style: {display: 'inline-block', width: '100%'}},
[
h('span', [h("Icon", {type: 'ios-paper-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
h('span', {style: {display: 'inline-block', float: 'right', marginRight: '10px'}}, [])
]
);
} else {
return h('span', {style: {display: 'inline-block', width: '100%'}},
[
h('span', [h("Icon", {type: 'ios-paper-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
h('span', {style: {display: 'inline-block', float: 'right', marginRight: '10px'}},
[
h("Dropdown", {style: {marginLeft: "4px"}},
[
h("Icon", {
props: {type: 'ios-more', size: "20",},
style: {display: 'inline-block'},
on: {
click: () => {
}
}
}),
h("DropdownMenu", {
slot: "list"
}, [
h("DropdownItem", {
nativeOn: {
click: () => {
this.handleContextMenuEdit(root, node, data)
}
}
}, "编辑"),
h("DropdownItem", {
nativeOn: {
click: () => {
this.handleContextMenuDelete()
}
}
}, "删除"),
])
]),
])
]
);
}
},
handleContextMenu(val) { handleContextMenu(val) {
console.log('handleContextMenu', val); console.log('handleContextMenu', val);

View File

@@ -247,7 +247,7 @@
@click="changeTextAlign('left')" @click="changeTextAlign('left')"
> >
<img <img
:src="require('@/assets/align-text-left.png')" :src="alignTextLeftImg"
class="align-text" class="align-text"
alt="" alt=""
/> />
@@ -258,7 +258,7 @@
@click="changeTextAlign('center')" @click="changeTextAlign('center')"
> >
<img <img
:src="require('@/assets/align-text-center.png')" :src="alignTextCenterImg"
class="align-text" class="align-text"
alt="" alt=""
/> />
@@ -269,7 +269,7 @@
@click="changeTextAlign('right')" @click="changeTextAlign('right')"
> >
<img <img
:src="require('@/assets/align-text-right.png')" :src="alignTextRightImg"
class="align-text" class="align-text"
alt="" alt=""
/> />
@@ -526,6 +526,9 @@
</template> </template>
<script> <script>
import { CircleClose } from "@element-plus/icons-vue"; import { CircleClose } from "@element-plus/icons-vue";
import alignTextLeftImg from "@/assets/align-text-left.png";
import alignTextCenterImg from "@/assets/align-text-center.png";
import alignTextRightImg from "@/assets/align-text-right.png";
import ossManage from "@/views/sys/oss-manage/ossManage"; import ossManage from "@/views/sys/oss-manage/ossManage";
import { modelData } from "./config"; import { modelData } from "./config";
import hotzone from "@/views/shop/hotzone"; import hotzone from "@/views/shop/hotzone";
@@ -540,6 +543,9 @@ export default {
}, },
data() { data() {
return { return {
alignTextLeftImg,
alignTextCenterImg,
alignTextRightImg,
ways, // 选择链接的类型 ways, // 选择链接的类型
picModelFlag: false, //图片选择器 picModelFlag: false, //图片选择器
linkType: "goods", // dialog弹窗口类型 linkType: "goods", // dialog弹窗口类型

View File

@@ -99,10 +99,14 @@ export default {
}, },
props: ["res"], props: ["res"],
methods: { methods: {
handleClickGoods(id) { handleClickGoods(goodsId) {
this.$router.push({ if (!goodsId) {
query: { id }, this.$Message.warning("商品信息不存在");
path: "/goods/goods-info/goodsDetail", return;
}
this.$filters.customRouterPush({
name: "goods-operation-edit",
query: { id: goodsId },
}); });
}, },
}, },

View File

@@ -112,10 +112,14 @@ export default {
}, },
props: ["res"], props: ["res"],
methods: { methods: {
handleClickGoods(id) { handleClickGoods(goodsId) {
this.$router.push({ if (!goodsId) {
query: { id }, this.$Message.warning("商品信息不存在");
path: "/goods/goods-info/goodsDetail", return;
}
this.$filters.customRouterPush({
name: "goods-operation-edit",
query: { id: goodsId },
}); });
}, },
} }

View File

@@ -35,7 +35,7 @@
cursor: pointer; cursor: pointer;
.ivu-card-body { .el-card__body {
padding: 0; padding: 0;
} }
@@ -240,7 +240,7 @@
flex-direction: row-reverse; flex-direction: row-reverse;
} }
.demo-tree-render .ivu-tree-title{ .demo-tree-render .el-tree-node__content {
width: 94%; width: 94%;
} }
} }

View File

@@ -73,10 +73,7 @@
<div class="search"> <div class="search">
<el-card class="tabs-card"> <el-card class="tabs-card">
<el-tabs v-model="activeRoleTab" @tab-change="handleRoleTabChange"> <el-tabs v-model="activeRoleTab" @tab-change="handleRoleTabChange">
<el-tab-pane label="管理员" name="MANAGER" />
<el-tab-pane label="商家" name="STORE" /> <el-tab-pane label="商家" name="STORE" />
<el-tab-pane label="用户" name="MEMBER" />
<el-tab-pane label="客服" name="CUSTOMER" />
</el-tabs> </el-tabs>
</el-card> </el-card>
<el-row> <el-row>
@@ -232,167 +229,7 @@
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<!--<div class="oss-operation padding-row">-->
<!--<div>-->
<!--<Upload-->
<!--ref="up"-->
<!--:action="commonUrl + '/common/common/upload/file'"-->
<!--:data="{-->
<!--directoryPath: searchForm.fileDirectoryId,-->
<!--}"-->
<!--:headers="accessToken"-->
<!--:max-size="20480"-->
<!--:on-error="handleError"-->
<!--:on-exceeded-size="handleMaxSize"-->
<!--:on-success="handleSuccess"-->
<!--:show-upload-list="false"-->
<!--multiple-->
<!--style="display: inline-block"-->
<!--&gt;-->
<!--<Button>上传图片</Button>-->
<!--</Upload>-->
<!--<Dropdown @on-click="handleDropdown" v-if="!isComponent">-->
<!--<Button>-->
<!--更多操作-->
<!--<Icon type="md-arrow-dropdown"/>-->
<!--</Button>-->
<!--<DropdownMenu slot="list">-->
<!--<DropdownItem name="refresh">刷新</DropdownItem>-->
<!--<DropdownItem v-show="showType == 'list'" name="removeAll"-->
<!--&gt;批量删除-->
<!--</DropdownItem>-->
<!--</DropdownMenu>-->
<!--</Dropdown>-->
<!--</div>-->
<!--</div>-->
</div> </div>
<!--<Alert show-icon v-if="!isComponent">-->
<!--已选择-->
<!--<span>{{ selectCount }}</span> -->
<!--<a class="select-clear" @click="clearSelectAll">清空</a>-->
<!--<span v-if="selectCount > 0" style="margin-left: 15px"-->
<!--&gt;共计 {{ totalSize }} 存储量</span-->
<!--&gt;-->
<!--</Alert>-->
<!--<div v-show="showType === 'list'" >-->
<!--<div class="flex">-->
<!--<div class="article-category mr_10">-->
<!--<Tree-->
<!--:data="treeData"-->
<!--@on-contextmenu="handleContextMenu"-->
<!--@on-select-change="handleCateChange"-->
<!--&gt;-->
<!--<template slot="contextMenu" v-if="!isComponent">-->
<!--<DropdownItem @click.native="handleContextMenuEdit"-->
<!--&gt;编辑-->
<!--</DropdownItem-->
<!--&gt;-->
<!--<DropdownItem-->
<!--style="color: #ed4014"-->
<!--@click.native="handleContextMenuDelete"-->
<!--&gt;删除-->
<!--</DropdownItem-->
<!--&gt;-->
<!--</template>-->
<!--</Tree>-->
<!--<Alert v-if="!isComponent">鼠标右键编辑/删除分组</Alert>-->
<!--<div class="group-row flex" v-if="!isComponent">-->
<!--<Button @click="handleClickAddGroup">添加分组</Button>-->
<!--</div>-->
<!--</div>-->
<!--<Table-->
<!--ref="table"-->
<!--:columns="isComponent ? viewColumns : columns"-->
<!--:data="data"-->
<!--:loading="loading"-->
<!--border-->
<!--class="table"-->
<!--sortable="custom"-->
<!--@on-sort-change="changeSort"-->
<!--@on-selection-change="changeSelect"-->
<!--&gt;-->
<!--<template slot="fileKey" slot-scope="{ row }">-->
<!--<a @click="copyFileUrl(row)">{{ row.fileKey }}</a>-->
<!--</template>-->
<!--</Table>-->
<!--</div>-->
<!--</div>-->
<!--<div v-show="showType === 'thumb'">-->
<!--<div class="oss-wrapper">-->
<!--<Card v-for="(item, i) in data" :key="i" class="oss-card">-->
<!--<div class="content">-->
<!--<img-->
<!--v-if="item.fileType.indexOf('image') >= 0"-->
<!--:src="item.url"-->
<!--class="img"-->
<!--@click="showPic(item)"-->
<!--/>-->
<!--<div-->
<!--v-else-if="item.fileType.indexOf('video') >= 0"-->
<!--class="video"-->
<!--@click="showVideo(item)"-->
<!--&gt;-->
<!--&lt;!&ndash; 文件小于5MB显示video &ndash;&gt;-->
<!--<video v-if="item.fileSize < 1024 * 1024 * 5" class="cover">-->
<!--<source :src="item.url"/>-->
<!--</video>-->
<!--<img class="play" src="@/assets/play.png"/>-->
<!--</div>-->
<!--<div v-else class="other">-->
<!--<div class="name">{{ item.name }}</div>-->
<!--<div class="key">{{ item.fileKey }}</div>-->
<!--<div class="info">-->
<!--文件类型{{ item.fileType }} 文件大小{{-->
<!--((item.fileSize * 1.0) / (1024 * 1024)).toFixed(2)-->
<!--}}-->
<!--MB 创建时间{{ item.createTime }}-->
<!--</div>-->
<!--</div>-->
<!--<div class="actions">-->
<!--<div class="btn">-->
<!--<Tooltip content="下载" placement="top">-->
<!--<Icon-->
<!--size="16"-->
<!--type="md-download"-->
<!--@click="download(item)"-->
<!--/>-->
<!--</Tooltip>-->
<!--</div>-->
<!--<div class="btn">-->
<!--<Tooltip content="重命名" placement="top">-->
<!--<Icon size="16" type="md-create" @click="rename(item)"/>-->
<!--</Tooltip>-->
<!--</div>-->
<!--<div class="btn-no">-->
<!--<Tooltip content="删除" placement="top">-->
<!--<Icon size="16" type="md-trash" @click="remove(item)"/>-->
<!--</Tooltip>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--</Card>-->
<!--</div>-->
<!--</div>-->
<!--<Row class="mt_10" justify="end" type="flex">-->
<!--<Page-->
<!--:current="searchForm.pageNumber"-->
<!--:page-size="searchForm.pageSize"-->
<!--:page-size-opts="pageSizeOpts"-->
<!--:total="total"-->
<!--show-elevator-->
<!--show-sizer-->
<!--show-total-->
<!--size="small"-->
<!--@on-change="changePage"-->
<!--@on-page-size-change="changePageSize"-->
<!--&gt;</Page>-->
<!--</Row>-->
</el-card> </el-card>
</el-row> </el-row>
<el-dialog <el-dialog
@@ -488,7 +325,7 @@ import {
import DPlayer from "dplayer"; import DPlayer from "dplayer";
import {commonUrl} from "@/libs/axios"; import {commonUrl} from "@/libs/axios";
const config = require("@/config/index"); import config from "@/config/index";
let dp; let dp;
export default { export default {
@@ -553,14 +390,14 @@ export default {
picTitle: "", // 图片title picTitle: "", // 图片title
videoTitle: "", // 视频title videoTitle: "", // 视频title
modalTitle: "", // 添加或编辑标题 modalTitle: "", // 添加或编辑标题
activeRoleTab: "MANAGER", activeRoleTab: "STORE",
searchForm: { searchForm: {
// 搜索框对应data对象 // 搜索框对应data对象
name: "", name: "",
fileKey: "", fileKey: "",
fileType: "", fileType: "",
fileCategory: "", fileCategory: "",
userEnums: "MANAGER", userEnums: "STORE",
pageNumber: 1, // 当前页数 pageNumber: 1, // 当前页数
pageSize: 20, // 页面大小 pageSize: 20, // 页面大小
sort: "createTime", // 默认排序字段 sort: "createTime", // 默认排序字段
@@ -585,342 +422,6 @@ export default {
selectList: [], // 多选数据 selectList: [], // 多选数据
selectCount: 0, // 多选计数 selectCount: 0, // 多选计数
totalSize: "", // 文件大小统计 totalSize: "", // 文件大小统计
columns: [
// 表头
{
type: "selection",
width: 60,
align: "center",
},
{
title: "缩略图(点击预览)",
key: "url",
width: 300,
align: "center",
render: (h, params) => {
if (this.isImageFile(params.row)) {
return h("img", {
attrs: {
src: params.row.url || "",
alt: "加载图片失败",
},
style: {
cursor: "pointer",
width: "80px",
height: "60px",
margin: "10px 0",
"object-fit": "contain",
},
on: {
click: () => {
this.showPic(params.row);
},
},
});
} else if (this.isVideoFile(params.row)) {
// 如果视频文件大小超过5MB不予加载video
if (params.row.fileSize < 1024 * 1024 * 5) {
return h(
"video",
{
style: {
cursor: "pointer",
width: "80px",
height: "60px",
margin: "10px 0",
"object-fit": "contain",
},
on: {
click: () => {
this.showVideo(params.row);
},
},
},
[
h("source", {
attrs: {
src: params.row.url,
},
}),
]
);
} else {
return h("img", {
attrs: {
src: require("@/assets/play.png"),
},
style: {
cursor: "pointer",
width: "80px",
height: "60px",
margin: "10px 0",
"object-fit": "contain",
},
on: {
click: () => {
this.showVideo(params.row);
},
},
});
}
} else {
return h("span", "非多媒体类型");
}
},
},
{
title: "文件类型",
key: "fileType",
width: 115,
className: this.selectImage == true ? "none" : "",
},
{
title: "文件大小",
key: "fileSize",
width: 115,
sortable: true,
className: this.selectImage == true ? "none" : "",
render: (h, params) => {
let m =
((params.row.fileSize * 1.0) / (1024 * 1024)).toFixed(2) + " MB";
return h("span", m);
},
},
{
title: "上传者",
key: "createBy",
width: 200,
render: (h, params) => {
let m = "";
if (params.row.userEnums == "MANAGER") {
m = "[管理员]";
} else if (params.row.userEnums == "STORE") {
m = "[商家]";
} else if (params.row.userEnums == "CUSTOMER") {
m = "[客服]";
} else {
m = "[用户]";
}
m += params.row.createBy;
return h("span", m);
},
},
{
title: "操作",
key: "action",
align: "center",
fixed: "right",
// width: 300,
render: (h, params) => {
return h("div", [
h(
"a",
{
style: {
color: "#2d8cf0",
cursor: "pointer",
textDecoration: "none",
marginRight: "5px",
display: this.selectImage === true ? "inline-block" : "none",
},
on: {
click: () => {
this.selectedParams(params.row);
},
},
},
"选择"
),
h(
"span",
{
style: {
margin: "0 8px",
color: "#dcdee2",
display: this.selectImage === true ? "inline-block" : "none",
},
},
"|"
),
h(
"a",
{
style: {
color: "#2d8cf0",
cursor: "pointer",
textDecoration: "none",
marginRight: "5px",
display: this.selectImage == true ? "none" : "inline-block",
},
on: {
click: () => {
this.download(params.row);
},
},
},
"下载"
),
h(
"span",
{
style: {
margin: "0 8px",
color: "#dcdee2",
display: this.selectImage == true ? "none" : "inline-block",
},
},
"|"
),
h(
"a",
{
style: {
color: "#2d8cf0",
cursor: "pointer",
textDecoration: "none",
display: this.selectImage == true ? "none" : "inline-block",
},
on: {
click: () => {
this.remove(params.row);
},
},
},
"删除"
),
]);
},
},
],
viewColumns: [
{
title: "缩略图(点击预览)",
key: "url",
// width: 150,
align: "center",
render: (h, params) => {
if (this.isImageFile(params.row)) {
return h("img", {
attrs: {
src: params.row.url || "",
alt: "加载图片失败",
},
style: {
cursor: "pointer",
width: "80px",
height: "60px",
margin: "10px 0",
"object-fit": "contain",
},
on: {
click: () => {
this.showPic(params.row);
},
},
});
} else if (this.isVideoFile(params.row)) {
// 如果视频文件大小超过5MB不予加载video
if (params.row.fileSize < 1024 * 1024 * 5) {
return h(
"video",
{
style: {
cursor: "pointer",
width: "80px",
height: "60px",
margin: "10px 0",
"object-fit": "contain",
},
on: {
click: () => {
this.showVideo(params.row);
},
},
},
[
h("source", {
attrs: {
src: params.row.url,
},
}),
]
);
} else {
return h("img", {
attrs: {
src: require("@/assets/play.png"),
},
style: {
cursor: "pointer",
width: "80px",
height: "60px",
margin: "10px 0",
"object-fit": "contain",
},
on: {
click: () => {
this.showVideo(params.row);
},
},
});
}
} else {
return h("span", "非多媒体类型");
}
},
},
{
title: "上传者",
key: "createBy",
width: 120,
sortable: true,
render: (h, params) => {
let m = "";
if (params.row.userEnums == "MANAGER") {
m = "[管理员]";
} else if (params.row.userEnums == "STORE") {
m = "[商家]";
} else if (params.row.userEnums == "CUSTOMER") {
m = "[客服]";
} else {
m = "[用户]";
}
m += params.row.createBy;
return h("span", m);
},
},
{
title: "操作",
key: "action",
align: "center",
fixed: "right",
width: 300,
render: (h, params) => {
return h("div", [
h(
"Button",
{
props: {
type: "default",
size: "small",
},
style: {
marginRight: "5px",
display:
this.selectImage === true ? "inline-block" : "none",
},
on: {
click: () => {
this.selectedParams(params.row);
},
},
},
"选择"
)
]);
},
},
],
data: [], // 表单数据 data: [], // 表单数据
total: 0, // 表单数据总数 total: 0, // 表单数据总数
pageSizeOpts: [5, 10, 20], // 页码展示项 pageSizeOpts: [5, 10, 20], // 页码展示项
@@ -933,41 +434,6 @@ export default {
groupLoading: false, groupLoading: false,
// 图片列表 // 图片列表
selectedOss: [], selectedOss: [],
myData: [
{
title: 'parent 1',
expand: true,
render: (h, {root, node, data}) => {
return h('span', {style: {display: 'inline-block', width: '100%'}}, [
h('span', [h("Icon", {type: 'ios-folder-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
h('span', {style: {display: 'inline-block', float: 'right', marginRight: '32px'}},
[h("Button", {
...this.buttonProps,
icon: 'ios-add',
type: 'primary',
style: {width: '64px'},
onClick: () => {
this.append(data)
}
})
])
]);
},
children: [
{
title: 'child 1-1',
expand: true,
children: [{title: 'leaf 1-1-1', expand: true}, {title: 'leaf 1-1-2', expand: true}]
},
{
title: 'child 1-2',
expand: true,
children: [{title: 'leaf 1-2-1', expand: true}, {title: 'leaf 1-2-1', expand: true}]
}
]
}
],
buttonProps: {type: 'default', size: 'small',},
}; };
}, },
watch: { watch: {
@@ -999,7 +465,7 @@ export default {
return this.activeRoleTab === "MANAGER"; return this.activeRoleTab === "MANAGER";
}, },
canUploadImages() { canUploadImages() {
return this.activeRoleTab === "MANAGER"; return this.activeRoleTab === "MANAGER" || this.activeRoleTab === "STORE";
}, },
uploadData() { uploadData() {
return { return {
@@ -1125,60 +591,7 @@ export default {
this.searchForm.pageNumber = value; this.searchForm.pageNumber = value;
this.getDataList(); this.getDataList();
}, },
// 自定义tree节点显示内容和交互
renderContent(h, {root, node, data}) {
if (data.value === '0') {
return h('span', {style: {display: 'inline-block', width: '100%'}},
[
h('span', [h("Icon", {type: 'ios-paper-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
h('span', {style: {display: 'inline-block', float: 'right', marginRight: '10px'}}, [])
]
);
} else {
return h('span', {style: {display: 'inline-block', width: '100%'}},
[
h('span', [h("Icon", {type: 'ios-paper-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
h('span', {style: {display: 'inline-block', float: 'right', marginRight: '10px'}},
[
h("Dropdown", {style: {marginLeft: "4px"}},
[
h("Icon", {
props: {type: 'ios-more', size: "20",},
style: {display: 'inline-block'},
on: {
click: () => {
}
}
}),
h("DropdownMenu", {
slot: "list"
}, [
h("DropdownItem", {
nativeOn: {
click: () => {
this.handleContextMenuEdit(root, node, data)
}
}
}, "编辑"),
h("DropdownItem", {
nativeOn: {
click: () => {
this.handleContextMenuDelete()
}
}
}, "删除"),
])
]),
])
]
);
}
},
handleContextMenu(val) { handleContextMenu(val) {
console.log('handleContextMenu', val);
this.selectedGroupData = val; this.selectedGroupData = val;
}, },
// 编辑分组 // 编辑分组