Browse Source

Merge pull request 'zq-slider-menu' (#46) from zq-slider-menu into master

Reviewed-on: #46
pull/51/head
zhangqi 2 weeks ago
parent
commit
10f422838c
  1. 2
      babel.config.js
  2. 8
      package-lock.json
  3. 1
      package.json
  4. 50
      src/App.vue
  5. 1
      src/assets/loding_.json
  6. 1
      src/assets/menu/Totalprofit.svg
  7. 1
      src/assets/menu/Totalprofit1.svg
  8. 1
      src/assets/menu/Totalprofit2.svg
  9. 1
      src/assets/menu/Totalprofit3.svg
  10. 1
      src/assets/menu/home.svg
  11. 1
      src/assets/menu/littleTitleIcon1.svg
  12. 1
      src/assets/menu/orderList.svg
  13. 1
      src/components/GuipButton.vue
  14. 1
      src/components/GuipDialog.vue
  15. 13
      src/components/GuipInput.vue
  16. 1
      src/components/GuipRadio.vue
  17. 3
      src/components/GuipSelect.vue
  18. 3
      src/components/GuipSwitch.vue
  19. 8
      src/components/GuipTextarea.vue
  20. 200
      src/components/SetLeftMenu.vue
  21. 247
      src/components/SliderMenu.vue
  22. 175
      src/components/SvgIcon1.vue
  23. 0
      src/router/admin-routes.json
  24. 0
      src/router/client-routes.json
  25. 267
      src/store/index.js
  26. 36
      src/style/theme/common.scss
  27. 6
      src/style/theme/index.css
  28. 6
      src/views/ConfigureServicePrices.vue
  29. 91
      src/views/Register.vue
  30. 13
      src/views/SiteSetting.vue
  31. 674
      src/views/elementGroups.vue
  32. 22
      src/views/super/Ranking/RankBatchList.vue
  33. 15
      src/views/super/Ranking/Ranking.vue
  34. 17
      vue.config.js

2
babel.config.js

@ -20,6 +20,6 @@ module.exports = {
plugins: [
// 可以添加其他Babel插件
'@babel/plugin-proposal-class-properties',
'@babel/plugin-transform-runtime',
'@babel/plugin-transform-runtime'
],
};

8
package-lock.json

@ -30,6 +30,7 @@
"@vue/cli-plugin-vuex": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"babel-loader": "^9.2.1",
"babel-plugin-transform-remove-console": "^6.9.4",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"sass": "^1.32.7",
@ -3837,6 +3838,13 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/babel-plugin-transform-remove-console": {
"version": "6.9.4",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz",
"integrity": "sha512-88blrUrMX3SPiGkT1GnvVY8E/7A+k6oj3MNvUtTIxJflFzXTw1bHkuJ/y039ouhFMp2prRn5cQGzokViYi1dsg==",
"dev": true,
"license": "MIT"
},
"node_modules/babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz",

1
package.json

@ -30,6 +30,7 @@
"@vue/cli-plugin-vuex": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"babel-loader": "^9.2.1",
"babel-plugin-transform-remove-console": "^6.9.4",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"sass": "^1.32.7",

50
src/App.vue

