@fmdevui/fm-dev 1.0.62 → 1.0.63

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.
@@ -1 +1,3 @@
1
1
  .drag_verify[data-v-9e8c9ed2]{background-color:#e8e8e8;overflow:hidden;position:relative;text-align:center}.drag_verify .dv_handler[data-v-9e8c9ed2]{cursor:move;left:0;position:absolute;top:0}.drag_verify .dv_handler i[data-v-9e8c9ed2]{color:#666;font-size:16px;padding-left:0}.drag_verify .dv_handler .el-icon-circle-check[data-v-9e8c9ed2]{color:#6c6;margin-top:9px}.drag_verify .dv_progress_bar[data-v-9e8c9ed2]{height:34px;position:absolute;width:0}.drag_verify .dv_text[data-v-9e8c9ed2]{background:-webkit-gradient(linear,left top,right top,color-stop(0,var(--textColor)),color-stop(.4,var(--textColor)),color-stop(.5,#fff),color-stop(.6,var(--textColor)),color-stop(1,var(--textColor)));-webkit-background-clip:text;color:transparent;position:absolute;top:0;-moz-user-select:none;-webkit-user-select:none;user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-text-fill-color:transparent;-webkit-text-size-adjust:none;animation:slidetounlock 3s infinite}.drag_verify .dv_text[data-v-9e8c9ed2] *{-webkit-text-fill-color:var(--textColor)}.goFirst[data-v-9e8c9ed2]{left:0!important;transition:left .5s}.goOrigin[data-v-9e8c9ed2]{transition:transform .5s}.goKeep[data-v-9e8c9ed2]{transition:left .2s}.goFirst2[data-v-9e8c9ed2]{transition:width .5s;width:0!important}.drag-verify-container[data-v-9e8c9ed2]{border-radius:50%;line-height:0;position:relative}.move-bar[data-v-9e8c9ed2]{position:absolute;z-index:100}.clip-bar[data-v-9e8c9ed2]{background:hsla(0,0%,100%,.8);position:absolute}.refresh[data-v-9e8c9ed2]{cursor:pointer;font-size:20px;position:absolute;right:5px;top:5px;z-index:200}.tips[data-v-9e8c9ed2]{bottom:25px;font-size:12px;height:20px;line-height:20px;position:absolute;text-align:center;width:100%;z-index:200}.tips.success[data-v-9e8c9ed2]{background:hsla(0,0%,100%,.6);color:green}.tips.danger[data-v-9e8c9ed2]{background:rgba(0,0,0,.6);color:#ff0}.check-img[data-v-9e8c9ed2]{border-radius:50%;width:100%}
2
+
3
+ .box-card[data-v-ea8b4cb6]{flex:1}.box-card[data-v-ea8b4cb6]>.el-card__header{padding:5px}.tree-h-flex[data-v-ea8b4cb6]{display:flex}.tree-h-left[data-v-ea8b4cb6]{flex:1;width:100%}.tree-h-right[data-v-ea8b4cb6]{min-width:42px;width:42px}
package/lib/index.js CHANGED
@@ -52,6 +52,7 @@ exports.FmAutocomplete = index$1.FmAutocomplete;
52
52
  exports.FmDragImg = index$1.FmDragImg;
53
53
  exports.FmNoticeBar = index$1.FmNoticeBar;
54
54
  exports.FmTransfer = index$1.FmTransfer;
55
+ exports.FmTree = index$1.FmTree;
55
56
  exports.Fminputdropdown = index$1.Fminputdropdown;
56
57
  exports.Fmselect = index$1.Fmselect;
57
58
  exports.elSvg = index$2.elSvg;
@@ -44,6 +44,7 @@ exports.FmAutocomplete = index.FmAutocomplete;
44
44
  exports.FmDragImg = index.FmDragImg;
45
45
  exports.FmNoticeBar = index.FmNoticeBar;
46
46
  exports.FmTransfer = index.FmTransfer;
47
+ exports.FmTree = index.FmTree;
47
48
  exports.Fminputdropdown = index.Fminputdropdown;
48
49
  exports.Fmselect = index.Fmselect;
49
50
  exports.FmLogin = index$2.FmLogin;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var index_vue_vue_type_script_setup_true_lang = require('./index.vue2.js');
6
+ require('./index.vue3.js');
7
+ var _pluginVue_exportHelper = require('../../../../../_virtual/_plugin-vue_export-helper.js');
8
+
9
+ var fmtree = /* @__PURE__ */ _pluginVue_exportHelper.default(index_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-ea8b4cb6"]]);
10
+
11
+ exports.default = fmtree;
@@ -0,0 +1,267 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var svg = require('@element-plus/icons-vue');
7
+ var index = require('../../../api/base/index.js');
8
+
9
+ const _hoisted_1 = { class: "card-header" };
10
+ const _hoisted_2 = { class: "tree-h-flex" };
11
+ const _hoisted_3 = { class: "tree-h-left" };
12
+ const _hoisted_4 = { class: "tree-h-right" };
13
+ const _hoisted_5 = { style: { "margin-bottom": "45px" } };
14
+ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
15
+ ...{
16
+ name: "FmTree"
17
+ },
18
+ __name: "index",
19
+ props: {
20
+ checkStrictly: { type: Boolean, default: true },
21
+ /**
22
+ * api service name
23
+ */
24
+ apiService: {
25
+ type: String,
26
+ default: "planOrder"
27
+ },
28
+ /**
29
+ * api service 下的方法
30
+ */
31
+ apiAction: {
32
+ type: String,
33
+ default: "autoQuerySearch"
34
+ },
35
+ paras: {
36
+ type: Object,
37
+ default: null
38
+ },
39
+ nodeKey: {
40
+ type: String,
41
+ default: "id"
42
+ },
43
+ defaultProps: {
44
+ type: Object,
45
+ default: { children: "children", label: "name" }
46
+ }
47
+ },
48
+ emits: ["node-click"],
49
+ setup(__props, { expose: __expose, emit: __emit }) {
50
+ const props = __props;
51
+ const filterText = vue.ref("");
52
+ const treeRef = vue.ref();
53
+ const state = vue.reactive({
54
+ loading: false,
55
+ folderData: [],
56
+ isShowCheckbox: false,
57
+ strictly: false
58
+ });
59
+ vue.onMounted(async () => {
60
+ await fetchTreeData();
61
+ });
62
+ vue.watch(filterText, (val) => {
63
+ treeRef.value.filter(val);
64
+ });
65
+ const fetchTreeData = async (showLoading = true) => {
66
+ if (showLoading) state.loading = true;
67
+ var res = await index.useBaseApi(props.apiService).get(props.paras, props.apiAction);
68
+ state.folderData = res.data.result ?? [];
69
+ if (showLoading) state.loading = false;
70
+ return res.data.result ?? [];
71
+ };
72
+ const getCheckedKeys = () => {
73
+ return treeRef.value.getCheckedKeys();
74
+ };
75
+ const filterNode = (value, data) => {
76
+ if (!value) return true;
77
+ return data.name.includes(value);
78
+ };
79
+ const handleCommand = async (command) => {
80
+ if ("expandAll" == command) {
81
+ for (let i = 0; i < treeRef.value.store._getAllNodes().length; i++) {
82
+ treeRef.value.store._getAllNodes()[i].expanded = true;
83
+ }
84
+ } else if ("collapseAll" == command) {
85
+ for (let i = 0; i < treeRef.value.store._getAllNodes().length; i++) {
86
+ treeRef.value.store._getAllNodes()[i].expanded = false;
87
+ }
88
+ } else if ("refresh" == command) {
89
+ fetchTreeData();
90
+ } else if ("rootNode" == command) {
91
+ treeRef.value?.setCurrentKey();
92
+ emits("node-click", { id: 0, name: "" });
93
+ }
94
+ };
95
+ const emits = __emit;
96
+ const nodeClick = (node) => {
97
+ emits("node-click", { id: node.id, name: node.name });
98
+ };
99
+ const setCurrentKey = (key, shouldAutoExpandParent) => {
100
+ treeRef.value?.setCurrentKey(key, shouldAutoExpandParent);
101
+ };
102
+ __expose({ fetchTreeData, getCheckedKeys, setCurrentKey });
103
+ return (_ctx, _cache) => {
104
+ const _component_el_input = vue.resolveComponent("el-input");
105
+ const _component_el_icon = vue.resolveComponent("el-icon");
106
+ const _component_el_button = vue.resolveComponent("el-button");
107
+ const _component_el_dropdown_item = vue.resolveComponent("el-dropdown-item");
108
+ const _component_el_dropdown_menu = vue.resolveComponent("el-dropdown-menu");
109
+ const _component_el_dropdown = vue.resolveComponent("el-dropdown");
110
+ const _component_el_checkbox = vue.resolveComponent("el-checkbox");
111
+ const _component_ele_FolderOpened = vue.resolveComponent("ele-FolderOpened");
112
+ const _component_ele_Folder = vue.resolveComponent("ele-Folder");
113
+ const _component_el_tree = vue.resolveComponent("el-tree");
114
+ const _component_el_scrollbar = vue.resolveComponent("el-scrollbar");
115
+ const _component_el_card = vue.resolveComponent("el-card");
116
+ const _directive_loading = vue.resolveDirective("loading");
117
+ return vue.openBlock(), vue.createBlock(_component_el_card, {
118
+ class: "box-card",
119
+ shadow: "hover",
120
+ "body-style": "height:100%;overflow:auto;padding:5px;width:100%;"
121
+ }, {
122
+ header: vue.withCtx(() => [
123
+ vue.createElementVNode("div", _hoisted_1, [
124
+ vue.createElementVNode("div", _hoisted_2, [
125
+ vue.createElementVNode("div", _hoisted_3, [
126
+ vue.createVNode(_component_el_input, {
127
+ "prefix-icon": vue.unref(svg.Search),
128
+ modelValue: filterText.value,
129
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => filterText.value = $event),
130
+ modelModifiers: { lazy: true },
131
+ clearable: "",
132
+ placeholder: "\u7C7B\u578B\u540D\u79F0"
133
+ }, null, 8, ["prefix-icon", "modelValue"])
134
+ ]),
135
+ vue.createElementVNode("div", _hoisted_4, [
136
+ vue.createVNode(_component_el_dropdown, { onCommand: handleCommand }, {
137
+ dropdown: vue.withCtx(() => [
138
+ vue.createVNode(_component_el_dropdown_menu, null, {
139
+ default: vue.withCtx(() => [
140
+ vue.createVNode(_component_el_dropdown_item, { command: "expandAll" }, {
141
+ default: vue.withCtx(() => _cache[2] || (_cache[2] = [
142
+ vue.createTextVNode("\u5168\u90E8\u5C55\u5F00")
143
+ ])),
144
+ _: 1,
145
+ __: [2]
146
+ }),
147
+ vue.createVNode(_component_el_dropdown_item, { command: "collapseAll" }, {
148
+ default: vue.withCtx(() => _cache[3] || (_cache[3] = [
149
+ vue.createTextVNode("\u5168\u90E8\u6298\u53E0")
150
+ ])),
151
+ _: 1,
152
+ __: [3]
153
+ }),
154
+ vue.createVNode(_component_el_dropdown_item, { command: "rootNode" }, {
155
+ default: vue.withCtx(() => _cache[4] || (_cache[4] = [
156
+ vue.createTextVNode("\u6839\u8282\u70B9")
157
+ ])),
158
+ _: 1,
159
+ __: [4]
160
+ }),
161
+ vue.createVNode(_component_el_dropdown_item, { command: "refresh" }, {
162
+ default: vue.withCtx(() => _cache[5] || (_cache[5] = [
163
+ vue.createTextVNode("\u5237\u65B0")
164
+ ])),
165
+ _: 1,
166
+ __: [5]
167
+ })
168
+ ]),
169
+ _: 1
170
+ /* STABLE */
171
+ })
172
+ ]),
173
+ default: vue.withCtx(() => [
174
+ vue.createVNode(_component_el_button, { style: { "margin-left": "8px", "width": "34px" } }, {
175
+ default: vue.withCtx(() => [
176
+ vue.createVNode(_component_el_icon, { class: "el-icon--center" }, {
177
+ default: vue.withCtx(() => [
178
+ vue.createVNode(vue.unref(svg.MoreFilled))
179
+ ]),
180
+ _: 1
181
+ /* STABLE */
182
+ })
183
+ ]),
184
+ _: 1
185
+ /* STABLE */
186
+ })
187
+ ]),
188
+ _: 1
189
+ /* STABLE */
190
+ })
191
+ ]),
192
+ !props.checkStrictly && state.isShowCheckbox ? (vue.openBlock(), vue.createBlock(_component_el_checkbox, {
193
+ key: 0,
194
+ modelValue: state.strictly,
195
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.strictly = $event),
196
+ label: "\u8054\u52A8",
197
+ style: { "margin-left": "8px" },
198
+ border: ""
199
+ }, null, 8, ["modelValue"])) : vue.createCommentVNode("v-if", true)
200
+ ])
201
+ ])
202
+ ]),
203
+ default: vue.withCtx(() => [
204
+ vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
205
+ vue.createVNode(_component_el_scrollbar, null, {
206
+ default: vue.withCtx(() => [
207
+ vue.createVNode(_component_el_tree, {
208
+ ref_key: "treeRef",
209
+ ref: treeRef,
210
+ class: "filter-tree",
211
+ data: state.folderData,
212
+ "node-key": __props.nodeKey,
213
+ props: __props.defaultProps,
214
+ "filter-node-method": filterNode,
215
+ onNodeClick: nodeClick,
216
+ "show-checkbox": state.isShowCheckbox,
217
+ "default-expand-all": "",
218
+ "highlight-current": "",
219
+ "check-strictly": !state.strictly
220
+ }, {
221
+ default: vue.withCtx(({ node }) => [
222
+ node.level < 4 ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
223
+ key: 0,
224
+ size: "16",
225
+ style: { "margin-right": "3px", "display": "inline", "vertical-align": "middle" }
226
+ }, {
227
+ default: vue.withCtx(() => [
228
+ vue.createVNode(_component_ele_FolderOpened)
229
+ ]),
230
+ _: 1
231
+ /* STABLE */
232
+ })) : (vue.openBlock(), vue.createBlock(_component_el_icon, {
233
+ key: 1,
234
+ size: "16",
235
+ style: { "margin-right": "3px", "display": "inline", "vertical-align": "middle" }
236
+ }, {
237
+ default: vue.withCtx(() => [
238
+ vue.createVNode(_component_ele_Folder)
239
+ ]),
240
+ _: 1
241
+ /* STABLE */
242
+ })),
243
+ vue.createTextVNode(
244
+ " " + vue.toDisplayString(node.label),
245
+ 1
246
+ /* TEXT */
247
+ )
248
+ ]),
249
+ _: 1
250
+ /* STABLE */
251
+ }, 8, ["data", "node-key", "props", "show-checkbox", "check-strictly"])
252
+ ]),
253
+ _: 1
254
+ /* STABLE */
255
+ })
256
+ ])), [
257
+ [_directive_loading, state.loading]
258
+ ])
259
+ ]),
260
+ _: 1
261
+ /* STABLE */
262
+ });
263
+ };
264
+ }
265
+ });
266
+
267
+ exports.default = _sfc_main;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var undefined$1 = undefined;
6
+
7
+ exports.default = undefined$1;
@@ -6,6 +6,7 @@ var dragVerifyImgRotate = require('./dragVerify/dragVerifyImgRotate.vue.js');
6
6
  require('./fmselect/index.vue.js');
