htui-yllkbz 1.3.86 → 1.3.88

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.
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "htui-yllkbz",
3
- "version": "1.3.86",
3
+ "version": "1.3.88",
4
4
  "port": "8082",
5
5
  "typings": "types/index.d.ts",
6
6
  "main": "lib/htui.common.js",
package/src/App.vue CHANGED
@@ -4,47 +4,17 @@
4
4
  * @Author: hutao
5
5
  * @Date: 2021-11-15 14:41:40
6
6
  * @LastEditors: hutao
7
- * @LastEditTime: 2023-01-08 16:17:30
7
+ * @LastEditTime: 2023-01-15 16:24:16
8
8
  -->
9
9
  <template>
10
10
  <div id="app">
11
11
  <el-button type="" @click="test">测试</el-button>
12
- <HtSelectBaseData
13
- dataTypeId="chengbenzhongxin"
14
- v-model="state.value"
15
- :multiple="false"
16
- @change="change"
17
- ></HtSelectBaseData>
18
- <HtSelectBaseData
19
- :byCode="true"
20
- :multiple="false"
21
- :clearable="true"
22
- dataTypeId="SeverityLevel"
23
- v-model="state.value"
24
- @change="change"
25
- ></HtSelectBaseData>
26
- <HtSelectUser
27
- :clearable="true"
28
- :multiple="true"
29
- :heightAuto="true"
30
- :checkStrictly="false"
31
- v-model="state.value"
32
- @change="testuser"
33
- ></HtSelectUser>
34
- <!-- <HtSelectOrg :clearable="true"
35
- v-model="state.value"
36
- @change="testuser"></HtSelectOrg> -->
37
- ------------- ----------
38
- <HtSelectTimeSlot
39
- v-model="state.timeValue"
40
- :width="'60px'"
41
- ></HtSelectTimeSlot>
42
- <HtSelectTimeSlot
43
- v-model="state.timeValue"
44
- :readonly="true"
45
- :width="'60px'"
46
- ></HtSelectTimeSlot>
47
- <HtMore></HtMore>
12
+
13
+ <ul>
14
+ <li>8888<HtMore></HtMore></li>
15
+ </ul>
16
+ <HtSelectPosition v-model="state.value"></HtSelectPosition>
17
+ <HtSelectPosition :readonly="true" v-model="state.value"></HtSelectPosition>
48
18
  <router-view></router-view>
49
19
  </div>
50
20
  </template>
@@ -56,7 +26,9 @@ import HtSelectOrg from '@/packages/HtSelectOrg';
56
26
  import HtSelectUser from '@/packages/HtSelectUser';
57
27
  import HtShowBaseType from '@/packages/HtShowBaseType';
58
28
  import HtSelectTimeSlot from '@/packages/HtSelectTimeSlot';
29
+ import HtSelectPosition from '@/packages/HtSelectPosition';
59
30
  import HtMore from '@/packages/HtMore';
31
+ import HtSelectUnit from '@/packages/HtSelectUnit';
60
32
  import { mgr } from '@/plugins/oidc-client';
61
33
  @Component({
62
34
  components: {
@@ -66,12 +38,282 @@ import { mgr } from '@/plugins/oidc-client';
66
38
  HtSelectUser,
67
39
  HtSelectTimeSlot,
68
40
  HtMore,
41
+ HtSelectUnit,
42
+ HtSelectPosition,
69
43
  },
70
44
  })