@ -1,11 +1,5 @@
<template>
<div id="app">
<!-- <nav>
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link> |
<router-link to="/ui">组件示例文件</router-link>
</nav> -->
<!-- <router-view/> -->
<el-container>
<el-header style="height: 62px;" v-if="showHeader">
<Header></Header>
@ -14,7 +8,7 @@
<div class="bg"></div>
</el-header>
<el-container :class="(showHeader ? 'short-container' : '')">
<SliderMenu v-if="showSidebar"></SliderMenu>
<SliderMenu v-if="showSidebar" :menuData="menuData"></SliderMenu>
<el-container>
<!-- 面包屑导航 -->
<Breadcrumb />
@ -45,26 +39,26 @@ export default {
data() {
return {
isCollapse: true,
menuData: [
{
index: '1',
title: '父级菜单1',
icon: 'el-icon-location',
children: [
{ index: '1-1', title: '子级菜单1-1', path: '/' },
{ index: '1-2', title: 'ui页面', path: '/ui' }
]
},
{
index: '2',
title: '父级菜单2',
icon: 'el-icon-menu',
children: [
{ index: '2-1', title: '子级菜单2-1', path: '/about' },
{ index: '2-2', title: '加盟耶main', path: '/franchise' }
]
}
]
// menuData: [
// {
// index: '1',
// title: '1',
// icon: 'el-icon-location',
// children: [
// { index: '1-1', title: '1-1', path: '/' },
// { index: '1-2', title: 'ui', path: '/ui' }
// ]
// },
// {
// index: '2',
// title: '2',
// icon: 'el-icon-menu',
// children: [
// { index: '2-1', title: '2-1', path: '/about' },
// { index: '2-2', title: 'main', path: '/franchise' }
// ]
// }
// ]
};
},
components: {
@ -76,7 +70,7 @@ export default {
Breadcrumb
},
computed: {
...mapState(['showSidebar', 'showFooter', 'showHeader']) // VuexshowSidebar
...mapState(['menuData','showSidebar', 'showFooter', 'showHeader']) // VuexshowSidebar
},
mounted() {
window.addEventListener('beforeunload', this.clearStorage);

1
src/assets/loding_.json

@ -0,0 +1 @@
{"v":"5.12.2","fr":60,"ip":0,"op":55,"w":88,"h":88,"nm":"Frame 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"▽ Group 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[360]},{"t":55,"s":[720]}],"ix":10},"p":{"a":0,"k":[44.5,43.5,0],"ix":2,"l":2},"a":{"a":0,"k":[33.5,33.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":55,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 2","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50.25,16.75,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-18.502]],"o":[[18.502,0],[0,0]],"v":[[-16.75,-16.75],[16.75,16.75]],"c":false},"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.357,0.435,0.965],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"Ellipse 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":55,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Ellipse 1","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[33.5,33.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[67,67],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.898,0.91,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":55,"st":0,"ct":1,"bm":0}],"markers":[],"props":{}}

1
src/assets/menu/Totalprofit.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

1
src/assets/menu/Totalprofit1.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.1 KiB

1
src/assets/menu/Totalprofit2.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_401_001999"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_401_001999)"><g><ellipse cx="8" cy="4.333333373069763" rx="3" ry="3" fill-opacity="0" stroke-opacity="1" stroke="#626573" fill="none" stroke-width="1.5" stroke-linejoin="round"/></g><g><path d="M12.349266626930238,11.106606984558105Q13.583366626930237,12.905226984558105,13.583366626930237,14.666666984558105L15.083366626930237,14.666666984558105Q15.083366626930237,12.440116984558106,13.586166626930236,10.257976984558105Q12.945366626930237,9.324010984558106,12.207566626930237,8.710940584558106Q11.377756626930237,8.021309984558105,10.631176626930237,7.923075984558105Q10.540716626930237,7.911173984558106,10.450056626930238,7.921304984558105Q10.359386626930236,7.931435984558106,10.273786626930237,7.963008984558106Q10.188186626930237,7.994580984558105,10.112656626930237,8.045753984558106Q10.037126626930236,8.096926984558106,9.976066626930237,8.164714984558106L8.012336626930237,10.344846984558105Q7.1830266269302365,9.399840984558105,6.013606626930237,8.153486984558105Q5.940656626930237,8.075738984558106,5.848936626930237,8.021399984558105Q5.757216626930237,7.967059984558105,5.653976626930237,7.940433984558106Q5.550746626930237,7.9138079845581055,5.444186626930237,7.9170039845581055Q5.337616626930236,7.9201999845581055,5.2361666269302365,7.952965984558105Q3.5965666269302368,8.482500984558106,2.293123626930237,10.401516984558105Q0.9166666269302368,12.428016984558106,0.9166666269302368,14.666666984558105L2.416666626930237,14.666666984558105Q2.416666626930237,12.889266984558105,3.5339566269302365,11.244316984558106Q4.358736626930237,10.030036984558105,5.273056626930237,9.557899984558105Q6.597626626930237,10.980916984558105,7.426976626930236,11.963056984558106Q7.4600066269302365,12.002166984558105,7.498046626930237,12.036436984558105Q7.608896626930237,12.136276984558105,7.7495166269302365,12.186096984558105Q7.890126626930237,12.235926984558105,8.039116626930237,12.228146984558105Q8.188096626930236,12.220366984558105,8.322756626930236,12.156166984558105Q8.457416626930236,12.091966984558105,8.557266626930236,11.981116984558106L10.766836626930237,9.528061984558105Q10.981896626930236,9.642688984558106,11.248906626930237,9.864576984558106Q11.826366626930238,10.344466984558105,12.349266626930238,11.106606984558105Z" fill-rule="evenodd" fill="#626573" fill-opacity="1"/></g><g><path d="M0.75,13.916666984558105L15.15,13.916666984558105Q15.2239,13.916666984558105,15.2963,13.931077984558105Q15.3688,13.945488984558105,15.437,13.973756984558106Q15.5053,14.002025984558106,15.5667,14.043064984558105Q15.6281,14.084103984558105,15.6803,14.136336984558106Q15.7326,14.188569984558105,15.7736,14.249988984558106Q15.8146,14.311408984558106,15.8429,14.379653984558106Q15.8712,14.447899984558106,15.8856,14.520348984558105Q15.9,14.592798484558106,15.9,14.666666984558105Q15.9,14.740535484558105,15.8856,14.812984984558106Q15.8712,14.885433984558105,15.8429,14.953679984558105Q15.8146,15.021924984558105,15.7736,15.083344984558105Q15.7326,15.144763984558105,15.6803,15.196996984558105Q15.6281,15.249229984558106,15.5667,15.290268984558105Q15.5053,15.331307984558105,15.437,15.359576984558105Q15.3688,15.387844984558106,15.2963,15.402255984558106Q15.2239,15.416666984558105,15.15,15.416666984558105L0.75,15.416666984558105Q0.6761315,15.416666984558105,0.603682,15.402255984558106Q0.5312330000000001,15.387844984558106,0.462987,15.359576984558105Q0.394742,15.331307984558105,0.333322,15.290268984558105Q0.271903,15.249229984558106,0.21967000000000003,15.196996984558105Q0.16743699999999995,15.144763984558105,0.126398,15.083344984558105Q0.08535899999999996,15.021924984558105,0.057089999999999974,14.953679984558105Q0.028822000000000014,14.885433984558105,0.014410999999999952,14.812984984558106Q0,14.740535484558105,0,14.666666984558105Q0,14.592798484558106,0.014410999999999952,14.520348984558105Q0.028822000000000014,14.447899984558106,0.057089999999999974,14.379653984558106Q0.08535899999999996,14.311408984558106,0.126398,14.249988984558106Q0.16743699999999995,14.188569984558105,0.21967000000000003,14.136336984558106Q0.271903,14.084103984558105,0.333322,14.043064984558105Q0.394742,14.002025984558106,0.462987,13.973756984558106Q0.5312330000000001,13.945488984558105,0.603682,13.931077984558105Q0.6761315,13.916666984558105,0.75,13.916666984558105Z" fill-rule="evenodd" fill="#626573" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

1
src/assets/menu/Totalprofit3.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="15.5" height="13.399993896484375" viewBox="0 0 15.5 13.399993896484375"><g><g><path d="M3.60362,13.0303Q3.65329,13.1147,3.72298,13.1836Q3.79268,13.2524,3.87771,13.301Q3.96275,13.3497,4.05743,13.3748Q4.15211,13.4,4.25007,13.4L11.2501,13.4Q11.3481,13.4,11.4427,13.3748Q11.5374,13.3497,11.6225,13.301Q11.7075,13.2524,11.7772,13.1835Q11.8469,13.1147,11.8966,13.0303L15.3965,7.08026Q15.4473,6.99381,15.4737,6.89705Q15.5,6.80029,15.5,6.7Q15.5,6.59971,15.4737,6.50295Q15.4473,6.40619,15.3965,6.31974L11.8966,0.369743Q11.8469,0.285303,11.7772,0.216453Q11.7075,0.14760399999999996,11.6225,0.09896499999999997Q11.5374,0.05032700000000001,11.4427,0.025163999999999964Q11.3481,0,11.2501,0L4.25007,0Q4.15211,0,4.05743,0.025162000000000018Q3.96275,0.05032499999999995,3.87771,0.09896099999999997Q3.79268,0.147598,3.72298,0.216445Q3.65329,0.285291,3.60362,0.369729L0.103553,6.31973Q0.05270200000000003,6.40617,0.026351000000000013,6.50294Q0,6.59971,0,6.7Q0,6.80029,0.026351000000000013,6.89706Q0.05270200000000003,6.99383,0.103553,7.08027L3.60362,13.0303ZM4.6790199999999995,11.9L1.6201400000000001,6.7L4.6790199999999995,1.5L10.8211,1.5L13.8799,6.7L10.8211,11.9L4.6790199999999995,11.9Z" fill-rule="evenodd" fill="#626573" fill-opacity="1"/></g><g><path d="M6.032236190734864,4.932235809265137Q5.300000190734863,5.6644718092651365,5.300000190734863,6.699999809265137Q5.300000190734863,7.735529809265136,6.032236090734863,8.467759809265136Q6.764472190734863,9.199999809265137,7.800000190734863,9.199999809265137Q8.835530190734863,9.199999809265137,9.567760190734862,8.467759809265136Q10.300000190734863,7.735529809265136,10.300000190734863,6.699999809265137Q10.300000190734863,5.6644718092651365,9.567760190734862,4.932235709265137Q8.835530190734863,4.199999809265137,7.800000190734863,4.199999809265137Q6.764472190734863,4.199999809265137,6.032236190734864,4.932235809265137ZM7.092900190734863,7.407099809265137Q6.800000190734863,7.114209809265137,6.800000190734863,6.699999809265137Q6.800000190734863,6.285789809265137,7.092900190734863,5.992899809265136Q7.3857901907348635,5.699999809265137,7.800000190734863,5.699999809265137Q8.214210190734864,5.699999809265137,8.507100190734864,5.992899809265136Q8.800000190734863,6.285789809265137,8.800000190734863,6.699999809265137Q8.800000190734863,7.114209809265137,8.507100190734864,7.407099809265137Q8.214210190734864,7.699999809265137,7.800000190734863,7.699999809265137Q7.3857901907348635,7.699999809265137,7.092900190734863,7.407099809265137Z" fill-rule="evenodd" fill="#626573" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

1
src/assets/menu/home.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 10 KiB

1
src/assets/menu/littleTitleIcon1.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_501_026603"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_501_026603)"><g><path d="M7.33333,6L7.33333,2.666667Q7.33333,2.114383,6.94281,1.72386Q6.55229,1.333333,6,1.333333L2.666667,1.333333Q2.114382,1.333333,1.723858,1.723858Q1.333333,2.114382,1.333333,2.666667L1.333333,6Q1.333333,6.55229,1.72386,6.94281Q2.114383,7.33333,2.666667,7.33333L6,7.33333Q6.55229,7.33333,6.94281,6.94281Q7.33333,6.55229,7.33333,6ZM2.666667,2.666667L6,2.666667L6,6L2.666667,6L2.666667,2.666667Z" fill-rule="evenodd" fill="#626573" fill-opacity="1"/></g><g><path d="M7.33333,13.333333015441895L7.33333,10.000000015441895Q7.33333,9.447708015441895,6.94281,9.057187015441894Q6.55229,8.666666015441894,6,8.666666015441894L2.666667,8.666666015441894Q2.114382,8.666666015441894,1.72386,9.057184015441894Q1.333333,9.447707015441894,1.333333,10.000000015441895L1.333333,13.333333015441895Q1.333333,13.885623015441894,1.72386,14.276153015441896Q2.114382,14.666663015441895,2.666667,14.666663015441895L6,14.666663015441895Q6.55229,14.666663015441895,6.94281,14.276143015441894Q7.33333,13.885623015441894,7.33333,13.333333015441895ZM2.666667,10.000000015441895L6,10.000000015441895L6,13.333333015441895L2.666667,13.333333015441895L2.666667,10.000000015441895Z" fill-rule="evenodd" fill="#626573" fill-opacity="1"/></g><g><path d="M9.545345015441894,2.212014Q8.666667015441895,3.09069,8.666667015441895,4.33333Q8.666666015441894,5.5759799999999995,9.545345015441894,6.45465Q10.424023015441895,7.33333,11.666663015441895,7.33333Q12.909313015441894,7.33333,13.787993015441895,6.45465Q14.666663015441895,5.5759799999999995,14.666663015441895,4.33333Q14.666663015441895,3.09069,13.787993015441895,2.212014Q12.909313015441894,1.333333,11.666663015441895,1.333333Q10.424023015441895,1.333333,9.545345015441894,2.212014ZM10.488153015441895,5.51185Q10.000000015441895,5.02369,10.000000015441895,4.33333Q10.000000015441895,3.64298,10.488153015441895,3.15482Q10.976313015441894,2.666667,11.666663015441895,2.666667Q12.357023015441895,2.666667,12.845183015441894,3.15482Q13.333333015441895,3.64298,13.333333015441895,4.33333Q13.333333015441895,5.02369,12.845183015441894,5.51185Q12.357023015441895,6,11.666663015441895,6Q10.976313015441894,6,10.488153015441895,5.51185Z" fill-rule="evenodd" fill="#626573" fill-opacity="1"/></g><g><path d="M14.666663015441895,13.333333015441895L14.666663015441895,10.000000015441895Q14.666663015441895,9.447707015441894,14.276143015441894,9.057187015441894Q13.885623015441894,8.666666015441894,13.333333015441895,8.666666015441894L10.000000015441895,8.666666015441894Q9.447707015441894,8.666666015441894,9.057187015441894,9.057187015441894Q8.666666015441894,9.447707015441894,8.666666015441894,10.000000015441895L8.666666015441894,13.333333015441895Q8.666666015441894,13.885623015441894,9.057187015441894,14.276143015441894Q9.447707015441894,14.666663015441895,10.000000015441895,14.666663015441895L13.333333015441895,14.666663015441895Q13.885623015441894,14.666663015441895,14.276143015441894,14.276143015441894Q14.666663015441895,13.885623015441894,14.666663015441895,13.333333015441895ZM10.000000015441895,10.000000015441895L13.333333015441895,10.000000015441895L13.333333015441895,13.333333015441895L10.000000015441895,13.333333015441895L10.000000015441895,10.000000015441895Z" fill-rule="evenodd" fill="#626573" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

1
src/assets/menu/orderList.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><g><g></g><g><path d="M6.32635,2.7327339999999998Q6.38859,2.719143,6.44764,2.695249Q6.5067,2.671355,6.56088,2.637843Q6.61506,2.604331,6.66281,2.562161Q6.71056,2.519991,6.75051,2.470371Q6.79046,2.420751,6.82148,2.365103Q6.85249,2.309455,6.87367,2.249374Q6.89485,2.189292,6.9056,2.126499Q6.91634,2.063706,6.91634,2Q6.91634,1.9261314999999999,6.90193,1.853682Q6.88752,1.781233,6.85925,1.712987Q6.83098,1.644742,6.78995,1.583322Q6.74891,1.521903,6.69667,1.46967Q6.64444,1.417437,6.58302,1.376398Q6.5216,1.335359,6.45336,1.30709Q6.38511,1.278822,6.31266,1.264411Q6.24021,1.25,6.16634,1.25Q6.08541,1.25,6.00634,1.267267Q3.5139,1.811539,1.8938359999999999,3.79988Q0.25,5.817410000000001,0.25,8.42431Q0.25,11.45871,2.39565,13.6044Q4.54129,15.75,7.57569,15.75Q10.18259,15.75,12.2001,14.1062Q14.1875,12.4869,14.7322,9.99616L14.7326,9.99411L14.7327,9.99366L13.2673,9.67365L6.32635,2.7327339999999998Z" fill-rule="evenodd" fill="#626573" fill-opacity="1"/></g><g><path d="M7.25,1L7.25,8Q7.25,8.07387,7.264411,8.14632Q7.278822,8.21877,7.30709,8.28701Q7.335359,8.355260000000001,7.376398,8.41668Q7.417437,8.478100000000001,7.46967,8.53033Q7.521903,8.58256,7.583322,8.6236Q7.644742,8.66464,7.712987,8.692910000000001Q7.781233,8.72118,7.853682,8.73559Q7.9261315,8.75,8,8.75L15,8.75Q15.07387,8.75,15.14632,8.73559Q15.21877,8.72118,15.28701,8.692910000000001Q15.355260000000001,8.66464,15.41668,8.6236Q15.478100000000001,8.58256,15.53033,8.53033Q15.58256,8.478100000000001,15.6236,8.41668Q15.66464,8.355260000000001,15.692910000000001,8.28701Q15.72118,8.21877,15.73559,8.14632Q15.75,8.07387,15.75,8Q15.75,4.7898499999999995,13.480080000000001,2.51992Q11.21016,0.25,8,0.25Q7.9261315,0.25,7.853682,0.26441099999999995Q7.781233,0.278822,7.712987,0.30709Q7.644742,0.33535899999999996,7.583322,0.376398Q7.521903,0.41743699999999995,7.46967,0.46967000000000003Q7.417437,0.521903,7.376398,0.583322Q7.335359,0.6447419999999999,7.30709,0.712987Q7.278822,0.7812330000000001,7.264411,0.853682Q7.25,0.9261315,7.25,1ZM8.75,7.25L14.209869999999999,7.25Q13.97896,5.14012,12.419419999999999,3.58058Q10.85988,2.02104,8.75,1.7901310000000001L8.75,7.25Z" fill-rule="evenodd" fill="#626573" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

1
src/components/GuipButton.vue

@ -1,6 +1,7 @@
<template>
<el-button
:type="type"
v-bind="$attrs"
:plain="plain"
:loading="loading"
:size="size"

1
src/components/GuipDialog.vue

@ -2,6 +2,7 @@
<el-dialog
:visible.sync="dialogShow"
:title="title"
v-bind="$attrs"
append-to-body
:width="width"
:show-close="showCloseButton"

13
src/components/GuipInput.vue

@ -6,6 +6,8 @@
<p v-if="desc" class="desc_right">{{ desc }}</p>
<el-input
:type="type"
v-bind="$attrs"
:placeholder="placeholder1"
:disabled="disabled"
:maxlength="maxlength1"
@ -13,6 +15,7 @@
:minLength="minLength1"
:show-word-limit="showWordLimit"
@input="$emit('input', $event)"
@keydown="handleKeydown"
@change="$emit('change', $event)"
@blur="$emit('blur', inputValue)"
@focus="$emit('focus', inputValue)"
@ -116,9 +119,9 @@
// })
})
// console.log(el,'====9999');
// if(el&& this.styleObject){
// if(els&& this.styleObject){
// for(var key in this.styleObject){
// el.style[key] = this.styleObject[key]
// els.style[key] = this.styleObject[key]
// }
// }
})
@ -132,6 +135,12 @@
// console.log('---');
// this.$emit('clear', '')
// }
handleKeydown(e) {
console.log(e);
// if (e.key === '1') {
e.preventDefault(); //
// }
},
}
}
</script>

1
src/components/GuipRadio.vue

@ -4,6 +4,7 @@
:label="label" :prop="prop" :rules="rules">
<el-radio-group
v-model="selectedValue"
v-bind="$attrs"
@change="handleChange"
>
<el-radio

3
src/components/GuipSelect.vue

@ -4,8 +4,7 @@
:prop="prop" :rules="rules">
<p v-if="desc" class="desc_right">{{ desc }}</p>
<el-select :style="{ width: width }" :placeholder="placeholder1" @change="handleChange" v-model="selectedValue">
<el-select :style="{ width: width }" :placeholder="placeholder1" @change="handleChange" v-model="selectedValue" v-bind="$attrs">
<el-option v-for="item in options" :key="item.value" :label="item.label" :disabled="item.disabled"
:value="item.value">
</el-option>

3
src/components/GuipSwitch.vue

@ -3,7 +3,8 @@
<div class="flex switchWrap">
<span class="switchDesc" v-if="activeText || inactiveText">{{ internalValue ? activeText : inactiveText
}}</span>
<el-switch v-model="internalValue" :active-color="activeColor" :inactive-color="inactiveColor"
<el-switch v-model="internalValue" :active-color="activeColor" :inactive-color="inactiveColor" v-bind="$attrs"
:disabled="disabled || loading" @change="handleChange">
<!-- 自定义开启时的图标 -->
<template #active-icon>

8
src/components/GuipTextarea.vue

