bri-components 1.1.0 → 1.1.2

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 (77) hide show
  1. package/lib/0.bri-components.min.js +1 -1
  2. package/lib/1.bri-components.min.js +1 -1
  3. package/lib/2.bri-components.min.js +1 -1
  4. package/lib/3.bri-components.min.js +1 -1
  5. package/lib/4.bri-components.min.js +1 -1
  6. package/lib/5.bri-components.min.js +1 -1
  7. package/lib/6.bri-components.min.js +1 -1
  8. package/lib/7.bri-components.min.js +1 -1
  9. package/lib/8.bri-components.min.js +1 -1
  10. package/lib/9.bri-components.min.js +1 -1
  11. package/lib/bri-components.min.js +6 -6
  12. package/package.json +1 -1
  13. package/src/components/controls/base/BriLabels.vue +154 -12
  14. package/src/components/controls/base/DshCascader.vue +1 -5
  15. package/src/components/controls/base/DshCoordinates.vue +89 -81
  16. package/src/components/controls/base/DshEditor.vue +23 -7
  17. package/src/components/controls/base/DshInput.vue +7 -0
  18. package/src/components/controls/base/controlShow.vue +5 -5
  19. package/src/components/controls/controlMap.js +2 -2
  20. package/src/components/controls/controlMixin.js +39 -25
  21. package/src/components/controls/senior/cascaderTable.vue +47 -41
  22. package/src/components/controls/senior/flatTable.vue +58 -53
  23. package/src/components/form/DshForm.vue +8 -17
  24. package/src/components/list/BriFlatTable.vue +15 -12
  25. package/src/components/list/BriTable.vue +11 -5
  26. package/src/components/list/DshBox/DshBox.vue +1 -1
  27. package/src/components/list/DshBox/DshCard.vue +1 -1
  28. package/src/components/list/DshBox/DshCrossTable.vue +1 -1
  29. package/src/components/list/DshBox/DshList.vue +3 -3
  30. package/src/components/list/DshBox/DshPanel.vue +1 -1
  31. package/src/components/list/DshBox/DshSingleData.vue +1 -8
  32. package/src/components/list/DshCascaderTable.vue +4 -4
  33. package/src/components/list/DshFlatTable.vue +1 -1
  34. package/src/components/list/ZTree.vue +1 -1
  35. package/src/components/list/easyTable/v-table/src/table.vue +3 -3
  36. package/src/components/list/evTable/EvTable.vue +1 -1
  37. package/src/components/other/BriTransfer.vue +1 -1
  38. package/src/components/other/ZGantt.vue +2 -2
  39. package/src/components/other/ZLoading.vue +32 -3
  40. package/src/components/small/BriDrawer.vue +132 -0
  41. package/src/components/small/DshButtons.vue +3 -3
  42. package/src/components/small/DshControlDefine.vue +2 -1
  43. package/src/components/small/DshDropdown.vue +1 -1
  44. package/src/components/small/DshModal.vue +25 -1
  45. package/src/components/small/DshTdRender.js +1 -1
  46. package/src/components/unit/DshFormItem.vue +40 -41
  47. package/src/components/unit/DshUnit.vue +15 -8
  48. package/src/components/unit/unitMixin.js +0 -8
  49. package/src/index.js +7 -4
  50. package/src/styles/common/box.less +29 -0
  51. package/src/styles/common/control.less +2 -0
  52. package/src/styles/components/controls/BriLabels.less +113 -3
  53. package/src/styles/components/controls/DshCascader.less +7 -3
  54. package/src/styles/components/controls/DshCoordinates.less +6 -1
  55. package/src/styles/components/controls/DshInput.less +6 -0
  56. package/src/styles/components/controls/DshLabels.less +3 -3
  57. package/src/styles/components/controls/controlShow.less +0 -2
  58. package/src/styles/components/index.less +2 -2
  59. package/src/styles/components/other/InfoCascader.less +4 -0
  60. package/src/styles/components/other/ZLoading.less +23 -7
  61. package/src/styles/components/small/BriDrawer.less +34 -0
  62. package/src/styles/components/small/DshControlDefine.less +15 -36
  63. package/src/styles/components/small/DshDropdown.less +11 -8
  64. package/src/styles/components/small/DshTitle.less +1 -4
  65. package/src/styles/components/unit/DshFormItem.less +7 -5
  66. package/src/styles/iconfont/iconfont.css +254 -0
  67. package/src/styles/iconfont/iconfont.eot +0 -0
  68. package/src/styles/iconfont/iconfont.js +1 -0
  69. package/src/styles/iconfont/iconfont.json +422 -0
  70. package/src/styles/iconfont/iconfont.svg +137 -0
  71. package/src/styles/iconfont/iconfont.ttf +0 -0
  72. package/src/styles/iconfont/iconfont.woff +0 -0
  73. package/src/styles/iconfont/iconfont.woff2 +0 -0
  74. package/src/styles/index.less +1 -0
  75. package/src/styles/plugin/iview.less +7 -2
  76. package/src/styles/reset.less +2 -2
  77. package/src/utils/table.js +3 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bri-components",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "author": "dengshanghui",
