vue2-client 1.2.86 → 1.2.90

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 (39) hide show
  1. package/.env +15 -15
  2. package/.eslintrc.js +82 -82
  3. package/CHANGELOG.md +1 -1
  4. package/package.json +94 -94
  5. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +113 -113
  6. package/src/base-client/components/common/CitySelect/CitySelect.vue +244 -244
  7. package/src/base-client/components/common/CitySelect/index.js +3 -3
  8. package/src/base-client/components/common/CitySelect/index.md +109 -109
  9. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +539 -539
  10. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +310 -310
  11. package/src/base-client/components/common/Upload/index.js +3 -3
  12. package/src/base-client/components/common/XAddForm/XAddForm.vue +345 -345
  13. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +322 -322
  14. package/src/base-client/components/common/XForm/XForm.vue +268 -268
  15. package/src/base-client/components/common/XTable/XTable.vue +269 -269
  16. package/src/base-client/components/iot/DeviceDetailsView/DeviceDetailsView.vue +232 -232
  17. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsCount.vue +678 -678
  18. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +57 -57
  19. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +131 -131
  20. package/src/base-client/components/iot/DeviceTypeDetailsView/DeviceTypeDetailsView.vue +300 -300
  21. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +274 -84
  22. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  23. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  24. package/src/pages/CreateQueryPage.vue +59 -58
  25. package/src/pages/login/Login.vue +55 -51
  26. package/src/pages/resourceManage/orgListManage.vue +98 -98
  27. package/src/router/async/config.async.js +26 -26
  28. package/src/router/async/router.map.js +60 -60
  29. package/src/router/index.js +27 -27
  30. package/src/services/api/WebmeterAnalysisViewApi.js +5 -1
  31. package/src/services/api/common.js +56 -56
  32. package/src/services/api/index.js +39 -39
  33. package/src/services/api/iot/DeviceDetailsView/DeviceDetailsCountApi.js +18 -18
  34. package/src/services/api/manage.js +16 -16
  35. package/src/services/api/restTools.js +24 -24
  36. package/src/theme/default/style.less +47 -47
  37. package/src/utils/request.js +11 -3
  38. package/src/utils/util.js +222 -222
  39. package/vue.config.js +158 -153