@ -1,17 +1,19 @@
<template>
<el-input
type="textarea"
v-bind="$attrs"
:style="{...styleObject}"
:rows="2"
placeholder="请输入内容"
:rows="rows"
:placeholder="placeholder"
v-model="textarea">
</el-input>
</template>
<script>
// autosize
export default {
name: 'GuipTextarea',
props:['styleObject'],
props:['styleObject','rows','placeholder'],
data() {
return {
textarea: ''

200
src/components/SetLeftMenu.vue

@ -4,9 +4,9 @@
<li v-for="(item, index) in menuList" :key="item.path">
<div :class="[$route.path == item.path ? 'active' : '', 'flex', $route.path == item.path ? curIndex = index : '']"
@click="gotoPath(item.path,index)">
<img v-if="$route.path == item.path" :src="item.imgActive" alt="">
<img v-else :src="item.img" alt="">
{{ item.name }}
<SvgIcon1 :iconPath="require(`@/assets/${item.img}`)" defaultColor="#8A9099" :size="16"
activeColor="#006AFF" :isActive="$route.path == item.path" />
<span class="title_text" >{{ item.name }}</span>
</div>
<p :class="['flex', activeFloor == item1.desc ? 'curActive' : '']"
v-for="(item1) in item.list" @click="setActiveCur(item1.desc,item)" :key="item1.name">{{ item1.name }}</p>
@ -16,16 +16,17 @@
</template>
<script>
import SvgIcon1 from '@/components/SvgIcon1.vue';
// :class="[$route.path != item.path ? 'not-point' : '', 'flex', activeFloor == item1.desc ? 'curActive' : '']"
import { mapState } from 'vuex';
import store from '../store';
export default {
name: 'Sidebar',
props: {
// menuList: {
// type: Array,
// required: true
// },
menuList: {
type: Array,
required: true
},
// activeFloor:{
// type:String
// },
@ -33,97 +34,100 @@ export default {
// type:Number
// }
},
components: {
SvgIcon1,
},
data() {
return {
activeFloor: null,
curIndex: 0,
scrollLock: false,
menuList: [
{
name: '基本设置',
path: '/siteSetting/siteBaseSetting',
img: require('@/assets/site/sitebase.svg'),
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
{
name: '站点信息',
desc: 'siteMessage1'
},
{
name: '域名设置',
desc: 'siteMessage2'
},
{
name: '收款方式',
desc: 'siteMessage3'
},
]
},
{
name: '个性化设置',
path: '/siteSetting/sitePersonalization',
img: require('@/assets/site/gexinghua.svg'),
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
{
name: '网页模板',
desc: 'siteMessage4'
},
{
name: '客服设置',
desc: 'siteMessage5'
},
{
name: '功能显隐',
desc: 'siteMessage6'
},
{
name: '安全提交',
desc: 'siteMessage7'
},
{
name: '初始订单数',
desc: 'siteMessage8'
},
]
},
{
name: '移动端设置',
path: '/siteSetting/siteH5',
img: require('@/assets/site/siteh5.svg'),
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
{
name: '微信H5',
desc: 'siteMessage9'
},
{
name: '小程序',
desc: 'siteMessage10'
},
]
},
{
name: '营销推广',
path: '/siteSetting/siteSem',
img: require('@/assets/site/sitesem.svg'),
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
{
name: 'SEO设置',
desc: 'siteMessage11'
},
{
name: 'SEM设置',
desc: 'siteMessage12'
},
{
name: '访问统计',
desc: 'siteMessage13'
},
]
}
]
// menuList: [
// {
// name: '',
// path: '/siteSetting/siteBaseSetting',
// img: require('@/assets/site/sitebase.svg'),
// imgActive: require('@/assets/site/sitebase_active.svg'),
// list: [
// {
// name: '',
// desc: 'siteMessage1'
// },
// {
// name: '',
// desc: 'siteMessage2'
// },
// {
// name: '',
// desc: 'siteMessage3'
// },
// ]
// },
// {
// name: '',
// path: '/siteSetting/sitePersonalization',
// img: require('@/assets/site/gexinghua.svg'),
// imgActive: require('@/assets/site/sitebase_active.svg'),
// list: [
// {
// name: '',
// desc: 'siteMessage4'
// },
// {
// name: '',
// desc: 'siteMessage5'
// },
// {
// name: '',
// desc: 'siteMessage6'
// },
// {
// name: '',
// desc: 'siteMessage7'
// },
// {
// name: '',
// desc: 'siteMessage8'
// },
// ]
// },
// {
// name: '',
// path: '/siteSetting/siteH5',
// img: require('@/assets/site/siteh5.svg'),
// imgActive: require('@/assets/site/sitebase_active.svg'),
// list: [
// {
// name: 'H5',
// desc: 'siteMessage9'
// },
// {
// name: '',
// desc: 'siteMessage10'
// },
// ]
// },
// {
// name: '广',
// path: '/siteSetting/siteSem',
// img: require('@/assets/site/sitesem.svg'),
// imgActive: require('@/assets/site/sitebase_active.svg'),
// list: [
// {
// name: 'SEO',
// desc: 'siteMessage11'
// },
// {
// name: 'SEM',
// desc: 'siteMessage12'
// },
// {
// name: '访',
// desc: 'siteMessage13'
// },
// ]
// }
// ]
}
},
mounted() {
@ -132,8 +136,8 @@ export default {
this.calculateFloorOffsets();
this.$nextTick(() => {
// console.log(this.$parent.$refs.scrollContainer, 'this.$refs.scrollContainer--');
this.$parent.$refs.scrollContainer.addEventListener('scroll', this.handleScroll);
})
this.$parent.$refs.scrollContainer.addEventListener('scroll', this.handleScroll);
},
created() {
// console.log(this.$parent.$refs.scrollContainer,'this.$refs.sc--rollContainer--');
@ -219,6 +223,9 @@ export default {
.ceshi {
// animation: fadeInOut 2s infinite;
}
.title_text{
margin-left: 6px;
}
ul {
list-style: none;
@ -240,7 +247,8 @@ li {
div {
letter-spacing: 0.08em;
color: #1E2226;
margin: 11px 0;
// margin: 12px 0;
height: 40px;
cursor: pointer;
img {
@ -249,9 +257,9 @@ li {
}
p {
margin: 9px 0;
letter-spacing: 0.08em;
line-height: 18px;
height: 36px;
color: #8A9099;
cursor: pointer;

247
src/components/SliderMenu.vue

@ -1,84 +1,194 @@
<template>
<el-menu :default-active="activeMenu" class="el-menu-vertical-demo" @select="handleSelect" :collapse="isCollapse"
:default-openeds="['1', '2']">
<div class="menu-top">
<span v-show="!isCollapse">
导航
</span>
<img v-if="!isCollapse" src="../assets/menu-close.svg" @click="changeMenuStatus(true)" alt="">
<img v-else src="../assets/menu-open.svg" @click="changeMenuStatus(false)" alt="">
</div>
<el-submenu v-for="item in menuData" :key="item.index" :index="item.index">
<template slot="title">
<i :class="item.icon"></i>
<span>{{ item.title }}</span>
</template>
<el-menu-item style="padding: 0 22px;" v-for="subItem in item.children" :key="subItem.index"
:index="subItem.index" @click="handleMenuItemClick(subItem)">
{{ subItem.title }}
</el-menu-item>
</el-submenu>
</el-menu>
<transition name="menu-collapse">
<el-menu v-if="!customize" class="el-menu-vertical-demo custom-menu" @open="handleOpen"
:default-active="currentMenuItem?.index"
@close="handleClose" @select="handleSelect" :collapse="isCollapse" :collapse-transition="true"
>
<div style="height: 100%;padding: 0 0 20px;box-sizing: border-box;">
<div class="menu-top">
<span v-show="!isCollapse">
导航
</span>
<GuipToolTip :content="isCollapse ? '展开' : '收起'">
<img v-if="!isCollapse" class="point" src="../assets/menu-close.svg" @click="changeMenuStatus(true)" alt="">
<img v-else class="point" src="../assets/menu-open.svg" @click="changeMenuStatus(false)" alt="">
</GuipToolTip>
</div>
<template v-for="item in menuData" >
<el-submenu v-if="item.children" :key="item.index" :index="item.index">
<template slot="title">
<SvgIcon1 :iconPath="require(`@/assets/menu/${item.icon}.svg`)" defaultColor="#8A9099"
activeColor="#006AFF" :isActive="item.index == currentMenuItem?.index?.substring(0,1) && isCollapse" />
<span class="title_text" >{{ item.title }}</span>
</template>
<el-menu-item style="padding: 0 22px 0 32px;" v-for="subItem in item.children" :key="subItem.index"
:index="subItem.index" @click="handleSelect(subItem.index, [item.index, subItem.index], subItem)">
{{ subItem.title }}
</el-menu-item>
</el-submenu>
<el-menu-item v-else :index="item.index" :key="item.index" @click="handleSelect(item.index, [item.index], item)">
<div class="flex">
<SvgIcon1 :iconPath="require(`@/assets/menu/${item.icon}.svg`)" defaultColor="#8A9099"
activeColor="#006AFF" :isActive="item.index == currentMenuItem?.index" />
<span class="title_text" slot="title">{{ item.title }}</span>
</div>
</el-menu-item>
</template>
</div>
</el-menu>
<SetLeftMenu v-else :menuList="menuData"/>
<!-- <div v-else>---akjshdjka</div> -->
</transition>
</template>
<script>
import SetLeftMenu from '@/components/SetLeftMenu.vue'
import SvgIcon1 from '@/components/SvgIcon1.vue';
import GuipToolTip from '@/components/GuipToolTip.vue';
export default {
name: 'SliderMenu',
components: {
SvgIcon1,
GuipToolTip,
SetLeftMenu
},
props: {
menuData: {
type: Array,
default: () => []
},
customize:{
type:Boolean,
default:false
}
},
data() {
return {
isCollapse: false,
activeMenu: '',
routerList: [],
menuData: [
{
index: '1',
title: '父级菜单1',
icon: 'el-icon-location',
children: [
{ index: '1-1', title: '子级菜单1-1', path: '/' },
{ index: '1-2', title: 'ui页面', path: '/ui' }
]
},
{
index: '2',
title: '父级菜单2',
icon: 'el-icon-menu',
children: [
{ index: '2-1', title: '子级菜单2-1', path: '/about' },
{ index: '2-2', title: '加盟耶main', path: '/franchise' }
]
}
]
currentMenuItem:'',
currentMenuParent:''
};
},
watch: {
"$route.path"() {
this.updateCurrentMenu();
},
},
methods: {
changeMenuStatus(flag) {
this.isCollapse = flag;
},
handleSelect(index) {
this.activeMenu = index;
handleOpen(key, keyPath) {
console.log(key, keyPath);
},
handleClose(key, keyPath) {
console.log(key, keyPath);
},
// handleSelect(index,indexPath) {
// this.activeMenu = index;
// console.log(index,indexPath, '---index');
// // menu path
// const allItems = this.menuData.flatMap(menu => menu.children);
// const targetItem = allItems.find(item => item.index === index);
// if (targetItem && this.$route.path !== targetItem.path) {
// this.$router.push(targetItem.path);
// }
// },
handleSelect(index, indexPath, menuItem) {
if (menuItem.path && this.$route.path !== menuItem.path) {
this.$router.push(menuItem.path);
}
},
updateCurrentMenu() {
const result = this.findMenuItemByPath(this.menuData, this.$route.path);
this.currentMenuItem = result?.item;
console.log(this.currentMenuItem,'currentMenuItem==');
},
findMenuItemByPath(menuItems, targetPath, parent = null) {
for (const item of menuItems) {
if (item.path === targetPath) return { item, parent };
if (item.children?.length) {
const found = this.findMenuItemByPath(item.children, targetPath, item);
if (found) return found;
}
}
return null;
},
handleMenuItemClick(item) {
this.$router.push(item.path);
this.activeMenu = item.index;
}
},
mounted() {
this.routerList = this.$router.options.router;//
console.log(this.$route.path, this.$router.options.router, 'this.$route.path===');
//
this.activeMenu = this.$route.path;
// console.log(this.$route.path,'this.$route.path----');
// const allItems = this.menuData.flatMap(menu =>menu.children ? menu.children?.map(child => ({ ...child, parentIndex: menu.index })) : menu.children);
// console.log(allItems,'=====');
// const current = allItems.find(item => item.path === this.$route.path);
// this.activeMenu = current ? current.index : '';
// this.defaultOpeneds = current ? [current.parentIndex] : [];
// this.routerList = this.$router.options.router;//
// console.log(this.$route.path, this.$router.options.router, 'this.$route.path===');
// //
// this.activeMenu = this.$route.path;
this.updateCurrentMenu();
}
}
</script>
<style lang="scss" scoped>
.menu-collapse-leave-active,
.menu-collapse-enter-active {
transition: all 0.7s;
}
.menu-collapse-enter,
.menu-collapse-leave-to {
opacity: 0;
transform: translateX(-30px);
}
.el-menu--vertical {
.el-menu-item {
height: 40px;
line-height: 40px;
}
.el-menu-item.is-active {
font-weight: bold;
}
}
.title_img {
width: 16px;
margin-right: 4px;
}
.title_text {
margin-left: 4px;
font-size: 12px;
font-weight: bold;
display: block;
}
.el-menu--collapse .title_text {
display: none;
}
.el-menu--collapse ::v-deep .el-submenu__icon-arrow {
display: none;
}
.el-menu-vertical-demo:not(.el-menu--collapse) {
width: 158px;
min-width: 158px;
min-height: calc(100vh - 62px);
overflow-y: auto;
}
.el-menu-item {
padding: 0 22px;
font-size: 12px;
}
.menu-top {
@ -91,18 +201,24 @@ export default {
padding: 15px 0px;
margin: 0 22px;
display: flex;
font-size: 16px;
font-size: 14px;
color: #1E2226;
font-weight: bold;
line-height: normal;
letter-spacing: 0.08em;
justify-content: space-between;
align-items: center;
img {
width: 14px;
height: 14px;
}
}
::v-deep .el-submenu {
width: 16px;
font-size: 16px;
// width: 16px;
font-size: 12px;
}
::v-deep .el-submenu .el-menu-item {
@ -118,11 +234,11 @@ export default {
::v-deep .el-submenu__title:hover {
background-color: transparent;
cursor: not-allowed;
// cursor: not-allowed;
}
::v-deep .el-submenu__title .el-submenu__icon-arrow.el-icon-arrow-down {
display: none;
// display: none;
}
::v-deep .el-submenu .el-menu-item {
@ -150,4 +266,21 @@ export default {
color: #006AFF;
font-weight: bold;
}
</style>
// .el-submenu .el-menu {
// transition: all 0.3s ease;
// }
// .el-menu--collapse .el-submenu > .el-menu {
// display: block !important;
// overflow: hidden;
// transition: all 0.3s ease;
// opacity: 0;
// height: 0;
// transform: translateY(-10px);
// }
// .el-menu--collapse .el-submenu.is-opened > .el-menu {
// opacity: 0;
// height: 0;
// }</style>

175
src/components/SvgIcon1.vue

@ -0,0 +1,175 @@
<template>
<div class="svg-icon-wrapper" :style="wrapperStyle" @mouseenter="handleMouseEnter" @mouseleave="handleMouseLeave">
<div class="svg-icon" v-html="svgContent" :style="{
'--icon-color': (hoverEffect || isActive) ? activeColor : defaultColor,
'--icon-hover-color': activeColor
}"></div>
<!-- :style="iconStyle" -->
</div>
</template>
<script>
export default {
name: 'SvgIcon',
props: {
//
iconPath: {
type: String,
required: true
},
//
defaultColor: {
type: String,
default: '#606266'
},
//
activeColor: {
type: String,
default: null
},
//
hoverEffect: {
type: Boolean,
default: false
},
//
size: {
type: [String, Number],
default: '14px'
},
//
isActive: {
type: Boolean,
default: false
}
},
data() {
return {
svgContent: '',
isHovering: false,
currentColor: this.defaultColor
}
},
computed: {
wrapperStyle() {
return {
width: typeof this.size === 'number' ? `${this.size}px` : this.size,
height: typeof this.size === 'number' ? `${this.size}px` : this.size,
display: 'inline-flex',
alignItems: 'center',
justifyContent: 'center'
}
},
iconStyle() {
return {
width: '100%',
height: '100%',
color: this.currentColor,
transition: 'color 0.3s ease'
}
},
shouldChangeColor() {
return this.activeColor && (this.hoverEffect || this.isActive)
}
},
watch: {
isActive(newVal) {
console.log(newVal, 'newVal---');
if (this.shouldChangeColor) {
this.currentColor = newVal ? this.activeColor : this.defaultColor
console.log(this.currentColor, 'this.currentColor--');
}
},
defaultColor(newVal) {
if (!this.isHovering && !this.isActive) {
this.currentColor = newVal
}
},
activeColor() {
this.updateColorState()
}
},
methods: {
async loadSvg() {
try {
const response = await fetch(this.iconPath)
this.svgContent = await response.text()
this.processSvg()
} catch (error) {
console.error('Failed to load SVG:', error)
}
},
processSvg() {
// SVG便CSS
this.$nextTick(() => {
const svgElement = this.$el.querySelector('svg')
if (svgElement) {
//
svgElement.removeAttribute('fill')
svgElement.removeAttribute('style')
const paths = svgElement.querySelectorAll('path, circle, rect, polygon')
paths.forEach(el => {
el.removeAttribute('fill')
})
svgElement.style.fill = 'currentColor'
svgElement.style.width = '100%'
svgElement.style.height = '100%'
}
})
},
handleMouseEnter() {
this.isHovering = true
this.updateColorState()
},
handleMouseLeave() {
this.isHovering = false
this.updateColorState()
},
updateColorState() {
if (this.activeColor) {
if (this.isActive) {
this.currentColor = this.activeColor
} else {
this.currentColor = this.isHovering && this.hoverEffect ?
this.activeColor :
this.defaultColor
}
} else {
this.currentColor = this.defaultColor
}
}
},
created() {
this.loadSvg()
}
}
</script>
<style scoped>
.svg-icon-wrapper {
cursor: pointer;
}
.svg-icon {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
color: var(--icon-color);
transition: color 0.3s;
}
.svg-icon:hover {
color: var(--icon-hover-color);
}
.svg-icon {
display: inline-flex;
}
.svg-icon>>>svg {
fill: currentColor;
}
</style>

0
src/router/admin-routes.json

0
src/router/client-routes.json

267
src/store/index.js

@ -6,42 +6,261 @@ Vue.use(Vuex)
export default new Vuex.Store({
state: {
showSidebar: false,
showFooter:false,
showHeader:false,
menuList:[],//目录菜单
showBreadcrumb:false,//是否展示面包屑
pageTitle:'一般新文献',//页面标题
addServiceList:[],//选中的服务
isLoading: false,//页面loading
showFooter: false,
showHeader: false,
menuList: [], //目录菜单
showBreadcrumb: false, //是否展示面包屑
pageTitle: '一般新文献', //页面标题
addServiceList: [], //选中的服务
isLoading: false, //页面loading
rankMenuData: [{
index: '1',
title: '总利润',
icon: 'Totalprofit',
children: [{
index: '1-1',
title: '年排行',
path: '/super/ranking/yearProfit'
},
{
index: '1-2',
title: '月排行',
path: '/super/ranking/monthProfit'
}
]
},
{
index: '2',
title: '产品',
icon: 'Totalprofit1',
children: [{
index: '2-1',
title: '毛利润排行',
path: '/super/ranking/checkProfit'
},
{
index: '2-2',
title: '订单数排行',
path: '/super/ranking/checkOrdernum'
},
{
index: '2-3',
title: '退单数排行',
path: '/super/ranking/checkRefund'
},
{
index: '2-4',
title: '负毛利排行',
path: '/super/ranking/loss'
}
]
},
{
index: '3',
title: '代理商',
icon: 'Totalprofit2',
children: [{
index: '3-1',
title: '毛利润排行',
path: '/super/ranking/agentProfit'
},
{
index: '3-2',
title: '充值排行',
path: '/super/ranking/agentRecharge'
},
{
index: '3-3',
title: '新加盟',
path: '/super/ranking/agentNew'
}
]
},
{
index: '4',
title: '设置',
icon: 'Totalprofit3',
children: [{
index: '4-1',
title: '采购价',
path: '/super/ranking/purchase'
},
{
index: '4-2',
title: '阶段采购',
path: '/super/ranking/stagePurchase'
}
]
},
],
menuData: [
{
index: '1',
title: '首页',
path:'/',
icon: 'home',
},
{
index: '2',
title: '订单列表',
icon: 'orderList',
children: [{
index: '2-1',
title: '子级菜单2-1',
path: '/'
},
{
index: '2-2',
title: 'ui页面',
path: '/ui'
}
]
},
{
index: '3',
title: '父级菜单2',
icon: 'Totalprofit',
children: [{
index: '3-1',
title: '子级菜单3-1',
path: '/about'
},
{
index: '3-2',
title: '加盟耶main',
path: '/franchise'
}
]
}
],
siteSettingData:[
{
name: '基本设置',
path: '/siteSetting/siteBaseSetting',
img:'site/sitebase.svg',
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
{
name: '站点信息',
desc: 'siteMessage1'
},
{
name: '域名设置',
desc: 'siteMessage2'
},
{
name: '收款方式',
desc: 'siteMessage3'
},
]
},
{
name: '个性化设置',
path: '/siteSetting/sitePersonalization',
img: 'site/gexinghua.svg',
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
{
name: '网页模板',
desc: 'siteMessage4'
},
{
name: '客服设置',
desc: 'siteMessage5'
},
{
name: '功能显隐',
desc: 'siteMessage6'
},
{
name: '安全提交',
desc: 'siteMessage7'
},
{
name: '初始订单数',
desc: 'siteMessage8'
},
]
},
{
name: '移动端设置',
path: '/siteSetting/siteH5',
img: 'site/siteh5.svg',
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
{
name: '微信H5',
desc: 'siteMessage9'
},
{
name: '小程序',
desc: 'siteMessage10'
},
]
},
{
name: '营销推广',
path: '/siteSetting/siteSem',
img: 'site/sitesem.svg',
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
{
name: 'SEO设置',
desc: 'siteMessage11'
},
{
name: 'SEM设置',
desc: 'siteMessage12'
},
{
name: '访问统计',
desc: 'siteMessage13'
},
]
}
]
},
actions: {
SET_HEADER({ commit }) {
SET_HEADER({
commit
}) {
commit('SET_HEADER');
},
SET_SIDEBAR({ commit }) {
SET_SIDEBAR({
commit
}) {
commit('SET_SIDEBAR');
},
SET_FOOTER({ commit }) {
SET_FOOTER({
commit
}) {
commit('SET_FOOTER');
},
SHOW_BREAD({ commit }) {
SHOW_BREAD({
commit
}) {
commit('SHOW_BREAD');
},
SET_PAGETITLE({ commit }) {
SET_PAGETITLE({
commit
}) {
commit('SET_PAGETITLE');
},
SET_ADDSERVICELIST({ commit }) {
SET_ADDSERVICELIST({
commit
}) {
commit('SET_ADDSERVICELIST');
},
showLoading({ commit }) {
console.log('zhixingle111');
showLoading({
commit
}) {
commit('SHOW_LOADING')
},
hideLoading({ commit }) {
console.log('zhixingle222');
hideLoading({
commit
}) {
commit('HIDE_LOADING')
}
},
},
mutations: {
SHOW_LOADING(state) {
@ -70,9 +289,7 @@ export default new Vuex.Store({
state.addServiceList = list;
}
},
getters: {
},
modules: {
}
})
getters: {},
modules: {}
})

36
src/style/theme/common.scss

@ -13,6 +13,23 @@ body {
padding: 0;
}
}
/* 隐藏全局滚动条 */
::-webkit-scrollbar {
display: none;
}
body {
scrollbar-width: none;
-ms-overflow-style: none;
}
.element {
overflow: hidden; /* 通用方法 */
scrollbar-width: none; /* Firefox */
}
/* 对于WebKit浏览器 */
.element::-webkit-scrollbar {
display: none; /* Chrome, Safari, Edge */
}
.common_title{
font-weight: bold;
letter-spacing: 0.08em;
@ -25,6 +42,9 @@ body {
font-weight: normal;
letter-spacing: 0.08em;
}
.main-content12{
padding: 12px;
}
// 变小手
.point{
cursor: pointer;
@ -493,7 +513,7 @@ body {
}
.el-input__inner {
height: 39px;
height: 100%;
padding: 10px 12px;
border-radius: 4px;
}
@ -538,6 +558,7 @@ body {
background: #F6F7FA !important;
border-color: #DFE2E6 !important;
color: #BABDC2 !important;
height: 100% !important;
}
.hoverclass {
@ -663,6 +684,7 @@ body {
.el-form-item__content {
// width: 100%;
flex: 1;
line-height: normal;
position: relative;
.desc_right {
@ -747,7 +769,7 @@ body {
overflow: hidden;
text-overflow: ellipsis;
}
.svg-icon-wrapper{
.el-table .svg-icon-wrapper{
width: 12px !important;
height: 12px !important;
}
@ -799,7 +821,7 @@ body {
// table start
.el-table{
min-height: 258px;
min-height: 218px;
th,td{
font-size: 14px;
font-weight: normal;
@ -953,6 +975,14 @@ body {
}
::v-deep .custom-popover {
position: fixed !important;
// max-height: 290px;
// overflow-y: auto;
margin-top: 0 !important;
margin-left: 0 !important;
transform: none !important;
}
::v-deep .custom-popover1 {
position: fixed !important;
max-height: 290px;
overflow-y: auto;
margin-top: 0 !important;

6
src/style/theme/index.css

@ -5022,6 +5022,8 @@ border-color:#006AFF !important;
height: 56px;
line-height: 56px;
font-size: 14px;
display: flex;
align-items: center;
color: #1e2226;
padding: 0 20px;
list-style: none;
@ -11202,6 +11204,9 @@ border-color:#006AFF !important;
border-color: #006aff
}
.el-range-editor.el-input__inner:hover {
border-color: #006aff
}
.el-range-editor.is-active:hover {
border-color: #006aff
}
@ -15593,6 +15598,7 @@ border-color:#006AFF !important;
font-size: 14px;
color: #606266;
line-height: 40px;
white-space: nowrap;
padding: 0 12px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box

6
src/views/ConfigureServicePrices.vue

@ -44,7 +44,7 @@
<div class="left-pay-item ">
<div class="flex-between">
<span>微信收款</span>
<GuipSwitch v-model="form.weixinFlag" activeText="开启" inactiveText="关闭"
<GuipSwitch :modelValue="form.weixinFlag" activeText="开启" inactiveText="关闭"
@change="onSwitchChange">
</GuipSwitch>
</div>
@ -53,7 +53,7 @@
<div class="left-pay-item ">
<div class="flex-between">
<span>支付宝收款</span>
<GuipSwitch v-model="form.zhifubaoFlag" activeText="开启"
<GuipSwitch :modelValue="form.zhifubaoFlag" activeText="开启"
inactiveText="关闭" @change="onSwitchChange">
</GuipSwitch>
</div>
@ -91,7 +91,7 @@
<div class="left-pay-item ">
<div class="flex-between">
<span>淘宝收款</span>
<GuipSwitch v-model="form.weixinFlag" activeText="开启" inactiveText="关闭"
<GuipSwitch :modelValue="form.weixinFlag" activeText="开启" inactiveText="关闭"
@change="onSwitchChange">
</GuipSwitch>
</div>

91
src/views/Register.vue

@ -327,7 +327,9 @@
</div>
<div class="step3-wrap min-flex" v-if="activeStep == 3">
<div class="step3-top flex-common">
<h3>服务列表</h3>
<h3 class="flex gap8">
<img src="@/assets/menu/littleTitleIcon1.svg" alt="">
服务列表</h3>
<div class="btngroup">
<GuipButton type="ignore" :btnstyle="{ width: '97px', height: '33px' }" @click="showDomainModal">添加查重服务
</GuipButton>
@ -338,27 +340,28 @@
<div>
<div class="flex-common table-wrap">
<el-form>
<GuipTable :tableData="tableData1" :loading="tableLoading">
<el-table-column prop="name" label="检测服务" width="210">
<GuipTable :border="true" :tableData="tableData1" :loading="tableLoading">
<el-table-column prop="name" fixed="left" label="检测服务" width="200">
<template slot-scope="scope">
<div class="flex">
<span :class="(scope.row.type == 'a' ? 'green' : 'blue')">{{ scope.row.type == 'a' ? '查重服务' : '写作辅助'
}}</span>
<span class="">{{ scope.row.name }}</span>
<div class="flex nowrap ">
<div :class="(scope.row.type == 'a' ? 'green' : 'blue')">{{ scope.row.type == 'a' ? '查重服务' : '写作辅助'
}}</div>
<div class="">{{ scope.row.name }}</div>
</div>
</template>
</el-table-column>
<el-table-column prop="stock" label="今日供货价" width="198">
<el-table-column prop="stock" label="今日供货价" min-width="138">
<template slot-scope="scope">
<div class="flex cell_render">
<span>¥{{ scope.row.stock }}/</span>
</div>
</template>
</el-table-column>
<el-table-column prop="price" label="售价" width="200">
<el-table-column prop="price" label="售价" width="300">
<template #default="{ row,$index }">
<el-popover :ref="`pricePopover-${row.id}`" popper-class="single-popover" placement="top" :append-to-body="true" trigger="manual"
v-model="row.pricePopoverVisible" @show="closeOtherPopovers(row, 'price')">
<el-popover v-model="row.pricePopoverVisible" :ref="`pricePopover-${row.id}`"
placement="bottom" trigger="manual" :append-to-body="false" :visible-arrow="true"
popper-class="custom-popover" @show="popshow" >
<div style="text-align: center">
<GuipInput ref="GuipInput" v-if="!row.word" width="252px" v-model="row.edit_price" label="售价"
placeholder="请输入售价" unit="元">
@ -380,6 +383,8 @@
<div class="flex cell_render" @click="handlePriceClick(row,$index,'price')">
<span v-if="row.word" :key="random()">¥{{ row.price }}/{{ row.word }}</span>
<span v-else :key="random()">¥{{ row.price }}/</span>
<span>测试用一下</span>
<span>随便写的</span>
<svg-icon :size="16" :path="require('@/assets/register/tableEdit.svg')" :color="'#8A9099'"
:hoverColor="'#006AFF'" />
</div>
@ -388,7 +393,7 @@
</template>
</el-table-column>
<el-table-column prop="num" label="排序" width="126">
<el-table-column prop="num" label="排序" min-width="95">
<template #default="{ row,$index }">
<!-- <el-tooltip :manual="true" v-model="row.numPopoverVisible" placement="top" effect="light">
<template #content>
@ -410,8 +415,11 @@
:hoverColor="'#006AFF'" />
</div>
</el-tooltip> -->
<el-popover v-model="row.numPopoverVisible" placement="top" trigger="manual" append-to-body :ref="`popover-${row.id}`">
<div style="text-align: center">
<el-popover v-model="row.numPopoverVisible" :ref="`popover-${row.id}`"
placement="bottom" trigger="manual" :append-to-body="false" :visible-arrow="true"
popper-class="custom-popover" @show="popshow" >
<!-- <el-popover v-model="row.numPopoverVisible" placement="top" class="single-popover" trigger="manual" :append-to-body="false" :ref="`popover-${row.id}`"> -->
<div style="text-align: center" :visible-arrow="true">
<GuipInput ref="GuipInput" width="252px" v-model="row.edit_num" label="排序" placeholder="请输入数字">
</GuipInput>
<p
@ -424,7 +432,9 @@
</div>
<span slot="reference" @click="handlePriceClick(row,$index,'num')">
<div class="flex cell_render">
<span>{{ row.num }}</span>
<GuipToolTip :content="row.num">
<span class="nowrap">{{ row.num }}</span>
</GuipToolTip>
<svg-icon :size="16" :path="require('@/assets/register/tableEdit.svg')" :color="'#8A9099'"
:hoverColor="'#006AFF'" />
</div>
@ -432,7 +442,7 @@
</el-popover>
</template>
</el-table-column>
<el-table-column prop="stock" label="收款方式" width="198">
<el-table-column prop="stock" label="收款方式" min-width="258">
<template slot-scope="scope">
<div class="flex cell_render">
<span :class="(scope.row.payment == '0' ? 'normal_payment' : 'self_payment')">{{ scope.row.payment
@ -443,14 +453,13 @@
</div>
</template>
</el-table-column>
<el-table-column prop="stock" label="上首页" width="110">
<el-table-column prop="stock" fixed="right" label="上首页" min-width="160">
<template slot-scope="scope">
<GuipSwitch :modelValue="scope.row.homeFlag" @change="onSwitchChange(scope.row)">
</GuipSwitch>
</template>
</el-table-column>
<!-- :fixed="popoverFlag ? 'false' : 'right'" -->
<el-table-column label="操作" width="150">
<el-table-column label="操作" fixed="right" min-width="150px">
<template slot-scope="scope">
<div class="flex">
<el-button type="text">编辑</el-button>
@ -481,7 +490,7 @@
<DomainModal />
</GuipDialog>
<el-dialog :visible.sync="dialogVisibleAdd" ref="addDialog" width="1011px" class="addDialog-wrap"
<el-dialog :visible.sync="dialogVisibleAdd" ref="addDialog" append-to-body width="1011px" class="addDialog-wrap"
:show-close="false">
<div class="addService_wrap">
<div class="addServicetop">
@ -548,6 +557,7 @@ import CustomDropdown from '@/components/CustomDropdown.vue';
import SvgIcon from '@/components/SvgIcon.vue';
import store from '../store';
import GuipTable from '@/components/GuipTable.vue';
import GuipToolTip from '@/components/GuipToolTip.vue';
export default {
components: {
@ -563,7 +573,8 @@ export default {
PaymentMethod,
DomainModal,
CustomDropdown,
GuipTable
GuipTable,
GuipToolTip
},
data() {
return {
@ -821,21 +832,21 @@ export default {
'3': '想卖哪些东西?来选选吧',
},
tableData1: [
{ id: 1, name: '万方大学生版', stock: 100, price: 50, pricePopoverVisible: false, edit_price: '', type: 'a', num: '1', edit_num: '', num_popover: false, homeFlag: true, payment: '0' },
{ id: 1, name: '万方大学生版', stock: 100, price: 50, pricePopoverVisible: false, edit_price: '', type: 'a', num: '18567988777736366363', edit_num: '', num_popover: false, homeFlag: true, payment: '0' },
{ id: 2, name: '维普检测版', stock: 200, price: 80, word: 1000, pricePopoverVisible: false, edit_price: '', editWord: '', type: 'a', num: '2', edit_num: '', num_popover: false, homeFlag: true, payment: '1' },
{ id: 3, name: '商品C1', stock: 150, price: 120, pricePopoverVisible: false, edit_price: '', type: 'b', num: '2', edit_num: '', num_popover: false, homeFlag: false, payment: '0' },
{ id: 11, name: '商品A2', stock: 100, price: 50, pricePopoverVisible: false, edit_price: '', type: 'a', num: '3', edit_num: '', num_popover: false, homeFlag: false, payment: '0' },
{ id: 21, name: '商品B2', stock: 200, price: 80, word: 1000, pricePopoverVisible: false, edit_price: '', editWord: '', type: 'a', num: '0', edit_num: '', num_popover: false, homeFlag: true },
{ id: 31, name: '商品C2', stock: 150, price: 120, pricePopoverVisible: false, edit_price: '', type: 'b', num: '1', edit_num: '' },
{ id: 31, name: '商品C2', stock: 150, price: 120, pricePopoverVisible: false, edit_price: '', type: 'b', num: '1333333333333333333', edit_num: '' },
{ id: 12, name: '商品A3', stock: 100, price: 50, pricePopoverVisible: false, edit_price: '', type: 'a' },
{ id: 22, name: '商品B3', stock: 200, price: 80, word: 1000, pricePopoverVisible: false, edit_price: '', editWord: '', type: 'a' },
{ id: 32, name: '商品C3', stock: 150, price: 120, pricePopoverVisible: false, edit_price: '', type: 'b' },
{ id: 13, name: '商品A4', stock: 100, price: 50, pricePopoverVisible: false, edit_price: '', type: 'a' },
{ id: 23, name: '商品B4', stock: 200, price: 80, word: 1000, pricePopoverVisible: false, edit_price: '', editWord: '', type: 'a' },
{ id: 33, name: '商品C4', stock: 150, price: 120, pricePopoverVisible: false, edit_price: '', type: 'b' },
{ id: 14, name: '商品A5', stock: 100, price: 50, pricePopoverVisible: false, edit_price: '', type: 'a' },
{ id: 24, name: '商品B5', stock: 200, price: 80, word: 1000, pricePopoverVisible: false, edit_price: '', editWord: '', type: 'a' },
{ id: 34, name: '商品C5', stock: 150, price: 120, pricePopoverVisible: false, edit_price: '', type: 'b' },
// { id: 22, name: 'B3', stock: 200, price: 80, word: 1000, pricePopoverVisible: false, edit_price: '', editWord: '', type: 'a' },
// { id: 32, name: 'C3', stock: 150, price: 120, pricePopoverVisible: false, edit_price: '', type: 'b' },
// { id: 13, name: 'A4', stock: 100, price: 50, pricePopoverVisible: false, edit_price: '', type: 'a' },
// { id: 23, name: 'B4', stock: 200, price: 80, word: 1000, pricePopoverVisible: false, edit_price: '', editWord: '', type: 'a' },
// { id: 33, name: 'C4', stock: 150, price: 120, pricePopoverVisible: false, edit_price: '', type: 'b' },
// { id: 14, name: 'A5', stock: 100, price: 50, pricePopoverVisible: false, edit_price: '', type: 'a' },
// { id: 24, name: 'B5', stock: 200, price: 80, word: 1000, pricePopoverVisible: false, edit_price: '', editWord: '', type: 'a' },
// { id: 34, name: 'C5', stock: 150, price: 120, pricePopoverVisible: false, edit_price: '', type: 'b' },
],
tableLoading: false,
typelistobj: {
@ -1170,8 +1181,16 @@ export default {
</script>
<style lang="scss" scoped>
.single-popover {
transform: translateX(-50%); /* 根据需要调整 */
left: 50% !important; /* 根据需要调整 */
// transform: translateX(-50%); /* */
// left: 50% !important; /* */
}
::v-deep .custom-popover {
position: fixed !important;
// max-height: 290px;
// overflow-y: auto;
margin-top: 0 !important;
margin-left: 0 !important;
transform: none !important;
}
/* 隐藏固定列中的弹出框 */
.el-table__fixed .el-popover,
@ -1198,7 +1217,8 @@ export default {
.shortspan {
display: inline-block;
display: flex;
align-items: center;
height: 38px;
margin: 0 12px;
}
@ -1312,6 +1332,7 @@ export default {
display: flex;
justify-content: space-between;
padding-bottom: 0;
align-items: end;
h3{
margin: 0;
}
@ -1372,6 +1393,8 @@ export default {
.green,
.blue {
width: 80px;
box-sizing: border-box;
display: flex;
flex-direction: row;
justify-content: center;

13
src/views/SiteSetting.vue

@ -1,6 +1,8 @@
<template>
<div class="siteSetting-wrap">
<SetLeftMenu />
<!-- <SetLeftMenu /> -->
<SliderMenu :menuData="siteSettingData" :customize="true"></SliderMenu>
<!--:menuList="menuList" :activeFloor="activeFloor" :curIndex="curIndex" -->
<!-- 主内容区域 -->
<main class="main-content" ref="scrollContainer" id="main-content">
@ -17,7 +19,9 @@
// import SiteBaseSetting from './SiteBaseSetting.vue';
import PageTitle from '@/components/PageTitle.vue';
import Footer from '@/components/Footer.vue';
import SetLeftMenu from '@/components/SetLeftMenu.vue'
import { mapState } from 'vuex';
import SliderMenu from '@/components/SliderMenu.vue'
export default {
//
name: '',
@ -25,7 +29,7 @@ export default {
components: {
PageTitle,
Footer,
SetLeftMenu,
SliderMenu,
// SiteBaseSetting
},
data() {
@ -38,6 +42,9 @@ export default {
console.log(this.$route.path,'090-9090');
// this.$refs.scrollContainer.scrollTo(0)
},
computed: {
...mapState(['siteSettingData']) // VuexshowSidebar
},
methods: {
}
}

674
src/views/elementGroups.vue

@ -1,38 +1,28 @@
<template>
<div class="elementWrap">
<!-- ele-item 为类名的这种div label h3 仅在此页面进行布局使用复制时无需复制此元素 -->
<el-form :model="form" :rules="rules" class="el-row demo-ruleForm" ref="formRef">
<div class="ele-item">
<label for="">单选框11</label>
<GuipRadio v-model="form.language" :options="languageOptions" label="选择语言" prop="language"
@change="radioChange" :rules="rules.language" />
</div>
<div class="ele-item">
<label for="">下拉框</label>
<GuipSelect width="600px" v-model="form.card" label="卡片" prop="card" :options="options"
defaultValue="选项1" />
</div>
<div>
<h3 for="">表格(表头自定义自定义渲染固定列)</h3>
<GuipButton type="primary" @click="toggleAllSelection">全选按钮</GuipButton>
<el-form>
<GuipTable :tableData="tableData" ref="multipleTable" @selectChange="handleSelectionChange"
:multiple="true" autoColumn="true" :loading="tableLoading">
<div class="main-content12">
<div class="elementWrap">
<!-- ele-item 为类名的这种div label h3 仅在此页面进行布局使用复制时无需复制此元素 -->
<el-form :model="form" :rules="rules" class="el-row demo-ruleForm" ref="formRef">
<div class="ele-item">
<label for="">单选框11</label>
<GuipRadio v-model="form.language" :options="languageOptions" label="选择语言" prop="language"
@change="radioChange" :rules="rules.language" />
</div>
<div class="ele-item">
<label for="">下拉框</label>
<GuipSelect width="600px" v-model="form.card" label="卡片" prop="card" :options="options"
defaultValue="选项1" />
</div>
<div>
<h3 for="">表格(表头自定义自定义渲染固定列)</h3>
<GuipButton type="primary" @click="toggleAllSelection">全选按钮</GuipButton>
<GuipTable :tableData="tableData2" ref="multipleTable" @selectChange="handleSelectionChange"
:multiple="true" autoColumn="true" :loading="tableLoading" :border="true">
<!-- <template slot="header"> -->
<el-table-column width="180" fixed="left" label="名称(固定左)"></el-table-column>
<!-- <el-table-column prop="type">
<template slot="header">
<GuipSelect class="custom-select" v-model="chktype" :options="type2filterOptions"
defaultValue="全部检测类型" @change="changeSelectType" />
</template>
<template slot-scope="scope">
{{ type2name[scope.row.type] }}
</template>
</el-table-column> -->
<el-table-column prop="created_at" label="时间" width="200">
<template slot-scope="scope">
<div class="flex cell_render">
@ -40,11 +30,11 @@
<span :class="(scope.row.payment == '0' ? 'normal_payment' : 'self_payment')">{{
scope.row.payment
==
'0' ? '文字居中' : '文字居中' }}</span>
'0' ? '文字居中' : '文字居中' }}</span>
</GuipToolTip>
<GuipToolTip content="图标居中">
<svg-icon size="16" :path="require('@/assets/register/tableEdit.svg')" :color="'#8A9099'"
:hoverColor="'#006AFF'" />
<svg-icon :size="16" :path="require('@/assets/register/tableEdit.svg')"
:color="'#8A9099'" :hoverColor="'#006AFF'" />
</GuipToolTip>
</div>
@ -57,35 +47,26 @@
<span :class="(scope.row.payment == '0' ? 'normal_payment' : 'self_payment')">{{
scope.row.payment
==
'0' ? '单元格局中' : '单元格局中' }}</span>
<svg-icon size="16" :path="require('@/assets/register/tableEdit.svg')" :color="'#8A9099'"
:hoverColor="'#006AFF'" />
'0' ? '单元格局中' : '单元格局中' }}</span>
<svg-icon :size="16" :path="require('@/assets/register/tableEdit.svg')"
:color="'#8A9099'" :hoverColor="'#006AFF'" />
</div>
</GuipToolTip>
</GuipToolTip>
</template>
</el-table-column>
<el-table-column prop="name2" label="姓名" width="150"></el-table-column>
<el-table-column prop="price" label="价格" width="150">
<!-- <template slot-scope="scope">
<span @click="handlePriceClick(scope.row)">{{ scope.row.price }}</span>
</template> -->
<!-- 气泡弹出框 后期样式自定义-->
<!-- <template slot-scope="scope">
<el-popover trigger="click" placement="top">
<input type="text">
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.price }}</el-tag>
</div>
</el-popover>
</template> -->
<template slot-scope="scope">
<span @click="handlePriceClick(scope.row)">{{ scope.row.price }}</span>
</template>
</el-table-column>
<el-table-column prop="address" label="地址1" width="150"> </el-table-column>
<el-table-column prop="address" label="地址2" width="250"> </el-table-column>
<el-table-column prop="address" label="地址3" width="150"> </el-table-column>
<el-table-column prop="address" label="地址2" width="250"> </el-table-column>
<el-table-column prop="address" label="地址3" width="150"> </el-table-column>
<el-table-column prop="address1" label="地址测试" width="100"></el-table-column>
<el-table-column prop="price2" label="价格" width="300">
<el-table-column prop="price" label="价格" width="300">
<template slot-scope="scope">
<GuipSelect width="200px" @change="changeSelect(scope.row)" v-model="form.card"
prop="card" :options="options" defaultValue="选项1" />
@ -104,28 +85,26 @@
:current-page="currentPage" :page-size=pageSize layout="prev, pager, next,jumper"
:total="total">
</el-pagination>
</el-form>
</div>
<div>
<h3 for="">表格(带气泡框),内容自定义</h3>
<el-form>
<GuipTable :tableData="tableData2" :key="random()" ref="multipleTable"
</div>
<div class="flex">
<h3 for="">表格(带气泡框),内容自定义</h3>
<a href="/register">点击一下跳转参照页面</a>
<!-- 暂时废弃此版本 -->
<!-- <GuipTable :tableData="tableData4" :key="random()" ref="multipleTable"
@selectChange="handleSelectionChange" :multiple="true" autoColumn="true" width="900px"
:columns="columns" @confirm="onConfirm" @cancel="onCancel">
<!-- 自定义姓名列的气泡框内容 -->
<template #popover-content-name="{ row, column }">
<div>
<GuipInput ref="GuipInput" width="252px" v-model="row[`edit_${column.prop}`]" label="排序"
:prop="column.label" placeholder="这是" />
<GuipInput ref="GuipInput" width="252px" type="text"
v-model="row[`edit_${column.prop}`]" label="排序" :prop="column.label"
placeholder="这是" />
</div>
</template>
<template #popover-content-age="{ row, column }">
<GuipInput ref="GuipInput" width="252px" v-model="row[`edit_${column.prop}`]" label="年龄"
:prop="column.label" placeholder="这是" unit="岁">
<GuipInput ref="GuipInput" width="252px" v-model="row[`edit_${column.prop}`]" type="text"
label="年龄" :prop="column.label" placeholder="这是" unit="岁">
</GuipInput>
</template>
<!-- 自定义地址列的气泡框内容 -->
<template #popover-content-address="{ row, column }">
<div>
<p>自定义内容{{ column.label }}</p>
@ -136,226 +115,228 @@
</el-select>
</div>
</template>
</GuipTable>
</el-form>
</GuipTable> -->
</div>
<div class="ele-item">
<label for="">文本域固定行数</label>
<GuipTextarea :styleObject="{ width: '450px' }" placeholder="固定行数" :rows="4" />
</div>
<div class="ele-item">
<label for="">文本域自适应高度</label>
<GuipTextarea :styleObject="{ width: '450px' }" placeholder="自适应高度" autosize />
</div>
<div class="ele-item">
<label for="">输入框</label>
<GuipInput ref="GuipInput" v-model="form.input1" width="200px" height="30px"
placeholder="这是自定义默认提示语" />
<div style="width: 20px;height: 10px;"></div>
<GuipInput ref="GuipInput" v-model="form.input2" :maxlength="100" @change="handleInput"
@blur="handleInput" @input="handleInput" @focus="handleInput" placeholder="这是自定义默认提示语" />
<div style="width: 20px;height: 10px;"></div>
<GuipInput v-model="form.input3" width="400px">
<span slot="prependshow">http:</span>
<!-- <img slot="prefix" src="../assets/radio_checked.svg" alt=""> -->
<!-- 输入框后面小图标 -事件自定义 -->
<i slot="suffix" class="el-icon-close" @click="handleClear"></i>
<!-- <img slot="suffix" src="../assets/radio_nochecked.svg" alt="" @click="handleClear"> -->
<!-- 这个 appendshow 宽度 居中方式 自定义添加类名修改-->
<!-- <GuipButton slot="appendshow" size="mini">默认按钮</GuipButton> -->
<!-- 这个 appendshow 宽度 居中方式 自定义添加类名修改-->
<span slot="appendshow">.checkcopy.com</span>
</GuipInput>
<!-- <el-input placeholder="oieuwroieuwi" style="width:400px;height:60px"></el-input> -->
</div>
<div class="ele-item">
<label for="">单选框</label>
<el-radio v-model="radio1" :label="1">选项一</el-radio>
<el-radio v-model="radio1" :label="2">选项二</el-radio>
</div>
<div class="ele-item">
<label for="">单选框组</label>
<el-radio-group v-model="radio" @input="radioChange">
<el-radio :label="3">备选项</el-radio>
<el-radio :label="6">备选项</el-radio>
<el-radio :label="9">备选项</el-radio>
</el-radio-group>
</div>
<div class="ele-item">
<label for="">按钮尺寸</label>
<GuipButton size="superBig">加盟并进入后台</GuipButton>
<GuipButton size="big">准备完毕验证自有域名</GuipButton>
<GuipButton size="page">下一步</GuipButton>
<GuipButton size="primary">保存</GuipButton>
<GuipButton size="table">新增站点</GuipButton>
<GuipButton size="form">前往添加</GuipButton>
</div>
<div class="ele-item">
<label for="">强按钮</label>
<!-- 默认 type= primary normal 样式 -->
<GuipButton>默认</GuipButton>
<GuipButton loading>按钮</GuipButton>
<GuipButton disabled>按钮</GuipButton>
</div>
<div class="ele-item">
<label for="">弱按钮</label>
<GuipButton type="ignore">按钮</GuipButton>
<GuipButton type="ignore" loading>按钮</GuipButton>
<GuipButton type="ignore" disabled>按钮</GuipButton>
</div>
<div class="ele-item">
<label for="">中按钮</label>
<GuipButton type="system">按钮</GuipButton>
<GuipButton type="system" loading>按钮</GuipButton>
<GuipButton type="system" disabled>按钮</GuipButton>
</div>
<div class="ele-item">
<label for="">文字按钮</label>
<GuipButton type="text">强引导</GuipButton>
<GuipButton type="grey">弱引导</GuipButton>
</div>
<div class="ele-item">
<label for="">独特按钮可以自定义划过时 图标图片文字颜色</label>
<hover-button button-text="上传文件" :default-icon="require('../assets/upLoad_grey.svg')"
:hover-icon="require('../assets/upLoad_active.svg')" default-text-color="#23242B"
hover-text-color="#006AFF" @click="btnClick" />
</div>
<div class="ele-item">
<label for="">独特按钮单独写样式</label>
<div class="btn1">创建首个网站</div>
</div>
<!-- 暂时废弃 -->
<!-- <div class="ele-item">
<label for="">常规按钮</label>
<GuipButton>默认按钮</GuipButton>
<GuipButton type="mild" size="medium">轻度按钮</GuipButton>
<GuipButton type="primary">按钮</GuipButton>
<GuipButton type="reverseMild">按钮</GuipButton>
<GuipButton type="primary" loading>按钮</GuipButton>
<GuipButton type="success" :plain="plain">按钮</GuipButton>
<GuipButton type="info" :plain="plain">按钮</GuipButton>
<GuipButton type="warning" :plain="plain">按钮</GuipButton>
<GuipButton type="danger" :plain="plain">按钮</GuipButton>
</div>
<div class="ele-item">
<label for="">禁用按钮</label>
<GuipButton disabled>默认按钮</GuipButton>
<GuipButton type="mild" disabled size="medium">轻度按钮</GuipButton>
<GuipButton type="reverseMild" disabled>按钮</GuipButton>
<GuipButton type="primary" size="medium" disabled>按钮</GuipButton>
<GuipButton type="success" disabled>按钮</GuipButton>
<GuipButton type="info" disabled>按钮</GuipButton>
<GuipButton type="warning" disabled>按钮</GuipButton>
<GuipButton type="danger" disabled>按钮</GuipButton>
</div>
<div class="ele-item">
<label for="">三种尺寸按钮</label>
<GuipButton type="primary">默认按钮</GuipButton>
<GuipButton type="primary" size="medium">中等按钮</GuipButton>
<GuipButton type="primary" size="small">小的按钮</GuipButton>
<GuipButton type="primary" size="mini">迷你按钮</GuipButton>
</div> -->
<div class="ele-item">
<label for="">自定义宽高按钮</label>
<GuipButton type="primary" :btnstyle="btnstyleObj">宽高自定义</GuipButton>
</div>
<div class="ele-item">
<label for="">提示</label>
<GuipButton type="system" @click="openMessage('success')">成功提示</GuipButton>
<GuipButton type="system" @click="openMessage('error')"> 失败提示</GuipButton>
<GuipButton type="system" @click="openMessage('info')">警告提示</GuipButton>
</div>
<div style="width: 600px;">
<h3>表单左右布局直接使用封装好的input</h3>
<!-- 表单左右布局 -->
<GuipInput ref="GuipInput" addClass="w510" v-model="form.username" label="Username" prop="username"
:rules="usernameRules" placeholder="这是自定义默认提11示语" />
</div>
<div style="width: 800px;height: 150px;">
<h3>表单上下布局 (宽度 510 388 用的最多 已有这2种宽度类名设置)</h3>
<GuipInput ref="GuipInput" column="column" addClass="w510" label="age" desc="这是是右侧文案"
v-model="form.age" prop="age" placeholder="这是自定义默认提示语" />
</div>
<div class="ele-item">
<label for="">开关L</label>
<GuipSwitch :modelValue="switchValue" activeText="开启" inactiveText="关闭" @change="onSwitchChange">
</GuipSwitch>
</div>
<el-button type="primary" @click="submitForm">Submit</el-button>
</el-form>
<div style="width: 100%;margin: 20px 0;height: 20px;background-color: antiquewhite;">
--------------------分割线0------------------------------</div>
<div style="display: flex;" class="ele-item">
<label for="">日期选择器</label>
<el-date-picker v-model="date1" type="daterange" range-separator="" start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
<div class="ele-item">
<label for="">文本域</label>
<GuipTextarea disabled :styleObject="styleObject" />
<div ref="ScaleBox" class="ScaleBox">
<!-- Form 组件-->
<!-- @headdenForm="headdenForm" -->
<!-- @changeSelect="changeSelect" -->
<!-- <GuipForm
:fromItem="fromItem"
:formNewList="formList"
:detail="edit"
:disabled="edit"
ref="VabForm"
/>
<div class="cardfooter" style="display: flex;">
<el-button @click="cancellation">取消</el-button>
<el-button @click="save" type="primary">保存</el-button>
</div> -->
</div>
<div class="ele-item">
<label for="">输入框</label>
<GuipInput ref="GuipInput" width="200px" height="30px" disabled placeholder="这是自定义默认提示语" />
<div style="width: 20px;height: 10px;"></div>
<GuipInput ref="GuipInput" :styleObject="styleObject1" defaultValue="爱吃麻辣烫" :maxlength="100"
@change="handleInput" @blur="handleInput" @input="handleInput" @focus="handleInput"
placeholder="这是自定义默认提示语" />
<div style="width: 20px;height: 10px;"></div>
<GuipInput :defaultValue="defaultValue" @clear="handleClear" width="400px">
<span slot="prependshow">http:</span>
<img slot="prefix" src="../assets/radio_checked.svg" alt="">
<!-- 输入框后面小图标 -事件自定义 -->
<i slot="suffix" class="el-icon-close" @click="handleClear"></i>
<!-- <img slot="suffix" src="../assets/radio_nochecked.svg" alt="" @click="handleClear"> -->
<!-- 这个 appendshow 宽度 居中方式 自定义添加类名修改-->
<!-- <GuipButton slot="appendshow" size="mini">默认按钮</GuipButton> -->
<!-- 这个 appendshow 宽度 居中方式 自定义添加类名修改-->
<span slot="appendshow">.checkcopy.com</span>
</GuipInput>
<!-- <el-input placeholder="oieuwroieuwi" style="width:400px;height:60px"></el-input> -->
<div class="flex ele-item">
<label for="">一些功能集合</label>
<GuipButton type="primary" @click="openDialog">打开弹框</GuipButton>
<GuipButton type="primary" @click="openLoading" size="page">展示加载动画 2s</GuipButton>
</div>
<div class="ele-item">
<label for="">单选框</label>
<el-radio v-model="radio1" :label="1">选项一</el-radio>
<el-radio v-model="radio1" :label="2">选项二</el-radio>
<div class="flex ele-item">
<label for="">提示信息</label>
<GuipToolTip content="这是一个提示">
<GuipButton type="primary" size="page">悬停查看提示</GuipButton>
</GuipToolTip>
<GuipToolTip placement="bottom" effect="light">
<GuipButton type="primary" size="page">自定义提示内容</GuipButton>
<template #content>
<div style="max-width: 200px">
<h4>自定义标题</h4>
<p>这里可以放任何HTML内容</p>
<el-button size="mini">甚至按钮</el-button>
</div>
</template>
</GuipToolTip>
<GuipToolTip placement="bottom" effect="light" content="点击进入编辑">
<svg-icon :path="require('@/assets/register/tableEdit.svg')" :color="'#8A9099'"
:hoverColor="'#006AFF'" />
</GuipToolTip>
</div>
<div class="ele-item">
<label for="">单选框组</label>
<el-radio-group v-model="radio" @input="radioChange">
<el-radio :label="3">备选项</el-radio>
<el-radio :label="6">备选项</el-radio>
<el-radio :label="9">备选项</el-radio>
</el-radio-group>
</div>
<div class="ele-item">
<label for="">按钮尺寸</label>
<GuipButton size="superBig">加盟并进入后台</GuipButton>
<GuipButton size="big">准备完毕验证自有域名</GuipButton>
<GuipButton size="page">下一步</GuipButton>
<GuipButton size="primary">保存</GuipButton>
<GuipButton size="table">新增站点</GuipButton>
<GuipButton size="form">前往添加</GuipButton>
</div>
<div class="ele-item">
<label for="">强按钮</label>
<!-- 默认 type= primary normal 样式 -->
<GuipButton>默认</GuipButton>
<GuipButton loading>按钮</GuipButton>
<GuipButton disabled>按钮</GuipButton>
</div>
<div class="ele-item">
<label for="">弱按钮</label>
<GuipButton type="ignore">按钮</GuipButton>
<GuipButton type="ignore" loading>按钮</GuipButton>
<GuipButton type="ignore" disabled>按钮</GuipButton>
</div>
<div class="ele-item">
<label for="">中按钮</label>
<GuipButton type="system">按钮</GuipButton>
<GuipButton type="system" loading>按钮</GuipButton>
<GuipButton type="system" disabled>按钮</GuipButton>
</div>
<div class="ele-item">
<label for="">文字按钮</label>
<GuipButton type="text" >强引导</GuipButton>
<GuipButton type="grey" >弱引导</GuipButton>
</div>
<div class="ele-item">
<label for="">独特按钮可以自定义划过时 图标图片文字颜色</label>
<hover-button button-text="上传文件" :default-icon="require('../assets/upLoad_grey.svg')"
:hover-icon="require('../assets/upLoad_active.svg')" default-text-color="#23242B"
hover-text-color="#006AFF" @click="btnClick" />
</div>
<div class="ele-item">
<label for="">独特按钮单独写样式</label>
<div class="btn1">创建首个网站</div>
</div>
<!-- 暂时废弃 -->
<!-- <div class="ele-item">
<label for="">常规按钮</label>
<GuipButton>默认按钮</GuipButton>
<GuipButton type="mild" size="medium">轻度按钮</GuipButton>
<GuipButton type="primary">按钮</GuipButton>
<GuipButton type="reverseMild">按钮</GuipButton>
<GuipButton type="primary" loading>按钮</GuipButton>
<GuipButton type="success" :plain="plain">按钮</GuipButton>
<GuipButton type="info" :plain="plain">按钮</GuipButton>
<GuipButton type="warning" :plain="plain">按钮</GuipButton>
<GuipButton type="danger" :plain="plain">按钮</GuipButton>
</div>
<div class="ele-item">
<label for="">禁用按钮</label>
<GuipButton disabled>默认按钮</GuipButton>
<GuipButton type="mild" disabled size="medium">轻度按钮</GuipButton>
<GuipButton type="reverseMild" disabled>按钮</GuipButton>
<GuipButton type="primary" size="medium" disabled>按钮</GuipButton>
<GuipButton type="success" disabled>按钮</GuipButton>
<GuipButton type="info" disabled>按钮</GuipButton>
<GuipButton type="warning" disabled>按钮</GuipButton>
<GuipButton type="danger" disabled>按钮</GuipButton>
</div>
<div class="ele-item">
<label for="">三种尺寸按钮</label>
<GuipButton type="primary">默认按钮</GuipButton>
<GuipButton type="primary" size="medium">中等按钮</GuipButton>
<GuipButton type="primary" size="small">小的按钮</GuipButton>
<GuipButton type="primary" size="mini">迷你按钮</GuipButton>
</div> -->
<div class="ele-item">
<label for="">自定义宽高按钮</label>
<GuipButton type="primary" :btnstyle="btnstyleObj">宽高自定义</GuipButton>
</div>
<div class="ele-item">
<label for="">提示</label>
<GuipButton type="system" @click="openMessage('success')">成功提示</GuipButton>
<GuipButton type="system" @click="openMessage('error')"> 失败提示</GuipButton>
<GuipButton type="system" @click="openMessage('info')">警告提示</GuipButton>
</div>
<div style="width: 600px;">
<h3>表单左右布局直接使用封装好的input</h3>
<!-- 表单左右布局 -->
<GuipInput ref="GuipInput" addClass="w510" v-model="form.username" label="Username" prop="username"
:rules="usernameRules" placeholder="这是自定义默认提11示语" />
</div>
<div style="width: 800px;height: 150px;">
<h3>表单上下布局 (宽度 510 388 用的最多 已有这2种宽度类名设置)</h3>
<GuipInput ref="GuipInput" column="column" addClass="w510" label="age" desc="这是是右侧文案" v-model="form.age"
prop="age" placeholder="这是自定义默认提示语" />
</div>
<div class="ele-item">
<label for="">开关L</label>
<GuipSwitch v-model="switchValue" activeText="开启" inactiveText="关闭" @change="onSwitchChange">
</GuipSwitch>
</div>
<el-button type="primary" @click="submitForm">Submit</el-button>
</el-form>
<div style="width: 100%;margin: 20px 0;height: 20px;background-color: antiquewhite;">
--------------------分割线0------------------------------</div>
<div style="display: flex;" class="ele-item">
<label for="">日期选择器</label>
<el-date-picker v-model="date1" type="daterange" range-separator="" start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
<div ref="ScaleBox" class="ScaleBox">
<!-- Form 组件-->
<!-- @headdenForm="headdenForm" -->
<!-- @changeSelect="changeSelect" -->
<!-- <GuipForm
:fromItem="fromItem"
:formNewList="formList"
:detail="edit"
:disabled="edit"
ref="VabForm"
/>
<div class="cardfooter" style="display: flex;">
<el-button @click="cancellation">取消</el-button>
<el-button @click="save" type="primary">保存</el-button>
</div> -->
</div>
<div class="flex ele-item">
<label for="">一些功能集合</label>
<GuipButton type="primary" @click="openDialog">打开弹框</GuipButton>
<GuipButton type="primary" @click="openLoading" size="page">展示加载动画 2s</GuipButton>
</div>
<div class="flex ele-item">
<label for="">提示信息</label>
<GuipToolTip content="这是一个提示">
<GuipButton type="primary" size="page">悬停查看提示</GuipButton>
</GuipToolTip>
<GuipToolTip placement="bottom" effect="light">
<GuipButton type="primary" size="page">自定义提示内容</GuipButton>
<template #content>
<div style="max-width: 200px">
<h4>自定义标题</h4>
<p>这里可以放任何HTML内容</p>
<el-button size="mini">甚至按钮</el-button>
</div>
</template>
</GuipToolTip>
<GuipToolTip placement="bottom" effect="light" content="点击进入编辑">
<svg-icon :path="require('@/assets/register/tableEdit.svg')" :color="'#8A9099'"
:hoverColor="'#006AFF'" />
</GuipToolTip>
<GuipDialog :dialogVisible="dialogVisible" title="自定义标题" :show-close-button="false"
:show-cancel-button="showCancelButton" @confirm="handleConfirm" @cancel="handleCancel"
@close="handleClose" @dialogVisibleChange="dialogVisibleChange">
<!-- 自定义内容 -->
<div>
<p>这是一个自定义内容的弹框</p>
</div>
</GuipDialog>
</div>
<GuipDialog :dialogVisible="dialogVisible" title="自定义标题" :show-close-button="false"
:show-cancel-button="showCancelButton" @confirm="handleConfirm" @cancel="handleCancel" @close="handleClose"
@dialogVisibleChange="dialogVisibleChange">
<!-- 自定义内容 -->
<div>
<p>这是一个自定义内容的弹框</p>
</div>
</GuipDialog>
</div>
</template>
@ -395,6 +376,38 @@ export default {
},
data() {
return {
tableData3: [{
id: '12987122',
name: '王小虎',
amount1: '234',
amount2: '3.2',
amount3: 10
}, {
id: '12987123',
name: '王小虎',
amount1: '165',
amount2: '4.43',
amount3: 12
}, {
id: '12987124',
name: '王小虎',
amount1: '324',
amount2: '1.9',
amount3: 9
}, {
id: '12987125',
name: '王小虎',
amount1: '621',
amount2: '2.2',
amount3: 17
}, {
id: '12987126',
name: '王小虎',
amount1: '539',
amount2: '4.1',
amount3: 15
}],
tableWidth: 0,
currentPage: 1, //
pageSize: 5, //
total: 0, //
@ -408,6 +421,9 @@ export default {
form: {
username: '',
language: '',
input1: '',
input2: '',
input3: '',
},
languageOptions: [
{ label: 'JavaScript', value: 'js', selectedLabel: 'JavaScripthhhhhhhhhh' },
@ -502,6 +518,44 @@ export default {
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}],
tableData4: [{
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
price: '20',
age: 20,
//
edit_name: '王小虎', edit_address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-02',
name: '王小虎11',
address: '上海市普陀区金沙江路 151811 弄',
price: '10',
age: 30,
edit_name: '王小虎11', edit_address: '上海市普陀区金沙江路 151811 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
price: '200',
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-08',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-06',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-07',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}],
//
columns: [
{ prop: 'name', label: '姓名(带气泡)', popover: true }, //
@ -556,7 +610,7 @@ export default {
label: "广州",
}
],
tableData:[],
tableData: [],
input: 'hahhahah',
defaultValue: 'asdasda',
radio: 3,
@ -573,8 +627,9 @@ export default {
borderRadius: '4px',
},
styleObject: {
width: '200px',
height: '40px'
minWidth: '200px',
maxWidth: '400px',
// height: '40px'
},
styleObject1: {
width: '600px',
@ -620,19 +675,50 @@ export default {
},
methods: {
openMessage(type){
changeInputtest(e) {
console.log(e, '---000changeInputtest');
},
arraySpanMethod({ row, column, rowIndex, columnIndex }) {
console.log(row, column);
if (rowIndex % 2 === 0) {
if (columnIndex === 0) {
return [1, 2];
} else if (columnIndex === 1) {
return [0, 0];
}
}
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
console.log(row, column);
if (columnIndex === 0) {
if (rowIndex % 2 === 0) {
return {
rowspan: 2,
colspan: 1
};
} else {
return {
rowspan: 0,
colspan: 0
};
}
}
},
openMessage(type) {
console.log(type);
//
switch(type){
switch (type) {
case 'success':
this.$Message.success('成功,文案自定义')
break;
break;
case 'error':
this.$Message.error('失败,文案自定义')
break;
break;
case 'info':
this.$Message.info('提示,文案自定义')
break;
break;
}
//
// this.$Message({
@ -666,15 +752,15 @@ export default {
type: 0,
cur_page: 1,
page_size: 5,
},{
headers:{
}, {
headers: {
'AUTH': '3c901fa4a19a7ad9d01238890863d499'
}
}).then(response => {
this.tableLoading = false
this.$nextTick(() => {
that.tableData = response.data.list
console.log(that.tableData,'---that.tableData');
// console.log(that.tableData,'---that.tableData');
// that.type2name = response.data.type2name
that.total = response.data.total
})
@ -740,8 +826,8 @@ export default {
onConfirm(row, prop) {
console.log('确认修改:', row, prop);
this.$message.success('修改成功');
this.$set(this.tableData, row)
console.log(this.tableData, 'this.tableData=====');
this.$set(this.tableData4, row)
console.log(this.tableData4, 'this.tableData=====');
},
//
onCancel(row, prop) {
@ -788,7 +874,7 @@ export default {
console.log(value, 'value===输入框输入得知');
},
handleClear(value) {
this.defaultValue = '这是我清除后给的文案'
this.form.input3 = '这是我清除后给的文案'
// this.handleInput('')
console.log(value, 'value===qinghcu');
},

22
src/views/super/Ranking/RankBatchList.vue

@ -57,7 +57,7 @@
:ref="`popover-${$index}`" :append-to-body="false" :visible-arrow="true"
popper-class="custom-popover" @show="popshow"> -->
<el-popover v-model="row.id_popover" :ref="`popover-${row.id}`"
placement="top" trigger="manual" :append-to-body="false" :visible-arrow="true"
placement="bottom" trigger="manual" :append-to-body="false" :visible-arrow="true"
popper-class="custom-popover" @show="popshow" >
<div v-if="type != 'agent'" class="pop-wrap">
@ -136,10 +136,14 @@
:render-header=" (h, scope) => renderHeaderWithIcon(h, scope, require('@/assets/require.svg')) "
key="top" prop="top" label="代理商排行" width="250" fixed="right">
<template v-slot="{ row, $index }">
<el-popover v-model="row.id_popover_2" :ref="`popover_2-${$index}`" placement="top" trigger="manual"
popper-class="custom-popover" @show="popshow" :append-to-body="false"
:visible-arrow="true"
>
<!-- :fallback-placements="['bottom','top','left']" -->
<el-popover v-model="row.id_popover_2" :ref="`popover_2-${$index}`"
placement="bottom" trigger="manual" :append-to-body="false" :visible-arrow="true"
popper-class="custom-popover" @show="popshow" >
<!-- <el-popover v-model="row.id_popover_2" :ref="`popover_2-${$index}`" trigger="manual"
popper-class="custom-popover" @show="popshow" :append-to-body="false"
:visible-arrow="true"
> -->
<div class="pop-wrap">
<div class="flex-between flex pop-top">
<h3>
@ -150,11 +154,11 @@
<img src="@/assets/register/close.svg">
</span>
</div>
<el-table :data="tableData1" style="width: 100%">
<GuipTable :data="tableData1" style="width: 100%" max-height="218">
<el-table-column prop="sort" width="100" label="排行"></el-table-column>
<el-table-column prop="name" width="200" label="代理商"></el-table-column>
<el-table-column prop="value_1" width="200" label="销售额"></el-table-column>
</el-table>
</GuipTable>
</div>
<span v-if="top_list[row.id]" slot="reference" class="flex">
No.1 {{ top_list[row.id]['name'] }}
@ -611,8 +615,8 @@ export default {
}
::v-deep .custom-popover {
position: fixed !important;
max-height: 290px;
overflow-y: auto;
// max-height: 290px;
// overflow-y: auto;
margin-top: 0 !important;
margin-left: 0 !important;
transform: none !important;

15
src/views/super/Ranking/Ranking.vue

@ -1,6 +1,9 @@
<template>
<div class="siteSetting-wrap">
<RankingLeft/>
<!-- <RankingLeft /> -->
<SliderMenu :menuData= "rankMenuData" />
<!-- <SliderMenu :menuData= "rankMenuData" :default-collapsed="false"
@collapse-change="handleCollapseChange"/> -->
<!-- 主内容区域 -->
<main class="main-content" ref="scrollContainer">
<router-view></router-view>
@ -10,7 +13,9 @@
</template>
<script>
import Footer from '@/components/Footer.vue';
import RankingLeft from '@/components/super/RankingLeft.vue'
import SliderMenu from '@/components/SliderMenu.vue';
// import RankingLeft from '@/components/super/RankingLeft.vue'
import { mapState } from 'vuex';
export default {
//
@ -18,13 +23,17 @@ export default {
props: [''],
components: {
Footer,
RankingLeft,
SliderMenu,
// RankingLeft,
},
data() {
return {
path: ''
}
},
computed: {
...mapState(['rankMenuData']), // state count
},
mounted() {
this.path = this.$route.path;
if(this.$route.query.str) localStorage.setItem('token', this.$route.query.str)

17
vue.config.js

@ -1,4 +1,5 @@
const path = require('path');
const TerserPlugin = require('terser-webpack-plugin');
module.exports = {
// publicPath: '/new/',
devServer: {
@ -25,6 +26,22 @@ module.exports = {
},
],
},
optimization: {
minimizer: [
new TerserPlugin({
terserOptions: {
format: {
comments: /^\**!|@preserve|@license|@cc_on/i // 保留特定注释
}
},
extractComments: false // 不提取注释到单独文件
})
]
},
output: {
filename: '[name].[contenthash:8].js',
chunkFilename: '[name].[contenthash:8].js'
},
resolve:{
alias:{
'@':path.resolve(__dirname, 'src/')

Loading…
Cancel
Save