5
5
  "description": "a component lib for vue project",
6
6
  "main": "src/index.js",
@@ -1,22 +1,39 @@
1
1
  <!-- 动态标签 -->
2
2
  <template>
3
3
  <div class="BriLabels">
4
+ <!-- 编辑 -->
4
5
  <Dropdown
6
+ v-if="finalCanEdit"
5
7
  class="BriLabels-dropdown"
6
8
  trigger="custom"
7
9
  placement="bottom-start"
8
- transfer
9
10
  :visible="listVisible"
10
11
  @on-clickoutside="clickInput"
11
12
  >
12
- <Input
13
- class="BriLabels-dropdown-input"
14
- :value="showValStr"
15
- :suffix="inputIcon"
16
- readonly
17
- @click.native="clickInput"
13
+ <div
14
+ :class="{
15
+ 'control-edit': true,
16
+ 'BriLabels-dropdown-show':true,
17
+ 'BriLabels-dropdown-show-active':listVisible
18
+ }"
19
+ @click="clickInput"
18
20
  >
19
- </Input>
21
+ <div class="BriLabels-dropdown-show-list">
22
+ <Tag
23
+ v-for="item in val"
24
+ :key="item._key"
25
+ closable
26
+ @on-close="handleCancel(item)"
27
+ >
28
+ {{item.name}}
29
+ </Tag>
30
+ </div>
31
+ <Icon
32
+ class="BriLabels-dropdown-show-arrow"
33
+ color="#808695"
34
+ :type="inputIcon"
35
+ />
36
+ </div>
20
37
  <template #list>
21
38
  <DropdownMenu>
22
39
  <DropdownItem
@@ -26,12 +43,97 @@
26
43
  'BriLabels-dropdown-item':true,
27
44
  'BriLabels-dropdown-item-active':!!val.find(i=>i._key == item._key)
28
45
  }"
46
+ @click.native="clickItem(item)"
29
47
  >
30
- {{item.name}}
48
+ <div
49
+ class="BriLabels-dropdown-item-show"
50
+ v-if="!item.isEdit"
51
+ >
52
+ {{item.name}}
53
+ <span class="BriLabels-dropdown-item-show-icons">
54
+ <Icon
55
+ v-if="!item.coreLabel"
56
+ class="BriLabels-dropdown-item-show-icons-edit"
57
+ custom="bri bri-bianji"
58
+ @click.stop="clickEdit(item)"
59
+ />
60
+ <!-- 暂时不需要删除 -->
61
+ <!-- <Icon
62
+ class="BriLabels-dropdown-item-show-icons-del"
63
+ custom="bri bri-shanchu"
64
+ /> -->
65
+ </span>
66
+ </div>
67
+ <div
68
+ class="BriLabels-dropdown-item-edit"
69
+ v-else
70
+ >
71
+ <Input
72
+ v-model="item.name"
73
+ @click.native="editItem($event)"
74
+ >
75
+ <template #suffix>
76
+ <Icon
77
+ color="#3DB8C5"
78
+ custom="bri bri-duigou"
79
+ @click.native.stop="confirmEdit(item)"
80
+ />
81
+ </template>
82
+ </Input>
83
+ </div>
31
84
  </DropdownItem>
