n20-common-lib 2.4.1 → 2.4.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n20-common-lib",
3
- "version": "2.4.1",
3
+ "version": "2.4.2",
4
4
  "private": false,
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -10,7 +10,7 @@
10
10
  <div v-for="(item, index) in list" :key="index" class="n20-drag-list-item">
11
11
  <i class="n20-drag-icon n20-icon-tuodong"></i>
12
12
  <slot :item="item" :index="index">
13
- <span class="text-ellipsis">{{ item[labelKey] || item }}</span>
13
+ <span v-hover-tooltip:158="item[labelKey] || item" class="text-ellipsis">{{ item[labelKey] || item }}</span>
14
14
  </slot>
15
15
  <el-link
16
16
  v-if="!disabled"
@@ -143,7 +143,7 @@
143
143
  </slot>
144
144
  </template>
145
145
  </el-table-column>
146
- <el-table-column :label="'操作' | $lc" align="center" width="80" fixed="right">
146
+ <el-table-column :label="'操作' | $lc" align="center" width="85" fixed="right">
147
147
  <slot slot="header" slot-scope="scope" name="handle-header" :column="scope.column">{{ '操作' | $lc }}</slot>
148
148
  <slot slot-scope="{ row }" name="handle" :row="row">
149
149
  <el-button type="text" icon="el-icon-view" :disabled="!row[keys.url]" @click="seeFile(row)" />
