htui-yllkbz 1.3.89 → 1.3.92
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/lib/htui.common.js +367 -52
- package/lib/htui.common.js.gz +0 -0
- package/lib/htui.css +1 -1
- package/lib/htui.umd.js +367 -52
- package/lib/htui.umd.js.gz +0 -0
- package/lib/htui.umd.min.js +5 -5
- package/lib/htui.umd.min.js.gz +0 -0
- package/package.json +1 -1
- package/src/App.vue +17 -3
- package/src/packages/HtBaseData/index.vue +29 -10
- package/src/packages/HtSelectBaseData/index.vue +7 -1
- package/src/packages/HtSelectCategory/index.ts +14 -0
- package/src/packages/HtSelectCategory/index.vue +180 -0
- package/src/packages/HtTable/index.vue +1 -1
- package/src/packages/index.ts +4 -3
package/lib/htui.umd.min.js.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
package/src/App.vue
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @Author: hutao
|
|
5
5
|
* @Date: 2021-11-15 14:41:40
|
|
6
6
|
* @LastEditors: hutao
|
|
7
|
-
* @LastEditTime: 2023-
|
|
7
|
+
* @LastEditTime: 2023-02-08 10:50:00
|
|
8
8
|
-->
|
|
9
9
|
<template>
|
|
10
10
|
<div id="app">
|
|
@@ -13,8 +13,20 @@
|
|
|
13
13
|
<ul>
|
|
14
14
|
<li>8888<HtMore></HtMore></li>
|
|
15
15
|
</ul>
|
|
16
|
-
<HtSelectPosition v-model="state.value"></HtSelectPosition>
|
|
17
|
-
<HtSelectPosition :readonly="true" v-model="state.value"></HtSelectPosition>
|
|
16
|
+
<!-- <HtSelectPosition v-model="state.value"></HtSelectPosition>
|
|
17
|
+
<HtSelectPosition :readonly="true" v-model="state.value"></HtSelectPosition> -->
|
|
18
|
+
<!-- <HtSelectCategory :multiple="true" v-model="state.value"></HtSelectCategory>
|
|
19
|
+
<HtSelectCategory :readonly="true" v-model="state.value"></HtSelectCategory> -->
|
|
20
|
+
<HtSelectBaseData
|
|
21
|
+
:onlyParent="true"
|
|
22
|
+
v-model="state.value"
|
|
23
|
+
dataTypeId="MeasureUnit"
|
|
24
|
+
></HtSelectBaseData>
|
|
25
|
+
<HtSelectBaseData
|
|
26
|
+
:parentId="state.value"
|
|
27
|
+
v-model="state.timeValue"
|
|
28
|
+
dataTypeId="MeasureUnit"
|
|
29
|
+
></HtSelectBaseData>
|
|
18
30
|
<router-view></router-view>
|
|
19
31
|
</div>
|
|
20
32
|
</template>
|
|
@@ -27,6 +39,7 @@ import HtSelectUser from '@/packages/HtSelectUser';
|
|
|
27
39
|
import HtShowBaseType from '@/packages/HtShowBaseType';
|
|
28
40
|
import HtSelectTimeSlot from '@/packages/HtSelectTimeSlot';
|
|
29
41
|
import HtSelectPosition from '@/packages/HtSelectPosition';
|
|
42
|
+
import HtSelectCategory from '@/packages/HtSelectCategory';
|
|
30
43
|
import HtMore from '@/packages/HtMore';
|
|
31
44
|
import HtSelectUnit from '@/packages/HtSelectUnit';
|
|
32
45
|
import { mgr } from '@/plugins/oidc-client';
|
|
@@ -40,6 +53,7 @@ import { mgr } from '@/plugins/oidc-client';
|
|
|
40
53
|
HtMore,
|
|
41
54
|
HtSelectUnit,
|
|
42
55
|
HtSelectPosition,
|
|
56
|
+
HtSelectCategory,
|
|
43
57
|
},
|
|
44
58
|
})
|
|
45
59
|
export default class App extends Vue {
|
|
@@ -567,7 +567,10 @@ export default class CommonDatas extends Vue {
|
|
|
567
567
|
/** 是否禁用 */
|
|
568
568
|
@Prop() disabled?: string;
|
|
569
569
|
@Prop({ default: true }) appendToBody?: boolean;
|
|
570
|
-
|
|
570
|
+
/** 是否过滤指定层级内容 */
|
|
571
|
+
@Prop({ default: undefined }) parentId?: string;
|
|
572
|
+
/** 是否只选择父级 */
|
|
573
|
+
@Prop({ default: false }) onlyParent?: boolean;
|
|
571
574
|
/** 人员 */
|
|
572
575
|
/** 数据 */
|
|
573
576
|
state: State = {
|
|
@@ -819,15 +822,20 @@ export default class CommonDatas extends Vue {
|
|
|
819
822
|
}
|
|
820
823
|
/** 基础数据递归处理 */
|
|
821
824
|
recursion(data: Array<BaseDataDto>) {
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
825
|
+
if (this.onlyParent) {
|
|
826
|
+
data.forEach((item) => (item.children = undefined));
|
|
827
|
+
return data;
|
|
828
|
+
} else {
|
|
829
|
+
return data.reduce((prv: BaseDataDto[], cur) => {
|
|
830
|
+
if (cur.children && cur.children.length > 0) {
|
|
831
|
+
this.recursion(cur.children);
|
|
832
|
+
} else {
|
|
833
|
+
cur.children = undefined;
|
|
834
|
+
}
|
|
835
|
+
prv.push(cur);
|
|
836
|
+
return prv;
|
|
837
|
+
}, []);
|
|
838
|
+
}
|
|
831
839
|
}
|
|
832
840
|
/** 计算属性 */
|
|
833
841
|
/** 根据基础数据分类获取详细数据 */
|
|
@@ -845,12 +853,23 @@ export default class CommonDatas extends Vue {
|
|
|
845
853
|
val.organizationUnits?.includes(this.org as string)
|
|
846
854
|
)
|
|
847
855
|
);
|
|
856
|
+
if (this.parentId) {
|
|
857
|
+
body[item.id || ''] = body[item.id || ''].filter(
|
|
858
|
+
(item) => item.id === this.parentId
|
|
859
|
+
);
|
|
860
|
+
}
|
|
848
861
|
} else {
|
|
849
862
|
body[item.id || ''] = this.recursion(
|
|
850
863
|
baseItems.filter((val) => val.category == item.code)
|
|
851
864
|
);
|
|
865
|
+
if (this.parentId) {
|
|
866
|
+
body[item.id || ''] = body[item.id || ''].filter(
|
|
867
|
+
(item) => item.id === this.parentId
|
|
868
|
+
);
|
|
869
|
+
}
|
|
852
870
|
}
|
|
853
871
|
});
|
|
872
|
+
|
|
854
873
|
return body;
|
|
855
874
|
}
|
|
856
875
|
/** 获取响应列表 */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @Author: hutao
|
|
5
5
|
* @Date: 2021-12-30 15:47:47
|
|
6
6
|
* @LastEditors: hutao
|
|
7
|
-
* @LastEditTime:
|
|
7
|
+
* @LastEditTime: 2023-02-08 09:46:57
|
|
8
8
|
-->
|
|
9
9
|
|
|
10
10
|
<template>
|
|
@@ -23,6 +23,8 @@
|
|
|
23
23
|
ref="htBaseData"
|
|
24
24
|
:size="size"
|
|
25
25
|
:appendToBody="appendToBody"
|
|
26
|
+
:only-parent="onlyParent"
|
|
27
|
+
:parent-id="parentId"
|
|
26
28
|
:placeholder="placeholder"
|
|
27
29
|
:hide-code="hideCode"
|
|
28
30
|
:disabled="disabled"
|
|
@@ -91,6 +93,10 @@ export default class HtSelectBaseData extends Vue {
|
|
|
91
93
|
/** 展示时候是否隐藏value */
|
|
92
94
|
@Prop() hideCode!: boolean;
|
|
93
95
|
@Prop({ default: false }) clearable!: boolean;
|
|
96
|
+
/** 是否过滤指定层级内容 */
|
|
97
|
+
@Prop({ default: undefined }) parentId?: string;
|
|
98
|
+
/** 是否只选择父级 */
|
|
99
|
+
@Prop({ default: false }) onlyParent?: boolean;
|
|
94
100
|
/** 是否多选 */
|
|
95
101
|
@Prop({ default: false }) multiple!: boolean;
|
|
96
102
|
@Prop({ default: false }) checkStrictly!: boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Descripttion:选择资产单位
|
|
3
|
+
* @version:
|
|
4
|
+
* @Author: hutao
|
|
5
|
+
* @Date: 2021-11-15 15:00:57
|
|
6
|
+
* @LastEditors: hutao
|
|
7
|
+
* @LastEditTime: 2023-01-15 14:45:42
|
|
8
|
+
*/
|
|
9
|
+
import HtSelectCategory from "./index.vue";
|
|
10
|
+
(HtSelectCategory as any).install = function (Vue: any) {
|
|
11
|
+
|
|
12
|
+
Vue.component("HtSelectCategory", HtSelectCategory);
|
|
13
|
+
};
|
|
14
|
+
export default HtSelectCategory;
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Descripttion:位置选择
|
|
3
|
+
* @version:
|
|
4
|
+
* @Author: hutao
|
|
5
|
+
* @Date: 2021-12-30 14:29:14
|
|
6
|
+
* @LastEditors: hutao
|
|
7
|
+
* @LastEditTime: 2023-02-01 16:55:50
|
|
8
|
+
-->
|
|
9
|
+
<template>
|
|
10
|
+
<span v-if="readonly">
|
|
11
|
+
{{ state.positionName.toString() }}
|
|
12
|
+
</span>
|
|
13
|
+
<el-cascader
|
|
14
|
+
v-else
|
|
15
|
+
:size="size"
|
|
16
|
+
popper-class="ht-cascader-poper"
|
|
17
|
+
:placeholder="placeholder || `请选择`"
|
|
18
|
+
:disabled="!!disabled"
|
|
19
|
+
class="component-item"
|
|
20
|
+
style="width:100%"
|
|
21
|
+
:filterable="true"
|
|
22
|
+
:clearable="clearable"
|
|
23
|
+
:collapse-tags="collapseTags"
|
|
24
|
+
:show-all-levels="showAllLevels"
|
|
25
|
+
:props="{
|
|
26
|
+
label: defalutName,
|
|
27
|
+
value: 'id',
|
|
28
|
+
expandTrigger: 'click',
|
|
29
|
+
emitPath: false,
|
|
30
|
+
checkStrictly: checkStrictly,
|
|
31
|
+
multiple: multiple,
|
|
32
|
+
}"
|
|
33
|
+
ref="HtSelectPosition"
|
|
34
|
+
v-model="state.value"
|
|
35
|
+
:options="options"
|
|
36
|
+
@change="handleChange"
|
|
37
|
+
>
|
|
38
|
+
</el-cascader>
|
|
39
|
+
</template>
|
|
40
|
+
<script lang="ts">
|
|
41
|
+
import { Component, Prop, Vue, Watch } from 'vue-property-decorator';
|
|
42
|
+
import { _axios } from 'vue-kst-auth';
|
|
43
|
+
interface State {
|
|
44
|
+
/** 数据状态 */
|
|
45
|
+
loading: boolean;
|
|
46
|
+
value: any;
|
|
47
|
+
positionName: string[];
|
|
48
|
+
/** 所有位置 */
|
|
49
|
+
dataSource: any[];
|
|
50
|
+
/** 所有分类 */
|
|
51
|
+
unitCategory: any[];
|
|
52
|
+
}
|
|
53
|
+
@Component({
|
|
54
|
+
name: 'HtSelectCategory',
|
|
55
|
+
})
|
|
56
|
+
export default class HtSelectUser extends Vue {
|
|
57
|
+
@Prop() value!: string;
|
|
58
|
+
@Prop() org!: string;
|
|
59
|
+
@Prop() size!: string;
|
|
60
|
+
/** 是否禁用 */
|
|
61
|
+
@Prop() disabled?: boolean;
|
|
62
|
+
@Prop() heightAuto?: boolean;
|
|
63
|
+
@Prop() placeholder?: string;
|
|
64
|
+
/** 是否可以清除 */
|
|
65
|
+
@Prop() clearable?: boolean;
|
|
66
|
+
@Prop({ default: true }) show?: boolean;
|
|
67
|
+
@Prop({ default: false }) multiple?: boolean;
|
|
68
|
+
@Prop({ default: true }) showAllLevels?: boolean;
|
|
69
|
+
@Prop({ default: false }) checkStrictly?: boolean;
|
|
70
|
+
/* 是否只读 */
|
|
71
|
+
@Prop({ default: false }) readonly?: boolean;
|
|
72
|
+
@Prop({ default: false }) panel?: boolean;
|
|
73
|
+
@Prop({ default: false }) collapseTags?: boolean;
|
|
74
|
+
@Prop({ default: true }) appendToBody?: boolean;
|
|
75
|
+
@Prop({ default: 'name' }) defalutName?: string;
|
|
76
|
+
/** 父级id */
|
|
77
|
+
@Prop() parentId?: string;
|
|
78
|
+
|
|
79
|
+
/** 数据 */
|
|
80
|
+
state: State = {
|
|
81
|
+
loading: false,
|
|
82
|
+
value: undefined,
|
|
83
|
+
positionName: [],
|
|
84
|
+
dataSource: [],
|
|
85
|
+
unitCategory: [],
|
|
86
|
+
};
|
|
87
|
+
/** 生命周期 */
|
|
88
|
+
created() {
|
|
89
|
+
//
|
|
90
|
+
if (!this.readonly) {
|
|
91
|
+
this.getAllList();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** 根据id获取单个 */
|
|
95
|
+
getSingle(val?: string | string[]) {
|
|
96
|
+
this.state.positionName = [];
|
|
97
|
+
if (val) {
|
|
98
|
+
let arr: string[] = [];
|
|
99
|
+
if (Array.isArray(val)) {
|
|
100
|
+
arr = val;
|
|
101
|
+
} else {
|
|
102
|
+
arr = val.split(',');
|
|
103
|
+
}
|
|
104
|
+
arr.forEach((item) => {
|
|
105
|
+
_axios
|
|
106
|
+
.get(`/asset_manage/api/asset-management/asset-categories/${item}`)
|
|
107
|
+
.then((res) => {
|
|
108
|
+
const data = res.data;
|
|
109
|
+
this.state.positionName.push(
|
|
110
|
+
`${data.displayName}${data.code ? `(${data.code})` : ''}`
|
|
111
|
+
);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
} else {
|
|
115
|
+
this.state.positionName = [];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/** 获取单位列表 */
|
|
120
|
+
getAllList() {
|
|
121
|
+
_axios
|
|
122
|
+
.get(`/asset_manage/api/asset-management/asset-categories/list`, {
|
|
123
|
+
params: { Recursive: true, CurrentId: this.parentId },
|
|
124
|
+
})
|
|
125
|
+
.then((res) => {
|
|
126
|
+
const data = res.data.items || [];
|
|
127
|
+
this.state.dataSource = data;
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/** 方法 */
|
|
131
|
+
/**选择回调 */
|
|
132
|
+
handleChange(e?: string | string[]) {
|
|
133
|
+
const allData = [...this.state.dataSource];
|
|
134
|
+
if (!e || !e.length) {
|
|
135
|
+
this.$emit('input', e);
|
|
136
|
+
this.$emit('change', e);
|
|
137
|
+
} else {
|
|
138
|
+
let seletId: any = {};
|
|
139
|
+
if (Array.isArray(e)) {
|
|
140
|
+
e.forEach((item) => {
|
|
141
|
+
seletId = { ...seletId, [item]: true };
|
|
142
|
+
});
|
|
143
|
+
} else {
|
|
144
|
+
seletId = { [e]: true };
|
|
145
|
+
}
|
|
146
|
+
const data = allData.filter((item) => seletId[item.id]);
|
|
147
|
+
this.$emit('input', e, data);
|
|
148
|
+
this.$emit('change', e, data);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
@Watch('value', { immediate: true })
|
|
152
|
+
setValue(val: any) {
|
|
153
|
+
this.state.value = val;
|
|
154
|
+
if (this.readonly) {
|
|
155
|
+
this.getSingle(val);
|
|
156
|
+
} else {
|
|
157
|
+
// this.getAllList(this.org);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
formatData(data: any[]) {
|
|
162
|
+
for (let i = 0; i < data.length; i++) {
|
|
163
|
+
const item = data[i];
|
|
164
|
+
item.name = `${item.displayName}${item.code ? `(${item.code})` : ''}`;
|
|
165
|
+
if (item.children.length < 1) {
|
|
166
|
+
item.children = undefined;
|
|
167
|
+
} else {
|
|
168
|
+
this.formatData(item.children);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return data;
|
|
172
|
+
}
|
|
173
|
+
get options() {
|
|
174
|
+
const { dataSource } = this.state;
|
|
175
|
+
const allData = this.formatData(dataSource);
|
|
176
|
+
return allData;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
</script>
|
|
180
|
+
<style lang="scss" scoped></style>
|
package/src/packages/index.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @Author: hutao
|
|
5
5
|
* @Date: 2021-10-21 10:08:41
|
|
6
6
|
* @LastEditors: hutao
|
|
7
|
-
* @LastEditTime: 2023-01
|
|
7
|
+
* @LastEditTime: 2023-02-01 16:30:54
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
// 导入组件
|
|
@@ -32,13 +32,14 @@ import HtSelectTimeSlot from './HtSelectTimeSlot'
|
|
|
32
32
|
import HtMore from './HtMore'
|
|
33
33
|
import HtSelectUnit from './HtSelectUnit'
|
|
34
34
|
import HtSelectPosition from './HtSelectPosition'
|
|
35
|
+
import HtSelectCategory from './HtSelectCategory'
|
|
35
36
|
|
|
36
37
|
|
|
37
38
|
|
|
38
39
|
|
|
39
40
|
|
|
40
41
|
// 存储组件列表
|
|
41
|
-
const components = [HtSelectUnit, HtSelectPosition, HtMore, HtSelectTimeSlot, HtSelectCron, HtBaseData, HtDrawer, HtShowBaseType, HtSelectTable, HtPagination, HtTable, HtExport, HtUpload, HtMd, HtCountDown, HtUploadFiles, HtSelectBaseData, HtSelectOrg, HtSelectUser, HtShowBaseData, HtOrgInfo]
|
|
42
|
+
const components = [HtSelectCategory, HtSelectUnit, HtSelectPosition, HtMore, HtSelectTimeSlot, HtSelectCron, HtBaseData, HtDrawer, HtShowBaseType, HtSelectTable, HtPagination, HtTable, HtExport, HtUpload, HtMd, HtCountDown, HtUploadFiles, HtSelectBaseData, HtSelectOrg, HtSelectUser, HtShowBaseData, HtOrgInfo]
|
|
42
43
|
// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
|
|
43
44
|
const install = function (Vue: any) {
|
|
44
45
|
// 判断是否安装
|
|
@@ -55,7 +56,7 @@ export default {
|
|
|
55
56
|
install,
|
|
56
57
|
// 以下是具体的组件列表
|
|
57
58
|
HtSelectTable, HtSelectPosition, HtPagination, HtShowBaseType, HtTable, HtExport, HtUpload, HtMd, HtCountDown, HtUploadFiles, HtMore,
|
|
58
|
-
HtSelectUnit,
|
|
59
|
+
HtSelectUnit, HtSelectCategory,
|
|
59
60
|
HtSelectBaseData, HtSelectOrg, HtSelectUser, HtShowBaseData, HtOrgInfo, HtBaseData, HtDrawer, HtSelectCron, HtSelectTimeSlot
|
|
60
61
|
}
|
|
61
62
|
|