iov-pro-components 0.0.3

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 (133) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +192 -0
  3. package/.gitignore +3 -0
  4. package/README.md +4 -0
  5. package/babel.config.js +5 -0
  6. package/docs/.vuepress/config.js +169 -0
  7. package/docs/.vuepress/styles/index.styl +62 -0
  8. package/docs/.vuepress/styles/palette.styl +20 -0
  9. package/docs/.vuepress/theme/enhanceApp.js +100 -0
  10. package/docs/.vuepress/theme/index.js +3 -0
  11. package/docs/README.md +13 -0
  12. package/docs/components/description.md +519 -0
  13. package/docs/components/dialog-select.md +91 -0
  14. package/docs/components/display.md +36 -0
  15. package/docs/components/enums.md +33 -0
  16. package/docs/components/icon.md +406 -0
  17. package/docs/components/link-group.md +39 -0
  18. package/docs/components/page-detail.md +48 -0
  19. package/docs/components/page-module.md +51 -0
  20. package/docs/components/pro-form.md +958 -0
  21. package/docs/components/pro-table.md +683 -0
  22. package/docs/components/request.md +44 -0
  23. package/docs/components/search-table.md +963 -0
  24. package/docs/components/space.md +35 -0
  25. package/docs/components/sub-title.md +24 -0
  26. package/docs/components/submit-module.md +24 -0
  27. package/docs/template/add.md +124 -0
  28. package/docs/template/confirm.md +28 -0
  29. package/docs/template/detail.md +240 -0
  30. package/docs/template/dialog.md +339 -0
  31. package/docs/template/list.md +464 -0
  32. package/docs/template/tabs-mini.md +32 -0
  33. package/docs/template/tabs.md +32 -0
  34. package/jsconfig.json +19 -0
  35. package/lib/iov-pro-components.css +1 -0
  36. package/lib/iov-pro-components.min.js +7 -0
  37. package/lib/postcss.config.js +8 -0
  38. package/package.json +75 -0
  39. package/patches/vue-server-renderer+2.7.16.patch +13 -0
  40. package/rollup.config.mjs +79 -0
  41. package/src/App.vue +103 -0
  42. package/src/main.js +33 -0
  43. package/src/packages/column-tooltip/index.js +7 -0
  44. package/src/packages/column-tooltip/src/main.vue +127 -0
  45. package/src/packages/description/index.js +7 -0
  46. package/src/packages/description/src/main.vue +375 -0
  47. package/src/packages/description/src/text.vue +103 -0
  48. package/src/packages/dialog-select/index.js +7 -0
  49. package/src/packages/dialog-select/src/main.vue +308 -0
  50. package/src/packages/display/index.js +7 -0
  51. package/src/packages/display/src/main.vue +44 -0
  52. package/src/packages/enums/index.js +7 -0
  53. package/src/packages/enums/src/main.vue +23 -0
  54. package/src/packages/export/index.js +7 -0
  55. package/src/packages/export/src/main.vue +316 -0
  56. package/src/packages/fixed-button-group/index.js +7 -0
  57. package/src/packages/fixed-button-group/src/main.vue +104 -0
  58. package/src/packages/form/index.js +7 -0
  59. package/src/packages/form/src/collapse.vue +149 -0
  60. package/src/packages/form/src/main.vue +1190 -0
  61. package/src/packages/form-collapse/index.js +7 -0
  62. package/src/packages/index.js +86 -0
  63. package/src/packages/link-group/index.js +7 -0
  64. package/src/packages/link-group/src/main.vue +52 -0
  65. package/src/packages/page-detail/index.js +7 -0
  66. package/src/packages/page-detail/src/main.vue +123 -0
  67. package/src/packages/page-module/index.js +7 -0
  68. package/src/packages/page-module/src/main.vue +56 -0
  69. package/src/packages/preview/index.js +7 -0
  70. package/src/packages/preview/src/eval-image-viewer.js +50 -0
  71. package/src/packages/preview/src/image-viewer.vue +366 -0
  72. package/src/packages/preview/src/main.vue +97 -0
  73. package/src/packages/request/index.js +7 -0
  74. package/src/packages/request/src/main.vue +125 -0
  75. package/src/packages/search-table/index.js +7 -0
  76. package/src/packages/search-table/src/inner-tabs.vue +237 -0
  77. package/src/packages/search-table/src/main.vue +472 -0
  78. package/src/packages/search-table/src/outer-tabs.vue +45 -0
  79. package/src/packages/search-table-inner-tabs/index.js +7 -0
  80. package/src/packages/search-table-outer-tabs/index.js +7 -0
  81. package/src/packages/space/index.js +7 -0
  82. package/src/packages/space/src/main.vue +74 -0
  83. package/src/packages/sub-title/index.js +7 -0
  84. package/src/packages/sub-title/src/main.vue +70 -0
  85. package/src/packages/submit-module/index.js +7 -0
  86. package/src/packages/submit-module/src/main.vue +67 -0
  87. package/src/packages/table/index.js +7 -0
  88. package/src/packages/table/src/filter.vue +89 -0
  89. package/src/packages/table/src/main.vue +668 -0
  90. package/src/packages/table/src/search.vue +90 -0
  91. package/src/packages/table/src/sort.vue +118 -0
  92. package/src/packages/theme/index.scss +15 -0
  93. package/src/packages/theme/src/column-tooltip.scss +23 -0
  94. package/src/packages/theme/src/common/color.scss +134 -0
  95. package/src/packages/theme/src/description.scss +56 -0
  96. package/src/packages/theme/src/dialog-select.scss +32 -0
  97. package/src/packages/theme/src/fixed-button-group.scss +25 -0
  98. package/src/packages/theme/src/form.scss +11 -0
  99. package/src/packages/theme/src/link-group.scss +43 -0
  100. package/src/packages/theme/src/page-detail.scss +61 -0
  101. package/src/packages/theme/src/page-module.scss +46 -0
  102. package/src/packages/theme/src/preview.scss +67 -0
  103. package/src/packages/theme/src/search-table.scss +185 -0
  104. package/src/packages/theme/src/space.scss +12 -0
  105. package/src/packages/theme/src/sub-title.scss +47 -0
  106. package/src/packages/theme/src/submit-module.scss +13 -0
  107. package/src/packages/theme/src/table.scss +129 -0
  108. package/src/packages/theme/src/toolbar.scss +109 -0
  109. package/src/packages/toolbar/index.js +7 -0
  110. package/src/packages/toolbar/src/main.vue +126 -0
  111. package/src/packages/toolbar/src/setting.vue +217 -0
  112. package/src/packages/toolbar/src/style.vue +68 -0
  113. package/src/packages/toolbar/src/zoom.vue +65 -0
  114. package/src/router.js +83 -0
  115. package/src/utils/config-center.js +218 -0
  116. package/src/utils/function-eval.js +84 -0
  117. package/src/utils/index.js +104 -0
  118. package/src/views/column-tooltip.vue +37 -0
  119. package/src/views/components/OtherSelect.vue +18 -0
  120. package/src/views/description.vue +60 -0
  121. package/src/views/detail.vue +146 -0
  122. package/src/views/directive/number.js +82 -0
  123. package/src/views/enums.vue +22 -0
  124. package/src/views/export.vue +9 -0
  125. package/src/views/form-collapse.vue +185 -0
  126. package/src/views/form.vue +402 -0
  127. package/src/views/link-group.vue +16 -0
  128. package/src/views/preview.vue +33 -0
  129. package/src/views/request.vue +56 -0
  130. package/src/views/search-table.vue +297 -0
  131. package/src/views/table.vue +145 -0
  132. package/src/views/toolbar.vue +30 -0
  133. package/vue.config.js +22 -0