@@ -1,20 +1,20 @@
1
- import { get } from '@vue2-client/services/api'
2
- import Vue from 'vue'
3
-
4
- async function loginStart (name, password) {
5
- const resource = await get(`/rs/user/${name}/${password}/智慧OA`, {})
6
- console.log('登陆获取', resource)
7
- Vue.$login.f = resource
8
- await Promise.all([Vue.$appdata.load()])
9
- const login = {
10
- f: Vue.$login.f,
11
- jwt: Vue.$login.f.id,
12
- r: Vue.$login.r
13
- }
14
- Vue.$store.commit('account/setLogin', login)
15
- return resource
16
- }
17
-
18
- export {
19
- loginStart
20
- }
1
+ import { get } from '@vue2-client/services/api'
2
+ import Vue from 'vue'
3
+
4
+ async function loginStart (name, password) {
5
+ const resource = await get(`/rs/user/${name}/${password}/智慧OA`, {})
6
+ console.log('登陆获取', resource)
7
+ Vue.$login.f = resource
8
+ await Promise.all([Vue.$appdata.load()])
9
+ const login = {
10
+ f: Vue.$login.f,
11
+ jwt: Vue.$login.f.id,
12
+ r: Vue.$login.r
13
+ }
14
+ Vue.$store.commit('account/setLogin', login)
15
+ return resource
16
+ }
17
+
18
+ export {
19
+ loginStart
20
+ }
@@ -1,58 +1,59 @@
1
- <template>
2
- <div>
3
- <create-query
4
- :visible.sync="visible"
5
- @saveQueryParams="saveQueryParams"
6
- />
7
- <create-simple-form-query
8
- :visible.sync="createSimpleFormVisible"
9
- @saveSimpleFormQueryParams="saveSimpleFormQueryParams"
10
- />
11
- <a-button type="primary" style="margin-top: 10px;margin-left: 10px;" @click="showDrawer">打开完整查询配置生成工具</a-button>
12
- <a-button type="primary" style="margin-top: 10px;margin-left: 10px;" @click="showSimpleFormQueryParamsDrawer">打开基础表单配置生成工具</a-button>
13
- </div>
14
- </template>
15
-
16
- <script>
17
- import { post } from '@vue2-client/services/api/restTools'
18
-
19
- export default {
20
- name: 'CreateQueryPage',
21
- data () {
22
- return {
23
- visible: false,
24
- createSimpleFormVisible: false
25
- }
26
- },
27
- methods: {
28
- showDrawer () {
29
- this.visible = true
30
- },
31
- showSimpleFormQueryParamsDrawer () {
32
- this.createSimpleFormVisible = true
33
- },
34
- // 存储查询配置信息
35
- saveQueryParams (source) {
36
- return post('/webmeterapi/addOrEditQueryParams', {
37
- source: source
38
- }).then(res => {
39
- this.$message.success('保存查询配置成功')
40
- }, err => {
41
- console.error(err)
42
- })
43
- },
44
- // 存储基础表单配置信息
45
- saveSimpleFormQueryParams (source) {
46
- return post('/webmeterapi/addOrEditSimpleFormQueryParams', {
47
- source: source
48
- }).then(res => {
49
- this.$message.success('保存基础表单配置成功')
50
- }, err => {
51
- console.error(err)
52
- })
53
- }
54
- }
55
- }
56
- </script>
57
- <style lang="less" scoped>
58
- </style>
1
+ <template>
2
+ <div>
3
+ <create-query
4
+ :visible.sync="visible"
5
+ @saveQueryParams="saveQueryParams"
6
+ />
7
+ <create-simple-form-query
8
+ :visible.sync="createSimpleFormVisible"
9
+ @saveSimpleFormQueryParams="saveSimpleFormQueryParams"
10
+ />
11
+ <a-button type="primary" style="margin-top: 10px;margin-left: 10px;" @click="showDrawer">打开完整查询配置生成工具</a-button>
12
+ <a-button type="primary" style="margin-top: 10px;margin-left: 10px;" @click="showSimpleFormQueryParamsDrawer">打开基础表单配置生成工具</a-button>
13
+ <!-- <webmeter-analysis-view/>-->
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ import { post } from '@vue2-client/services/api/restTools'
19
+
20
+ export default {
21
+ name: 'CreateQueryPage',
22
+ data () {
23
+ return {
24
+ visible: false,
25
+ createSimpleFormVisible: false
26
+ }
27
+ },
28
+ methods: {
29
+ showDrawer () {
30
+ this.visible = true
31
+ },
32
+ showSimpleFormQueryParamsDrawer () {
33
+ this.createSimpleFormVisible = true
34
+ },
35
+ // 存储查询配置信息
36
+ saveQueryParams (source) {
37
+ return post('/webmeterapi/addOrEditQueryParams', {
38
+ source: source
39
+ }).then(res => {
40
+ this.$message.success('保存查询配置成功')
41
+ }, err => {
42
+ console.error(err)
43
+ })
44
+ },
45
+ // 存储基础表单配置信息
46
+ saveSimpleFormQueryParams (source) {
47
+ return post('/webmeterapi/addOrEditSimpleFormQueryParams', {
48
+ source: source
49
+ }).then(res => {
50
+ this.$message.success('保存基础表单配置成功')
51
+ }, err => {
52
+ console.error(err)
53
+ })
54
+ }
55
+ }
56
+ }
57
+ </script>
58
+ <style lang="less" scoped>
59
+ </style>
@@ -93,7 +93,7 @@ export default {
93
93
  }
94
94
  case 'OA' : {
95
95
  loginStart(name, password).then(this.afterLoginOA).finally(() => { this.logging = false })
96
- break
96
+ break
97
97
  }
