fl-web-component 0.1.1 → 1.0.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 (78) hide show
  1. package/dist/fl-web-component.common.js +14751 -54489
  2. package/dist/fl-web-component.common.js.map +1 -1
  3. package/dist/fl-web-component.css +1 -1
  4. package/dist/fl-web-component.umd.js +14751 -54489
  5. package/dist/fl-web-component.umd.js.map +1 -1
  6. package/dist/fl-web-component.umd.min.js +3 -3
  7. package/dist/fl-web-component.umd.min.js.map +1 -1
  8. package/package.json +28 -5
  9. package/packages/components/button/index.vue +18 -17
  10. package/packages/components/com-card/card-page.vue +51 -49
  11. package/packages/components/com-card/index.vue +20 -21
  12. package/packages/components/com-dialogWrapper/index.vue +18 -21
  13. package/packages/components/com-flcanvas/components/bspline.js +91 -0
  14. package/packages/components/com-flcanvas/components/entityFormatting.js +503 -0
  15. package/packages/components/com-flcanvas/components/round10.js +24 -0
  16. package/packages/components/com-flcanvas/index.vue +259 -0
  17. package/packages/components/com-formDialog/index.vue +76 -75
  18. package/packages/components/com-graphics/index.vue +1057 -226
  19. package/packages/components/com-graphics/per-control.vue +109 -0
  20. package/packages/components/com-graphics/pid.vue +168 -0
  21. package/packages/components/com-page/index.vue +33 -33
  22. package/packages/components/com-selectTree/index.vue +61 -63
  23. package/packages/components/com-table/column-default.vue +9 -14
  24. package/packages/components/com-table/column-dynamic.vue +4 -8
  25. package/packages/components/com-table/column-menu.vue +8 -8
  26. package/packages/components/com-table/column-slot.vue +4 -4
  27. package/packages/components/com-table/column.vue +7 -15
  28. package/packages/components/com-table/config.js +9 -9
  29. package/packages/components/com-table/index.vue +35 -35
  30. package/packages/components/com-table/table-page.vue +17 -17
  31. package/packages/components/com-tabs/index.vue +19 -19
  32. package/packages/components/com-treeDynamic/index.vue +45 -45
  33. package/packages/components/model/api/index.js +59 -67
  34. package/packages/components/model/api/mock/detecttree.js +38 -38
  35. package/packages/components/model/api/mock/getmodel-line.js +15830 -79332
  36. package/packages/components/model/api/mock/init.js +1 -1
  37. package/packages/components/model/api/mock/pbstree.js +486 -495
  38. package/packages/components/model/components/TextOverTooltip/index.vue +3 -3
  39. package/packages/components/model/components/annotation-toolbar.vue +4 -19
  40. package/packages/components/model/components/check-proofing-model.vue +26 -29
  41. package/packages/components/model/components/clipping-type.vue +22 -14
  42. package/packages/components/model/components/com-dialogWrapper/index.vue +22 -25
  43. package/packages/components/model/components/detect-panel.vue +38 -26
  44. package/packages/components/model/components/detect-tree.vue +9 -24
  45. package/packages/components/model/components/firstPer-panel.vue +23 -25
  46. package/packages/components/model/components/header-button.vue +31 -107
  47. package/packages/components/model/components/imageViewer/index.vue +34 -35
  48. package/packages/components/model/components/import-model.vue +127 -127
  49. package/packages/components/model/components/location-panel.vue +25 -29
  50. package/packages/components/model/components/measure-type.vue +15 -15
  51. package/packages/components/model/components/pbs-tree.vue +139 -144
  52. package/packages/components/model/components/proof-config.vue +2 -10
  53. package/packages/components/model/components/proof-for-pc.vue +35 -32
  54. package/packages/components/model/components/proof-history.vue +136 -154
  55. package/packages/components/model/components/proof-panel-detail.vue +166 -165
  56. package/packages/components/model/components/proof-panel.vue +281 -205
  57. package/packages/components/model/components/proof-project-user.vue +13 -50
  58. package/packages/components/model/components/proof-publish.vue +130 -130
  59. package/packages/components/model/components/proof-role.vue +93 -124
  60. package/packages/components/model/components/props-panel.vue +63 -54
  61. package/packages/components/model/index.vue +3225 -3213
  62. package/packages/components/model/utils/annotation-tool.js +75 -82
  63. package/packages/components/model/utils/cursor.js +15 -10
  64. package/packages/components/model/utils/detect-v1.js +23 -35
  65. package/packages/components/model/utils/index.js +25 -25
  66. package/packages/components/model/utils/threejs/measure-angle.js +180 -180
  67. package/packages/components/model/utils/threejs/measure-area.js +196 -184
  68. package/packages/components/model/utils/threejs/measure-distance.js +154 -152
  69. package/packages/components/model/utils/threejs/measure-volume.js +64 -61
  70. package/src/assets/test.png +0 -0
  71. package/src/assets/worker.glb +0 -0
  72. package/src/main.js +11 -8
  73. package/src/utils/flgltf-parser.js +141 -0
  74. package/src/utils/instance-parser.js +402 -0
  75. package/src/utils/mock.js +84746 -0
  76. package/src/utils/threejs/measure-angle.js +240 -0
  77. package/src/utils/threejs/measure-area.js +249 -0
  78. package/src/utils/threejs/measure-distance.js +195 -0
