Merge branch 'master-500-dev-lushangqing' into 'master-500-dev'
【596】登录logo 支持配置-静态页面搭建完成 #1 See merge request !659
Showing
7 changed files
with
223 additions
and
1 deletions
@@ -9,6 +9,8 @@ | @@ -9,6 +9,8 @@ | ||
9 | @import "../css/esData.css"; | 9 | @import "../css/esData.css"; |
10 | /*cmdb数据同步*/ | 10 | /*cmdb数据同步*/ |
11 | @import "../css/cmdbdatasync.css"; | 11 | @import "../css/cmdbdatasync.css"; |
12 | +/*登录logo配置*/ | ||
13 | +@import "../css/logoConfig.css"; | ||
12 | 14 | ||
13 | .d-flex { | 15 | .d-flex { |
14 | display: flex; | 16 | display: flex; |
1 | +.logoConfig-container{ | ||
2 | + padding:10px; | ||
3 | + height: 100%; | ||
4 | + overflow: auto; | ||
5 | + background: #ffffff; | ||
6 | +} | ||
7 | +.logoConfig-item{ | ||
8 | + padding:0 20px; | ||
9 | + margin-bottom: 10px; | ||
10 | + display: flex; | ||
11 | + align-items: center; | ||
12 | + | ||
13 | +} | ||
14 | +.logoConfig-item-content{ | ||
15 | + margin-bottom:10px; | ||
16 | + padding-bottom: 20px; | ||
17 | +} | ||
18 | +.config-login{ | ||
19 | + display: flex; | ||
20 | + align-items: center; | ||
21 | + justify-content: space-around; | ||
22 | +} | ||
23 | +.config-name{ | ||
24 | + width:110px; | ||
25 | +} | ||
26 | +.config-tip{ | ||
27 | + text-align: left; | ||
28 | + font-size: 12px; | ||
29 | + margin-left:6px; | ||
30 | + width:200px; | ||
31 | +} | ||
32 | +.upload-demo{ | ||
33 | + margin-left:20px; | ||
34 | +} | ||
35 | +.logo-img{ | ||
36 | + width:400px; | ||
37 | + /*flex:1;*/ | ||
38 | +} |
@@ -137,6 +137,12 @@ const routes = [{ | @@ -137,6 +137,12 @@ const routes = [{ | ||
137 | name: 'orgBustype', | 137 | name: 'orgBustype', |
138 | component: () => myImport('views/orgBustype/index') | 138 | component: () => myImport('views/orgBustype/index') |
139 | }, | 139 | }, |
140 | + //登录logo配置 | ||
141 | + { | ||
142 | + path: '/vue3/logoConfig', | ||
143 | + name: 'logoConfig', | ||
144 | + component: () => myImport('views/logoConfig/index') | ||
145 | + }, | ||
140 | ]; | 146 | ]; |
141 | 147 | ||
142 | // hash模式: createWebHashHistory | 148 | // hash模式: createWebHashHistory |
1 | +<div class="logoConfig-container" > | ||
2 | + <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> | ||
3 | + <el-tab-pane v-for="(item,index) in skinData" :key="index" :label="item.name+'布局'" :name="item.name"> | ||
4 | + <el-row class="logoConfig-item" > | ||
5 | + <!--<el-col :span="4" > | ||
6 | + 个性化布局-{{item.name}} | ||
7 | + </el-col>--> | ||
8 | + <el-col :span="24"> | ||
9 | + <el-row class="logoConfig-item-content" v-if="item.imageUrl"> | ||
10 | + <el-col :span="24"> | ||
11 | + <div class="config-login"> | ||
12 | + <span class="config-name">登录logo:</span> | ||
13 | + <img :src="item.imageUrl" class="logo-img" alt=""> | ||
14 | + <el-upload | ||
15 | + class="upload-demo" | ||
16 | + :show-file-list="false" | ||
17 | + :before-upload="beforeAvatarUpload" | ||
18 | + :data="item" | ||
19 | + :multiple="false" | ||
20 | + :http-request="getFile" | ||
21 | + :auto-upload="true"> | ||
22 | + <el-button size="mini" type="primary">上传照片</el-button> | ||
23 | + </el-upload> | ||
24 | + <dev class="config-tip"> | ||
25 | + (备注说明:登录表单上方展示的logo) | ||
26 | + </dev> | ||
27 | + </div> | ||
28 | + </el-col> | ||
29 | + | ||
30 | + </el-row> | ||
31 | + <el-row class="logoConfig-item-content" v-if="item.imageUrlBg"> | ||
32 | + <el-col :span="24"> | ||
33 | + <div class="config-login"> | ||
34 | + <span class="config-name">登录背景:</span> | ||
35 | + <img :src="item.imageUrlBg" class="logo-img" alt=""> | ||
36 | + <el-upload | ||
37 | + class="upload-demo" | ||
38 | + :show-file-list="false" | ||
39 | + :before-upload="beforeAvatarUpload" | ||
40 | + :data="item" | ||
41 | + :multiple="false" | ||
42 | + :http-request="getFile" | ||
43 | + :auto-upload="true"> | ||
44 | + <el-button size="mini" type="primary">上传照片</el-button> | ||
45 | + </el-upload> | ||
46 | + <dev class="config-tip"> | ||
47 | + (备注说明:登录表单下的背景图片) | ||
48 | + </dev> | ||
49 | + </div> | ||
50 | + </el-col> | ||
51 | + </el-row> | ||
52 | + <el-row class="logoConfig-item-content" v-if="item.imageUrlSkin"> | ||
53 | + <el-col :span="24"> | ||
54 | + <div class="config-login"> | ||
55 | + <span class="config-name">登录皮肤:</span> | ||
56 | + <img :src="item.imageUrlSkin" class="logo-img" alt=""> | ||
57 | + <el-upload | ||
58 | + class="upload-demo" | ||
59 | + :show-file-list="false" | ||
60 | + :before-upload="beforeAvatarUpload" | ||
61 | + :data="item" | ||
62 | + :multiple="false" | ||
63 | + :http-request="getFile" | ||
64 | + :auto-upload="true"> | ||
65 | + <el-button size="mini" type="primary">上传照片</el-button> | ||
66 | + </el-upload> | ||
67 | + <dev class="config-tip"> | ||
68 | + (备注说明:登录页面的皮肤图片) | ||
69 | + </dev> | ||
70 | + </div> | ||
71 | + </el-col> | ||
72 | + </el-row> | ||
73 | + <el-row class="logoConfig-item-content" v-if="item.imageUrlIndex"> | ||
74 | + <el-col :span="24"> | ||
75 | + <div class="config-login"> | ||
76 | + <span class="config-name">首页logo:</span> | ||
77 | + <img :src="item.imageUrlIndex" class="logo-img" alt=""> | ||
78 | + <el-upload | ||
79 | + class="upload-demo" | ||
80 | + :show-file-list="false" | ||
81 | + :before-upload="beforeAvatarUpload" | ||
82 | + :data="item" | ||
83 | + :multiple="false" | ||
84 | + :http-request="getFile" | ||
85 | + :auto-upload="true"> | ||
86 | + <el-button size="mini" type="primary">上传照片</el-button> | ||
87 | + </el-upload> | ||
88 | + <dev class="config-tip"> | ||
89 | + (备注说明:首页上方展示的logo) | ||
90 | + </dev> | ||
91 | + </div> | ||
92 | + </el-col> | ||
93 | + </el-row> | ||
94 | + </el-col> | ||
95 | + </el-row> | ||
96 | + </el-tab-pane> | ||
97 | + </el-tabs> | ||
98 | + | ||
99 | + | ||
100 | +</div> |
1 | +export default { | ||
2 | + name: 'logoConfig', | ||
3 | + template: '', | ||
4 | + components: { | ||
5 | + }, | ||
6 | + data() { | ||
7 | + }, | ||
8 | + props: { | ||
9 | + }, | ||
10 | + setup: function (props, {attrs, slots, emit}) { | ||
11 | + const {proxy} = Vue.getCurrentInstance(); | ||
12 | + let activeName=Vue.ref('default'); | ||
13 | + //imageUrl:登录logo,imageUrlSkin:登录皮肤,imageUrlBg:登录背景,imageUrlIndex:首页logo | ||
14 | + let skinData=Vue.ref([ | ||
15 | + {name:"default",imageUrl:'/src/style/img/logo.png',imageUrlSkin:'', | ||
16 | + imageUrlBg:'/src/style/img/login-form.png',imageUrlIndex:'/src/style/img/logo.png'}, | ||
17 | + {name:"skin1",imageUrl:'/src/style/img/login/skin/1/mingcheng.png',imageUrlSkin:'/src/style/img/login/skin/1/beijing.png', | ||
18 | + imageUrlBg:'',imageUrlIndex:'/src/style/img/logo.png'}, | ||
19 | + {name:"skin2",imageUrl:'/src/style/img/login/skin/2/mingcheng2.png',imageUrlSkin:'/src/style/img/login/skin/2/beijng.png', | ||
20 | + imageUrlBg:'',imageUrlIndex:'/src/style/img/logo.png'} | ||
21 | + ]) | ||
22 | + let imageUrl=Vue.ref('/src/style/img/logo.png'); | ||
23 | + let imageUrlSkin=Vue.ref('/src/style/img/login/skin/1/beijing.png'); | ||
24 | + let imageUrlBg=Vue.ref('/src/style/img/login-form.png'); | ||
25 | + let imageUrlIndex=Vue.ref('/src/style/img/logo.png'); | ||
26 | + let fit='contain'; | ||
27 | + let beforeAvatarUpload = (file) => { | ||
28 | + const isJPG = file.type.indexOf('image/') != -1 | ||
29 | + if (!isJPG) { | ||
30 | + proxy.$global.showMsg('您上传的不是图片文件,请选择图片!', 'error'); | ||
31 | + } | ||
32 | + return isJPG | ||
33 | + } | ||
34 | + let getFile = (param) => { | ||
35 | + let fileObj = param.file | ||
36 | + console.log("param.data",param.data) | ||
37 | + | ||
38 | + let params = { | ||
39 | + file: fileObj, | ||
40 | + id: props.parentNode.id | ||
41 | + } | ||
42 | + // 上传文件 | ||
43 | + proxy.$http.uploadFile("/api-web/bOpsPerson/uploadFile", params, function (res) { | ||
44 | + if (res && res.success) { | ||
45 | + proxy.$global.showMsg("上传成功!"); | ||
46 | + } | ||
47 | + }) | ||
48 | + imageUrl.value = URL.createObjectURL(fileObj); | ||
49 | + } | ||
50 | + //tabs标签点击事件 | ||
51 | + let handleClick=(tab,event)=>{} | ||
52 | + // 挂载完 | ||
53 | + Vue.onMounted(() => { | ||
54 | + }) | ||
55 | + return { | ||
56 | + activeName, | ||
57 | + handleClick, | ||
58 | + fit, | ||
59 | + imageUrlSkin, | ||
60 | + imageUrlIndex, | ||
61 | + imageUrlBg, | ||
62 | + beforeAvatarUpload, | ||
63 | + imageUrl, | ||
64 | + getFile, | ||
65 | + skinData | ||
66 | + } | ||
67 | + } | ||
68 | +} |
@@ -231,7 +231,13 @@ const routes = [{ | @@ -231,7 +231,13 @@ const routes = [{ | ||
231 | path: '/vue3/batchChangeLeaders', | 231 | path: '/vue3/batchChangeLeaders', |
232 | name: 'batchChangeLeaders', | 232 | name: 'batchChangeLeaders', |
233 | component: () => myImport('views/batchChangeLeaders/index') | 233 | component: () => myImport('views/batchChangeLeaders/index') |
234 | - } | 234 | + }, |
235 | + //登录logo配置 | ||
236 | + { | ||
237 | + path: '/vue3/logoConfig', | ||
238 | + name: 'logoConfig', | ||
239 | + component: () => myImport('views/logoConfig/index') | ||
240 | + }, | ||
235 | ]; | 241 | ]; |
236 | 242 | ||
237 | // hash模式: createWebHashHistory | 243 | // hash模式: createWebHashHistory |
-
Please register or login to post a comment