71
45
  export default class App extends Vue {
72
46
  state = {
73
- value: ['95bd1bfd-59d8-f88b-2b65-39f97d1da058'],
47
+ value: '',
74
48
  timeValue: undefined,
49
+ options: [
50
+ {
51
+ value: 'zhinan',
52
+ label: '指南',
53
+ children: [
54
+ {
55
+ value: 'shejiyuanze',
56
+ label: '设计原则',
57
+ children: [
58
+ {
59
+ value: 'yizhi',
60
+ label: '一致',
61
+ },
62
+ {
63
+ value: 'fankui',
64
+ label: '反馈',
65
+ },
66
+ {
67
+ value: 'xiaolv',
68
+ label: '效率',
69
+ },
70
+ {
71
+ value: 'kekong',
72
+ label: '可控',
73
+ },
74
+ ],
75
+ },
76
+ {
77
+ value: 'daohang',
78
+ label: '导航',
79
+ children: [
80
+ {
81
+ value: 'cexiangdaohang',
82
+ label: '侧向导航',
83
+ },
84
+ {
85
+ value: 'dingbudaohang',
86
+ label: '顶部导航',
87
+ },
88
+ ],
89
+ },
90
+ ],
91
+ },
92
+ {
93
+ value: 'zujian',
94
+ label: '组件',
95
+ children: [
96
+ {
97
+ value: 'basic',
98
+ label: 'Basic',
99
+ children: [
100
+ {
101
+ value: 'layout',
102
+ label: 'Layout 布局',
103
+ },
104
+ {
105
+ value: 'color',
106
+ label: 'Color 色彩',
107
+ },
108
+ {
109
+ value: 'typography',
110
+ label: 'Typography 字体',
111
+ },
112
+ {
113
+ value: 'icon',
114
+ label: 'Icon 图标',
115
+ },
116
+ {
117
+ value: 'button',
118
+ label: 'Button 按钮',
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ value: 'form',
124
+ label: 'Form',
125
+ children: [
126
+ {
127
+ value: 'radio',
128
+ label: 'Radio 单选框',
129
+ },
130
+ {
131
+ value: 'checkbox',
132
+ label: 'Checkbox 多选框',
133
+ },
134
+ {
135
+ value: 'input',
136
+ label: 'Input 输入框',
137
+ },
138
+ {
139
+ value: 'input-number',
140
+ label: 'InputNumber 计数器',
141
+ },
142
+ {
143
+ value: 'select',
144
+ label: 'Select 选择器',
145
+ },
146
+ {
147
+ value: 'cascader',
148
+ label: 'Cascader 级联选择器',
149
+ },
150
+ {
151
+ value: 'switch',
152
+ label: 'Switch 开关',
153
+ },
154
+ {
155
+ value: 'slider',
156
+ label: 'Slider 滑块',
157
+ },
158
+ {
159
+ value: 'time-picker',
160
+ label: 'TimePicker 时间选择器',
161
+ },
162
+ {
163
+ value: 'date-picker',
164
+ label: 'DatePicker 日期选择器',
165
+ },
166
+ {
167
+ value: 'datetime-picker',
168
+ label: 'DateTimePicker 日期时间选择器',
169
+ },
170
+ {
171
+ value: 'upload',
172
+ label: 'Upload 上传',
173
+ },
174
+ {
175
+ value: 'rate',
176
+ label: 'Rate 评分',
177
+ },
178
+ {
179
+ value: 'form',
180
+ label: 'Form 表单',
181
+ },
182
+ ],
183
+ },
184
+ {
185
+ value: 'data',
186
+ label: 'Data',
187
+ children: [
188
+ {
189
+ value: 'table',
190
+ label: 'Table 表格',
191
+ },
192
+ {
193
+ value: 'tag',
194
+ label: 'Tag 标签',
195
+ },
196
+ {
197
+ value: 'progress',
198
+ label: 'Progress 进度条',
199
+ },
200
+ {
201
+ value: 'tree',
202
+ label: 'Tree 树形控件',
203
+ },
204
+ {
205
+ value: 'pagination',
206
+ label: 'Pagination 分页',
207
+ },
208
+ {
209
+ value: 'badge',
210
+ label: 'Badge 标记',
211
+ },
212
+ ],
213
+ },
214
+ {
215
+ value: 'notice',
216
+ label: 'Notice',
217
+ children: [
218
+ {
219
+ value: 'alert',
220
+ label: 'Alert 警告',
221
+ },
222
+ {
223
+ value: 'loading',
224
+ label: 'Loading 加载',
225
+ },
226
+ {
227
+ value: 'message',
228
+ label: 'Message 消息提示',
229
+ },
230
+ {
231
+ value: 'message-box',
232
+ label: 'MessageBox 弹框',
233
+ },
234
+ {
235
+ value: 'notification',
236
+ label: 'Notification 通知',
237
+ },
238
+ ],
239
+ },
240
+ {
241
+ value: 'navigation',
242
+ label: 'Navigation',
243
+ children: [
244
+ {
245
+ value: 'menu',
246
+ label: 'NavMenu 导航菜单',
247
+ },
248
+ {
249
+ value: 'tabs',
250
+ label: 'Tabs 标签页',
251
+ },
252
+ {
253
+ value: 'breadcrumb',
254
+ label: 'Breadcrumb 面包屑',
255
+ },
256
+ {
257
+ value: 'dropdown',
258
+ label: 'Dropdown 下拉菜单',
259
+ },
260
+ {
261
+ value: 'steps',
262
+ label: 'Steps 步骤条',
263
+ },
264
+ ],
265
+ },
266
+ {
267
+ value: 'others',
268
+ label: 'Others',
269
+ children: [
270
+ {
271
+ value: 'dialog',
272
+ label: 'Dialog 对话框',
273
+ },
274
+ {
275
+ value: 'tooltip',
276
+ label: 'Tooltip 文字提示',
277
+ },
278
+ {
279
+ value: 'popover',
280
+ label: 'Popover 弹出框',
281
+ },
282
+ {
283
+ value: 'card',
284
+ label: 'Card 卡片',
285
+ },
286
+ {
287
+ value: 'carousel',
288
+ label: 'Carousel 走马灯',
289
+ },
290
+ {
291
+ value: 'collapse',
292
+ label: 'Collapse 折叠面板',
293
+ },
294
+ ],
295
+ },
296
+ ],
297
+ },
298
+ {
299
+ value: 'ziyuan',
300
+ label: '资源',
301
+ children: [
302
+ {
303
+ value: 'axure',
304
+ label: 'Axure Components',
305
+ },
306
+ {
307
+ value: 'sketch',
308
+ label: 'Sketch Templates',
309
+ },
310
+ {
311
+ value: 'jiaohu',
312
+ label: '组件交互文档',
313
+ },
314
+ ],
315
+ },
316
+ ],
75
317
  };
76
318
  /** 生命周期 */
77
319
  created() {
@@ -4,17 +4,13 @@
4
4
  * @Author: hutao
5
5
  * @Date: 2022-09-28 10:24:08
6
6
  * @LastEditors: hutao
7
- * @LastEditTime: 2023-01-08 17:15:00
7
+ * @LastEditTime: 2023-01-09 16:57:36
8
8
  -->
9
9
  <template>
10
10
  <el-dropdown :trigger="trigger" @command="handleCommand($event, 'command')">
11
11
  <span class="el-dropdown-link">
12
12
  <slot>
13
- <div class="ht-link-title" style="cursor:pointer" :style="comStyle">
14
- <div class="ht-link-item" style="height:5px">.</div>
15
- <div class="ht-link-item" style="height:5px">.</div>
16
- <div class="ht-link-item" style="height:5px">.</div>
17
- </div>
13
+ <i class="ht-icon-more el-icon-more"></i>
18
14
  </slot>
19
15
  </span>
20
16
  <el-dropdown-menu slot="dropdown">
@@ -75,4 +71,9 @@ export default class Index extends Vue {
75
71
  .ht-link-title:hover {
76
72
  color: var(--primary);
77
73
  }
74
+ .ht-icon-more {
75
+ transform: rotate(90deg);
76
+ color: var(--primary);
77
+ cursor: pointer;
78
+ }
78
79
  </style>
@@ -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 HtSelectPosition from "./index.vue";
10
+ (HtSelectPosition as any).install = function (Vue: any) {
11
+
12
+ Vue.component("HtSelectPosition", HtSelectPosition);
13
+ };
14
+ export default HtSelectPosition;
@@ -0,0 +1,203 @@
1
+ <!--
2
+ * @Descripttion:位置选择
3
+ * @version:
4
+ * @Author: hutao
5
+ * @Date: 2021-12-30 14:29:14
6
+ * @LastEditors: hutao
7
+ * @LastEditTime: 2023-01-15 16:06:20
8
+ -->
9
+ <template>
10
+ <span v-if="readonly">
11
+ {{ state.positionName }}
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
+ allPositionList: any[];
50
+ /** 所有分类 */
51
+ unitCategory: any[];
52
+ }
53
+ @Component({
54
+ name: 'HtSelectPosition',
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
+ @Prop() purposeCode?: string;
80
+
81
+ /* 单位分类id */
82
+ @Prop() categoyId?: string;
83
+ /** 是否只选择分类列表 */
84
+ @Prop({ default: false }) onlyCategoy?: string;
85
+ /** 数据 */
86
+ state: State = {
87
+ loading: false,
88
+ value: undefined,
89
+ positionName: undefined,
90
+ allPositionList: [],
91
+ unitCategory: [],
92
+ };
93
+ /** 生命周期 */
94
+ created() {
95
+ //
96
+ }
97
+ /** 根据id获取单个 */
98
+ getSingle(val?: string) {
99
+ if (val) {
100
+ /** 有数据就缓存 没有数据就调用接口 */
101
+ const positionName = window.sessionStorage.getItem(`position${val}`);
102
+ if (positionName) {
103
+ this.state.positionName = positionName;
104
+ } else {
105
+ _axios
106
+ .get(
107
+ `/PositionManagement/api/position-management/position/get?id=${val}`
108
+ )
109
+ .then((res) => {
110
+ const data = res.data;
111
+ this.state.positionName = `${data.displayName}${
112
+ data.positionCode ? `(${data.positionCode})` : ''
113
+ }`;
114
+ /** 缓存位置信息 */
115
+ window.sessionStorage.setItem(
116
+ `position${val}`,
117
+ this.state.positionName
118
+ );
119
+ });
120
+ }
121
+ } else {
122
+ this.state.positionName = '';
123
+ }
124
+ }
125
+
126
+ /** 获取单位列表 */
127
+ getAllList(org: string) {
128
+ _axios
129
+ .post(
130
+ '/PositionManagement/api/position-management/position/get-list-all',
131
+ {
132
+ parentId: this.parentId,
133
+ manageOrganizationUnitId: org,
134
+ positionPurposeCode: this.purposeCode,
135
+ isTree: true,
136
+ }
137
+ )
138
+ .then((res) => {
139
+ const data = res.data.items || [];
140
+
141
+ this.state.allPositionList = data;
142
+ });
143
+ }
144
+ /** 方法 */
145
+ /**选择回调 */
146
+ handleChange(e?: string | string[]) {
147
+ const allData = [...this.state.allPositionList];
148
+ if (!e || !e.length) {
149
+ this.$emit('input', e);
150
+ this.$emit('change', e);
151
+ } else {
152
+ let seletId: any = {};
153
+ if (Array.isArray(e)) {
154
+ e.forEach((item) => {
155
+ seletId = { ...seletId, [item]: true };
156
+ });
157
+ } else {
158
+ seletId = { [e]: true };
159
+ }
160
+ const data = allData.filter((item) => seletId[item.id]);
161
+ this.$emit('input', e, data);
162
+ this.$emit('change', e, data);
163
+ }
164
+ }
165
+ @Watch('value', { immediate: true })
166
+ setValue(val: any) {
167
+ this.state.value = val;
168
+ if (this.readonly) {
169
+ this.getSingle(val);
170
+ } else {
171
+ // this.getAllList(this.org);
172
+ }
173
+ }
174
+ @Watch('org', { immediate: true })
175
+ getList(val: any) {
176
+ if (this.readonly) {
177
+ //
178
+ } else {
179
+ this.getAllList(val);
180
+ }
181
+ }
182
+ formatData(data: any[]) {
183
+ for (let i = 0; i < data.length; i++) {
184
+ const item = data[i];
185
+ item.name = `${item.displayName}${
186
+ item.positionCode ? `(${item.positionCode})` : ''
187
+ }`;
188
+ if (item.children.length < 1) {
189
+ item.children = undefined;
190
+ } else {
191
+ this.formatData(item.children);
192
+ }
193
+ }
194
+ return data;
195
+ }
196
+ get options() {
197
+ const { allPositionList } = this.state;
198
+ const allData = this.formatData(allPositionList);
199
+ return allData;
200
+ }
201
+ }
202
+ </script>
203
+ <style lang="scss" scoped></style>
@@ -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-12 16:58:07
8
+ */
9
+ import HtSelectUnit from "./index.vue";
10
+ (HtSelectUnit as any).install = function (Vue: any) {
11
+
12
+ Vue.component("HtSelectUnit", HtSelectUnit);
13
+ };
14
+ export default HtSelectUnit;