@@ -0,0 +1,35 @@
1
+ # 间隔 Space
2
+
3
+ ## 基础使用
4
+
5
+ ::: demo
6
+ ```html
7
+ <template>
8
+ <iov-pro-space space="12px">
9
+ <span style="background-color: lightgrey">块1</span>
10
+ <span style="background-color: lightgrey">块2</span>
11
+ </iov-pro-space>
12
+ </template>
13
+ ```
14
+ :::
15
+
16
+ ## 水平展示
17
+
18
+ ::: demo
19
+ ```html
20
+ <template>
21
+ <iov-pro-space space="12px" direction="horizontal">
22
+ <span style="background-color: lightgrey">块1</span>
23
+ <span style="background-color: lightgrey">块2</span>
24
+ </iov-pro-space>
25
+ </template>
26
+ ```
27
+ :::
28
+
29
+ ## Request Attributes
30
+
31
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
32
+ | ------- | ------- | ------- | ------- | ------- |
33
+ | space | 间隔大小 | Number | - | - |
34
+ | direction | 间距方向 | String | vertical / horizontal | - |
35
+ | align | 对其方式 如果水平对其,则值为align-items属性值,如果垂直对其,则值为justify-content属性值 | String | - | - |
@@ -0,0 +1,24 @@
1
+ # 小标题 SubTitle
2
+
3
+ ## 基础使用
4
+
5
+ ::: demo
6
+ ```html
7
+ <template>
8
+ <iov-pro-sub-title
9
+ name="小标题"
10
+ icon="https://element.eleme.cn/favicon.ico"
11
+ desc="描述文案"
12
+ />
13
+ </template>
14
+ ```
15
+ :::
16
+
17
+
18
+ ## Attributes
19
+
20
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
21
+ | ------- | ------- | ------- | ------- | ------- |
22
+ | name | 模块标题 | String | - | - |
23
+ | icon | 页面icon,支持 url,require 本地图片 | String | - | - |
24
+ | desc | 页面描述信息 | String | - | - |
@@ -0,0 +1,24 @@
1
+ # 提交按钮模块 SubmitModule
2
+
3
+ ## 基础使用
4
+ ::: demo
5
+ ```html
6
+ <template>
7
+ <div class="app-container">
8
+ 见下方:
9
+ <iov-pro-submit-module left="500" right="100">
10
+ <el-button size="small" round>取消</el-button>
11
+ <el-button size="small" type="primary" round>确定</el-button>
12
+ </iov-pro-submit-module>
13
+ </div>
14
+ </template>
15
+ ```
16
+ :::
17
+
18
+ ## Attributes
19
+
20
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
21
+ | ------- | ------- | ------- | ------- | ------- |
22
+ | left | 距离左侧距离 | String | - | - |
23
+ | right | 距离右侧距离 | String | - | - |
24
+
@@ -0,0 +1,124 @@
1
+ ---
2
+ pageClass: grey-background-demo-content
3
+ ---
4
+
5
+ ## 新增页
6
+
7
+ ::: demo
8
+ ```html
9
+ <template>
10
+ <div class="add-demo app-container">
11
+ <iov-pro-space :space="10">
12
+ <iov-pro-page-module name="新增DEMO页">
13
+ <iov-pro-sub-title name="表单页面1" />
14
+ <iov-pro-form
15
+ ref="form1"
16
+ :items="ITEMS"
17
+ :config="{ grid: true, labelPosition: 'top', gutter: 20 }"
18
+ />
19
+ </iov-pro-page-module>
20
+
21
+ <iov-pro-page-module name="表单页面2" is-sub>
22
+ <iov-pro-form
23
+ ref="form2"
24
+ :items="ITEMS"
25
+ :config="{ grid: true, labelPosition: 'top', gutter: 20 }"
26
+ />
27
+ </iov-pro-page-module>
28
+ </iov-pro-space>
29
+ <iov-pro-submit-module>
30
+ <el-button round size="small">取消</el-button>
31
+ <el-button type="primary" round size="small" @click="onConfirm">确定</el-button>
32
+ </iov-pro-submit-module>
33
+ </div>
34
+ </template>
35
+
36
+ <script>
37
+ // 表单项配置
38
+ const ITEMS = [
39
+ {
40
+ label: '名称',
41
+ name: 'name',
42
+ type: 'input',
43
+ span: 12,
44
+ rules: {
45
+ required: true,
46
+ message: '请输入名称',
47
+ trigger: 'blur'
48
+ }
49
+ },
50
+ {
51
+ label: '公司',
52
+ name: 'companyNo',
53
+ type: 'select',
54
+ rules: {
55
+ required: true,
56
+ message: '请选择公司',
57
+ trigger: 'change'
58
+ }
59
+ },
60
+ {
61
+ label: '店铺',
62
+ name: 'shopNo',
63
+ type: 'select',
64
+ rules: {
65
+ required: true,
66
+ message: '请选择店铺',
67
+ trigger: 'change'
68
+ }
69
+ },
70
+ {
71
+ label: '时间范围',
72
+ name: ['startTime', 'endTime'],
73
+ type: 'date-picker',
74
+ span: 12,
75
+ props: {
76
+ type: 'datetimerange'
77
+ },
78
+ rules: {
79
+ required: true,
80
+ message: '请选择',
81
+ trigger: 'change'
82
+ }
83
+ },
84
+ {
85
+ label: '描述',
86
+ name: 'desc',
87
+ type: 'input',
88
+ span: 24,
89
+ props: {
90
+ type: 'textarea',
91
+ maxlength: '100',
92
+ showWordLimit: true
93
+ },
94
+ rules: {
95
+ required: true,
96
+ message: '请输入描述',
97
+ trigger: 'change'
98
+ }
99
+ }
100
+ ]
101
+
102
+ export default {
103
+ data() {
104
+ return {
105
+ formData: {},
106
+ ITEMS
107
+ }
108
+ },
109
+ methods: {
110
+ /**
111
+ * 用户确认输入
112
+ */
113
+ async onConfirm() {
114
+ // 校验表单输入
115
+ await Promise.all([
116
+ this.$refs.form1.validate(),
117
+ this.$refs.form2.validate()
118
+ ])
119
+ }
120
+ }
121
+ }
122
+ </script>
123
+ ```
124
+ :::
@@ -0,0 +1,28 @@
1
+ ## confirm提示框
2
+
3
+ ::: demo
4
+ ```vue
5
+ <template>
6
+ <el-button round size="small" type="primary" @click.stop="confirm">确认按钮</el-button>
7
+ </template>
8
+ <script>
9
+
10
+ export default {
11
+ methods: {
12
+ async confirm() {
13
+ try {
14
+ await this.$confirm('确认框提示语', '', {
15
+ type: 'warning',
16
+ customClass: 'message-box-no-title',
17
+ roundButton: true
18
+ })
19
+ this.$message.success('操作成功')
20
+ } catch (error) {
21
+ console.log(error)
22
+ }
23
+ }
24
+ }
25
+ }
26
+ </script>
27
+ ```
28
+ :::
@@ -0,0 +1,240 @@
1
+ ---
2
+ pageClass: grey-background-demo-content
3
+ ---
4
+
5
+ ## 详情页模板
6
+
7
+ ::: demo
8
+ ```vue
9
+ <template>
10
+ <iov-pro-request
11
+ :api="apiMock"
12
+ :params="{tenantNo}"
13
+ :default="{ data: {} }"
14
+ >
15
+ <template #default="{ data }">
16
+ <iov-pro-space space="10" class="template-detail">
17
+ <iov-pro-page-detail
18
+ :name="data.tenantName"
19
+ :status-text="data.statusName"
20
+ :status-type="['info', 'success'][data&&data.status]"
21
+ :desc="`租户编码:${data.tenantNo}`"
22
+ :help="[`创建人:${data.creatorFullName}`, `创建时间:${data.createTime}`]"
23
+ icon="https://element.eleme.cn/favicon.ico"
24
+ >
25
+ <iov-pro-description
26
+ :data-source="data"
27
+ :items="TENANT_ITEMS"
28
+ label-width="210px"
29
+ class="detail-description"
30
+ />
31
+ <div class="table-box">
32
+ <iov-pro-sub-title
33
+ icon="https://element.eleme.cn/favicon.ico"
34
+ name="应用列表"
35
+ />
36
+ <iov-pro-table
37
+ :columns="COLUMNS"
38
+ :request="{ api: apiMockList, params: { tenantNo } }"
39
+ class="detail-table"
40
+ :config="{ table: { border: true } }"
41
+ />
42
+ </div>
43
+ </iov-pro-page-detail>
44
+ <iov-pro-page-module name="基本信息" is-sub>
45
+ <iov-pro-description
46
+ :data-source="data"
47
+ :items="BASIC_LOGIN_ITEMS"
48
+ label-width="180px"
49
+ />
50
+ </iov-pro-page-module>
51
+ <iov-pro-page-module name="登录信息" is-sub>
52
+ <iov-pro-description
53
+ :data-source="data"
54
+ :items="SSO_LOGIN_ITEMS"
55
+ label-width="180px"
56
+ />
57
+ </iov-pro-page-module>
58
+ </iov-pro-space>
59
+ </template>
60
+ </iov-pro-request>
61
+ </template>
62
+
63
+ <script>
64
+ const TENANT_ITEMS = [
65
+ { label: '租户代码', prop: 'alias' },
66
+ { label: '统一信用代码', prop: 'usci' }
67
+ ]
68
+
69
+ const STATUS = [
70
+ { label: '启用', value: 1, type: 'success' },
71
+ { label: '停用', value: 0, type: 'info' }
72
+ ]
73
+
74
+ const COLUMNS = [
75
+ { label: '应用编码', prop: 'applicationId', minWidth: '120px' },
76
+ { label: '应用名称', prop: 'applicationName', minWidth: '200px', showOverflowTooltip: true },
77
+ { label: 'ClientID', prop: 'clientId', minWidth: '300px' },
78
+ { type: 'tag', label: '状态', prop: 'status', align: 'right', minWidth: '140px', enums: STATUS, filters: STATUS, config: { fieldKey: 'appStatus' }}
79
+ ]
80
+
81
+ const BASIC_LOGIN_ITEMS = [
82
+ { label: '应用首页地址', prop: 'indexPageUrl' },
83
+ { label: '外部appid', prop: 'openAppKey' },
84
+ { label: '访问令牌有效期(秒)', prop: 'accessTokenTerm' },
85
+ ]
86
+
87
+ // SSO登录配置
88
+ const SSO_LOGIN_ITEMS = [
89
+ { label: '客户端id', prop: 'clientId' },
90
+ { label: '客户端密钥', prop: 'clientSecret' },
91
+ ]
92
+
93
+ const apiMock = (params) => {
94
+ return new Promise((resolve, reject) => {
95
+ setTimeout(() => resolve(
96
+ {
97
+ "alias": "CUSC",
98
+ "createTime": "2022-02-08 10:01:50",
99
+ "creator": "",
100
+ "creatorFullName": "",
101
+ "id": 1,
102
+ "operator": "6515104331f64d648a5659b74f0d3a57",
103
+ "operatorFullName": "孙开(智网)",
104
+ "status": 1,
105
+ "statusName": "启用",
106
+ "tenantName": "智网",
107
+ "tenantNo": "1",
108
+ "updateTime": "2023-08-07 15:28:51",
109
+ "usci": "",
110
+ indexPageUrl: 'https://www.baidu.com/',
111
+ openAppKey: 'alll1091899sjj18981',
112
+ accessTokenTerm: '1800',
113
+ clientId: 'i129jk91289837372',
114
+ clientSecret: 'o19276734jdhey78',
115
+ }), 1000)
116
+ })
117
+ }
118
+ const apiMockList = (params) => {
119
+ return new Promise((resolve, reject) => {
120
+ setTimeout(() => resolve(
121
+ {
122
+ "currPage": 1,
123
+ "hasMore": true,
124
+ "list": [
125
+ {
126
+ "applicationId": "41",
127
+ "applicationName": "新运管工单管理后台",
128
+ "clientId": "42be50a76bae4f468b2688605076ae5c",
129
+ "isBind": false,
130
+ "status": 1,
131
+ "statusName": "启用"
132
+ },
133
+ {
134
+ "applicationId": "43",
135
+ "applicationName": "技术中台-文件服务门户控制台",
136
+ "clientId": "65420f241ce64336895c91778aa332e1",
137
+ "isBind": false,
138
+ "status": 1,
139
+ "statusName": "启用"
140
+ },
141
+ {
142
+ "applicationId": "42",
143
+ "applicationName": "lujk测试app",
144
+ "clientId": "c8b0057253ed4c50a2c70e3dd3244415",
145
+ "isBind": false,
146
+ "status": 0,
147
+ "statusName": "禁用"
148
+ },
149
+ {
150
+ "applicationId": "41",
151
+ "applicationName": "新运管工单管理后台",
152
+ "clientId": "42be50a76bae4f468b2688605076ae5c",
153
+ "isBind": false,
154
+ "status": 1,
155
+ "statusName": "启用"
156
+ },
157
+ {
158
+ "applicationId": "40",
159
+ "applicationName": "购卡企业使用人实名登记门户",
160
+ "clientId": "6adf2496a51f4dd8a9dc5d113887bbf8",
161
+ "isBind": false,
162
+ "status": 1,
163
+ "statusName": "启用"
164
+ },
165
+ {
166
+ "applicationId": "39",
167
+ "applicationName": "数智运营",
168
+ "clientId": "9d2f4e97af8548379a7f837d630051f5",
169
+ "isBind": false,
170
+ "status": 0,
171
+ "statusName": "禁用"
172
+ },
173
+ {
174
+ "applicationId": "38",
175
+ "applicationName": "HMI管理后台",
176
+ "clientId": "e1f48d80d3164b4cb17655a37745fa5a",
177
+ "isBind": false,
178
+ "status": 1,
179
+ "statusName": "启用"
180
+ },
181
+ {
182
+ "applicationId": "37",
183
+ "applicationName": "新增用户DEMO_01",
184
+ "clientId": "13652d113f47492a910151ec72307a5d",
185
+ "isBind": false,
186
+ "status": 1,
187
+ "statusName": "启用"
188
+ },
189
+ {
190
+ "applicationId": "36",
191
+ "applicationName": "技术中台-监控",
192
+ "clientId": "fcd81ed26a7045cd9233d8daf95c9bbe",
193
+ "isBind": false,
194
+ "status": 1,
195
+ "statusName": "启用"
196
+ },
197
+ {
198
+ "applicationId": "35",
199
+ "applicationName": "客服V8",
200
+ "clientId": "8a68d3d71d6f49d29c460090d1681f0b",
201
+ "isBind": false,
202
+ "status": 1,
203
+ "statusName": "启用"
204
+ }
205
+ ],
206
+ "pageSize": 10,
207
+ "totalCount": 38
208
+ }), 1000)
209
+ })
210
+ }
211
+ const appState = [
212
+ { label: '启用', value: 1, type: 'success' },
213
+ { label: '停用', value: 0, type: 'info' }
214
+ ]
215
+
216
+ export default {
217
+ data() {
218
+ return {
219
+ apiMock,
220
+ apiMockList,
221
+ TENANT_ITEMS,
222
+ COLUMNS,
223
+ tenantNo: '1',
224
+ BASIC_LOGIN_ITEMS,
225
+ SSO_LOGIN_ITEMS
226
+ }
227
+ },
228
+ methods: {
229
+
230
+ }
231
+ }
232
+ </script>
233
+
234
+ <style>
235
+ .template-detail .table-box {
236
+ padding-top: 20px;
237
+ }
238
+ </style>
239
+ ```
240
+ :::