@@ -0,0 +1,109 @@
1
+ <template>
2
+ <div>
3
+ <div class="key">
4
+ <span>漫游</span>
5
+ <div class="center">
6
+ <div class="top"><span>W</span></div>
7
+ <div class="cen">
8
+ <span>A</span>
9
+ <span>S</span>
10
+ <span>D</span>
11
+ </div>
12
+ <span class="text">W向前移动、S向后移动、A向左移动、D向右移动</span>
13
+ </div>
14
+ </div>
15
+ <div class="line"></div>
16
+ <div class="mouse">
17
+ <span>环视</span>
18
+ <div class="center">
19
+ <i class="iconfont icon-shubiao"></i>
20
+ <span class="text">鼠标控制方向</span>
21
+ </div>
22
+ </div>
23
+ <div class="line"></div>
24
+ <div class="quit">
25
+ <span>退出</span>
26
+ <div class="center">
27
+ <div class="cen"><span>Esc</span></div>
28
+ <span class="text">使用Esc键退出漫游</span>
29
+ </div>
30
+ </div>
31
+ <div class="button">
32
+ <el-button @click="start(false)">好的,知道了</el-button>
33
+ <el-button @click="start(true)" type="primary">不再提示</el-button>
34
+ </div>
35
+ </div>
36
+ </template>
37
+ <script>
38
+ export default {
39
+ name: 'PerControl',
40
+ data() {
41
+ return {};
42
+ },
43
+ created() {},
44
+ methods: {
45
+ start(val) {
46
+ this.$emit('start', val);
47
+ },
48
+ },
49
+ };
50
+ </script>
51
+ <style lang="scss" scoped>
52
+ span {
53
+ font-weight: bolder;
54
+ }
55
+ .text {
56
+ margin-top: 20px;
57
+ }
58
+ .line {
59
+ border-bottom: 1px solid #dcdfe6;
60
+ margin: 20px 0;
61
+ }
62
+ .center {
63
+ display: flex;
64
+ flex-direction: column;
65
+ align-items: center;
66
+ .top,
67
+ .cen {
68
+ span {
69
+ color: '#53a8ff';
70
+ display: inline-block;
71
+ width: 30px;
72
+ height: 30px;
73
+ text-align: center;
74
+ line-height: 30px;
75
+ border: 1px solid '#53a8ff';
76
+ padding: 5px;
77
+ margin-bottom: 10px;
78
+ background-color: #e9f3ff;
79
+ }
80
+ }
81
+ .cen {
82
+ span {
83
+ margin: 10px;
84
+ }
85
+ }
86
+ }
87
+ .button {
88
+ display: flex;
89
+ justify-content: end;
90
+ margin-top: 20px;
91
+ }
92
+ @font-face {
93
+ font-family: 'iconfont';
94
+ src: url('//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff2?t=1646635700216') format('woff2'),
95
+ url('//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff?t=1646635700216') format('woff'),
96
+ url('//at.alicdn.com/t/font_3226805_qqvo3ag3r8.ttf?t=1646635700216') format('truetype');
97
+ }
98
+ .iconfont {
99
+ font-family: 'iconfont' !important;
100
+ font-size: 50px;
101
+ font-style: normal;
102
+ color: '#53a8ff';
103
+ -webkit-font-smoothing: antialiased;
104
+ -moz-osx-font-smoothing: grayscale;
105
+ }
106
+ .icon-shubiao:before {
107
+ content: '\e8a7';
108
+ }
109
+ </style>
@@ -0,0 +1,168 @@
1
+ <template>
2
+ <div id="pid-svg">
3
+ <embed type="image/svg+xml" id="svg-tigger" :src="currentSvg" />
4
+ </div>
5
+ </template>
6
+ <script>
7
+ import * as svgPanZoom from 'static/svg-pan-zoom.min.js';
8
+ var svgCon = {},
9
+ svgTigger = {},
10
+ svgEmbed = {};
11
+ var preTargetCon = [],
12
+ preTargetStyle = [];
13
+ var firstTime = 0,
14
+ lastTime = 0;
15
+ var inspectionRect = null,
16
+ pointerRect = null;
17
+ export default {
18
+ name: 'PidSvg',
19
+ data() {
20
+ return {
21
+ currentSvg: null,
22
+ };
23
+ },
24
+ mounted() {
25
+ svgEmbed = document.getElementById('svg-tigger');
26
+ svgEmbed.addEventListener('resize', () => {
27
+ this.onWindowResize;
28
+ });
29
+ svgEmbed.addEventListener('load', () => {
30
+ svgTigger = svgPanZoom('#svg-tigger', {
31
+ viewportSelector: '.svg-pan-zoom_viewport',
32
+ preventMouseEventsDefault: false,
33
+ });
34
+ svgCon = svgEmbed.getSVGDocument().querySelector('svg');
35
+ svgCon.style = 'cursor: pointer;user-select: none;';
36
+ svgCon.setAttribute('viewBox', '0 0 ' + svgEmbed.offsetWidth + ' ' + svgEmbed.offsetHeight);
37
+ inspectionRect = svgCon.createSVGRect();
38
+ inspectionRect.width = 10;
39
+ inspectionRect.height = 10;
40
+ pointerRect = svgCon.createSVGPoint();
41
+ this.onWindowResize();
42
+ // 禁止右键菜单栏
43
+ svgCon.addEventListener('contextmenu', e => {
44
+ e.preventDefault();
45
+ });
46
+ // 鼠标的按下与抬起事件
47
+ svgCon.addEventListener('mousedown', this.mousedown);
48
+ svgCon.addEventListener('mouseup', this.mouseup);
49
+ // 加载完成后会通知
50
+ this.$emit('loaded');
51
+ });
52
+ },
53
+ methods: {
54
+ // 改变窗口大小
55
+ onWindowResize() {
56
+ svgCon.removeAttribute('width');
57
+ svgCon.removeAttribute('height');
58
+ },
59
+ // 鼠标按下
60
+ mousedown() {
61
+ firstTime = new Date().getTime();
62
+ },
63
+ // 鼠标抬起
64
+ mouseup(evt) {
65
+ lastTime = new Date().getTime();
66
+ let targetElement = null;
67
+ // 判断鼠标按下到抬起的时间间隔是否超过300ms 没有超过 则判断为点击
68
+ if (lastTime - firstTime <= 300) {
69
+ if (evt.target.nodeName !== 'svg') {
70
+ targetElement = evt.target;
71
+ } else {
72
+ pointerRect.x = evt.clientX;
73
+ pointerRect.y = evt.clientY;
74
+ const tp = pointerRect.matrixTransform(svgCon.getScreenCTM());
75
+ inspectionRect.x = tp.x;
76
+ inspectionRect.y = tp.y;
77
+ const intersectionList = svgCon.getIntersectionList(inspectionRect, null);
78
+ targetElement =
79
+ intersectionList.length > 0 ? intersectionList[intersectionList.length - 1] : null;
80
+ }
81
+ if (evt.button === 0) {
82
+ this.$emit('leftClick', targetElement);
83
+ } else if (event.button === 2) {
84
+ this.$emit('rightClick', targetElement);
85
+ }
86
+ }
87
+ },
88
+ // 高亮目标元素
89
+ /*
90
+ 参数:svgIds: [], 需要高亮的id的集合, flag: true / false, 是否要定位目标元素, color: '', 高亮的颜色
91
+ */
92
+ highLight(svgIds, flag, color) {
93
+ if (svgIds === null || svgIds === undefined) {
94
+ throw new Error('svgIds should be an array');
95
+ } else {
96
+ for (let index = 0; index < svgIds.length; index++) {
97
+ let element = svgIds[index];
98
+ let targetCon = svgCon.getElementById(element);
99
+ if (!targetCon) return;
100
+ this.depthTraversal(targetCon.children, color);
101
+ }
102
+ if (flag) {
103
+ svgTigger.reset();
104
+ let firstCon = svgCon.getElementById(svgIds[0]);
105
+ setTimeout(() => {
106
+ svgTigger.zoomAtPoint(1.5, {
107
+ x: firstCon.getBoundingClientRect().x,
108
+ y: firstCon.getBoundingClientRect().y,
109
+ });
110
+ }, 100);
111
+ }
112
+ }
113
+ },
114
+ // pid组高亮 深度遍历
115
+ depthTraversal(svgCon, color) {
116
+ for (let i = 0; i < svgCon.length; i++) {
117
+ if (svgCon[i].children.length > 0) {
118
+ this.depthTraversal(svgCon[i].children, color);
119
+ } else {
120
+ preTargetCon.push(svgCon[i]);
121
+ preTargetStyle.push({
122
+ fillOpacity: svgCon[i].style.fillOpacity,
123
+ stroke: svgCon[i].style.stroke,
124
+ strokeWidth: svgCon[i].style.strokeWidth,
125
+ });
126
+ svgCon[i].style.fillOpacity = '0';
127
+ svgCon[i].style.stroke = color;
128
+ svgCon[i].style.strokeWidth = 0.5;
129
+ }
130
+ }
131
+ },
132
+ // 清除上一次的高亮
133
+ resetHightLight() {
134
+ for (let i = 0; i < preTargetCon.length; i++) {
135
+ preTargetCon[i].style.fillOpacity = preTargetStyle[i].fillOpacity;
136
+ preTargetCon[i].style.stroke = preTargetStyle[i].stroke;
137
+ preTargetCon[i].style.strokeWidth = preTargetStyle[i].strokeWidth;
138
+ }
139
+ preTargetStyle.splice(0);
140
+ preTargetCon.splice(0);
141
+ },
142
+ // 更新图纸/切换图纸
143
+ /*
144
+ 参数:url: 图纸的路径
145
+ */
146
+ switchSvg(url) {
147
+ this.$set(this, 'currentSvg', url);
148
+ preTargetCon.splice(0);
149
+ preTargetStyle.splice(0);
150
+ inspectionRect = null;
151
+ pointerRect = null;
152
+ },
153
+ },
154
+ };
155
+ </script>
156
+ <style lang="scss" scoped>
157
+ #pid-svg {
158
+ cursor: pointer;
159
+ height: 100%;
160
+ width: 100%;
161
+ }
162
+
163
+ #svg-tigger {
164
+ cursor: pointer;
165
+ height: 100%;
166
+ width: 100%;
167
+ }
168
+ </style>
@@ -1,28 +1,28 @@
1
1
  <template>
