vue2-client 1.0.0 → 1.2.1

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 (134) hide show
  1. package/.eslintrc.js +81 -81
  2. package/README.md +65 -55
  3. package/babel.config.js +15 -14
  4. package/docs/index.md +29 -29
  5. package/docs/notice.md +24 -0
  6. package/index.js +28 -0
  7. package/jest.config.js +3 -3
  8. package/package.json +1 -1
  9. package/public/index.html +27 -27
  10. package/src/App.vue +2 -2
  11. package/src/base-client/all.js +57 -57
  12. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +1159 -1159
  13. package/src/base-client/components/common/CreateQuery/index.md +1 -1
  14. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +540 -540
  15. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +1 -1
  16. package/src/base-client/components/common/CustomColumnsDrawer/index.md +1 -1
  17. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +150 -150
  18. package/src/base-client/components/common/FormGroupEdit/index.md +1 -1
  19. package/src/base-client/components/common/FormGroupQuery/index.md +1 -1
  20. package/src/base-client/components/common/XAddForm/XAddForm.vue +323 -323
  21. package/src/base-client/components/common/XAddForm/index.md +1 -1
  22. package/src/base-client/components/common/XBadge/index.md +1 -1
  23. package/src/base-client/components/common/XCard/index.md +1 -1
  24. package/src/base-client/components/common/XForm/XForm.vue +275 -275
  25. package/src/base-client/components/common/XForm/XFormItem.vue +217 -217
  26. package/src/base-client/components/common/XForm/index.md +196 -196
  27. package/src/base-client/components/common/XFormCol/index.md +1 -1
  28. package/src/base-client/components/common/XFormTable/XFormTable.vue +405 -405
  29. package/src/base-client/components/common/XFormTable/index.md +2 -2
  30. package/src/base-client/components/common/XTable/XTable.vue +262 -262
  31. package/src/base-client/components/common/XTable/index.md +255 -255
  32. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +1 -1
  33. package/src/base-client/components/iot/CustomerDetailsView/CustomerDetailsView.vue +226 -226
  34. package/src/base-client/components/iot/CustomerDetailsView/index.md +2 -2
  35. package/src/base-client/components/iot/DataAnalysisUser/DataAnalysisUser.vue +1 -1
  36. package/src/base-client/components/iot/DataAnalysisViewGD/DataAnalysisViewGD.vue +548 -548
  37. package/src/base-client/components/iot/DeviceBrandDetailsView/DeviceBrandDetailsView.vue +453 -453
  38. package/src/base-client/components/iot/DeviceDetailsView/DeviceDetailsView.vue +231 -231
  39. package/src/base-client/components/iot/DeviceDetailsView/index.md +1 -1
  40. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsCount.vue +330 -330
  41. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +1 -1
  42. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstruct.vue +3 -3
  43. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstructOperate.vue +122 -122
  44. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsMain.vue +1 -1
  45. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +3 -3
  46. package/src/base-client/components/iot/DeviceTypeDetailsView/DeviceTypeDetailsView.vue +277 -277
  47. package/src/base-client/components/iot/InstructDetailsView/InstructDetailsView.vue +472 -472
  48. package/src/base-client/components/iot/InstructDetailsView/index.md +1 -1
  49. package/src/base-client/components/iot/LogDetailsView/LogDetailsView.vue +380 -380
  50. package/src/base-client/components/iot/LogDetailsView/index.md +1 -1
  51. package/src/base-client/components/iot/MeterDetailsView/MeterDetailsView.vue +360 -360
  52. package/src/base-client/components/iot/MeterDetailsView/index.md +1 -1
  53. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsCount.vue +335 -335
  54. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsException.vue +185 -185
  55. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsHandPlan.vue +292 -292
  56. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsInstruct.vue +237 -237
  57. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsMain.vue +257 -257
  58. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsSellGas.vue +190 -190
  59. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +723 -723
  60. package/src/base-client/components/iot/WebmeterAnalysisView/index.md +1 -1
  61. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  62. package/src/base-client/components/system/DictionaryDetailsView/index.md +1 -1
  63. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +248 -248
  64. package/src/base-client/components/ticket/EmployeeDetailsView/EmployeeDetailsView.vue +406 -406
  65. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +486 -486
  66. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +184 -184
  67. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +303 -303
  68. package/src/base-client/plugins/AppData.js +69 -69
  69. package/src/base-client/plugins/GetLoginInfoService.js +221 -222
  70. package/src/base-client/plugins/index.js +21 -21
  71. package/src/bootstrap.js +6 -4
  72. package/src/components/Ellipsis/Ellipsis.vue +1 -1
  73. package/src/components/Ellipsis/index.md +2 -2
  74. package/src/components/NumberInfo/index.md +1 -1
  75. package/src/components/STable/README.md +3 -3
  76. package/src/components/Trend/index.md +1 -1
  77. package/src/components/cache/AKeepAlive.js +1 -1
  78. package/src/components/checkbox/index.js +2 -2
  79. package/src/components/index.js +15 -15
  80. package/src/components/menu/menu.js +1 -1
  81. package/src/components/setting/Setting.vue +4 -4
  82. package/src/components/table/advance/AdvanceTable.vue +3 -3
  83. package/src/components/transition/PageToggleTransition.vue +1 -1
  84. package/src/config/default/setting.config.js +33 -33
  85. package/src/layouts/CommonLayout.vue +1 -1
  86. package/src/layouts/ComponentLayoutOne.vue +47 -47
  87. package/src/layouts/PageLayout.vue +2 -2
  88. package/src/layouts/SinglePageView.vue +1 -1
  89. package/src/layouts/header/AdminHeader.vue +2 -2
  90. package/src/layouts/header/HeaderAvatar.vue +1 -1
  91. package/src/layouts/header/HeaderNotice.vue +97 -97
  92. package/src/layouts/tabs/TabsHead.vue +1 -1
  93. package/src/layouts/tabs/TabsView.vue +6 -6
  94. package/src/main.js +20 -12
  95. package/src/mock/common/reportData.js +20 -20
  96. package/src/mock/goods/index.js +2 -2
  97. package/src/mock/index.js +6 -6
  98. package/src/mock/project/index.js +1 -1
  99. package/src/mock/user/current.js +1 -1
  100. package/src/mock/user/login.js +1 -1
  101. package/src/mock/user/routes.js +61 -61
  102. package/src/mock/workplace/index.js +1 -1
  103. package/src/pages/exception/403.vue +25 -25
  104. package/src/pages/exception/404.vue +25 -25
  105. package/src/pages/exception/500.vue +25 -25
  106. package/src/pages/login/Login.vue +194 -194
  107. package/src/pages/report/ReportTable.js +125 -125
  108. package/src/pages/report/ReportTableHome.vue +28 -28
  109. package/src/pages/resourceManage/resourceManageMain.vue +55 -55
  110. package/src/pages/system/applyInstallView/Core.vue +1 -1
  111. package/src/pages/system/applyInstallView/index.vue +1 -1
  112. package/src/pages/system/dictionary/index.vue +1 -1
  113. package/src/pages/system/queryParams/index.vue +1 -1
  114. package/src/router/async/config.async.js +1 -1
  115. package/src/router/async/router.map.js +59 -59
  116. package/src/router/guards.js +3 -3
  117. package/src/router/index.js +4 -8
  118. package/src/services/api/common.js +39 -39
  119. package/src/services/api/restTools.js +23 -23
  120. package/src/services/dataSource.js +1 -1
  121. package/src/services/user.js +2 -2
  122. package/src/store/index.js +3 -6
  123. package/src/store/modules/setting.js +5 -5
  124. package/src/theme/index.less +5 -5
  125. package/src/theme/reportTable.less +58 -58
  126. package/src/utils/i18n.js +2 -2
  127. package/src/utils/indexedDB.js +146 -146
  128. package/src/utils/request.js +3 -3
  129. package/src/utils/routerUtil.js +18 -5
  130. package/tests/unit/ReportTable.spec.js +15 -15
  131. package/vue.config.js +153 -152
  132. package/webpack.config.js +12 -0
  133. package/src/index.js +0 -29
  134. package/src/router/config.js +0 -23