85
+ <div class="BriLabels-dropdown-btnWrap">
86
+ <bri-button
87
+ class="BriLabels-dropdown-add"
88
+ :propsObj="{
89
+ btnType: 'default',
90
+ icon:'md-add'
91
+ }"
92
+ @click="addLabel"
93
+ >
94
+ 添加选项
95
+ </bri-button>
96
+ </div>
32
97
  </DropdownMenu>
33
98
  </template>
34
99
  </Dropdown>
100
+ <!-- 查看 -->
101
+ <div
102
+ v-else
103
+ class="BriLabels-view"
104
+ >
105
+ <template v-if="val.length">
106
+ <Ctooltip
107
+ placement="top"
108
+ :transfer="true"
109
+ maxWidth="200"
110
+ :content="showValStr"
111
+ >
112
+ <div class="dsh-ellipsis">
113
+ <div
114
+ v-for="item in val"
115
+ :key="item._key"
116
+ size="medium"
117
+ class="BriLabels-view-item"
118
+ >
119
+ {{ item.name }}
120
+ </div>
121
+ </div>
122
+ </Ctooltip>
123
+ </template>
124
+
125
+ <div
126
+ v-else
127
+ class="BriLabels-view-nodata"
128
+ >
129
+ <template v-if="isUnit">
130
+ -
131
+ </template>
132
+ <template v-else>
133
+ 暂无内容
134
+ </template>
135
+ </div>
136
+ </div>
35
137
  </div>
36
138
  </template>
37
139
 
@@ -45,7 +147,8 @@
45
147
  return {
46
148
  listData: [],
47
149
  listVisible: false,
48
- inputIcon: "ios-arrow-down"
150
+ inputIcon: "ios-arrow-down",
151
+ renderList: false
49
152
  };
50
153
  },
51
154
  computed: {
@@ -72,7 +175,6 @@
72
175
  }
73
176
  },
74
177
  created () {
75
- this.init();
76
178
  },
77
179
  methods: {
78
180
  init () {
@@ -98,17 +200,57 @@
98
200
  }
99
201
  },
100
202
  callback: data => {
101
- this.listData = data.list;
203
+ this.listData = data.list.map(item => {
204
+ return {
205
+ ...item,
206
+ isEdit: false
207
+ };
208
+ });
102
209
  }
103
210
  });
104
211
  },
105
212
  clickInput () {
213
+ if (!this.finalCanEdit) return;
214
+ if (!this.renderList) {
215
+ this.init();
216
+ }
217
+ this.renderList = true;
106
218
  this.listVisible = !this.listVisible;
107
219
  if (this.listVisible) {
108
220
  this.inputIcon = "ios-arrow-up";
109
221
  } else {
110
222
  this.inputIcon = "ios-arrow-down";
111
223
  }
224
+ },
225
+ clickItem (item) {
226
+ if (this.val.findIndex(i => i._key == item._key) > -1) {
227
+ this.val = this.val.filter(i => i._key != item._key);
228
+ } else {
229
+ this.val.push(item);
230
+ }
231
+ },
232
+ clickEdit (item) {
233
+ item.isEdit = true;
234
+ this.$forceUpdate();
235
+ },
236
+ editItem (e) {
237
+ e.stopPropagation();
238
+ },
239
+ confirmEdit (item) {
240
+ if (item.name == "") return;
241
+ item.isEdit = false;
242
+ this.$forceUpdate();
243
+ },
244
+ handleCancel (item) {
245
+ this.val = this.val.filter(i => i._key != item._key);
246
+ },
247
+ addLabel () {
248
+ this.listData.push({
249
+ _key: this.$randomB36("Labels"),
250
+ isEdit: true,
251
+ name: "",
252
+ labelType: this.selfPropsObj._labelType
253
+ });
112
254
  }
