system-clients 3.1.93-aode → 3.1.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/.eslintrc.js +16 -16
  2. package/{dist/static/.gitkeep → .gradle/5.2.1/gc.properties} +0 -0
  3. package/.gradle/5.5/fileHashes/fileHashes.lock +0 -0
  4. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  5. package/.gradle/buildOutputCleanup/cache.properties +2 -2
  6. package/SystemClient.iml +12 -12
  7. package/build/webpack.base.conf.js +4 -5
  8. package/package.json +4 -4
  9. package/src/components/Main.vue +107 -26
  10. package/src/components/TabButton.vue +201 -0
  11. package/src/components/Tabs.vue +67 -0
  12. package/src/components/equipment/EquipmentManage.vue +1 -1
  13. package/src/components/equipment/PcAdd.vue +5 -5
  14. package/src/components/equipment/PcList.vue +5 -5
  15. package/src/components/equipment/PhoneAdd.vue +4 -4
  16. package/src/components/equipment/PhoneList.vue +4 -4
  17. package/src/components/equipment/PosAdd.vue +231 -45
  18. package/src/components/equipment/PosList.vue +198 -68
  19. package/src/components/equipment/PosManage.vue +80 -9
  20. package/src/components/equipment/PosManageBoth.vue +125 -0
  21. package/src/components/equipment/PosParamAdd.vue +236 -0
  22. package/src/components/equipment/PosParamList.vue +121 -0
  23. package/src/components/equipment/PosParamManage.vue +51 -0
  24. package/src/components/parammanage/ParamManage.vue +2 -2
  25. package/src/components/parammanage/ParamPage.vue +7 -7
  26. package/src/components/parammanage/SinglePage.vue +4 -4
  27. package/src/components/server/ImageVieweTest.vue +56 -0
  28. package/src/components/server/ImageViewer.vue +350 -0
  29. package/src/components/server/Login.vue +734 -711
  30. package/src/components/server/PcdBuildingSelect.vue +241 -0
  31. package/src/components/server/ResSelect.vue +5 -0
  32. package/src/components/server/ResSelectGroup.vue +155 -118
  33. package/src/components/server/RightTree.vue +262 -257
  34. package/src/plugins/GetLoginInfoService.js +514 -514
  35. package/src/styles/less/aofeng/standard.less +446 -60
  36. package/src/styles/less/aofeng/themeOne/BinaryTemplate.less +13 -13
  37. package/src/styles/less/aofeng/themeOne/systemStyle.less +2650 -2650
  38. package/src/styles/less/manageStyle/manageStyle/manageChile.less +180 -0
  39. package/src/styles/less/manageStyle/manageStyle/manageStyle.less +1102 -0
  40. package/src/styles/less/manageStyle/manageStyle/safeStyle.less +498 -0
  41. package/src/styles/less/tables.less +50 -0
  42. package/src/styles/less/type.less +16 -3
  43. package/src/styles/less/variables.less +6 -3
  44. package/src/system.js +10 -0
  45. package/static/{ewmlogo.png → logo.png} +0 -0
  46. package/static/newStyle/a.png +0 -0
  47. package/static/newStyle/about-us.png +0 -0
  48. package/yarn-error.log +6896 -0
  49. package/dist/static/batchleft.png +0 -0
  50. package/dist/static/batchright.png +0 -0
  51. package/dist/static/bluemainbg.jpg +0 -0
  52. package/dist/static/huangtengbiaozhi.png +0 -0
  53. package/dist/static/login_bg.jpg +0 -0
  54. package/dist/static/login_title.png +0 -0
  55. package/dist/static/login_title1.png +0 -0
  56. package/dist/static/loginbg.jpg +0 -0
  57. package/dist/static/loginlogo.png +0 -0
  58. package/dist/static/main_logo.png +0 -0
  59. package/dist/static/mainbg.jpg +0 -0
  60. package/dist/static/menulogo.png +0 -0
  61. package/dist/static/newmainbg.jpg +0 -0
  62. package/dist/static/psicon.png +0 -0
  63. package/dist/static/singleleft.png +0 -0
  64. package/dist/static/singleright.png +0 -0
  65. package/dist/static/treeopen.png +0 -0
  66. package/dist/static/treeout.png +0 -0
  67. package/dist/static/treeset.png +0 -0
  68. package/dist/static/usericon.png +0 -0
  69. package/dist/static/xinxi.png +0 -0
  70. package/static/aodelogo.png +0 -0
  71. package/static/aodenewlogo.png +0 -0
