backend-management-ui 1.1.2 → 1.1.4
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/README.md +178 -0
- package/backend-management-ui.common.js +12 -5
- package/backend-management-ui.common.js.map +1 -1
- package/backend-management-ui.umd.js +12 -5
- package/backend-management-ui.umd.js.map +1 -1
- package/backend-management-ui.umd.min.js +1 -1
- package/backend-management-ui.umd.min.js.map +1 -1
- package/package.json +8 -3
package/README.md
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# backend-management-ui
|
|
2
|
+
|
|
3
|
+
一个基于 ElementUI 封装的 Vue2 后台管理组件库,简化后台开发中表格、表单、弹窗、按钮组、虚拟下拉框等高频组件的使用。
|
|
4
|
+
|
|
5
|
+
## 特性
|
|
6
|
+
- 基于ElementUI的二次封装,无缝兼容ElementUI原有功能
|
|
7
|
+
- 简化配置:表格/表单/按钮组通过配置快速生成,无需重复写模板
|
|
8
|
+
- 高频场景覆盖:表格/表单/按钮组/虚拟下拉框等
|
|
9
|
+
- 兼容 Vue2.6.x + ElementUI 2.15.x,无额外依赖。
|
|
10
|
+
|
|
11
|
+
## 安装
|
|
12
|
+
npm 安装
|
|
13
|
+
|
|
14
|
+
`npm install backend-management-ui --save`
|
|
15
|
+
|
|
16
|
+
yarn 安装
|
|
17
|
+
|
|
18
|
+
`yarn add backend-management-ui`
|
|
19
|
+
|
|
20
|
+
## 快速上手
|
|
21
|
+
全局引入
|
|
22
|
+
``` markdown
|
|
23
|
+
``` js
|
|
24
|
+
// main.js
|
|
25
|
+
import Vue from 'vue'
|
|
26
|
+
import ElementUI from 'element-ui'
|
|
27
|
+
import 'element-ui/lib/theme-chalk/index.css'
|
|
28
|
+
import BackendManagementUI from 'backend-management-ui'
|
|
29
|
+
|
|
30
|
+
Vue.use(ElementUI)
|
|
31
|
+
Vue.use(BackendManagementUI) // 全局注册所有组件
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
按需引入
|
|
35
|
+
```markdown
|
|
36
|
+
```js
|
|
37
|
+
// main.js
|
|
38
|
+
import Vue from 'vue'
|
|
39
|
+
import { UiTable, UiForm } from 'backend-management-ui'
|
|
40
|
+
// 全局注册单个组件
|
|
41
|
+
Vue.component('UiTable', UiTable)
|
|
42
|
+
|
|
43
|
+
// 组件内
|
|
44
|
+
import { UiTable, UiForm } from 'backend-management-ui'
|
|
45
|
+
export default {
|
|
46
|
+
components: {
|
|
47
|
+
UiTable,
|
|
48
|
+
UiForm
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 组件示例和文档
|
|
54
|
+
|
|
55
|
+
### ui-form 表单
|
|
56
|
+
使用el-form进行的二次封装
|
|
57
|
+
|
|
58
|
+
基本用法
|
|
59
|
+
|
|
60
|
+
#### 典型表单
|
|
61
|
+

|
|
62
|
+
``` markdown
|
|
63
|
+
``` js
|
|
64
|
+
<ui-form :model="searchForm" :formConfig="formConfig" label-width="100px" ></ui-form>
|
|
65
|
+
<script>
|
|
66
|
+
export default {
|
|
67
|
+
data() {
|
|
68
|
+
return {
|
|
69
|
+
searchForm: {
|
|
70
|
+
orderNo: null,
|
|
71
|
+
status: null
|
|
72
|
+
},
|
|
73
|
+
formConfig: [
|
|
74
|
+
{
|
|
75
|
+
label: '订单号',
|
|
76
|
+
prop: 'orderNo',
|
|
77
|
+
component: 'el-input'
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
label: '状态',
|
|
81
|
+
prop: 'status',
|
|
82
|
+
component: 'el-select',
|
|
83
|
+
options: [
|
|
84
|
+
{label: '成功', value: 0},
|
|
85
|
+
{label: '失败', value: 1}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
</script>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
#### 典型展示表单
|
|
96
|
+

|
|
97
|
+
``` markdown
|
|
98
|
+
``` js
|
|
99
|
+
<ui-form :model="searchForm" :formConfig="formConfig" label-width="100px" :showOperateBtn="false">
|
|
100
|
+
<template #item-orderNo="{ item, model, index }">
|
|
101
|
+
<span>{{ model.orderNo }}</span>
|
|
102
|
+
</template>
|
|
103
|
+
<template #item-status="{ model }">
|
|
104
|
+
<span>{{ model.orderNo }}</span>
|
|
105
|
+
</template>
|
|
106
|
+
</ui-form>
|
|
107
|
+
<script>
|
|
108
|
+
export default {
|
|
109
|
+
data() {
|
|
110
|
+
return {
|
|
111
|
+
searchForm: {
|
|
112
|
+
orderNo: "订单好xx",
|
|
113
|
+
status: "成功"
|
|
114
|
+
},
|
|
115
|
+
formConfig: [
|
|
116
|
+
{
|
|
117
|
+
label: '订单号',
|
|
118
|
+
prop: 'orderNo',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
label: '状态',
|
|
122
|
+
prop: 'status',
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
</script>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
#### 下拉类型接口获取数据
|
|
132
|
+
|
|
133
|
+
``` markdown
|
|
134
|
+
``` js
|
|
135
|
+
// 或者 :apiMapConfig="{ status: statusApi }"
|
|
136
|
+
<ui-form :model="searchForm" :formConfig="formConfig" label-width="100px" ></ui-form>
|
|
137
|
+
import { statusApi } from "@/api/status"
|
|
138
|
+
<script>
|
|
139
|
+
export default {
|
|
140
|
+
data() {
|
|
141
|
+
return {
|
|
142
|
+
searchForm: {
|
|
143
|
+
orderNo: null,
|
|
144
|
+
status: null
|
|
145
|
+
},
|
|
146
|
+
formConfig: [
|
|
147
|
+
{
|
|
148
|
+
label: '订单号',
|
|
149
|
+
prop: 'orderNo',
|
|
150
|
+
component: 'el-input'
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
label: '状态',
|
|
154
|
+
prop: 'status',
|
|
155
|
+
component: 'el-select',
|
|
156
|
+
api: statusApi,
|
|
157
|
+
{/* 或者 */}
|
|
158
|
+
{/* api: {
|
|
159
|
+
url: statusApi,
|
|
160
|
+
params: {
|
|
161
|
+
page: 1,
|
|
162
|
+
pageSize: 10,
|
|
163
|
+
}
|
|
164
|
+
} */}
|
|
165
|
+
}
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
</script>
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
#### props
|
|
174
|
+
|
|
175
|
+
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|
|
176
|
+
| --------- | ----------- | -------- | ------ | --------- |
|
|
177
|
+
| formRef | form的实例 | string | - | formRef |
|
|
178
|
+
| model | 表单数据对象 | object | - | {} |
|
|
@@ -4386,7 +4386,7 @@ if (typeof window !== 'undefined') {
|
|
|
4386
4386
|
// Indicate to webpack that this file can be concatenated
|
|
4387
4387
|
/* harmony default export */ var setPublicPath = (null);
|
|
4388
4388
|
|
|
4389
|
-
;// ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elementConfig/ui-form/index.vue?vue&type=template&id=
|
|
4389
|
+
;// ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elementConfig/ui-form/index.vue?vue&type=template&id=14a78aef
|
|
4390
4390
|
var render = function render() {
|
|
4391
4391
|
var _vm = this,
|
|
4392
4392
|
_c = _vm._self._c;
|
|
@@ -4444,7 +4444,7 @@ var render = function render() {
|
|
|
4444
4444
|
return _vm.resetForm();
|
|
4445
4445
|
}
|
|
4446
4446
|
}
|
|
4447
|
-
}, [_vm._v(
|
|
4447
|
+
}, [_vm._v(_vm._s(_vm.resetText))]), _c('el-button', {
|
|
4448
4448
|
attrs: {
|
|
4449
4449
|
"type": "primary"
|
|
4450
4450
|
},
|
|
@@ -4453,7 +4453,7 @@ var render = function render() {
|
|
|
4453
4453
|
return _vm.$emit('search');
|
|
4454
4454
|
}
|
|
4455
4455
|
}
|
|
4456
|
-
}, [_vm._v(
|
|
4456
|
+
}, [_vm._v(_vm._s(_vm.searchText))])] : _vm._e(), _vm._t("customBtn")], 2) : _vm._e()], 2);
|
|
4457
4457
|
};
|
|
4458
4458
|
var staticRenderFns = [];
|
|
4459
4459
|
|
|
@@ -4509,6 +4509,14 @@ const componentMap = {
|
|
|
4509
4509
|
type: Boolean,
|
|
4510
4510
|
default: true
|
|
4511
4511
|
},
|
|
4512
|
+
resetText: {
|
|
4513
|
+
type: String,
|
|
4514
|
+
default: '重置'
|
|
4515
|
+
},
|
|
4516
|
+
searchText: {
|
|
4517
|
+
type: String,
|
|
4518
|
+
default: '搜索'
|
|
4519
|
+
},
|
|
4512
4520
|
apiMapConfig: {
|
|
4513
4521
|
// { [prop]: [api] } 或 {[prop]: {url: [api], params: [params]}}
|
|
4514
4522
|
type: Object,
|
|
@@ -4555,8 +4563,7 @@ const componentMap = {
|
|
|
4555
4563
|
if (componentName === "virtual-select") {
|
|
4556
4564
|
return {
|
|
4557
4565
|
...baseAttrs,
|
|
4558
|
-
options: item.options || []
|
|
4559
|
-
listClass: "111w"
|
|
4566
|
+
options: item.options || []
|
|
4560
4567
|
};
|
|
4561
4568
|
}
|
|
4562
4569
|
return baseAttrs;
|