2
- <el-pagination
3
- :small="comTable.size == 'mini'"
4
- :disabled="defaultPage.disabled"
5
- :hide-on-single-page="defaultPage.single"
6
- :pager-count="defaultPage.pagerCount"
7
- :current-page.sync="defaultPage.currentPage"
8
- :background="defaultPage.background"
9
- :page-size="defaultPage.pageSize"
10
- :page-sizes="defaultPage.pageSizes"
11
- @size-change="sizeChange"
12
- @prev-click="prevClick"
13
- @next-click="nextClick"
14
- @current-change="currentChange"
15
- :layout="defaultPage.layout"
16
- :total="defaultPage.total"
17
- ></el-pagination>
2
+ <el-pagination
3
+ :small="comTable.size == 'mini'"
4
+ :disabled="defaultPage.disabled"
5
+ :hide-on-single-page="defaultPage.single"
6
+ :pager-count="defaultPage.pagerCount"
7
+ :current-page.sync="defaultPage.currentPage"
8
+ :background="defaultPage.background"
9
+ :page-size="defaultPage.pageSize"
10
+ :page-sizes="defaultPage.pageSizes"
11
+ @size-change="sizeChange"
12
+ @prev-click="prevClick"
13
+ @next-click="nextClick"
14
+ @current-change="currentChange"
15
+ :layout="defaultPage.layout"
16
+ :total="defaultPage.total"
17
+ ></el-pagination>
18
18
  </template>