package/.eslintrc.js CHANGED
@@ -1,16 +1,16 @@
1
- module.exports = {
2
- root: true,
3
- // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
4
- extends: 'standard',
5
- // required to lint *.vue files
6
- plugins: [
7
- 'eslint-plugin-html'
8
- ],
9
- // add your custom rules here
10
- 'rules': {
11
- // allow paren-less arrow functions
12
- 'arrow-parens': 0,
13
- // allow debugger during development
14
- 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
15
- }
16
- }
1
+ // module.exports = {
2
+ // root: true,
3
+ // // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
4
+ // extends: 'standard',
5
+ // // required to lint *.vue files
6
+ // plugins: [
7
+ // 'eslint-plugin-html'
8
+ // ],
9
+ // // add your custom rules here
10
+ // 'rules': {
11
+ // // allow paren-less arrow functions
12
+ // 'arrow-parens': 0,
13
+ // // allow debugger during development
14
+ // 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
15
+ // }
16
+ // }
@@ -1,2 +1,2 @@
1
- #Wed Jul 14 16:55:53 CST 2021
2
- gradle.version=5.5
1
+ #Mon Jul 19 11:31:20 CST 2021
2
+ gradle.version=5.5
package/SystemClient.iml CHANGED
@@ -1,12 +1,12 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module external.linked.project.id="SystemClient" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="3.0.49" type="JAVA_MODULE" version="4">
3
- <component name="NewModuleRootManager" inherit-compiler-output="true">
4
- <exclude-output />
5
- <content url="file://$MODULE_DIR$">
6
- <excludeFolder url="file://$MODULE_DIR$/.gradle" />
7
- <excludeFolder url="file://$MODULE_DIR$/build" />
8
- </content>
9
- <orderEntry type="inheritedJdk" />
10
- <orderEntry type="sourceFolder" forTests="false" />
11
- </component>
12
- </module>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module external.linked.project.id="SystemClient" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="3.0.49" type="JAVA_MODULE" version="4">
3
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
4
+ <exclude-output />
5
+ <content url="file://$MODULE_DIR$">
6
+ <excludeFolder url="file://$MODULE_DIR$/.gradle" />
7
+ <excludeFolder url="file://$MODULE_DIR$/build" />
8
+ </content>
9
+ <orderEntry type="inheritedJdk" />
10
+ <orderEntry type="sourceFolder" forTests="false" />
11
+ </component>
12
+ </module>
@@ -37,11 +37,10 @@ module.exports = {
37
37
  `${projectRoot}\\examples`,
38
38
  `${projectRoot}\\test`,
39
39
  `${projectRoot}\\node_modules\\vue-client\\src`,
40
- `${projectRoot}\\node_modules\\vue-strap\\src`
41
- ],
42
- options: {
43
- presets: ['es2015']
44
- }
40
+ `${projectRoot}\\node_modules\\vue-strap\\src`,
41
+ `${projectRoot}\\node_modules\\ldap-clients\\src`,
42
+ `${projectRoot}\\node_modules\\sale-client\\src`
43
+ ]
45
44
  },
