system-clients 3.2.1-26 → 3.2.1-27
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.
- package/.eslintrc.js +16 -16
- package/SystemClient.iml +8 -1
- package/build/webpack.base.conf.js +85 -85
- package/package.json +1 -1
- package/src/App.vue +24 -24
- package/src/components/Main.vue +123 -2
- package/src/components/TabButton.vue +201 -201
- package/src/components/addressManage/AddressCascadingMenu.vue +145 -0
- package/src/components/equipment/EquipmentManage.vue +65 -65
- package/src/components/equipment/PhoneAdd.vue +25 -12
- package/src/components/equipment/PhoneList.vue +30 -20
- package/src/components/equipment/PosAdd.vue +323 -323
- package/src/components/equipment/PosList.vue +294 -294
- package/src/components/equipment/PosManage.vue +138 -138
- package/src/components/equipment/PosManageBoth.vue +125 -125
- package/src/components/equipment/PosParamAdd.vue +236 -236
- package/src/components/equipment/PosParamList.vue +121 -121
- package/src/components/equipment/PosParamManage.vue +51 -51
- package/src/components/server/Login.vue +835 -828
- package/src/filiale/rizhao/LeftTree.vue +111 -111
- package/src/filiale/rizhao/Main.vue +606 -606
- package/src/filiale/rizhao/system.js +14 -14
- package/src/styles/less/aofeng/themeOne/systemStyle.less +2650 -2650
- package/yarn-error.log +128 -128
- package/.gradle/4.4/fileChanges/last-build.bin +0 -0
- package/.gradle/4.4/fileHashes/fileHashes.bin +0 -0
- package/.gradle/4.4/fileHashes/fileHashes.lock +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
|
+
// }
|
package/SystemClient.iml
CHANGED
@@ -1,2 +1,9 @@
|
|
1
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" type="JAVA_MODULE" version="4"
|
2
|
+
<module external.linked.project.id="SystemClient" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" type="JAVA_MODULE" version="4">
|
3
|
+
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
4
|
+
<exclude-output />
|
5
|
+
<content url="file://$MODULE_DIR$" />
|
6
|
+
<orderEntry type="inheritedJdk" />
|
7
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
8
|
+
</component>
|
9
|
+
</module>
|
@@ -1,85 +1,85 @@
|
|
1
|
-
var path = require('path')
|
2
|
-
var cssLoaders = require('./css-loaders')
|
3
|
-
var projectRoot = path.resolve(__dirname, '../')
|
4
|
-
|
5
|
-
module.exports = {
|
6
|
-
entry: {
|
7
|
-
app: './src/main.js'
|
8
|
-
},
|
9
|
-
output: {
|
10
|
-
path: path.resolve(__dirname, '../dist/mergeUser'),
|
11
|
-
publicPath: 'mergeUser/',
|
12
|
-
filename: '[name].js'
|
13
|
-
},
|
14
|
-
resolve: {
|
15
|
-
extensions: ['', '.js', '.vue'],
|
16
|
-
fallback: [path.join(__dirname, '../node_modules')],
|
17
|
-
alias: {
|
18
|
-
'src': path.resolve(__dirname, '../src'),
|
19
|
-
'test': path.resolve(__dirname, '../test')
|
20
|
-
}
|
21
|
-
},
|
22
|
-
resolveLoader: {
|
23
|
-
fallback: [path.join(__dirname, '../node_modules')]
|
24
|
-
},
|
25
|
-
module: {
|
26
|
-
loaders: [
|
27
|
-
{
|
28
|
-
test: /\.vue$/,
|
29
|
-
loader: 'vue'
|
30
|
-
},
|
31
|
-
{
|
32
|
-
test: /\.js$/,
|
33
|
-
loader: 'babel',
|
34
|
-
include: [
|
35
|
-
/src/,
|
36
|
-
/build/,
|
37
|
-
/examples/,
|
38
|
-
/test/,
|
39
|
-
/node_modules\/vue-client\/src/,
|
40
|
-
/node_modules\/vue-strap\/src/,
|
41
|
-
/node_modules\/system-clients\/src/,
|
42
|
-
/node_modules\/ldap-clients\/src/,
|
43
|
-
/node_modules\/address-client\/src/
|
44
|
-
],
|
45
|
-
options: {
|
46
|
-
presets: ['es2015']
|
47
|
-
}
|
48
|
-
},
|
49
|
-
{
|
50
|
-
test: /\.json$/,
|
51
|
-
loader: 'json'
|
52
|
-
},
|
53
|
-
{
|
54
|
-
test: /\.html$/,
|
55
|
-
loader: 'vue-html'
|
56
|
-
},
|
57
|
-
{
|
58
|
-
test: /\.less$/,
|
59
|
-
loader: 'style!css!less'
|
60
|
-
},
|
61
|
-
{
|
62
|
-
test: /\.css$/,
|
63
|
-
loader: 'style!css'
|
64
|
-
},
|
65
|
-
{
|
66
|
-
test: /\.(png|jpg|gif|svg|woff2?|eot|ttf)(\?.*)?$/,
|
67
|
-
loader: 'url',
|
68
|
-
query: {
|
69
|
-
limit: 10000,
|
70
|
-
name: '[name].[ext]?[hash:7]'
|
71
|
-
}
|
72
|
-
}
|
73
|
-
]
|
74
|
-
},
|
75
|
-
vue: {
|
76
|
-
loaders: cssLoaders({
|
77
|
-
sourceMap: false,
|
78
|
-
extract: false
|
79
|
-
})
|
80
|
-
},
|
81
|
-
plugins: [],
|
82
|
-
eslint: {
|
83
|
-
formatter: require('eslint-friendly-formatter')
|
84
|
-
}
|
85
|
-
}
|
1
|
+
var path = require('path')
|
2
|
+
var cssLoaders = require('./css-loaders')
|
3
|
+
var projectRoot = path.resolve(__dirname, '../')
|
4
|
+
|
5
|
+
module.exports = {
|
6
|
+
entry: {
|
7
|
+
app: './src/main.js'
|
8
|
+
},
|
9
|
+
output: {
|
10
|
+
path: path.resolve(__dirname, '../dist/mergeUser'),
|
11
|
+
publicPath: 'mergeUser/',
|
12
|
+
filename: '[name].js'
|
13
|
+
},
|
14
|
+
resolve: {
|
15
|
+
extensions: ['', '.js', '.vue'],
|
16
|
+
fallback: [path.join(__dirname, '../node_modules')],
|
17
|
+
alias: {
|
18
|
+
'src': path.resolve(__dirname, '../src'),
|
19
|
+
'test': path.resolve(__dirname, '../test')
|
20
|
+
}
|
21
|
+
},
|
22
|
+
resolveLoader: {
|
23
|
+
fallback: [path.join(__dirname, '../node_modules')]
|
24
|
+
},
|
25
|
+
module: {
|
26
|
+
loaders: [
|
27
|
+
{
|
28
|
+
test: /\.vue$/,
|
29
|
+
loader: 'vue'
|
30
|
+
},
|
31
|
+
{
|
32
|
+
test: /\.js$/,
|
33
|
+
loader: 'babel',
|
34
|
+
include: [
|
35
|
+
/src/,
|
36
|
+
/build/,
|
37
|
+
/examples/,
|
38
|
+
/test/,
|
39
|
+
/node_modules\/vue-client\/src/,
|
40
|
+
/node_modules\/vue-strap\/src/,
|
41
|
+
/node_modules\/system-clients\/src/,
|
42
|
+
/node_modules\/ldap-clients\/src/,
|
43
|
+
/node_modules\/address-client\/src/
|
44
|
+
],
|
45
|
+
options: {
|
46
|
+
presets: ['es2015']
|
47
|
+
}
|
48
|
+
},
|
49
|
+
{
|
50
|
+
test: /\.json$/,
|
51
|
+
loader: 'json'
|
52
|
+
},
|
53
|
+
{
|
54
|
+
test: /\.html$/,
|
55
|
+
loader: 'vue-html'
|
56
|
+
},
|
57
|
+
{
|
58
|
+
test: /\.less$/,
|
59
|
+
loader: 'style!css!less'
|
60
|
+
},
|
61
|
+
{
|
62
|
+
test: /\.css$/,
|
63
|
+
loader: 'style!css'
|
64
|
+
},
|
65
|
+
{
|
66
|
+
test: /\.(png|jpg|gif|svg|woff2?|eot|ttf)(\?.*)?$/,
|
67
|
+
loader: 'url',
|
68
|
+
query: {
|
69
|
+
limit: 10000,
|
70
|
+
name: '[name].[ext]?[hash:7]'
|
71
|
+
}
|
72
|
+
}
|
73
|
+
]
|
74
|
+
},
|
75
|
+
vue: {
|
76
|
+
loaders: cssLoaders({
|
77
|
+
sourceMap: false,
|
78
|
+
extract: false
|
79
|
+
})
|
80
|
+
},
|
81
|
+
plugins: [],
|
82
|
+
eslint: {
|
83
|
+
formatter: require('eslint-friendly-formatter')
|
84
|
+
}
|
85
|
+
}
|
package/package.json
CHANGED
package/src/App.vue
CHANGED
@@ -1,24 +1,24 @@
|
|
1
|
-
<template>
|
2
|
-
<app-base class="bg">
|
3
|
-
<div class='flex'>
|
4
|
-
<article>
|
5
|
-
<!--<route :comp="{name: 'check-model'}"></route>-->
|
6
|
-
<!--<route :comp="{name: 'vender-management'}"></route>-->
|
7
|
-
<route :comp="{name: 'login'}"></route>
|
8
|
-
<!-- <route :comp="{name: 'load-data'}"></route> -->
|
9
|
-
<!-- <route :comp="{name: 'load-params', props: {componentName: 'login'}}"></route> -->
|
10
|
-
<!-- <route :comp="{name: 'load-params', props: {dataUrl: ['rs/sql/getMeterBrand','rs/sql/getPriceType','rs/sql/getMeterStyle'], componentName: 'login'}}"></route> -->
|
11
|
-
</article>
|
12
|
-
</div>
|
13
|
-
</app-base>
|
14
|
-
</template>
|
15
|
-
|
16
|
-
<script>
|
17
|
-
// import cardListen from './plugins/CardListen'
|
18
|
-
|
19
|
-
export default {
|
20
|
-
// ready () {
|
21
|
-
// cardListen.startListen()
|
22
|
-
// }
|
23
|
-
}
|
24
|
-
</script>
|
1
|
+
<template>
|
2
|
+
<app-base class="bg">
|
3
|
+
<div class='flex'>
|
4
|
+
<article>
|
5
|
+
<!--<route :comp="{name: 'check-model'}"></route>-->
|
6
|
+
<!--<route :comp="{name: 'vender-management'}"></route>-->
|
7
|
+
<route :comp="{name: 'login'}"></route>
|
8
|
+
<!-- <route :comp="{name: 'load-data'}"></route> -->
|
9
|
+
<!-- <route :comp="{name: 'load-params', props: {componentName: 'login'}}"></route> -->
|
10
|
+
<!-- <route :comp="{name: 'load-params', props: {dataUrl: ['rs/sql/getMeterBrand','rs/sql/getPriceType','rs/sql/getMeterStyle'], componentName: 'login'}}"></route> -->
|
11
|
+
</article>
|
12
|
+
</div>
|
13
|
+
</app-base>
|
14
|
+
</template>
|
15
|
+
|
16
|
+
<script>
|
17
|
+
// import cardListen from './plugins/CardListen'
|
18
|
+
|
19
|
+
export default {
|
20
|
+
// ready () {
|
21
|
+
// cardListen.startListen()
|
22
|
+
// }
|
23
|
+
}
|
24
|
+
</script>
|
package/src/components/Main.vue
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
<template>
|
2
2
|
<div @click="hindsetting1()" :class="{'with-watermark':showwatermakeflag}">
|
3
|
+
<span class="newTip" transition="newTip" @click="tipClick" v-if="newTipShow">
|
4
|
+
<span>您有一条新提醒</span>
|
5
|
+
</span>
|
3
6
|
<!-- <div class="system-main" id="box" v-el:box v-if="!isManger">-->
|
4
7
|
<!-- <div class="system-logo" style="height: auto">-->
|
5
8
|
<!-- <img :src="imgs.logoimg" alt=""/>-->
|
@@ -111,6 +114,26 @@
|
|
111
114
|
<div v-show="isManger">
|
112
115
|
<route v-ref:route></route>
|
113
116
|
</div>
|
117
|
+
<modal v-if="newTipContextShow" :show.sync="newTipContextShow" :backdrop="false">
|
118
|
+
<header slot="modal-header" style="display:none"> </header>
|
119
|
+
<article slot="modal-body" class="modal-body">
|
120
|
+
<form class="form-horizontal">
|
121
|
+
<div class="row">
|
122
|
+
<div class="col-sm-12 " v-if="AppDaiBan !==''">
|
123
|
+
<label class="col-sm-2">报装待办:</label>
|
124
|
+
<span style="font-weight:normal">{{AppDaiBan}}</span>
|
125
|
+
</div>
|
126
|
+
<div class="col-sm-12 " v-if="OrderDaiBan !==''">
|
127
|
+
<label class="col-sm-2">预约待办:</label>
|
128
|
+
<span style="font-weight:normal">{{OrderDaiBan}}</span>
|
129
|
+
</div>
|
130
|
+
</div>
|
131
|
+
</form>
|
132
|
+
</article>
|
133
|
+
<footer slot="modal-footer" style="height: 8vh" class="modal-footer">
|
134
|
+
<button class="button_search" @click="newTipContextShow = false">确认</button>
|
135
|
+
</footer>
|
136
|
+
</modal>
|
114
137
|
|
115
138
|
<!-- 变更录入 模态框 -->
|
116
139
|
<add-changemsg :show="AddChangeMsgShow" v-on:toggle="AddChangeMsgShow = false"></add-changemsg>
|
@@ -174,9 +197,15 @@ window.onbeforeunload = () => {
|
|
174
197
|
}
|
175
198
|
export default {
|
176
199
|
title: '主界面',
|
177
|
-
props: ['functions', 'userid'],
|
200
|
+
props: ['functions', 'userid', 'config'],
|
178
201
|
data() {
|
179
202
|
return {
|
203
|
+
// 页面提示信息定时器
|
204
|
+
interval: null,
|
205
|
+
newTipShow: false,
|
206
|
+
newTipContextShow: false,
|
207
|
+
AppDaiBan: '',
|
208
|
+
OrderDaiBan: '',
|
180
209
|
// 左侧树下部三个小图标
|
181
210
|
imgs: {
|
182
211
|
open: '/images/lefticon/菜单伸缩.png',
|
@@ -207,7 +236,7 @@ export default {
|
|
207
236
|
getwartermakr(this);
|
208
237
|
let component = this.$login.getUrlCompileParames('component')
|
209
238
|
if (component) {
|
210
|
-
|
239
|
+
this.isManger = true
|
211
240
|
this.$refs.route.init(component, {data: this.functions.functions})
|
212
241
|
}
|
213
242
|
if (this.$login.f.password == '1') {
|
@@ -249,8 +278,74 @@ export default {
|
|
249
278
|
// }
|
250
279
|
this.changeShow()
|
251
280
|
this.gotoWorkOrderSite()
|
281
|
+
// 获取预约列表
|
282
|
+
this.functions.f_role_name.includes(this.config.msgRole) && this.config.isTip && this.getOrderList()
|
252
283
|
},
|
253
284
|
methods: {
|
285
|
+
getOrderList(){
|
286
|
+
let times = this.config.times * 60 * 1000
|
287
|
+
console.log("=定时提示间隔=", times)
|
288
|
+
try {
|
289
|
+
this.interval = setInterval(() => {
|
290
|
+
this.getDaiBan()
|
291
|
+
}, times)
|
292
|
+
} catch (error) {
|
293
|
+
console.log('捕获到异常', error)
|
294
|
+
}
|
295
|
+
},
|
296
|
+
async getDaiBan(){
|
297
|
+
this.OrderDaiBan = ''
|
298
|
+
this.AppDaiBan = ''
|
299
|
+
let http = new HttpResetClass()
|
300
|
+
await http.load('POST', '/rs/sql/singleTable', {data: {
|
301
|
+
tablename:'t_order_center',
|
302
|
+
condition:` f_orderstate != '预约成功' and f_orgstr ='${this.$login.f.orgid}' and ( f_orderstate != '预约失败' or f_orderstate is null )`
|
303
|
+
}}, {
|
304
|
+
resolveMsg: null,
|
305
|
+
rejectMsg: null
|
306
|
+
}).then((res) => {
|
307
|
+
let OrderDaiBan = {}
|
308
|
+
res.data.forEach(item=>{
|
309
|
+
OrderDaiBan[item.f_ordertype] = OrderDaiBan[item.f_ordertype] || []
|
310
|
+
OrderDaiBan[item.f_ordertype].push(item)
|
311
|
+
})
|
312
|
+
if (res.data.length> 0){
|
313
|
+
this.OrderDaiBan = `您有${res.data.length}条需要处理的微信预约业务!`
|
314
|
+
this.OrderDaiBan += `其中 ${Object.keys(OrderDaiBan).map(key=>`${key}:${OrderDaiBan[key].length}条`).join(', ')}`
|
315
|
+
}
|
316
|
+
})
|
317
|
+
let data = {
|
318
|
+
condition: '1 = 1',
|
319
|
+
data: {
|
320
|
+
orgid: this.$login.f.orgid,
|
321
|
+
id: this.$login.f.id
|
322
|
+
}
|
323
|
+
}
|
324
|
+
await http.load('POST', '/rs/sql/checkuser', {data: data}, {
|
325
|
+
resolveMsg: null,
|
326
|
+
rejectMsg: null
|
327
|
+
}).then((res) => {
|
328
|
+
let AppDaiBan = {}
|
329
|
+
res.data.forEach(item=>{
|
330
|
+
AppDaiBan[item.defname] = AppDaiBan[item.defname] || []
|
331
|
+
AppDaiBan[item.defname].push(item)
|
332
|
+
})
|
333
|
+
if (res.data.length> 0){
|
334
|
+
this.AppDaiBan = `您有${res.data.length}条需要处理的报建待办业务!`
|
335
|
+
this.AppDaiBan += `其中 ${Object.keys(AppDaiBan).map(key=>`${key}:${AppDaiBan[key].length}条`).join(', ')}`
|
336
|
+
}
|
337
|
+
}).catch((e)=>{
|
338
|
+
console.error(e)
|
339
|
+
})
|
340
|
+
if(this.AppDaiBan || this.OrderDaiBan){
|
341
|
+
this.newTipShow = true
|
342
|
+
}
|
343
|
+
},
|
344
|
+
// 提醒框被点击
|
345
|
+
tipClick(){
|
346
|
+
this.newTipShow = false
|
347
|
+
this.newTipContextShow = true
|
348
|
+
},
|
254
349
|
gotoWorkOrderSite(){
|
255
350
|
const isRemind =this.$appdata.getSingleValue("站点工单提醒")
|
256
351
|
console.log('站点工单是否提醒',isRemind)
|
@@ -367,6 +462,32 @@ export default {
|
|
367
462
|
}
|
368
463
|
</script>
|
369
464
|
<style lang="less">
|
465
|
+
.newTip-transition {
|
466
|
+
transition: all .4s ease;
|
467
|
+
}
|
468
|
+
.newTip-enter, .newTip-leave {
|
469
|
+
height: 0;
|
470
|
+
padding: 0 10px;
|
471
|
+
opacity: 0;
|
472
|
+
}
|
473
|
+
.newTip a {
|
474
|
+
color: #333;
|
475
|
+
}
|
476
|
+
.newTip {
|
477
|
+
cursor: pointer;
|
478
|
+
text-align: center;
|
479
|
+
position: absolute;
|
480
|
+
top: 3em;
|
481
|
+
margin: 0 auto;
|
482
|
+
width: 200px;
|
483
|
+
left: 48%;
|
484
|
+
line-height: 2;
|
485
|
+
z-index: 10010;
|
486
|
+
box-shadow: 0 4px 12px rgba(0,0,0,0.38);
|
487
|
+
pointer-events: all;
|
488
|
+
border-radius: 4px;
|
489
|
+
background-color: whitesmoke;
|
490
|
+
}
|
370
491
|
/* 组件内通用样式 */
|
371
492
|
.select-error {
|
372
493
|
button {
|