19
19
 
20
20
  <script>
21
- import base from "../../utils/base.js";
21
+ import base from '../../utils/base.js';
22
22
 
23
23
  export default {
24
- name: "comTable",
25
- inject: ["comTable"],
24
+ name: 'comTable',
25
+ inject: ['comTable'],
26
26
  mixins: [base()],
27
27
  data() {
28
28
  return {
@@ -33,17 +33,17 @@ export default {
33
33
  currentPage: 1, // 当前页数
34
34
  pageSize: 10, // 每页显示多少条
35
35
  pageSizes: [10, 20, 30, 40, 50, 100],
36
- layout: "total, sizes, prev, pager, next, jumper",
36
+ layout: 'total, sizes, prev, pager, next, jumper',
37
37
  background: true, // 背景颜色
38
38
  },
39
39
  };
40
40
  },
41
41
  created() {
42
42
  this.pageInit();
43
- this.comTable.$emit("on-load", this.defaultPage);
43
+ this.comTable.$emit('on-load', this.defaultPage);
44
44
  },
45
45
  watch: {
46
- "comTable.page": {
46
+ 'comTable.page': {
47
47
  handler() {
48
48
  this.pageInit();
49
49
  },
@@ -61,33 +61,33 @@ export default {
61
61
  this.updateValue();
62
62
  },
63
63
  updateValue() {
64
- console.log("updateValue defaultPage", this.defaultPage);
65
- this.comTable.$emit("update:page", this.defaultPage);
64
+ console.log('updateValue defaultPage', this.defaultPage);
65
+ this.comTable.$emit('update:page', this.defaultPage);
66
66
  },
67
67
  //下一页事件
68
68
  nextClick(val) {
69
- console.log("nextClick", val);
70
- this.comTable.$emit("next-click", val);
69
+ console.log('nextClick', val);
70
+ this.comTable.$emit('next-click', val);
71
71
  },
72
72
  //上一页事件
73
73
  prevClick(val) {
74
- console.log("prevClick", val);
75
- this.comTable.$emit("prev-click", val);
74
+ console.log('prevClick', val);
75
+ this.comTable.$emit('prev-click', val);
76
76
  },
77
77
  // 页大小回调
78
78
  sizeChange(val) {
79
79
  this.defaultPage.currentPage = 1;
80
80
  this.defaultPage.pageSize = val;
81
81
  this.updateValue();
82
- console.log("sizeChange", val);
83
- this.comTable.$emit("on-load", this.defaultPage);
84
- this.comTable.$emit("size-change", val);
82
+ console.log('sizeChange', val);
83
+ this.comTable.$emit('on-load', this.defaultPage);
84
+ this.comTable.$emit('size-change', val);
85
85
  },
86
86
  // 页码回调
87
87
  currentChange(val) {
88
88
  this.updateValue();
89
- this.comTable.$emit("on-load", this.defaultPage);
90
- this.comTable.$emit("current-change", val);
89
+ this.comTable.$emit('on-load', this.defaultPage);
90
+ this.comTable.$emit('current-change', val);
91
91
  },
92
92
  },
93
93
  };
@@ -17,7 +17,7 @@
17
17
  :disabled="disabled"
18
18
  :filterable="filterable"
19
19
  :filter-method="filterMethod"
20
- style="width: 100%;"
20
+ style="width: 100%"
21
21
  @clear="clear"
22
22
  @visible-change="visibleChange"
23
23
  @focus="setMinWidth"
@@ -27,7 +27,7 @@
27
27
  class="select_tree_option"
28
28
  :value="formData.id"
29
29
  :label="formData.name"
30
- :style="{'width': minWidth + 2 + 'px'}"
30
+ :style="{ width: minWidth + 2 + 'px' }"
31
31
  >
32
32
  <el-tree
33
33
  ref="Tree"
@@ -50,7 +50,6 @@
50
50
  </el-select>
51
51
  </template>
52
52
  <script>
53
-
54
53
  export default {
55
54
  name: 'SelectTree',
56
55
  props: {
@@ -58,60 +57,60 @@ export default {
58
57
  // 作为 el-select value 唯一标识的键名,绑定值为对象类型时必填
59
58
  selectKey: {
60
59
  type: String,
61
- default: 'id'
60
+ default: 'id',
62
61
  },
63
62
  valueKey: {
64
63
  type: String,
65
- default: 'id'
64
+ default: 'id',
66
65
  },
67
66
  valueName: {
68
67
  type: String,
69
- default: 'name'
68
+ default: 'name',
70
69
  },
71
70
  // 树形的数据
72
71
  treeData: {
73
72
  type: Array,
74
- default: () => ([])
73
+ default: () => [],
75
74
  },
76
75
  // 下拉框默认提示
77
76
  placeholderTitle: {
78
77
  type: String,
79
- default: '请选择'
78
+ default: '请选择',
80
79
  },
81
80
  // 每个树节点用来作为唯一标识的属性
82
81
  treeNodeKey: {
83
82
  type: [String, Number],
84
- default: 'id'
83
+ default: 'id',
85
84
  },
86
85
  // 是否可搜
87
86
  filterable: {
88
87
  type: Boolean,
89
- default: false
88
+ default: false,
90
89
  },
91
90
  // 是否禁用
92
91
  disabled: {
93
92
  type: Boolean,
94
- default: false
93
+ default: false,
95
94
  },
96
95
  // 是否可清空input
97
96
  clearable: {
98
97
  type: Boolean,
99
- default: false
98
+ default: false,
100
99
  },
101
100
  // tree的props配置
102
101
  treeProps: {
103
102
  type: Object,
104
- default: () => ({})
103
+ default: () => ({}),
105
104
  },
106
105
  // 弹窗标题
107
106
  title: {
108
107
  type: String,
109
- default: '新建'
108
+ default: '新建',
110
109
  },
111
110
  echoData: {
112
111
  type: Object,
113
- default: () => ({})
114
- }
112
+ default: () => ({}),
113
+ },
115
114
  },
116
115
  data() {
117
116
  return {
@@ -119,83 +118,82 @@ export default {
119
118
  minWidth: undefined,
120
119
  formData: {
121
120
  id: '',
122
- name: ''
121
+ name: '',
123
122
  },
124
123
  parentList: [], // 树结构默认展开的节点的 key 的数组
125
124
  filterFlag: false,
126
- currentSelect: '' // 当前选中的节点
127
- }
128
- },
129
- computed: {
125
+ currentSelect: '', // 当前选中的节点
126
+ };
130
127
  },
128
+ computed: {},
131
129
  created() {
132
130
  if (this.echoData[this.selectKey]) {
133
- this.parentList.push(this.echoData[this.selectKey])
134
- this.$set(this, 'currentSelect', this.echoData[this.selectKey])
135
- this.$set(this.formData, 'id', this.echoData[this.selectKey])
131
+ this.parentList.push(this.echoData[this.selectKey]);
132
+ this.$set(this, 'currentSelect', this.echoData[this.selectKey]);
133
+ this.$set(this.formData, 'id', this.echoData[this.selectKey]);
136
134
  }
137
135
  },
138
136
  mounted() {
139
137
  this.$nextTick(() => {
140
- this.$refs.Tree.setCurrentKey(this.currentSelect)
141
- const nodeTree = this.$refs.Tree.getCurrentNode()
138
+ this.$refs.Tree.setCurrentKey(this.currentSelect);
139
+ const nodeTree = this.$refs.Tree.getCurrentNode();
142
140
  if (nodeTree) {
143
- this.$set(this.formData, 'name', nodeTree[this.valueName])
141
+ this.$set(this.formData, 'name', nodeTree[this.valueName]);
144
142
  }
145
- if (!nodeTree) this.$set(this.formData, 'id', '')
146
- })
143
+ if (!nodeTree) this.$set(this.formData, 'id', '');
144
+ });
147
145
  },
148
146
  methods: {
149
147
  /* 下拉框样式 无数据的情况下,给请选择提示设置最小宽度*/
150
148
  setMinWidth(val) {
151
- this.minWidth = val.srcElement.clientWidth
149
+ this.minWidth = val.srcElement.clientWidth;
152
150
  },
153
151
  /* 树节点被点击时的回调 */
154
152
  handleNodeClick(data) {
155
- if (!data[this.valueKey]) return
156
- const DataId = data[this.valueKey]
157
- const DataName = data[this.valueName]
158
- this.$set(this.formData, 'id', DataId)
159
- this.$set(this.formData, 'name', DataName)
160
- this.$set(this, 'currentSelect', data[this.valueKey])
161
- this.$refs.Select.visible = false
153
+ if (!data[this.valueKey]) return;
154
+ const DataId = data[this.valueKey];
155
+ const DataName = data[this.valueName];
156
+ this.$set(this.formData, 'id', DataId);
157
+ this.$set(this.formData, 'name', DataName);
158
+ this.$set(this, 'currentSelect', data[this.valueKey]);
159
+ this.$refs.Select.visible = false;
162
160
  // this.$emit('nodeClickTree', this.formData)
163
- this.$emit('nodeClickTree', data)
161
+ this.$emit('nodeClickTree', data);
164
162
  },
165
163
  /* 下拉框出现/隐藏时触发 */
166
164
  visibleChange(e) {
167
165
  if (e) {
168
- const tree = this.$refs.Tree
169
- this.filterFlag && tree.filter('')
170
- this.filterFlag = false
171
- let selectDom = null
172
- selectDom = tree.$el.querySelector('.is-current')
166
+ const tree = this.$refs.Tree;
167
+ this.filterFlag && tree.filter('');
168
+ this.filterFlag = false;
169
+ let selectDom = null;
170
+ selectDom = tree.$el.querySelector('.is-current');
173
171
  setTimeout(() => {
174
- this.$refs.Select.scrollToOption({ $el: selectDom })
175
- }, 0)
172
+ this.$refs.Select.scrollToOption({ $el: selectDom });
173
+ }, 0);
176
174
  }
177
175
  },