113
255
  },
114
256
  watch: {
@@ -36,11 +36,7 @@
36
36
  <!-- 弹框模式 -->
37
37
  <template v-if="selfPropsObj._showMode === 'custom'">
38
38
  <div
39
- :class="{
40
- 'DshCascader-single': true,
41
- 'dsh-control-readonly': $isReadonly(canEdit, propsObj),
42
- 'dsh-control-disabled': $isDisabled(canEdit, propsObj)
43
- }"
39
+ :class="commonClass"
44
40
  @click="openModal"
45
41
  >
46
42
  <div
@@ -1,10 +1,10 @@
1
1
  <template>
2
2
  <div class="DshCoordinates">
3
3
  <Ctooltip
4
+ :content="curValName"
4
5
  placement="top"
5
6
  :transfer="true"
6
7
  maxWidth="200"
7
- :content="currentVal"
8
8
  >
9
9
  <!-- 编辑模式 -->
10
10
  <div
@@ -37,107 +37,115 @@
37
37
  </div>
38
38
 
39
39
  <!-- 查看模式 -->
40
- <span v-else :class="commonClass">
40
+ <span
41
+ v-else
42
+ :class="{
43
+ ...commonClass,
44
+ 'DshCoordinates-show': !isUnit
45
+ }"
46
+ >
41
47
  {{ showText }}
42
48
  </span>
43
49
  </Ctooltip>
44
50
 
45
51
  <!-- 模态框 -->
46
- <Modal
47
- class="DshCoordinates-modal clearFlex-modal"
48
- v-model="showModal"
49
- title="选择位置"
50
- :footer-hide="true"
51
- :styles="modalStyles"
52
- @on-cancel="clickCancel"
53
- >
54
- <div
55
- slot="header"
56
- class="DshCoordinates-modal-header"
52
+ <template v-if="canEdit">
53
+ <Modal
54
+ class="DshCoordinates-modal clearFlex-modal"
55
+ v-model="showModal"
56
+ title="选择位置"
57
+ :footer-hide="true"
58
+ :styles="modalStyles"
59
+ @on-cancel="clickCancel"
57
60
  >
58
- <Row
59
- v-if="finalCanEdit"
60
- type="flex"
61
- justify="center"
62
- align="bottom"
61
+ <div
62
+ slot="header"
63
+ class="DshCoordinates-modal-header"
63
64
  >
64
- <Col span="8">
65
- <div>
66
- <RadioGroup v-model="formData.kind">
67
- <Radio label="keyword">按关键字搜索</Radio>
68
- <Radio label="coordinate">按坐标搜索</Radio>
69
- </RadioGroup>
70
- </div>
71
- <Row class="dsh-margin-top5">
72
- <Col span="16">
73
- <Input
74
- v-model="formData.searchText"
75
- placeholder="请输入..."
76
- :clearable="true"
77
- @on-enter="clickSearch"
78
- />
79
- <span class="DshCoordinates-message">{{ searchMessage }}</span>
65
+ <Row
66
+ v-if="finalCanEdit"
67
+ type="flex"
68
+ justify="center"
69
+ align="bottom"
70
+ >
71
+ <Col span="8">
72
+ <div>
73
+ <RadioGroup v-model="formData.kind">
74
+ <Radio label="keyword">按关键字搜索</Radio>
75
+ <Radio label="coordinate">按坐标搜索</Radio>
76
+ </RadioGroup>
77
+ </div>
78
+ <Row class="dsh-margin-top5">
79
+ <Col span="16">
80
+ <Input
81
+ v-model="formData.searchText"
82
+ placeholder="请输入..."
83
+ :clearable="true"
84
+ @on-enter="clickSearch"
85
+ />
86
+ <span class="DshCoordinates-message">{{ searchMessage }}</span>
87
+ </Col>
88
+ <Col span="8">&nbsp;
89
+ <Button
90
+ type="primary"
91
+ @click="clickSearch"
92
+ >搜索</Button>
93
+ </Col>
94
+ </Row>
80
95
  </Col>