@@ -1,226 +1,226 @@
1
- <template>
2
- <a-drawer
3
- title="客户详情"
4
- placement="right"
5
- :width="isMobile ? screenWidth : screenWidth * 0.85"
6
- :visible="visible"
7
- @close="onClose"
8
- >
9
- <a-spin :spinning="loading">
10
- <a-page-header
11
- :title="details.f_name"
12
- >
13
- <div class="row">
14
- <div class="content">
15
- <a-descriptions size="small" :column="isMobile ? 1 : 2">
16
- <a-descriptions-item label="客户编号">{{ details.id }}</a-descriptions-item>
17
- <a-descriptions-item label="创建时间">{{ format(details.f_input_date,'yyyy-MM-dd hh:mm:ss') }}</a-descriptions-item>
18
- <a-descriptions-item label="所属大区">{{ details.f_region }}</a-descriptions-item>
19
- <a-descriptions-item label="系统版本">
20
- {{ details.f_system_version }}
21
- </a-descriptions-item>
22
- <a-descriptions-item label="数据库类型">
23
- {{ details.f_data_source }}
24
- </a-descriptions-item>
25
- </a-descriptions>
26
- </div>
27
- <div class="extra">
28
- <a-row class="status-list">
29
- <a-col :xs="12" :sm="24">
30
- <div class="text">客户状态</div>
31
- <div class="heading">
32
- <x-badge badge-key="customerStateMap" :value="details.f_state" :is-external-text="true"/>
33
- </div>
34
- </a-col>
35
- </a-row>
36
- <p></p>
37
- <a-row class="status-list">
38
- <a-col :xs="12" :sm="24">
39
- <div class="text">日志持久化状态</div>
40
- <div class="heading">
41
- <x-badge badge-key="logPersistenceStateMap" :value="details.f_log_persistence" :is-external-text="true"/>
42
- </div>
43
- </a-col>
44
- </a-row>
45
- </div>
46
- </div>
47
- <!-- actions -->
48
- <template v-slot:extra>
49
- <a-button-group style="margin-right: 4px;">
50
- <a-button type="dashed" @click="initView" :loading="loading">刷新</a-button>
51
- </a-button-group>
52
- </template>
53
- <!-- 操作 -->
54
- <a-card
55
- style="margin-top: 24px"
56
- :bordered="false"
57
- :tabList="operationTabList"
58
- :activeTabKey="operationActiveTabKey"
59
- @tabChange="(key) => {this.operationActiveTabKey = key}"
60
- >
61
- <div v-if="operationActiveTabKey === '1'">
62
- <a-descriptions layout="vertical" bordered>
63
- <a-descriptions-item label="联系方式">{{ details.f_contact }}</a-descriptions-item>
64
- <a-descriptions-item label="地址" span="2">{{ details.f_address }}</a-descriptions-item>
65
- <a-descriptions-item label="备注">{{ details.f_remark }}</a-descriptions-item>
66
- </a-descriptions>
67
- </div>
68
- <div v-else-if="operationActiveTabKey === '2'" class="no-data"><a-icon type="frown-o"/>暂无数据</div>
69
- </a-card>
70
- </a-page-header>
71
- </a-spin>
72
- </a-drawer>
73
- </template>
74
-
75
- <script>
76
- import { formatDate } from '@/utils/util'
77
- import { CustomerDetailsViewApi } from '@/services/api/CustomerDetailsViewApi'
78
- import { post } from '@/services/api/restTools'
79
- import { mapState } from 'vuex'
80
-
81
- export default {
82
- name: 'CustomerDetailsView',
83
- data () {
84
- return {
85
- // 页面宽度
86
- screenWidth: document.documentElement.clientWidth,
87
- // 客户详情
88
- details: {
89
- id: 0,
90
- f_name: '',
91
- f_region: '',
92
- f_system_version: '',
93
- f_contact: '',
94
- f_address: '',
95
- f_remark: '',
96
- f_state: '正常',
97
- f_input_date: '',
98
- f_data_source: '',
99
- f_log_persistence: '支持'
100
- },
101
- // 是否刷新加载中
102
- loading: false,
103
- operationTabList: [
104
- {
105
- key: '1',
106
- tab: '基本信息'
107
- },
108
- {
109
- key: '2',
110
- tab: '操作日志'
111
- }
112
- ],
113
- operationActiveTabKey: '1'
114
- }
115
- },
116
- mounted () {
117
- this.initView()
118
- },
119
- computed: {
120
- ...mapState('account', { currUser: 'user' }),
121
- ...mapState('setting', ['isMobile'])
122
- },
123
- props: {
124
- customerName: {
125
- type: String,
126
- required: true
127
- },
128
- visible: {
129
- type: Boolean,
130
- default: false
131
- }
132
- },
133
- methods: {
134
- // 初始化组件
135
- initView () {
136
- this.getCustomers(this.customerName)
137
- },
138
- onClose () {
139
- this.$emit('update:visible', false)
140
- },
141
- getCustomers (customerName) {
142
- this.loading = true
143
- return post(CustomerDetailsViewApi.getCustomerDetails, {
144
- customerName: customerName
145
- })
146
- .then(res => {
147
- res.f_state = res.f_state === '1' ? '正常' : '停用'
148
- this.details = res
149
- this.loading = false
150
- }, err => {
151
- this.loading = false
152
- console.warn(err)
153
- })
154
- },
155
- format (date, format) {
156
- return formatDate(date, format)
157
- }
158
- },
159
- watch: {
160
- 'visible' (val) {
161
- if (val) {
162
- this.initView()
163
- }
164
- }
165
- }
166
- }
167
- </script>
168
-
169
- <style lang="less" scoped>
170
- .detail-layout {
171
- margin-left: 44px;
172
- }
173
- .text {
174
- color: rgba(0, 0, 0, .45);
175
- }
176
-
177
- .heading {
178
- color: rgba(0, 0, 0, .85);
179
- font-size: 20px;
180
- }
181
-
182
- .no-data {
183
- color: rgba(0, 0, 0, .25);
184
- text-align: center;
185
- line-height: 64px;
186
- font-size: 16px;
187
-
188
- i {
189
- font-size: 24px;
190
- margin-right: 16px;
191
- position: relative;
192
- top: 3px;
193
- }
194
- }
195
-
196
- .mobile {
197
- .detail-layout {
198
- margin-left: unset;
199
- }
200
- .text {
201
-
202
- }
203
- .status-list {
204
- text-align: left;
205
- }
206
- }
207
-
208
- .row {
209
- display: flex;
210
-
211
- .content {
212
- -webkit-box-flex: 1;
213
- flex: auto;
214
- -ms-flex: auto;
215
- }
216
-
217
- .extra {
218
- flex: 0 1 auto;
219
- -webkit-box-flex: 0;
220
- -ms-flex: 0 1 auto;
221
- min-width: 242px;
222
- margin-left: 88px;
223
- text-align: right;
224
- }
225
- }
226
- </style>
1
+ <template>
2
+ <a-drawer
3
+ title="客户详情"
4
+ placement="right"
5
+ :width="isMobile ? screenWidth : screenWidth * 0.85"
6
+ :visible="visible"
7
+ @close="onClose"
8
+ >
9
+ <a-spin :spinning="loading">
10
+ <a-page-header
11
+ :title="details.f_name"
12
+ >
13
+ <div class="row">
14
+ <div class="content">
15
+ <a-descriptions size="small" :column="isMobile ? 1 : 2">
16
+ <a-descriptions-item label="客户编号">{{ details.id }}</a-descriptions-item>
17
+ <a-descriptions-item label="创建时间">{{ format(details.f_input_date,'yyyy-MM-dd hh:mm:ss') }}</a-descriptions-item>
18
+ <a-descriptions-item label="所属大区">{{ details.f_region }}</a-descriptions-item>
19
+ <a-descriptions-item label="系统版本">
20
+ {{ details.f_system_version }}
21
+ </a-descriptions-item>
22
+ <a-descriptions-item label="数据库类型">
23
+ {{ details.f_data_source }}
24
+ </a-descriptions-item>
25
+ </a-descriptions>
26
+ </div>
27
+ <div class="extra">
28
+ <a-row class="status-list">
29
+ <a-col :xs="12" :sm="24">
30
+ <div class="text">客户状态</div>
31
+ <div class="heading">
32
+ <x-badge badge-key="customerStateMap" :value="details.f_state" :is-external-text="true"/>
33
+ </div>
34
+ </a-col>
35
+ </a-row>
36
+ <p></p>
37
+ <a-row class="status-list">
38
+ <a-col :xs="12" :sm="24">
39
+ <div class="text">日志持久化状态</div>
40
+ <div class="heading">
41
+ <x-badge badge-key="logPersistenceStateMap" :value="details.f_log_persistence" :is-external-text="true"/>
42
+ </div>
43
+ </a-col>
44
+ </a-row>
45
+ </div>
46
+ </div>
47
+ <!-- actions -->
48
+ <template v-slot:extra>
49
+ <a-button-group style="margin-right: 4px;">
50
+ <a-button type="dashed" @click="initView" :loading="loading">刷新</a-button>
51
+ </a-button-group>
52
+ </template>
53
+ <!-- 操作 -->
54
+ <a-card
55
+ style="margin-top: 24px"
56
+ :bordered="false"
57
+ :tabList="operationTabList"
58
+ :activeTabKey="operationActiveTabKey"
59
+ @tabChange="(key) => {this.operationActiveTabKey = key}"
60
+ >
61
+ <div v-if="operationActiveTabKey === '1'">
62
+ <a-descriptions layout="vertical" bordered>
63
+ <a-descriptions-item label="联系方式">{{ details.f_contact }}</a-descriptions-item>
64
+ <a-descriptions-item label="地址" span="2">{{ details.f_address }}</a-descriptions-item>
65
+ <a-descriptions-item label="备注">{{ details.f_remark }}</a-descriptions-item>
66
+ </a-descriptions>
67
+ </div>
68
+ <div v-else-if="operationActiveTabKey === '2'" class="no-data"><a-icon type="frown-o"/>暂无数据</div>
69
+ </a-card>
70
+ </a-page-header>
71
+ </a-spin>
72
+ </a-drawer>
73
+ </template>
74
+
75
+ <script>
76
+ import { formatDate } from '@vue2-client/utils/util'
77
+ import { CustomerDetailsViewApi } from '@vue2-client/services/api/CustomerDetailsViewApi'
78
+ import { post } from '@vue2-client/services/api/restTools'
79
+ import { mapState } from 'vuex'
80
+
81
+ export default {
82
+ name: 'CustomerDetailsView',
83
+ data () {
84
+ return {
85
+ // 页面宽度
86
+ screenWidth: document.documentElement.clientWidth,
87
+ // 客户详情
88
+ details: {
89
+ id: 0,
90
+ f_name: '',
91
+ f_region: '',
92
+ f_system_version: '',
93
+ f_contact: '',
94
+ f_address: '',
95
+ f_remark: '',
96
+ f_state: '正常',
97
+ f_input_date: '',
98
+ f_data_source: '',
99
+ f_log_persistence: '支持'
100
+ },
101
+ // 是否刷新加载中
102
+ loading: false,
103
+ operationTabList: [
104
+ {
105
+ key: '1',
106
+ tab: '基本信息'
107
+ },
108
+ {
109
+ key: '2',
110
+ tab: '操作日志'
111
+ }
112
+ ],
113
+ operationActiveTabKey: '1'
114
+ }
115
+ },
116
+ mounted () {
117
+ this.initView()
118
+ },
119
+ computed: {
120
+ ...mapState('account', { currUser: 'user' }),
121
+ ...mapState('setting', ['isMobile'])
122
+ },
123
+ props: {
124
+ customerName: {
125
+ type: String,
126
+ required: true
127
+ },
128
+ visible: {
129
+ type: Boolean,
130
+ default: false
131
+ }
132
+ },
133
+ methods: {
134
+ // 初始化组件
135
+ initView () {
136
+ this.getCustomers(this.customerName)
137
+ },
138
+ onClose () {
139
+ this.$emit('update:visible', false)
140
+ },
141
+ getCustomers (customerName) {
142
+ this.loading = true
143
+ return post(CustomerDetailsViewApi.getCustomerDetails, {
144
+ customerName: customerName
145
+ })
146
+ .then(res => {
147
+ res.f_state = res.f_state === '1' ? '正常' : '停用'
148
+ this.details = res
149
+ this.loading = false
150
+ }, err => {
151
+ this.loading = false
152
+ console.warn(err)
153
+ })
154
+ },
155
+ format (date, format) {
156
+ return formatDate(date, format)
157
+ }
158
+ },
159
+ watch: {
160
+ 'visible' (val) {
161
+ if (val) {
162
+ this.initView()
163
+ }
164
+ }
165
+ }
166
+ }
167
+ </script>
168
+
169
+ <style lang="less" scoped>
170
+ .detail-layout {
171
+ margin-left: 44px;
172
+ }
173
+ .text {
174
+ color: rgba(0, 0, 0, .45);
175
+ }
176
+
177
+ .heading {
178
+ color: rgba(0, 0, 0, .85);
179
+ font-size: 20px;
180
+ }
181
+
182
+ .no-data {
183
+ color: rgba(0, 0, 0, .25);
184
+ text-align: center;
185
+ line-height: 64px;
186
+ font-size: 16px;
187
+
188
+ i {
189
+ font-size: 24px;
190
+ margin-right: 16px;
191
+ position: relative;
192
+ top: 3px;
193
+ }
194
+ }
195
+
196
+ .mobile {
197
+ .detail-layout {
198
+ margin-left: unset;
199
+ }
200
+ .text {
201
+
202
+ }
203
+ .status-list {
204
+ text-align: left;
205
+ }
206
+ }
207
+
208
+ .row {
209
+ display: flex;
210
+
211
+ .content {
212
+ -webkit-box-flex: 1;
213
+ flex: auto;
214
+ -ms-flex: auto;
215
+ }
216
+
217
+ .extra {
218
+ flex: 0 1 auto;
219
+ -webkit-box-flex: 0;
220
+ -ms-flex: 0 1 auto;
221
+ min-width: 242px;
222
+ margin-left: 88px;
223
+ text-align: right;
224
+ }
225
+ }
226
+ </style>
@@ -13,7 +13,7 @@
13
13
  引用方式:
14
14
 
15
15
  ```javascript
16
- import CustomerDetailsView from '@/base-client/components/CustomerDetailsView'
16
+ import CustomerDetailsView from '@vue2-client/base-client/components/CustomerDetailsView'
17
17
 
18
18
  export default {
19
19
  components: {
@@ -38,4 +38,4 @@ export default {
38
38
  参数 | 说明 | 类型 | 默认值
39
39
  ----|------|-----|------
40
40
  visible | 是否显示 | Boolean | false
41
- customerName | 燃气公司客户名 | String | null
41
+ customerName | 燃气公司客户名 | String | null
@@ -28,7 +28,7 @@
28
28
  </template>
29
29
 
30
30
  <script>
31
- import XFormTable from '@/base-client/components/common/XFormTable/XFormTable'
31
+ import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable'
32
32
  import { mapState } from 'vuex'
33
33
  export default {
34
34
  components: {