46
45
  {
47
46
  test: /\.json$/,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "system-clients",
3
- "version": "3.1.93-aode",
3
+ "version": "3.1.95",
4
4
  "description": "系统基础框架",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -19,6 +19,7 @@
19
19
  "dependencies": {
20
20
  "base64-js": "^1.3.0",
21
21
  "js-base64": "^2.4.9",
22
+ "jsencrypt": "^3.0.0-rc.1",
22
23
  "less": "^2.7.1",
23
24
  "less-loader": "^2.2.3",
24
25
  "src": "^1.1.2",
@@ -75,7 +76,7 @@
75
76
  "style": "0.0.3",
76
77
  "style-loader": "^0.20.3",
77
78
  "url-loader": "^0.5.7",
78
- "vue-client": "1.21.60",
79
+ "vue-client": "1.24.33",
79
80
  "vue-hot-reload-api": "^1.2.0",
80
81
  "vue-html-loader": "^1.0.0",
81
82
  "vue-loader": "^8.2.1",
@@ -83,9 +84,8 @@
83
84
  "vue-router": "^0.7.13",
84
85
  "vue-strap": "^1.0.9",
85
86
  "vue-style-loader": "^1.0.0",
86
- "vue-validator": "^3.0.0-alpha.2",
87
+ "vue-validator": "2.1.7",
87
88
  "webpack": "^1.12.2",
88
- "jsencrypt": "3.0.0-rc.1",
89
89
  "webpack-dev-middleware": "^1.4.0",
90
90
  "webpack-hot-middleware": "^2.6.0",
91
91
  "webpack-merge": "^0.8.3"
@@ -1,25 +1,76 @@
1
1
  <template>
2
- <div @click="hindsetting1()">
2
+ <div @click="hindsetting1()" :class="{'with-watermark':showwatermakeflag}">
3
+ <!-- <div class="system-main" id="box" v-el:box v-if="!isManger">-->
4
+ <!-- <div class="system-logo" style="height: auto">-->
5
+ <!-- <img :src="imgs.logoimg" alt=""/>-->
6
+ <!-- <label>{{systemname}}</label>-->
7
+ <!-- <div class="system-logo-chi" >-->
8
+ <!-- <div v-if="userpane" class="auto system-logo-prompt" style="float: right">-->
9
+ <!-- <span>{{orgpathnames}}</span>-->
10
+ <!-- </div>-->
11
+ <!-- &lt;!&ndash;<div class="system-logo-chi-img1" style="float: right" @mouseenter="mouseenteruser()" @mouseleave="mouseleaveuser()"></div>&ndash;&gt;-->
12
+ <!-- <span style="float: right; padding-top: 2px" @mouseenter="mouseenteruser()" @mouseleave="mouseleaveuser()" class="system-logo-chi-span-1">{{$login.f.name}}</span>-->
13
+ <!-- <span style="border-left: 1px solid;float: right;padding-top: 2px" class="system-logo-chi-span-1"> <img src="../../static/newStyle/login-f.png" height="20" width="20"> </span>-->
14
+ <!-- <a href="index.html" onclick="return confirm('您确定要退出系统吗?');" style="float: right;padding-top: 2px">-->
15
+ <!-- <img src="../../static/newStyle/system-off.png" alt="" >-->
16
+ <!-- <span class="system-logo-chi-span-1">退出系统</span>-->
17
+ <!-- </a>-->
18
+ <!-- <div style="float: right" :class="{'dropstyle':setting,'dropstyle-1':!setting}">-->
19
+ <!-- <dropdown class="auto" >-->
20
+ <!-- <span data-toggle="dropdown" @click="hindsetting()" >-->
21
+ <!-- <img :src="srcsetting" alt=""><span>系统设置</span>-->
22
+ <!-- </span>-->
23
+ <!-- <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-up dropstyle-chi" >-->
24
+ <!-- &lt;!&ndash; <li>系统信息及设置</li>&ndash;&gt;-->
25
+ <!-- <li style="color: #ffffff;white-space: nowrap" @click="show=true">修改密码</li>-->
26
+ <!-- <li style="color: #ffffff;white-space: nowrap" @click="AddChangeMsgShow=true">系统版本</li>-->
27
+ <!-- </ul>-->
28
+ <!-- </dropdown>-->
29
+ <!-- </div>-->
3
30
 
4
- <div class='flex-row system-main' id="box" v-el:box v-if="!isManger">
31
+ <!-- </div>-->
32
+ <!-- </div>-->
33
+ <!-- <div class="system-left tree-flex" :class="{'system-left-1': !treeOrIcon}" id="top" v-el:top >-->
34
+ <!-- <div class="system-left-chi" :class="{'system-left-icon': !treeOrIcon}" >-->
35
+ <!-- <div class="span system-left-tree" >-->
36
+ <!-- <left-tree :functions='functions.functions' :userid='userid' @isnodo="isnodo" :treeOrIcon="treeOrIcon" :tabs="tabs" v-ref:tree></left-tree>-->
37
+ <!-- &lt;!&ndash; <icon-tree :functions='functions.functions' :userid='userid' v-show="!treeOrIcon"></icon-tree>&ndash;&gt;-->
38
+ <!-- </div>-->
39
+ <!-- </div>-->
40
+ <!-- <div class="system-foot-stretch" >-->
41
+ <!-- <a @click="changeShow()"><img src="../../static/images/lefticon/菜单伸缩.png" alt=""></a>-->
42
+ <!-- </div>-->
43
+ <!-- </div>-->
44
+
45
+
46
+ <!-- <div class="system-right" :class="{'system-right-1': !treeOrIcon}" id="bottom" v-el:bottom>-->
47
+ <!-- <div class="span">-->
48
+ <!-- <echarts-box v-if="$refs.mic.tabs.length === 0"></echarts-box>-->
49
+ <!-- <dynamic :comps='[]' :showup="true" :showhide="false" name='main' :selecttab.sync="selecttab" @tab-changed="tabChange" @tabscg="tabcg" v-ref:mic v-show="!($refs.mic.tabs.length === 0)"></dynamic>-->
50
+ <!-- </div>-->
51
+ <!-- </div>-->
52
+ <!-- <div class="system-foot" v-el:bottom>-->
53
+
54
+ <!-- <div class="system-foot-box">-->
5
55
 
56
+ <!-- </div>-->
57
+ <!-- </div>-->
58
+ <!-- </div>-->
59
+ <div class='flex-row system-main' id="box" v-el:box v-if="!isManger">
6
60
  <div class="auto " :class="{'login-operator1':$refs.mic.tabs.length === 0,'login-operator':$refs.mic.tabs.length != 0}">
7
- <span class="glyphicon glyphicon-asterisk" style="color:#a1d0f5"></span>
8
- <span>组织编码:</span>
9
- <label style="margin-right:14px;">{{$login.f.number}}</label>
10
- <span class="glyphicon glyphicon-user" style="color:#a1d0f5"></span>
11
- <span>登录人:</span>
12
- <label>{{orgpathnames}}</label>
61
+ <span>
62
+ <img
63
+ src="../assets/people.png" height="15" width="15">
64
+ 登录人:</span>
65
+ <label>{{orgpathnames}}</label>
13
66
  </div>
14
67
  <div class="system-left tree-flex" :class="{'tree-flex-icon': !treeOrIcon}" id="top" v-el:top >
15
68
  <div class="system-left-chi" :class="{'system-left-icon': !treeOrIcon}" >
16
69
  <div class="span system-left-tree " style="height:85%">
17
- <div class="logopicaode" >
18
- <div class="aodeloginedlogo"></div>
19
- </div>
20
- <h3 style="margin-bottom: 12px;height: 35px;">&nbsp;&nbsp;</h3>
70
+ <h3>{{systemname}}</h3>
21
71
  <!-- <div class="span" style="margin-bottom:10px;padding-bottom:5px;padding-top:5px;flex: 1;border-top: 1px solid #e5e5e5;border-bottom: 1px solid #e5e5e5;">-->
22
72
  <left-tree :functions='functions.functions' :userid='userid' @isnodo="isnodo" v-show="treeOrIcon" :tabs="tabs" v-ref:tree></left-tree>
73
+ <!--&lt;!&ndash; <icon-tree :functions='functions.functions' :userid='userid' v-show="!treeOrIcon"></icon-tree>&ndash;&gt;-->
23
74
  </div>
24
75
 
25
76
  <div class="tree-flex-footer">
@@ -70,6 +121,47 @@
70
121
  import vue from 'vue'
71
122
  import co from 'co'
72
123
 
124
+ let getwartermakr = async function(self){
125
+ let param = {
126
+ tablename:'t_singlevalue',
127
+ condition: " 1=1 and name=\'水印内容\'"
128
+ };
129
+ let result =await self.$resetpost('rs/sql/saleSingleTable',{data:param},{resolveMsg: null, rejectMsg: null});
130
+ if(result && result.data.length>0){
131
+ self.showwatermakeflag = true;
132
+ createWaterMark(result.data[0].value);
133
+ }else{
134
+ self.showwatermakeflag = false;
135
+ }
136
+ }
137
+
138
+ let createWaterMark = function(userName){
139
+ let style;
140
+ if (style) style.remove();
141
+ let width = window.parseInt(document.body.clientWidth);
142
+ let canvasWidth = width / window.parseInt(width / 320);
143
+ let fontFamily = window.getComputedStyle(document.body)["font-family"];
144
+ let canvas = document.createElement("canvas");
145
+ canvas.width = canvasWidth;
146
+ canvas.height = 200;
147
+ let ctx = canvas.getContext("2d");
148
+ ctx.rotate((-20 * Math.PI) / 180);
149
+ ctx.font = `20px ${fontFamily}`;
150
+ ctx.fillStyle = "rgba(8,8,8,.1)";
151
+ ctx.fillText(userName, 50, 200);
152
+ let imgSrc = canvas.toDataURL("image/png");
153
+ style = document.createElement("style");
154
+ style.innerHTML = `.with-watermark:before{
155
+ content: "";
156
+ width: 100%;
157
+ height: 100%;
158
+ display: block;
159
+ position: absolute;
160
+ background-image: url("${imgSrc}");
161
+ }`;
162
+ (document.head.append || document.head.appendChild).apply(document.head, [style]);
163
+ }
164
+
73
165
  window.onunload = () => {
74
166
  vue.http({url: `rs/user/update/${this.$login.f.ename}`, method: 'GET'})
75
167
  }
@@ -99,8 +191,8 @@
99
191
  tabs:[], //已初始化页签数组
100
192
  selecttab:'',
101
193
  setting:true,
102
- srcsetting:'../../static/newStyle/setting.png'
103
-
194
+ srcsetting:'../../static/newStyle/setting.png',
195
+ showwatermakeflag:false,
104
196
  // headerHint: true, // 右侧顶部提示信息
105
197
  // value: 25645.26,
106
198
  // AddChangeMsgShow: false,
@@ -108,6 +200,7 @@
108
200
  }
109
201
  },