81
- <Col span="8">&nbsp;
82
- <Button
83
- type="primary"
84
- @click="clickSearch"
85
- >搜索</Button>
96
+
97
+ <Col span="8">
98
+ <div class="DshCoordinates-modal-header-text">坐标获取结果</div>
99
+ <Row class="dsh-margin-top5">
100
+ <Col span="16">
101
+ <Input
102
+ :value="curVal.name"
103
+ :readonly="true"
104
+ :clearable="true"
105
+ @on-clear="clickClear"
106
+ @click.native="clickMapFitView"
107
+ />
108
+ </Col>
109
+ <Col span="8">&nbsp;
110
+ <Button
111
+ type="primary"
112
+ @click="clickConfirm"
113
+ >确认</Button>
114
+ </Col>
115
+ </Row>
86
116
  </Col>
87
117
  </Row>
88
- </Col>
89
118
 
90
- <Col span="8">
91
- <div class="DshCoordinates-modal-header-text">坐标获取结果</div>
92
- <Row class="dsh-margin-top5">
93
- <Col span="16">
119
+ <Row v-else>
120
+ <Col
121
+ span="6"
122
+ class="textRight dsh-padding-top10"
123
+ >当前位置:</Col>
124
+ <Col span="12">
94
125
  <Input
95
126
  :value="curVal.name"
96
127
  :readonly="true"
97
- :clearable="true"
98
- @on-clear="clickClear"
99
128
  @click.native="clickMapFitView"
100
129
  />
101
130
  </Col>
102
- <Col span="8">&nbsp;
103
- <Button
104
- type="primary"
105
- @click="clickConfirm"
106
- >确认</Button>
131
+ <Col span="6">
107
132
  </Col>
108
133
  </Row>
109
- </Col>
110
- </Row>
111
-
112
- <Row v-else>
113
- <Col
114
- span="6"
115
- class="textRight dsh-padding-top10"
116
- >当前位置:</Col>
117
- <Col span="12">
118
- <Input
119
- :value="curVal.name"
120
- :readonly="true"
121
- @click.native="clickMapFitView"
122
- />
123
- </Col>
124
- <Col span="6">
125
- </Col>
126
- </Row>
127
- </div>
134
+ </div>
128
135
 
129
- <transition>
136
+ <transition>
137
+ <div
138
+ v-if="showModal"
139
+ id="mapContain"
140
+ class="DshCoordinates-map"
141
+ ></div>
142
+ </transition>
130
143
  <div
131
- v-if="showModal"
132
- id="mapContain"
133
- class="DshCoordinates-map"
144
+ ref="divCoordinate"
145
+ style="display: none; position:absolute;background:#fff;padding: 5px 10px"
134
146
  ></div>
135
- </transition>
136
- <div
137
- ref="divCoordinate"
138
- style="display: none; position:absolute;background:#fff;padding: 5px 10px"
139
- ></div>
140
- </Modal>
147
+ </Modal>
148
+ </template>
141
149
  </div>
142
150
  </template>
143
151
 
@@ -173,7 +181,7 @@
173
181
  this.value[this.controlKey] = val;
174
182
  }
175
183
  },
