Skip to content

Commit db0ea06

Browse files
authored
Merge pull request #44 from mynuolr/master
feat: add copy config
2 parents 816be98 + ca73a19 commit db0ea06

File tree

4 files changed

+78
-1265
lines changed

4 files changed

+78
-1265
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"nprogress": "^0.2.0",
2121
"viser-vue": "^2.3.3",
2222
"vue": "^2.5.17",
23+
"vue-clipboard2": "^0.2.1",
2324
"vue-cropper": "^0.4.4",
2425
"vue-ls": "^3.2.0",
2526
"vue-router": "^3.0.1",

src/components/setting/SettingDrawer.vue

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,12 @@
140140
</div>
141141
<a-divider />
142142
<div :style="{ marginBottom: '24px' }">
143-
<a-alert type="warning">
143+
<a-button
144+
@click="doCopy"
145+
icon="copy"
146+
block
147+
>拷贝设置</a-button>
148+
<a-alert type="warning" :style="{ marginTop: '24px' }">
144149
<span slot="message">
145150
配置栏只在开发环境用于预览,生产环境不会展现,请手动修改配置文件
146151
<a href="https://github.com/sendya/ant-design-pro-vue/blob/master/src/defaultSettings.js" target="_blank">src/defaultSettings.js</a>
@@ -161,7 +166,7 @@
161166
import SettingItem from '@/components/setting/SettingItem'
162167
import config from '@/defaultSettings'
163168
import { updateTheme, updateColorWeak, colorList } from '@/components/tools/setting'
164-
import { mixin, mixinDevice } from '@/utils/mixin.js'
169+
import { mixin, mixinDevice } from '@/utils/mixin'
165170
166171
export default {
167172
components: {
@@ -173,6 +178,7 @@
173178
return {
174179
visible: true,
175180
colorList,
181+
baseConfig: Object.assign({}, config)
176182
}
177183
},
178184
watch: {
@@ -202,38 +208,72 @@
202208
this.visible = !this.visible
203209
},
204210
onColorWeak (checked) {
211+
this.baseConfig.colorWeak = checked
205212
this.$store.dispatch('ToggleWeak', checked)
206213
updateColorWeak(checked)
207214
},
208215
handleMenuTheme (theme) {
216+
this.baseConfig.navTheme = theme
209217
this.$store.dispatch('ToggleTheme', theme)
210218
},
219+
doCopy () {
220+
const text = `export default {
221+
primaryColor: '${this.baseConfig.primaryColor}', // primary color of ant design
222+
navTheme: '${this.baseConfig.navTheme}', // theme for nav menu
223+
layout: '${this.baseConfig.layout}', // nav menu position: sidemenu or topmenu
224+
contentWidth: '${this.baseConfig.contentWidth}', // layout of content: Fluid or Fixed, only works when layout is topmenu
225+
fixedHeader: ${this.baseConfig.fixedHeader}, // sticky header
226+
fixSiderbar: ${this.baseConfig.fixSiderbar}, // sticky siderbar
227+
autoHideHeader: ${this.baseConfig.autoHideHeader}, // auto hide header
228+
colorWeak: ${this.baseConfig.colorWeak},
229+
// vue-ls options
230+
storageOptions: {
231+
namespace: 'pro__',
232+
name: 'ls',
233+
storage: 'local',
234+
}
235+
}`
236+
this.$copyText(text).then(message => {
237+
console.log('copy', message)
238+
this.$message.success('复制完毕')
239+
}).catch(err => {
240+
console.log('copy.err', err)
241+
this.$message.error('复制失败')
242+
})
243+
},
211244
handleLayout (mode) {
245+
this.baseConfig.layout = mode
212246
this.$store.dispatch('ToggleLayoutMode', mode)
213247
// 因为顶部菜单不能固定左侧菜单栏,所以强制关闭
214248
//
215249
this.handleFixSiderbar(false)
216250
},
217251
handleContentWidthChange (type) {
252+
this.baseConfig.contentWidth = type
218253
this.$store.dispatch('ToggleContentWidth', type)
219254
},
220255
changeColor (color) {
256+
this.baseConfig.primaryColor = color
221257
if (this.primaryColor !== color) {
222258
this.$store.dispatch('ToggleColor', color)
223259
updateTheme(color)
224260
}
225261
},
226262
handleFixedHeader (fixed) {
263+
this.baseConfig.fixedHeader = fixed
227264
this.$store.dispatch('ToggleFixedHeader', fixed)
228265
},
229266
handleFixedHeaderHidden (autoHidden) {
267+
this.baseConfig.autoHideHeader = autoHidden
230268
this.$store.dispatch('ToggleFixedHeaderHidden', autoHidden)
231269
},
232270
handleFixSiderbar (fixed) {
233271
if (this.layoutMode === 'topmenu') {
272+
this.baseConfig.fixSiderbar = false
234273
this.$store.dispatch('ToggleFixSiderbar', false)
235274
return
236275
}
276+
this.baseConfig.fixSiderbar = fixed
237277
this.$store.dispatch('ToggleFixSiderbar', fixed)
238278
}
239279
},

src/main.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import Antd from 'ant-design-vue'
1010
import Viser from 'viser-vue'
1111
import 'ant-design-vue/dist/antd.less' // or 'ant-design-vue/dist/antd.less'
1212

13+
import VueClipboard from 'vue-clipboard2'
1314
import '@/permission' // permission control
1415
import '@/utils/filter' // base filter
1516
import PermissionHelper from '@/utils/helper/permission'
@@ -29,12 +30,14 @@ import {
2930
} from '@/store/mutation-types'
3031
import config from '@/defaultSettings'
3132

33+
VueClipboard.config.autoSetContainer = true
3234
Vue.config.productionTip = false
3335

3436
Vue.use(Storage, config.storageOptions)
3537
Vue.use(Antd)
3638
Vue.use(VueAxios, router)
3739
Vue.use(Viser)
40+
Vue.use(VueClipboard)
3841
Vue.use(PermissionHelper)
3942

4043
new Vue({

0 commit comments

Comments
 (0)