98
98
  case 'V4' : {
99
99
  V4Login(name, password).then(this.afterLoginV4)
@@ -116,23 +116,27 @@ export default {
116
116
  const password = this.form.getFieldValue('password')
117
117
  this.logging = false
118
118
  const loginRes = res
119
- const V4Token = { token: res.access_token, expire: res.expires_in }
120
- this.setV4AccessToken(V4Token)
121
119
  // 如果这是用户首次打开本系统,localStorage无法初始化,改用code判断
122
120
  let pass = false
121
+ let V4Token = {}
122
+ // 判断是否是第一次使用本系统
123
123
  if (res.code) {
124
124
  if (res.code === 200) {
125
125
  pass = true
126
+ // 如果返回值有code,证明是第一次使用系统,localStorage判断compatible失效
127
+ // token需要从.data中获取
128
+ V4Token = { token: res.data.access_token, expire: res.data.expires_in }
126
129
  }
130
+ } else {
131
+ V4Token = { token: res.access_token, expire: res.expires_in }
127
132
  }
133
+ this.setV4AccessToken(V4Token)
128
134
  // 向本地缓存中临时存储compatible
129
- console.log(loginRes)
130
135
  if (loginRes.access_token || pass) {
131
136
  const encrypt = new JSEncrypt()
132
137
  encrypt.setPublicKey('MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqPvovSfXcwBbW8cKMCgwqNpsYuzF8RPAPFb7LGsnVo44JhM/xxzDyzoYtdfNmtbIuKVi9PzIsyp6rg+09gbuI6UGwBZ5DWBDBMqv5MPdOF5dCQkB2Bbr5yPfURPENypUz+pBFBg41d+BC+rwRiXELwKy7Y9caD/MtJyHydj8OUwIDAQAB')
133
138
  const data = encrypt.encrypt(JSON.stringify({ username: name, password: password }))
134
139
  // 获取路由配置
135
- console.log('开始请求智慧燃气')
136
140
  getRoutesConfig(data).then(result => {
137
141
  this.$login.login(result).then(() => {
138
142
  this.afterGeneral(result)
@@ -212,59 +216,59 @@ export default {
212
216
  </script>
213
217
 
214
218
  <style lang="less" scoped>
215
- .common-layout{
216
- .top {
217
- text-align: center;
218
- .header {
219
+ .common-layout{
220
+ .top {
221
+ text-align: center;
222
+ .header {
223
+ height: 44px;
224
+ line-height: 44px;
225
+ a {
226
+ text-decoration: none;
227
+ }
228
+ .logo {
219
229
  height: 44px;
220
- line-height: 44px;
221
- a {
222
- text-decoration: none;
223
- }
224
- .logo {
225
- height: 44px;
226
- vertical-align: top;
227
- margin-right: 16px;
228
- }
229
- .title {
230
- font-size: 33px;
231
- color: @title-color;
232
- font-family: 'Myriad Pro', 'Helvetica Neue', Arial, Helvetica, sans-serif;
233
- font-weight: 600;
234
- position: relative;
235
- top: 2px;
236
- }
230
+ vertical-align: top;
231
+ margin-right: 16px;
237
232
  }
238
- .desc {
239
- font-size: 14px;
240
- color: @text-color-second;
241
- margin-top: 12px;
242
- margin-bottom: 40px;
233
+ .title {
234
+ font-size: 33px;
235
+ color: @title-color;
236
+ font-family: 'Myriad Pro', 'Helvetica Neue', Arial, Helvetica, sans-serif;
237
+ font-weight: 600;
238
+ position: relative;
239
+ top: 2px;
243
240
  }
244
241
  }
245
- .login{
246
- width: 368px;
247
- margin: 0 auto;
248
- @media screen and (max-width: 576px) {
249
- width: 95%;
250
- }
251
- @media screen and (max-width: 320px) {
252
- .captcha-button{
253
- font-size: 14px;
254
- }
242
+ .desc {
243
+ font-size: 14px;
244
+ color: @text-color-second;
245
+ margin-top: 12px;
246
+ margin-bottom: 40px;
247
+ }
248
+ }
249
+ .login{
250
+ width: 368px;
251
+ margin: 0 auto;
252
+ @media screen and (max-width: 576px) {
253
+ width: 95%;
254
+ }
255
+ @media screen and (max-width: 320px) {
256
+ .captcha-button{
257
+ font-size: 14px;
255
258
  }
256
- .icon {
257
- font-size: 24px;
258
- color: @text-color-second;
259
- margin-left: 16px;
260
- vertical-align: middle;
261
- cursor: pointer;
262
- transition: color 0.3s;
259
+ }
260
+ .icon {
261
+ font-size: 24px;
262
+ color: @text-color-second;
263
+ margin-left: 16px;
264
+ vertical-align: middle;
265
+ cursor: pointer;
266
+ transition: color 0.3s;
263
267
 
264
- &:hover {
265
- color: @primary-color;
266
- }
268
+ &:hover {
269
+ color: @primary-color;
267
270
  }
268
271
  }
269
272
  }
273
+ }
270
274
  </style>
@@ -1,98 +1,98 @@
1
- <template>
2
- <div id="orgListManage">
3
- <a-card :bordered="false">
4
- <!--<a-row :gutter="48">-->
5
- <!--<a-col>-->
6
- <!--<a-space>-->
7
- <!--<a-button type="primary" @click="addItem" v-if="!buttonState || buttonState.add">-->
8
- <!--<a-icon :style="iconStyle" type="plus"/>新增-->
9
- <!--</a-button>-->
10
- <!--<a-button-->
11
- <!--v-if="!buttonState || buttonState.edit"-->
12
- <!--:loading="editDataLoading"-->
13
- <!--:disabled="!isModify"-->
14
- <!--class="btn-success"-->
15
- <!--type="dashed"-->
16
- <!--@click="editItem">-->
17
- <!--<a-icon :style="iconStyle" type="edit"/>修改-->
18
- <!--</a-button>-->
19
- <!--<a-button :disabled="!isDelete" type="danger" @click="deleteItem" v-if="!buttonState || buttonState.delete">-->
20
- <!--<a-icon :style="iconStyle" type="delete"/>删除-->
21
- <!--</a-button>-->
22
- <!--</a-space>-->
23
- <!--<span :style="{ float: 'right', overflow: 'hidden', marginBottom: '8px' }">-->
24
- <!--<a-button-group>-->
25
- <!--<a-button @click="toggleIsFormShow">-->
26
- <!--<a-icon :style="iconStyle" type="vertical-align-top"/>-->
27
- <!--</a-button>-->
28
- <!--<a-button @click="refresh(true)">-->
29
- <!--<a-icon :style="iconStyle" type="reload" />-->
30
- <!--</a-button>-->
31
- <!--<a-button @click="showDrawer">-->
32
- <!--<a-icon :style="iconStyle" type="table" />-->
33
- <!--</a-button>-->
34
- <!--<a-button @click="exports">-->
35
- <!--<a-icon :style="iconStyle" type="cloud-download"/>-->
36
- <!--</a-button>-->
37
- <!--</a-button-group>-->
38
- <!--</span>-->
39
- <!--</a-col>-->
40
- <!--</a-row>-->
41
- <a-table
42
- :columns="columns"
43
- :data-source="funTree"
44
- :pagination="false"
45
- bordered
46
- rowKey="id"
47
- size="middle">
48
- </a-table>
49
- </a-card>
50
- </div>
51
- </template>
52
-
53
- <script>
54
- import { getOrganization, searchFun } from '@vue2-client/base-client/plugins/GetLoginInfoService'
55
- import { getColumnsJson } from '@vue2-client/services/api'
56
- export default {
57
- // 组织管理
58
- name: 'orgListManage',
59
- data () {
60
- return {
61
- columnsJson: [],
62
- funTree: [],
63
- columns: [
64
- {
65
- title: '组织名称',
66
- dataIndex: 'name'
67
- },
68
- {
69
- title: '排序',
70
- dataIndex: 'position'
71
- },
72
- {
73
- title: '组件目录',
74
- dataIndex: 'f_dir'
75
- },
76
- {
77
- title: '描述',
78
- dataIndex: 'f_description'
79
- }
80
- ]
81
- }
82
- },
83
- created () {
84
- },
85
- async mounted () {
86
- getColumnsJson('orgListManage', (res) => {
87
- this.columnsJson = res
88
- })
89
- const fun = await getOrganization()
90
- this.funTree = searchFun(fun, '组织机构')
91
- },
92
- methods: {
93
- }
94
- }
95
- </script>
96
-
97
- <style lang="less">
98
- </style>
1
+ <template>
2
+ <div id="orgListManage">
3
+ <a-card :bordered="false">
4
+ <!--<a-row :gutter="48">-->
5
+ <!--<a-col>-->
6
+ <!--<a-space>-->
7
+ <!--<a-button type="primary" @click="addItem" v-if="!buttonState || buttonState.add">-->
8
+ <!--<a-icon :style="iconStyle" type="plus"/>新增-->
9
+ <!--</a-button>-->
10
+ <!--<a-button-->
11
+ <!--v-if="!buttonState || buttonState.edit"-->
12
+ <!--:loading="editDataLoading"-->
13
+ <!--:disabled="!isModify"-->
14
+ <!--class="btn-success"-->
15
+ <!--type="dashed"-->
16
+ <!--@click="editItem">-->
17
+ <!--<a-icon :style="iconStyle" type="edit"/>修改-->
18
+ <!--</a-button>-->
19
+ <!--<a-button :disabled="!isDelete" type="danger" @click="deleteItem" v-if="!buttonState || buttonState.delete">-->
20
+ <!--<a-icon :style="iconStyle" type="delete"/>删除-->
21
+ <!--</a-button>-->
22
+ <!--</a-space>-->
23
+ <!--<span :style="{ float: 'right', overflow: 'hidden', marginBottom: '8px' }">-->
24
+ <!--<a-button-group>-->
25
+ <!--<a-button @click="toggleIsFormShow">-->
26
+ <!--<a-icon :style="iconStyle" type="vertical-align-top"/>-->
27
+ <!--</a-button>-->
28
+ <!--<a-button @click="refresh(true)">-->
29
+ <!--<a-icon :style="iconStyle" type="reload" />-->
30
+ <!--</a-button>-->
31
+ <!--<a-button @click="showDrawer">-->
32
+ <!--<a-icon :style="iconStyle" type="table" />-->
33
+ <!--</a-button>-->
34
+ <!--<a-button @click="exports">-->
35
+ <!--<a-icon :style="iconStyle" type="cloud-download"/>-->
36
+ <!--</a-button>-->
37
+ <!--</a-button-group>-->
38
+ <!--</span>-->
39
+ <!--</a-col>-->
40
+ <!--</a-row>-->
41
+ <a-table
42
+ :columns="columns"
43
+ :data-source="funTree"
44
+ :pagination="false"
45
+ bordered
46
+ rowKey="id"
47
+ size="middle">
48
+ </a-table>
49
+ </a-card>
50
+ </div>
51
+ </template>
52
+
53
+ <script>
54
+ import { getOrganization, searchFun } from '@vue2-client/base-client/plugins/GetLoginInfoService'
55
+ import { getColumnsJson } from '@vue2-client/services/api'
56
+ export default {
57
+ // 组织管理
58
+ name: 'orgListManage',
59
+ data () {
60
+ return {
61
+ columnsJson: [],
62
+ funTree: [],
63
+ columns: [
64
+ {
65
+ title: '组织名称',
66
+ dataIndex: 'name'
67
+ },
68
+ {
69
+ title: '排序',
70
+ dataIndex: 'position'
71
+ },
72
+ {
73
+ title: '组件目录',
74
+ dataIndex: 'f_dir'
75
+ },
76
+ {
77
+ title: '描述',
78
+ dataIndex: 'f_description'
79
+ }
80
+ ]
81
+ }
82
+ },
83
+ created () {
84
+ },
85
+ async mounted () {
86
+ getColumnsJson('orgListManage', (res) => {
87
+ this.columnsJson = res
88
+ })
89
+ const fun = await getOrganization()
90
+ this.funTree = searchFun(fun, '组织机构')
91
+ },
92
+ methods: {
93
+ }
94
+ }
95
+ </script>
96
+
97
+ <style lang="less">
98
+ </style>
@@ -1,26 +1,26 @@
1
- import routerMap from './router.map'
2
- import { parseRoutes } from '@vue2-client/utils/routerUtil'
3
-
4
- // 异步路由配置
5
- const routesConfig = [
6
- 'login',
7
- 'submitTicket',
8
- 'root',
9
- {
10
- router: 'exp404',
11
- path: '*',
12
- name: '404'
13
- },
14
- {
15
- router: 'exp403',
16
- path: '/403',
17
- name: '403'
18
- }
19
- ]
20
-
21
- const options = {
22
- mode: 'history',
23
- routes: parseRoutes(routesConfig, routerMap)
24
- }
25
-
26
- export default options
1
+ import routerMap from './router.map'
2
+ import { parseRoutes } from '@vue2-client/utils/routerUtil'
3
+
4
+ // 异步路由配置
5
+ const routesConfig = [
6
+ 'login',
7
+ 'submitTicket',
8
+ 'root',
9
+ {
10
+ router: 'exp404',
11
+ path: '*',
12
+ name: '404'
13
+ },
14
+ {
15
+ router: 'exp403',
16
+ path: '/403',
17
+ name: '403'
18
+ }
19
+ ]
20
+
21
+ const options = {
22
+ mode: 'history',
23
+ routes: parseRoutes(routesConfig, routerMap)
24
+ }
25
+
26
+ export default options