7
7
  require('./fmautocomplete/index.vue.js');
8
8
  require('./inputdropdown/index.vue.js');
9
+ var index$1 = require('./fmtree/index.vue.js');
9
10
  var index = require('./svgIcon/index.js');
10
11
  var index_vue_vue_type_script_setup_true_lang = require('./transfer/index.vue2.js');
11
12
  var index_vue_vue_type_script_setup_true_lang$1 = require('./noticeBar/index.vue2.js');
@@ -19,11 +20,13 @@ const FmDragImg = dragVerifyImgRotate.default;
19
20
  const Fmselect = index_vue_vue_type_script_setup_true_lang$2.default;
20
21
  const FmAutocomplete = index_vue_vue_type_script_setup_true_lang$3.default;
21
22
  const Fminputdropdown = index_vue_vue_type_script_setup_true_lang$4.default;
23
+ const FmTree = index$1.default;
22
24
 
23
25
  exports.elSvg = index.elSvg;
24
26
  exports.FmAutocomplete = FmAutocomplete;
25
27
  exports.FmDragImg = FmDragImg;
26
28
  exports.FmNoticeBar = FmNoticeBar;
27
29
  exports.FmTransfer = FmTransfer;
30
+ exports.FmTree = FmTree;
28
31
  exports.Fminputdropdown = Fminputdropdown;
29
32
  exports.Fmselect = Fmselect;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fmdevui/fm-dev",
3
- "version": "1.0.62",
3
+ "version": "1.0.63",
4
4
  "description": "Page level components developed based on Element Plus.",
5
5
  "author": "fmdevui",
6
6
  "keywords": [