176
- currentVal () {
184
+ curValName () {
177
185
  return this.curVal && this.curVal.name;
178
186
  },
179
187
  curLnglat: {
@@ -1,20 +1,35 @@
1
1
  <template>
2
2
  <div class="DshEditor">
3
3
  <!-- 有值、无值 可编辑 -->
4
- <div v-if="isUnit" class="DshEditor-unit">
5
- <span class="DshEditor-unit-text">
6
- {{ unitVal }}
4
+ <template v-if="isUnit">
5
+ <div
6
+ v-if="value[controlKey]"
7
+ class="DshEditor-unit"
8
+ >
9
+ <span class="DshEditor-unit-text">
10
+ 富文本
11
+ </span>
12
+ </div>
13
+ <span
14
+ v-else
15
+ class="control-notext"
16
+ >
17
+ -
7
18
  </span>
8
- </div>
19
+ </template>
9
20
 
10
21
  <template v-else-if="finalCanEdit">
11
- <div class="DshEditor-show DshEditor-edit"
22
+ <div
23
+ class="DshEditor-show DshEditor-edit"
12
24
  :class="value[controlKey] ? '': 'DshEditor-edit-placeholder'"
13
25
  v-show="showType === 'show'"
14
26
  v-html="editVal"
15
27
  @click="handleEdit"
16
28
  ></div>
17
- <div v-show="showType=='edit'" class="DshEditor-wrap">
29
+ <div
30
+ v-show="showType=='edit'"
31
+ class="DshEditor-wrap"
32
+ >
18
33
  <div
19
34
  ref="toolbar"
20
35
  class="toolbar"
@@ -32,7 +47,8 @@
32
47
  </div>
33
48
  </template>
34
49
 
35
- <div v-else
50
+ <div
51
+ v-else
36
52
  class="DshEditor-show"
37
53
  :class="$isDisabled(canEdit, selfPropsObj) ? 'DshEditor-show-disabled' : value[controlKey] ? '' : 'DshEditor-show-nodata'"
38
54
  v-show="showType === 'show'"
@@ -32,6 +32,13 @@
32
32
  slot="append"
33
33
  >{{ selfPropsObj._append }}</span>
34
34
  </Input>
35
+ <!-- textarea特殊处理 -->
36
+ <p
37
+ v-else-if="subType === 'textarea' && showVal"
38
+ :class="['control-show-text', 'DshInput-textarea-show']"
39
+ v-text="showVal"
40
+ >
41
+ </p>
35
42
 
36
43
  <!-- 查看模式 -->
37
44
  <control-show
@@ -5,18 +5,18 @@
5
5
  maxWidth="200"
6
6
  :content="showVal"
7
7
  >
8
- <span
8
+ <div
9
9
  v-if="$isFormItemHasData(showVal)"
10
10
  class="dsh-ellipsis controlShow-val"
11
11
  >
12
12
  {{ showVal }}
13
- </span>
14
- <span
13
+ </div>
14
+ <div
15
15
  v-else
16
16
  class="controlShow-nodata dsh-ellipsis"
17
17
  >
18
18
  {{noDataText}}
19
- </span>
19
+ </div>
20
20
  </Ctooltip>
21
21
  </div>
22
22
  </template>
@@ -41,7 +41,7 @@
41
41
  },
42
42
  computed: {
43
43
  noDataText () {
44
- return this.isUnit ? "-" : "暂无数据";
44
+ return this.isUnit ? "-" : "暂无内容";
45
45
  }
46
46
  },
47
47
  created () {
@@ -33,7 +33,7 @@ const componentNameMap = {
33
33
  coordinates: "DshCoordinates",
34
34
  editor: "DshEditor",
35
35
  tag: "DshDivider",
36
- labels: "DshLabels",
36
+ labels: "BriLabels",
37
37
  package: "DshPackage",
38
38
  flatTable: "flatTable",
39
39
  cascaderTable: "cascaderTable",
@@ -62,7 +62,7 @@ const pathMap = {
62
62
  DshCoordinates: "./base/DshCoordinates.vue",
63
63
  DshEditor: "./base/DshEditor.vue",
64
64
  DshDivider: "./base/DshDivider.vue",
65
- DshLabels: "./base/DshLabels.vue",
65
+ BriLabels: "./base/BriLabels.vue",
66
66
  DshPackage: "./base/DshPackage.vue",
67
67
  flatTable: "./senior/flatTable.vue",
68
68
  cascaderTable: "./senior/cascaderTable",