178
176
  clear() {
179
177
  this.formData = {
180
178
  id: '',
181
- name: ''
182
- }
183
- this.$refs.Tree.setCurrentKey(null)
184
- this.$emit('nodeClickTree', this.formData)
179
+ name: '',
180
+ };
181
+ this.$refs.Tree.setCurrentKey(null);
182
+ this.$emit('nodeClickTree', this.formData);
185
183
  },
186
184
  /* 自定义搜索方法 */
187
185
  filterMethod(val) {
188
- this.filterFlag = true
189
- this.$refs.Tree.filter(val)
186
+ this.filterFlag = true;
187
+ this.$refs.Tree.filter(val);
190
188
  },
191
189
  /* 对树节点进行筛选时执行的方法 */
192
190
  filterNode(value, data) {
193
- if (!value) return true
194
- const label = this.treeProps.label || 'name'
195
- return data[label].indexOf(value) !== -1
196
- }
197
- }
198
- }
191
+ if (!value) return true;
192
+ const label = this.treeProps.label || 'name';
193
+ return data[label].indexOf(value) !== -1;
194
+ },
195
+ },
196
+ };
199
197
  </script>
200
198
  <style lang="scss" scope>
201
199
  .el-select-dropdown {
@@ -219,18 +217,18 @@ export default {
219
217
  color: #1890ff;
220
218
  }
221
219
  .el-tree-node__content {
222
- width: 100%!important;
223
- height: 34px!important;
224
- line-height: 34px!important;
220
+ width: 100% !important;
221
+ height: 34px !important;
222
+ line-height: 34px !important;
225
223
  overflow: hidden;
226
- &:hover{
227
- background-color: transparent!important;
224
+ &:hover {
225
+ background-color: transparent !important;
228
226
  }
229
227
  }
230
228
  ::v-deep .select_tree_tree .el-tree-node .el-tree-node__content .custom-tree-node {
231
229
  display: inline-block;
232
230
  vertical-align: middle;
233
- width: calc(100% - 50px)!important;
231
+ width: calc(100% - 50px) !important;
234
232
  overflow: hidden;
235
233
  white-space: nowrap;
236
234
  text-overflow: ellipsis;