110
202
  ready () {
203
+ getwartermakr(this);
111
204
  let component = this.$login.getUrlCompileParames('component')
112
205
  if (component) {
113
206
  this.isManger = true
@@ -453,18 +546,6 @@
453
546
  .tree-img {
454
547
  font-size: 1.2em;
455
548
  }
456
- .aodeloginedlogo {
457
- background:url(../../static/aodenewlogo.png);
458
- background-size:80%;
459
- background-repeat: no-repeat;
460
- }
461
- .logopicaode{
462
- width: 100%;
463
- height: 61px;
464
- float: left;
465
- margin-left: 2.5%;
466
- margin-top: 10px;
467
- }
468
549
 
469
550
  /*将较长信息截断显示,鼠标悬停显示全部信息*/
470
551
  .cutout50 {
@@ -0,0 +1,201 @@
1
+ <template>
2
+ <div class='flex foot_tabset1'>
3
+ <!-- Nav tabs -->
4
+ <ul class="nav nav-{{navStyle}}" role="tablist" style="margin-left: 1%">
5
+ <li style="margin-right: 10px;height: 100%"
6
+ :id="'vc-tabset-li-'+attach +'-'+$index"
7
+ v-for="r in renderData"
8
+ @click.prevent="handleTabListClick($index, r)"
9
+ :disabled="r.disabled"
10
+ >
11
+ <button v-if="button" class="button_new" style="width: max-content" v-bind:class="{
12
+ 'btn-succ': ($index === active),
13
+ 'disabled': r.disabled
14
+ }">
15
+ <slot name="header">
16
+ {{ r.header }}
17
+ </slot>
18
+ <!-- 关闭按钮 -->
19
+ <span class="glyphicon glyphicon-remove" style="margin-left: 15px;" @click="deletetTab(r)" v-if="close"
20
+ :id="'vc-tabset-close-'+attach +'-'+$index"></span>
21
+ </button>
22
+ <span v-if="!button" v-bind:class="{
23
+ 'span-active': ($index === active),
24
+ 'span-disable': ($index !== active)
25
+ }">
26
+ <slot name="header">
27
+ {{ r.header }}
28
+ </slot>
29
+ <!-- 关闭按钮 -->
30
+ <span class="glyphicon glyphicon-remove" style="margin-left: 15px;" @click="deletetTab(r)" v-if="close"
31
+ :id="'vc-tabset-close-'+attach +'-'+$index"></span>
32
+ </span>
33
+
34
+ </li>
35
+ </ul>
36
+
37
+ <!-- Tab panes -->
38
+ <div class="tab-content span" v-el:tab-content>
39
+ <slot></slot>
40
+ </div>
41
+ </div>
42
+ </template>
43
+
44
+ <script>
45
+ import {remove} from 'vue-client/src/stores/Remove.js'
46
+
47
+ export default {
48
+ props: {
49
+ navStyle: {
50
+ type: String,
51
+ default: 'tabs'
52
+ },
53
+ effect: {
54
+ type: String,
55
+ default: 'fadein'
56
+ },
57
+ active: {
58
+ type: Number,
59
+ default: 0
60
+ },
61
+ close: {
62
+ type: Boolean,
63
+ default: false
64
+ },
65
+ button: {
66
+ type: Boolean,
67
+ default: true
68
+ },
69
+ attach: {
70
+ type: String,
71
+ default: 'vuestrap'
72
+ },
73
+ content: {}
74
+ },
75
+ ready() {
76
+ remove.$on('remove', (name) => {
77
+ console.log('tabset收$on 到的名字为:', name)
78
+ this.$removeTab(name)
79
+ })
80
+ },
81
+ data() {
82
+ return {
83
+ // 数据格式:{comp, header,disabled}
84
+ // - comp: 当前页签对应的tab组件
85
+ renderData: []
86
+ }
87
+ },
88
+ methods: {
89
+ handleTabListClick(index, el) {
90
+ // 没有打开过, 则添加显示
91
+ this.$dispatch('tab-changed')
92
+ if (!this.$parent.show.includes(el.header)) {
93
+ this.$parent.show.push(el.header)
94
+ }
95
+ if (el.comp._scope && el.comp._scope.tab) {
96
+ this.$dispatch('tab-changed', el.comp._scope.tab.comp.name)
97
+ }
98
+ if (!el.disabled) this.active = index
99
+ },
100
+ // deletetab函数为自己添加
101
+ deletetTab(el) {
102
+ this.$removeTab(el.comp._scope.tab.comp.name)
103
+ remove.$emit('delete', el.comp._scope.tab.comp.name)
104
+ },
105
+ // 根据删除也下标,修改所有页签的下标
106
+ modifyAllIndex(index) {
107
+ let cur = this.active
108
+ this.$nextTick(() => {
109
+ // 关闭页签以后的多有页签的的下标向前挪动一位,之前的页签不动
110
+ for (var i = index; i < this.renderData.length; i++) {
111
+ this.renderData[i].comp.index -= 1
112
+ }
113
+ // 修改激活页
114
+ // 获取当前激活页签下标,关闭在当前激活页之后(包含当前激活页),当前激活页下标不变
115
+ // 当关闭当前激活页之前(激活页向前移动一位)
116
+ if (this.active > index || this.active === this.renderData.length) {
117
+ this.active = cur - 1
118
+ } else if (cur === 0) {
119
+ this.active = 0
120
+ } else {
121
+ this.active = cur
122
+ }
123
+ if (this.active === -1) {
124
+ this.$dispatch('tab-changed', null)
125
+ } else {
126
+ this.$dispatch('tab-changed', this.renderData[this.active].comp._scope.tab.comp.name)
127
+ }
128
+ })
129
+ }
130
+ },
131
+ events: {
132
+ 'delete'(index) {
133
+ this.modifyAllIndex(index)
134
+ }
135
+ }
136
+ }
137
+ </script>
138
+
139
+ <style scoped>
140
+ ul > li > a {
141
+ position: relative;
142
+ }
143
+
144
+ ul > li > a > span {
145
+ display: none;
146
+ }
147
+
148
+ .span-active {
149
+ width: max-content;
150
+ border-bottom: 3px solid #5ac0d9;
151
+ height: 100%;
152
+ display: inline-block;
153
+ font-size: 1.5rem;
154
+ color: #666;
155
+ font-weight: 550;
156
+ padding: 0px 10px;
157
+ padding-top: 3px;
158
+ vertical-align: bottom;
159
+ }
160
+
161
+ .span-disable {
162
+ width: max-content;
163
+ height: 100%;
164
+ display: inline-block;
165
+ font-size: 1.5rem;
166
+ color: #666;
167
+ font-weight: 550;
168
+ padding: 0px 10px;
169
+ padding-top: 3px;
170
+ vertical-align: bottom;
171
+ }
172
+
173
+ /*ul > li > a:hover > span {*/
174
+ /*display: initial;*/
175
+ /*position: absolute;*/
176
+ /*right: 0;*/
177
+ /*top: 35%;*/
178
+ /*border: 1px solid #EAEAEA;*/
179
+ /*}*/
180
+ /*ul > li > a:hover > span:hover {*/
181
+ /*border: 1px solid #EAEAEA;*/
182
+ /*color: #5cb95c;*/
183
+ /*}*/
184
+ ul > li > button {
185
+ background-color: #FFFFFF;
186
+ border-radius: 4px;
187
+ color: #999;
188
+ border: 1px solid #5cb95c;
189
+ }
190
+
191
+ .btn-succ {
192
+ background-color: #6aa6e2;
193
+ border-radius: 4px;
194
+ color: #fff;
195
+ }
196
+
197
+ .foot_tabset1 > .nav {
198
+ /*overflow-x: scroll;*/
199
+ white-space: nowrap;
200
+ }
201
+ </style>
@@ -0,0 +1,67 @@
1
+ <template>
2
+ <div role="tabpanel" class="tab-pane"
3
+ v-bind:class="{hide:!show}"
4
+ v-show="show"
5
+ :transition="transition"
6
+ >
7
+ <slot></slot>
8
+ </div>
9
+ </template>
10
+
11
+ <script>
12
+ import coerceBoolean from 'vue-client/src/vue-strap/src/utils/coerceBoolean.js'
13
+
14
+ export default {
15
+ props: {
16
+ header: {
17
+ type: String
18
+ },
19
+ disabled: {
20
+ type: Boolean,
21
+ coerce: coerceBoolean,
22
+ default: false
23
+ }
24
+ },
25
+ data () {
26
+ return {
27
+ index: 0,
28
+ show: false
29
+ }
30
+ },
31
+ watch: {
32
+ 'header' (val) {
33
+ // header变化时,通知tabset
34
+ let data = this.$parent.renderData.find((v) => v.comp === this)
35
+ data.header = val
36
+ }
37
+ },
38
+ computed: {
39
+ show () {
40
+ return (this.$parent.active === this.index)
41
+ },
42
+ transition () {
43
+ return this.$parent.effect
44
+ }
45
+ },
46
+ created () {
47
+ this.$parent.renderData.push({
48
+ comp: this,
49
+ header: this.header,
50
+ disabled: this.disabled
51
+ })
52
+ },
53
+ ready () {
54
+ // 找到当前tab的索引
55
+ this.index = this.$parent.$children.findIndex((v) => v.$el === this.$el)
56
+ },
57
+ beforeDestroy () {
58
+ this.$parent.renderData.splice(this.index, 1)
59
+ }
60
+ }
61
+ </script>
62
+
63
+ <style scoped>
64
+ .tab-content > .tab-pane {
65
+ display: block;
66
+ }
67
+ </style>
@@ -4,7 +4,7 @@
4
4
  <div class="form-horizontal select-overspread" style="background: white; padding: 0 1%;">
5
5
  <div class="row">
6
6
  <div class="col-sm-2 form-group">
7
- <label class="font_normal_body">终端类型</label>
7
+ <label class="font_normal_body" title="参数管理:终端类型">终端类型</label>
8
8
  <v-select id="f_charge_type"
9
9
  v-model="model.f_equipment_type"
10
10
  placeholder='终端类型'
@@ -1,23 +1,23 @@
1
1
  <template>
2
- <div class="auto select-overspread">
2
+ <div class="row select-overspread">
3
3
  <validator name='v'>
4
4
  <ul class="nav nav-tabs" >
5
5
  <li role="presentation" class="active"><a href="#">PC端MAC</a></li>
6
6
  </ul>
7
7
  <form class="form-horizontal">
8
- <div class="col-sm-6">
8
+ <div class="col-sm-6 form-group">
9
9
  <label class="font_normal_body">使用人员</label>
10
10
  <input type="text" style="width: 60%" class="input_search" v-model="model.f_username" placeholder="使用人员" >
11
11
  </div>
12
- <div class="col-sm-6">
12
+ <div class="col-sm-6 form-group">
13
13
  <label class="font_normal_body">所属地址</label>
14
14
  <input type="text" style="width: 60%" class="input_search" v-model="model.f_mac_outlets" placeholder="所属地址" >
15
15
  </div>
16
- <div class="col-sm-6">
16
+ <div class="col-sm-6 form-group">
17
17
  <label class="font_normal_body">mac地址</label>
18
18
  <input type="text" style="width: 60%" class="input_search" v-model="model.f_mac_number" placeholder="mac地址" >
19
19
  </div>
20
- <div class="col-sm-6">
20
+ <div class="col-sm-6 form-group">
21
21
  <label class="font_normal_body">使用公司</label>
22
22
 
23
23
  <res-select restype='organization'
@@ -4,7 +4,7 @@
4
4
  <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
5
  <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
6
  <div class="row">
7
- <div class="col-sm-3">
7
+ <div class="col-sm-3 form-group">
8
8
  <label class="font_normal_body">使用公司</label>
9
9
  <res-select restype='organization'
10
10
  is-mul="false"
@@ -13,12 +13,12 @@
13
13
  </res-select>
14
14
  </div>
15
15
 
16
- <div class="col-sm-3" >
16
+ <div class="col-sm-3 form-group" >
17
17
  <label class="font_normal_body">使用人员</label>
18
18
  <input type="text" class="input_search" style="width:60%" v-model="model.f_username"
19
19
  condition="f_username like '%{}%'" placeholder="使用人员">
20
20
  </div>
21
- <div class="col-sm-3" >
21
+ <div class="col-sm-3 form-group" >
22
22
  <label class="font_normal_body">所属地址</label>
23
23
  <input type="text" class="input_search" style="width:60%" v-model="model.f_mac_outlets"
24
24
  condition="f_mac_outlets like '%{}%'" placeholder="所属地址">
@@ -31,7 +31,7 @@
31
31
  </div>
32
32
  </div>
33
33
  <div class="row" v-show="$parent.$parent.criteriaShow">
34
- <div class="col-sm-3" >
34
+ <div class="col-sm-3 form-group" >
35
35
  <label class="font_normal_body">MAC地址</label>
36
36
  <input type="text" class="input_search" style="width:60%" v-model="model.f_mac_number"
37
37
  condition="f_mac_number like '%{}%'" placeholder="MAC地址">
@@ -58,7 +58,7 @@
58
58
  <td style="text-align:center">{{row.f_mac_outlets}}</td>
59
59
  <td style="text-align:center">{{row.f_mac_number}}</td>
60
60
  <td style="text-align:center">
61
- <button class="btn btn-link" @click.stop="$parent.$parent.$parent.del(row)">删除</button>
61
+ <button class="btn btn-danger" @click.stop="$parent.$parent.$parent.del(row)">删除</button>
62
62
  </td>
63
63
  </tr>
64
64
  </template>