@@ -435,7 +435,7 @@ export default {
435
435
  downRows() {
436
436
  if (!this.selectionList.length) {
437
437
  return this.$message({
438
- message: '请先勾选要下载的数据!',
438
+ message: $lc(`请先勾选要下载的数据!`),
439
439
  type: 'warning',
440
440
  showClose: true
441
441
  })
@@ -445,7 +445,7 @@ export default {
445
445
  deleteRows() {
446
446
  if (!this.selectionList.length) {
447
447
  return this.$message({
448
- message: '请先勾选要删除的数据!',
448
+ message: $lc('请先勾选要删除的数据!'),
449
449
  type: 'warning',
450
450
  showClose: true
451
451
  })
@@ -21,7 +21,8 @@
21
21
  <template slot="label">
22
22
  <span v-if="item.icon" :class="item.icon"></span>
23
23
  <sup v-if="item.badge" class="el-tabs__item-badge"></sup>
24
- {{ item.name }}
24
+ <span v-if="item.content" v-title="`${item.content}`"> {{ item.name }}</span>
25
+ <span v-else>{{ item.name }}</span>
25
26
  </template>
26
27
  </el-tab-pane>
27
28
  </el-tabs>
@@ -46,6 +47,9 @@ export default {
46
47
  }
47
48
  },
48
49
  methods: {
50
+ getTooltip(name, tips) {
51
+ return `<el-tooltip content="${tips}">${name}</el-tooltip>`
52
+ },
49
53
  clickFn(C) {
50
54
  let item = C.$attrs['tab-info']
51
55
  if (this.$listeners['update:init']) {
@@ -61,3 +65,32 @@ export default {
61
65
  }
62
66
  }
63
67
  </script>
68
+
69
+ <style>
70
+ .tooltip {
71
+ position: absolute;
72
+ top: 100%;
73
+ left: 0;
74
+ z-index: 9999;
75
+ background-color: black;
76
+ color: white;
77
+ padding: 5px;
78
+ font-size: 12px;
79
+ opacity: 0;
80
+ transition: opacity 0.3s;
81
+ }
82
+
83
+ .tooltip::after {
84
+ content: '';
85
+ position: absolute;
86
+ top: -5px;
87
+ left: 50%;
88
+ transform: translateX(-50%);
89
+ border: 5px solid transparent;
90
+ border-bottom-color: black;
91
+ }
92
+
93
+ .tooltip.show {
94
+ opacity: 1;
95
+ }
96
+ </style>
@@ -29,6 +29,7 @@
29
29
  <el-checkbox
30
30
  v-for="(column, i) in columnsAs"
31
31
  :key="i"
32
+ v-hover-tooltip="column[labelKey]"
32
33
  :label="column[labelKey]"
33
34
  :disabled="column.checked"
34
35
  class="m-t"
@@ -190,7 +191,9 @@ export default {
190
191
  setChange() {
191
192
  if (this.dragList.length < 1) {
192
193
  this.$message.error(
193
- `至少设置${this.isExport ? $lc('一列导出数据') : this.isFilter ? $lc('一个筛选条件') : $lc('一列显示列')}!`
194
+ `${$lc(`至少设置`)}${
195
+ this.isExport ? $lc('一列导出数据') : this.isFilter ? $lc('一个筛选条件') : $lc('一列显示列')
196
+ }!`
194
197
  )
195
198
  return
196
199
  }
@@ -12,11 +12,11 @@
12
12
  </div>
13
13
  <div v-else class="n20-statis p-t-s p-b-s">
14
14
  <span class="m-r">
15
- {{ '当页:' | $lc }}<span class="n20-primary">{{ pageSum }}</span
15
+ {{ '当页: ' | $lc }}<span class="n20-primary">{{ pageSum }}</span
16
16
  >{{ '条' | $lc }}
17
17
  </span>
18
18
  <span class="m-r">
19
- {{ '全部:' | $lc }}<span class="n20-primary">{{ totalSun }}</span
19
+ {{ '全部: ' | $lc }}<span class="n20-primary">{{ totalSun }}</span
20
20
  >{{ '条' | $lc }}
21
21
  </span>
22
22
  </div>
@@ -4,7 +4,7 @@
4
4
  ><span class="stati-type stati-item-cell">{{ type }}</span
5
5
  ><span class="n20-statis-division p-l-s p-r-s stati-item-cell">|</span
6
6
  ><span v-for="(item, i) in list" :key="i" class="p-r stati-item-cell"
7
- >{{ item.label }}:<span v-if="countLabel.includes(item.label)" class="n20-primary">{{ item.value }}</span
7
+ >{{ item.label }}: <span v-if="countLabel.includes(item.label)" class="n20-primary">{{ item.value }}</span
8
8
  ><span v-else class="n20-primary">{{ item | numerify('0,0.00', showW, showU) }}</span></span
9
9
  >
10
10
  </div>
@@ -11,7 +11,8 @@
11
11
  <template slot="label">
12
12
  <span v-if="item.icon" :class="item.icon"></span>
13
13
  <sup v-if="item.badge" class="el-tabs__item-badge"></sup>
14
- {{ item.name }}
14
+ <span v-if="item.content" v-title="`${item.content}`"> {{ item.name }}</span>
15
+ <span v-else>{{ item.name }}</span>
15
16
  </template>
16
17
  </el-tab-pane>
17
18
  </el-tabs>
@@ -1,4 +1,5 @@
1
1
  let tooltip = undefined
2
+ import getWidth from '../../utils/asciiWidth.js'
2
3
  const popClass = 'at-title-pop-' + Date.now()
3
4
 
4
5
  function tipInit(Vue) {
@@ -101,4 +102,38 @@ TitleDirective.install = (Vue) => {
101
102
  })
102
103
  }
103
104
 
104
- export default TitleDirective
105
+ const HoverTooltip = {}
106
+ HoverTooltip.install = (Vue) => {
107
+ if (Vue.prototype.$isServer) return
108
+ Vue.directive('hover-tooltip', {
109
+ bind(el, binding, vnode) {
110
+ tooltip || tipInit(Vue)
111
+
112
+ el.$tooltipTitle = binding.value
113
+
114
+ let vmethods = vnode.child ? vnode.child.$options : vnode.context.$options
115
+ vmethods.deactivated || (vmethods.deactivated = [])
116
+
117
+ vmethods.deactivated.push(tipHide.bind(null, el))
118
+ el.$tipShow = () => tipShow(el, binding.arg)
119
+ el.$tipHide = () => tipHide(el)
120
+ el.addEventListener('mouseenter', () => {
121
+ if (getWidth(binding.value) > (binding.arg || 103)) {
122
+ return el.$tipShow()
123
+ }
124
+ })
125
+
126
+ el.addEventListener('mouseleave', el.$tipHide)
127
+ },
128
+ update: function (el, binding) {
129
+ el.$tooltipTitle = binding.value
130
+ },
131
+ unbind: function (el, binding) {
132
+ tipHide(el)
133
+ el.removeEventListener('mouseenter', el.$tipShow)
134
+ el.removeEventListener('mouseleave', el.$tipHide)
135
+ }
136
+ })
137
+ }
138
+
139
+ export { TitleDirective, HoverTooltip }
package/src/i18n.json CHANGED
@@ -93,7 +93,7 @@
93
93
  "en": "Business pop-up window"
94
94
  },
95
95
  "删除": {
96
- "en": "Delete"
96
+ "en": "Remove"
97
97
  },
98
98
  "退出提示": {
99
99
  "en": "Exit prompt"
@@ -177,7 +177,7 @@
177
177
  "en": "Passwords include at least two kinds of numbers, letters and special symbols."
178
178
  },
179
179
  "请输入利率": {
180
- "en": "Please enter the interest rate"
180
+ "en": "Please enter"
181
181
  },
182
182
  "其中有效数据": {
183
183
  "en": "where valid data"
@@ -189,7 +189,7 @@
189
189
  "en": "Language switching"
190
190
  },
191
191
  "每页显示": {
192
- "en": "Display per page"
192
+ "en": "Items per page"
193
193
  },
194
194
  "全部": {
195
195
  "en": "All"
@@ -258,7 +258,7 @@
258
258
  "en": "Table"
259
259
  },
260
260
  "恢复默认": {
261
- "en": "Restore default"
261
+ "en": "Restore Default"
262
262
  },
263
263
  "日期选择框": {
264
264
  "en": "Date selection box"
@@ -288,13 +288,13 @@
288
288
  "en": "Attachment information"
289
289
  },
290
290
  "确定": {
291
- "en": "Determine"
291
+ "en": "OK"
292
292
  },
293
293
  "导入": {
294
294
  "en": "Import"
295
295
  },
296
296
  "新增": {
297
- "en": "New"
297
+ "en": "Add"
298
298
  },
299
299
  "密码只能包含数字 + 字母": {
300
300
  "en": "Passwords can only contain numeric letters"
@@ -401,6 +401,9 @@
401
401
  "驳回至发起人": {
402
402
  "en": "Rejected to promoter"
403
403
  },
404
+ "驳回至申请人": {
405
+ "en": "Rejected to applicant"
406
+ },
404
407
  "优雅紫": {
405
408
  "en": "Elegant purple"
406
409
  },
@@ -618,7 +621,7 @@
618
621
  "en": "Approval record"
619
622
  },
620
623
  "附件名称": {
621
- "en": "Annex name"
624
+ "en": "Name"
622
625
  },
623
626
  "加载中": {
624
627
  "en": "Loading"
@@ -663,7 +666,7 @@
663
666
  "en": "Other reminders"
664
667
  },
665
668
  "设置显示列": {
666
- "en": "Set display column"
669
+ "en": "Config Display Columns"
667
670
  },
668
671
  "附件批量上传": {
669
672
  "en": "Attachment Batch Upload"
@@ -720,7 +723,7 @@
720
723
  "en": "Youth green"
721
724
  },
722
725
  "上传人": {
723
- "en": "Upreachers"
726
+ "en": "User"
724
727
  },
725
728
  "隐藏菜单": {
726
729
  "en": "Hide menu"
@@ -885,7 +888,7 @@
885
888
  "en": "Text link"
886
889
  },
887
890
  "附件上传": {
888
- "en": "Attachment upload"
891
+ "en": "Upload"
889
892
  },
890
893
  "同意": {
891
894
  "en": "Agree"
@@ -1002,7 +1005,7 @@
1002
1005
  "en": "File name cannot be empty"
1003
1006
  },
1004
1007
  "请输入账号!": {
1005
- "en": "Please enter the account number!"
1008
+ "en": "Please enter"
1006
1009
  },
1007
1010
  "按钮": {
1008
1011
  "en": "Button"
@@ -1164,7 +1167,7 @@
1164
1167
  "en": "Close others"
1165
1168
  },
1166
1169
  "上传时间": {
1167
- "en": "Upload time"
1170
+ "en": "Time"
1168
1171
  },
1169
1172
  "导出进度": {
1170
1173
  "en": "Export progress"
@@ -1323,7 +1326,7 @@
1323
1326
  "en": "All ("
1324
1327
  },
1325
1328
  "上传进度": {
1326
- "en": "upload progress"
1329
+ "en": "Progress"
1327
1330
  },
1328
1331
  "条件": {
1329
1332
  "en": "Condition"
@@ -1404,10 +1407,10 @@
1404
1407
  "en": "Import file"
1405
1408
  },
1406
1409
  "请输入金额": {
1407
- "en": "Please enter the amount"
1410
+ "en": "Please enter"
1408
1411
  },
1409
1412
  "请输入密码": {
1410
- "en": "Please enter the password"
1413
+ "en": "Please enter"
1411
1414
  },
1412
1415
  "活动名称": {
1413
1416
  "en": "Activity name"
@@ -1840,5 +1843,11 @@
1840
1843
  },
1841
1844
  "暂无数据": {
1842
1845
  "en": "No data"
1846
+ },
1847
+ "请先勾选要下载的数据!": {
1848
+ "en": "Please select the data to be downloaded first!"
1849
+ },
1850
+ "请先勾选要删除的数据!": {
1851
+ "en": "Please select the data to be deleted first!"
1843
1852
  }
1844
1853
  }
package/src/index.js CHANGED
@@ -87,7 +87,7 @@ import VDrag from './directives/VDrag/index.js'
87
87
  import VHas from './directives/VHas/index.js'
88
88
  import VMove from './directives/VMove/index.js'
89
89
  import VRuleKey from './directives/VRuleKey/index.js'
90
- import VTitle from './directives/VTitle/index.js'
90
+ import { HoverTooltip, TitleDirective } from './directives/VTitle/index.js'
91
91
 
92
92
  /** 注入方法 */
93
93
  import dayjs from 'dayjs'
@@ -205,7 +205,8 @@ const install = function (Vue, opts = { prefix: 'Cl', i18nConfig: {} }) {
205
205
  Vue.component(name, component)
206
206
  })
207
207
 
208
- Vue.use(VTitle)
208
+ Vue.use(HoverTooltip)
209
+ Vue.use(TitleDirective)
209
210
  Vue.use(VDrag)
210
211
  Vue.use(VMove)
211
212
  Vue.use(VRuleKey)
Binary file