Commit 34d95c51 authored by “yiyousong”'s avatar “yiyousong”

feat;添加换肤

parent e7308ea7
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
import local from "@/utils/local"; import local from "@/utils/local";
import NetworkError from "@/components/NetworkError.vue"; import NetworkError from "@/components/NetworkError.vue";
import mq from "@/mixin/mq"; import mq from "@/mixin/mq";
import { getHomeInfo } from "@/api"; import { getHomeInfo, getSkinList } from "@/api";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
export default { export default {
mixins: [mq], mixins: [mq],
...@@ -116,24 +116,28 @@ export default { ...@@ -116,24 +116,28 @@ export default {
} }
}, },
// 换肤 // 换肤
getSetinfo() { async getSetinfo() {
console.log("皮肤设置"); let res = await getSkinList({
// let _this = this; page: 1,
// setinfo().then((res) => { size: -1,
// const { code, data } = res.data; used: 1,
// if (code == 1) { });
// if (_this.linkDom) {
// _this.linkDom.remove(); if (res.data.code == 1) {
// } let { data } = res.data.data;
// if (data.css_path) { if (this.linkDom) {
// let link = document.createElement("link"); this.linkDom.remove();
// _this.linkDom = link; }
// link.rel = "stylesheet"; if (data[0].cssFilePath) {
// link.href = data.css_path; let link = document.createElement("link");
// document.getElementsByTagName("head")[0].appendChild(link); this.linkDom = link;
// } link.rel = "stylesheet";
// } link.href = data[0].cssFilePath;
// }); console.log(data[0]);
// document.getElementsByTagName("head")[0].appendChild(link);
document.head.appendChild(link);
}
}
}, },
}, },
}; };
...@@ -175,7 +179,11 @@ export default { ...@@ -175,7 +179,11 @@ export default {
.main-bg-img { .main-bg-img {
background: url("./assets/img/bg(1).jpg") no-repeat; background: url("./assets/img/bg(1).jpg") no-repeat;
} }
.main-kstd-img { .main-ksck-img {
background: url("./assets/img/btn_kuaisu.png") no-repeat; background: url("./assets/img/btn_kuaisu.png") no-repeat;
} }
//内页标题背景
.main-title-bg-img {
background: url("./assets/img/title_1.jpg") no-repeat;
}
</style> </style>
...@@ -103,3 +103,13 @@ export const checkMaterials = (data) => { ...@@ -103,3 +103,13 @@ export const checkMaterials = (data) => {
}, },
}); });
}; };
// 查询使用皮肤
export const getSkinList = (data) => {
let baseUrl = local.getLocal("serverUrl");
// let siteId = local.getLocal("siteId");
return request({
url: `${baseUrl}sampleform/skin/list`,
method: "post",
data,
});
};
<template> <template>
<div class="header flex aic jcc"> <div class="header flex aic jcc main-title-bg-img">
<slot name="title" class="title"> <slot name="title" class="title">
<div></div> <div></div>
</slot> </slot>
...@@ -32,7 +32,8 @@ export default { ...@@ -32,7 +32,8 @@ export default {
height: 100px; height: 100px;
// padding: 0px 40px; // padding: 0px 40px;
margin-bottom: 10px; margin-bottom: 10px;
background: url("../assets/img/title_1.jpg") no-repeat center; // background: var(--main-theme-color);
// background: url("../assets/img/title_1.jpg") no-repeat center;
background-size: 100% 100%; background-size: 100% 100%;
// background: var(--main-theme-color); // background: var(--main-theme-color);
box-shadow: 0px 2px 6px 6px #ccc; box-shadow: 0px 2px 6px 6px #ccc;
......
...@@ -115,7 +115,7 @@ ...@@ -115,7 +115,7 @@
<div class="right flex flexc aic jcb"> <div class="right flex flexc aic jcb">
<div class="right-top flex aic jcb"> <div class="right-top flex aic jcb">
<router-link to="/matterList"> <router-link to="/matterList">
<div class="fill-btn flex aic jcc pointer main-kstd-img"> <div class="fill-btn flex aic jcc pointer main-ksck-img">
<span class="fill-btn-text1"></span> <span class="fill-btn-text1"></span>
<span class="fill-btn-text2"></span> <span class="fill-btn-text2"></span>
<span class="fill-btn-text3"></span> <span class="fill-btn-text3"></span>
......
...@@ -271,25 +271,26 @@ export default { ...@@ -271,25 +271,26 @@ export default {
.icon1 { .icon1 {
width: 26px; width: 26px;
height: 26px; height: 26px;
background: #52a8f6; background: var(--main-assist-color);
border-radius: 50%; border-radius: 50%;
color: var(--main-theme-color);
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
color: #fff; color: #fff;
i { i {
font-size: 16px; font-size: 16px;
color: var(--main-theme-color);
} }
} }
.icon2 { .icon2 {
display: inline-block; display: inline-block;
width: 34px; width: 34px;
height: 34px; height: 34px;
background: #f2f6fe; background: var(--main-assist-color);
border-radius: 16px; border-radius: 16px;
text-align: center; display: flex;
line-height: 34px; align-items: center;
justify-content: center;
color: var(--main-theme-color); color: var(--main-theme-color);
position: absolute; position: absolute;
right: 28px; right: 28px;
......
// 皮肤管理api
import request from "@/utils/request";
// 获取皮肤列表
export const getSkinList = (data) => {
return request({
url: `/sampleform/skin/list`,
method: "post",
data,
});
};
// 查看皮肤
export const getSkinInfo = (params) => {
return request({
url: `/sampleform/skin/info`,
method: "post",
params,
});
};
// 使用皮肤
export const useSkin = (data) => {
return request({
url: `/sampleform/skin/save`,
method: "post",
data,
});
};
...@@ -102,28 +102,28 @@ ...@@ -102,28 +102,28 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag <el-tag
size="small" size="small"
v-if="scope.row.deviceStatus === 2" v-if="scope.row.deviceStatus == 2"
type="success" type="success"
>在线</el-tag >在线</el-tag
> >
<el-tag
size="small"
v-else-if="scope.row.deviceStatus == 0"
type="danger"
>未激活</el-tag
>
<el-tag size="small" v-else type="danger">离线</el-tag> <el-tag size="small" v-else type="danger">离线</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="enabled" label="启用/停用"> <!-- <el-table-column align="center" prop="enabled" label="启用/停用">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-tag
disabled size="small"
class="tableScopeSwitch" :type="scope.row.enabled === 1 ? 'success' : 'danger'"
:active-value="1" >{{ scope.row.enabled === 1 ? "" : "" }}</el-tag
:inactive-value="0"
inactive-text="停用"
active-text="启用"
v-model="scope.row.enabled"
@change="handleChange(scope.row)"
> >
</el-switch>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column align="center" label="操作" width="100"> <el-table-column align="center" label="操作" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="flex jca"> <div class="flex jca">
......
...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
<!-- 皮肤列表 --> <!-- 皮肤列表 -->
<div class="skin-box"> <div class="skin-box">
<div class="skin-category"> <div class="skin-category">
<div class="color_title">分类一</div> <!-- <div class="color_title">分类一</div> -->
<div class="skin-list"> <div class="skin-list">
<div <div
class="skin-item flex flexc aic" class="skin-item flex flexc aic"
v-for="v in skinList" v-for="v in skinList"
:key="v.skin_id" :key="v.id"
> >
<span>{{ v.skin_name }}</span> <span>{{ v.name }}</span>
<div class="skin-img-box"> <div class="skin-img-box">
<img <img
class="skin-img" class="skin-img"
...@@ -24,11 +24,9 @@ ...@@ -24,11 +24,9 @@
</div> </div>
<el-button <el-button
size="small" size="small"
:class="{ active: v.check === '1' }" :class="{ active: v.used == 1 }"
@click="changeSkin('pdj', v)" @click="changeSkin(v)"
>{{ >{{ v.used == 1 ? "使用中(点击取消)" : "点击使用" }}</el-button
v.check === "1" ? "使用中(点击取消)" : "点击使用"
}}</el-button
> >
</div> </div>
</div> </div>
...@@ -52,6 +50,7 @@ ...@@ -52,6 +50,7 @@
<script> <script>
import local from "@/utils/local"; import local from "@/utils/local";
import ElImageViewer from "element-ui/packages/image/src/image-viewer"; import ElImageViewer from "element-ui/packages/image/src/image-viewer";
import { getSkinList, useSkin } from "@/api/skin";
export default { export default {
components: { components: {
ElImageViewer, ElImageViewer,
...@@ -61,40 +60,43 @@ export default { ...@@ -61,40 +60,43 @@ export default {
siteId: local.getLocal("sampleSiteId") siteId: local.getLocal("sampleSiteId")
? local.getLocal("sampleSiteId") ? local.getLocal("sampleSiteId")
: "", : "",
skinList: [ skinList: [],
{
id: 1,
skin_name: "样表普通皮肤",
previewImagePath: require("../../../assets/img/tiandan.png"),
check: "1",
},
],
previewImg: false, previewImg: false,
previewUrl: "", previewUrl: "",
}; };
}, },
created() {}, created() {
this.getSkinList();
},
methods: { methods: {
// 获取皮肤列表
async getSkinList() {
let res = await getSkinList({
page: 1,
size: -1,
});
if (res.data.code == 1) {
let { data } = res.data.data;
this.skinList = data;
}
},
// 选择使用皮肤 // 选择使用皮肤
async changeSkin(device, row) { async changeSkin(row) {
// if (row.check === "1") { let obj = {
// // let obj = { id: row.id,
// // skin_id: "", siteId: row.id,
// // css_path: "", };
// // skin_name: "", if (row.used == 1) {
// // previewImagePath: "", obj.used = 0;
// // skinFieldList: "", } else {
// // device, obj.used = 1;
// // }; }
// row.check = "0"; let res = await useSkin(obj);
// console.log(check, device); let { code, msg } = res.data;
// // if (code === 1) { if (code == 1) {
// // this.$message.success("设置" + msg); this.$message.success(msg);
// // } this.getSkinList();
// } else { }
// row.check = "1";
// }
console.log(device, row);
}, },
// 预览皮肤 // 预览皮肤
handlePreview(url) { handlePreview(url) {
...@@ -130,10 +132,12 @@ export default { ...@@ -130,10 +132,12 @@ export default {
height: 130px; height: 130px;
margin: 10px 0px; margin: 10px 0px;
background-color: #ccc; background-color: #ccc;
border-radius: 4px;
.skin-img { .skin-img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: contain; object-fit: cover;
border-radius: 4px;
cursor: pointer; cursor: pointer;
} }
} }
......
...@@ -108,20 +108,20 @@ const dynamicRouter = [ ...@@ -108,20 +108,20 @@ const dynamicRouter = [
}, },
], ],
}, },
// { {
// path: "/skinmanage", path: "/skinmanage",
// component: Layouts, component: Layouts,
// meta: { meta: {
// icon: "el-icon-orange", icon: "el-icon-orange",
// title: "皮肤管理", title: "皮肤管理",
// }, },
// children: [ children: [
// { {
// path: "", path: "",
// component: () => import("@/pages/software/skinManage/SkinManage"), component: () => import("@/pages/software/skinManage/SkinManage"),
// }, },
// ], ],
// }, },
{ {
path: "/numberwritedevice", path: "/numberwritedevice",
component: Layouts, component: Layouts,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment