ol-base-components 3.4.5 → 3.4.7

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 (64) hide show
  1. package/dist/index.mjs +7105 -0
  2. package/dist/index.umd.js +1 -0
  3. package/dist/style.css +1 -0
  4. package/package.json +18 -4
  5. package/.eslintrc +0 -59
  6. package/.github/deploy.yml +0 -81
  7. package/.prettierignore +0 -6
  8. package/.prettierrc +0 -13
  9. package/.trae/rules/project.md +0 -2
  10. package/babel.config.js +0 -5
  11. package/jsconfig.json +0 -19
  12. package/readme1.md +0 -164
  13. package/src/App.vue +0 -932
  14. package/src/assets/Snipaste_2025-09-03_14-30-49.png +0 -0
  15. package/src/assets/api.png +0 -0
  16. package/src/assets/css/iconfont.css +0 -342
  17. package/src/assets/duojibiaotou.png +0 -0
  18. package/src/assets/effectPicture.png +0 -0
  19. package/src/assets/generator0.png +0 -0
  20. package/src/assets/generator1.png +0 -0
  21. package/src/assets/generator2.png +0 -0
  22. package/src/assets/icon/printModel.svg +0 -1
  23. package/src/assets/init.png +0 -0
  24. package/src/assets/logo.png +0 -0
  25. package/src/assets/olBaseComponentsLogo.svg +0 -100
  26. package/src/assets/print.svg +0 -1
  27. package/src/assets/run.png +0 -0
  28. package/src/assets/vscodecj.png +0 -0
  29. package/src/bin/initTemplate.js +0 -409
  30. package/src/bin/news.js +0 -171
  31. package/src/bin/openCloseloop.js +0 -154
  32. package/src/bin/openLoop.js +0 -154
  33. package/src/main.js +0 -13
  34. package/src/package/customSearch/index.js +0 -7
  35. package/src/package/customSearch/src/index.vue +0 -120
  36. package/src/package/dialog/index.js +0 -7
  37. package/src/package/dialog/src/index.vue +0 -419
  38. package/src/package/form/index.js +0 -7
  39. package/src/package/form/src/index.vue +0 -405
  40. package/src/package/formSearch/index.js +0 -7
  41. package/src/package/formSearch/src/components/SearchConfigDialog.vue +0 -957
  42. package/src/package/formSearch/src/index.js +0 -29
  43. package/src/package/formSearch/src/index.vue +0 -928
  44. package/src/package/index.js +0 -243
  45. package/src/package/numberRange/index.js +0 -7
  46. package/src/package/numberRange/src/index.vue +0 -351
  47. package/src/package/print/index.js +0 -76
  48. package/src/package/print/src/components/PaperSelector.vue +0 -109
  49. package/src/package/print/src/index.vue +0 -622
  50. package/src/package/print/src/provide/provider1.js +0 -215
  51. package/src/package/printModel/index.js +0 -7
  52. package/src/package/printModel/src/index.vue +0 -493
  53. package/src/package/table/index.js +0 -12
  54. package/src/package/table/src/TableColumn.vue +0 -77
  55. package/src/package/table/src/components/PrintTemplateSelector.vue +0 -210
  56. package/src/package/table/src/index.vue +0 -945
  57. package/src/package/table/src/nodata.jpg +0 -0
  58. package/src/package/table/src/printTable.vue +0 -196
  59. package/src/utils/getEnum.js +0 -8
  60. package/src/utils/initData.js +0 -138
  61. package/vue.config.js +0 -21
  62. /package/{public → dist}/favicon.ico +0 -0
  63. /package/{public → dist}/index.html +0 -0
  64. /package/{public → dist}/print-lock.css +0 -0
@@ -1,405 +0,0 @@
1
- <template>
2
- <div>
3
- <el-form
4
- ref="formRef"
5
- :model="form.value"
6
- :rules="form.rules"
7
- style="display: flex; flex-wrap: wrap"
8
- v-bind="{
9
- labelWidth: '130px',
10
- disabled: !form.type,
11
- ...$attrs,
12
- ...form.attrs,
13
- }"
14
- v-on="$listeners"
15
- >
16
- <template v-for="(item, index) in form.model">
17
- <el-form-item
18
- v-if="!item.hidden"
19
- :key="index"
20
- :label="item.label"
21
- :prop="item.prop"
22
- :required="item.required || false"
23
- :style="{ width: width(item) }"
24
- >
25
- <el-input
26
- v-if="item.type == 'input'"
27
- v-model="form.value[item.prop]"
28
- :placeholder="
29
- item.readonly
30
- ? item.placeholder || item.label
31
- : `请输入${item.placeholder || item.label}`
32
- "
33
- :clearable="item.clearable || true"
34
- :readonly="item.readonly || false"
35
- :show-password="item.showPassword || false"
36
- v-bind="{
37
- ...item.props,
38
- disabled: inputDisabled(item),
39
- }"
40
- />
41
- <el-input-number
42
- v-else-if="item.type == 'number'"
43
- v-model="form.value[item.prop]"
44
- :placeholder="`请输入${item.placeholder || item.label}`"
45
- :clearable="item.clearable || true"
46
- :readonly="item.readonly || false"
47
- v-bind="{ min: 0, ...item.props }"
48
- />
49
- <el-input
50
- v-else-if="item.type == 'textarea'"
51
- v-model="form.value[item.prop]"
52
- type="textarea"
53
- :placeholder="`请输入${item.placeholder || item.label}`"
54
- :autosize="item.autosize"
55
- :readonly="item.readonly || false"
56
- :clearable="item.clearable || true"
57
- :maxlength="item.length || ''"
58
- />
59
- <el-switch
60
- v-else-if="item.type == 'switch'"
61
- v-model="form.value[item.prop]"
62
- class="switchStyle"
63
- active-text="启用"
64
- inactive-text="禁用"
65
- v-bind="item.props || {}"
66
- />
67
- <el-radio-group v-else-if="item.type == 'radio'" v-model="form.value[item.prop]">
68
- <el-radio v-for="ctem in item.children" :key="ctem.key" :label="ctem.key">{{
69
- ctem.value
70
- }}</el-radio>
71
- </el-radio-group>
72
- <!-- v-bind="item.props || { type: 'date' }" -->
73
- <el-date-picker
74
- v-else-if="item.type == 'date'"
75
- v-model="form.value[item.prop]"
76
- :placeholder="item.placeholder || '请选择日期'"
77
- style="width: 100%"
78
- v-bind="{ type: 'date', ...item.props }"
79
- :clearable="item.clearable || true"
80
- v-on="{
81
- ...item.listeners,
82
- change: event => changeHandle(event, item),
83
- }"
84
- />
85
- <Tree-select
86
- v-else-if="item.type == 'treeSelect'"
87
- v-model="form.value[item.prop]"
88
- v-bind="item.props || {}"
89
- :options="item.children"
90
- @getValue="item.change && item.change(form.value[item.prop])"
91
- />
92
- <!-- <el-select v-else-if="item.type == 'select'" v-model="form.value[item.prop]"
93
- :placeholder="`请选择${item.placeholder || item.label}`"
94
- :clearable="'clearable' in item ? item.clearable : true" :disabled="item.disabled || false"
95
- v-bind="item.props || {}" v-on="{ ...item.listeners, change: selectChangeHandle(item) }">
96
- <el-option v-for="(jtem, jindex) in item.children" :key="jindex" :label="jtem.value"
97
- :value="jtem.key"></el-option>
98
- </el-select> -->
99
- <!-- v-on="{ ...item.listeners, change: (event) => selectChangeHandle(event,
100
- item), }" -->
101
- <el-select
102
- v-else-if="item.type == 'select'"
103
- v-model="form.value[item.prop]"
104
- :placeholder="`请选择${item.placeholder || item.label}`"
105
- :clearable="'clearable' in item ? item.clearable : true"
106
- v-bind="{ disabled: !!item.disabled, ...(item.props || {}) }"
107
- v-on="{
108
- ...item.listeners,
109
- change: event => selectChangeHandle(event, item),
110
- }"
111
- @keyup.native="
112
- $event =>
113
- item.keyup({
114
- event: $event,
115
- item,
116
- form: form.value,
117
- })
118
- "
119
- >
120
- <el-option
121
- v-for="(jtem, jindex) in item.children"
122
- :key="jindex"
123
- :label="jtem.value"
124
- :value="jtem.key"
125
- />
126
- </el-select>
127
- <ol-number-range
128
- v-else-if="item.type === 'numberRange'"
129
- v-model="form.value[item.prop]"
130
- v-bind="item.props || {}"
131
- v-on="{ ...item.listeners, change: val => item.listeners && item.listeners.change && item.listeners.change({ item, val }) }"
132
- ></ol-number-range>
133
-
134
- <div v-else-if="item.type == 'inputSpecial'">
135
- <el-col :span="6">
136
- <el-form-item :prop="item.layerprop">
137
- <el-input
138
- v-model="form.value[item.layerprop]"
139
- :clearable="item.clearable || true"
140
- />
141
- </el-form-item>
142
- </el-col>
143
- <el-col class="line" style="text-align: center" :span="3">- </el-col>
144
- <el-col :span="6">
145
- <el-form-item :prop="item.rowprop">
146
- <el-input v-model="form.value[item.rowprop]" :clearable="item.clearable || true" />
147
- </el-form-item>
148
- </el-col>
149
- <el-col class="line" style="text-align: center" :span="3">- </el-col>
150
- <el-col :span="6">
151
- <el-form-item :prop="item.columnprop">
152
- <el-input
153
- v-model="form.value[item.columnprop]"
154
- :clearable="item.clearable || true"
155
- />
156
- </el-form-item>
157
- </el-col>
158
- </div>
159
- <!-- 自定义输入框插槽 -->
160
- <template v-else-if="item.type == 'slot'">
161
- <slot :name="item.name" :item="item" />
162
- </template>
163
- <!-- 兜底 -->
164
- <div v-else style="color: red">"{{ item.type }}"类型暂不支持,请手动添加</div>
165
- </el-form-item>
166
- </template>
167
- </el-form>
168
- <div v-if="showBtn" slot="footer" class="dialog-footer">
169
- <slot v-if="$slots.btnSlot" name="btnSlot" :form="form" />
170
- <template v-else>
171
- <el-button @click="onCancel">取消</el-button>
172
- <el-button v-if="form.type" type="primary" @click="onConfirm">确定</el-button>
173
- </template>
174
- <slot name="btnAfterSlot" />
175
- </div>
176
- </div>
177
- </template>
178
- <!--
179
- # BaseForm 基础表单组件
180
-
181
- ## Props 属性
182
- | 属性名 | 类型 | 默认值 | 必填 | 说明 |
183
- |-------------|----------|---------|------|--------------|
184
- | form | Object | - | 是 | 表单配置对象 |
185
- | defaultValue| Object | {} | 否 | 表单默认值 |
186
- | showBtn | Boolean | true | 否 | 是否显示底部按钮 |
187
-
188
- ## form 对象结构
189
- {
190
- type: Number, // 表单类型:0-详情,1-新建,2-编辑
191
- title: String, // 表单标题(会根据type自动设置)
192
- value: Object, // 表单数据对象
193
- rules: Object, // 表单验证规则
194
- attrs: Object, // el-form的属性配置
195
- model: Array // 表单项配置数组
196
- }
197
-
198
- ## model 项配置
199
- | 字段 | 类型 | 说明 |
200
- |-------------|----------------|---------|
201
- | type | String | 表单项类型:input/number/textarea/switch/radio/date/treeSelect/select/projectCodeSelect/inputSpecial/slot |
202
- | label | String | 表单项标签 |
203
- | prop | String | 表单项字段名 |
204
- | placeholder | String | 占位文本 |
205
- | required | Boolean | 是否必填 |
206
- | hidden | Boolean | 是否隐藏 |
207
- | clearable | Boolean | 是否可清空 |
208
- | readonly | Boolean | 是否只读 |
209
- | disabled | Boolean/Function| 是否禁用 |
210
- | props | Object | 对应表单控件的属性配置 |
211
- | listeners | Object | 事件监听器配置 |
212
-
213
- ## Events 事件
214
- | 事件名 | 说明 | 回调参数 |
215
- |-------------|---------------|---------|
216
- | onSubmit | 表单提交事件 | {form: 表单配置, data: 表单数据} |
217
- | onCancel | 取消按钮点击事件 | - |
218
- | selectChange| 选择器值变化事件 | {obj: 当前项配置, val: 变化后的值} |
219
- -->
220
- <script>
221
- import { initForm } from "../../../utils/initData.js";
222
- import OlNumberRange from "../../numberRange/index.js";
223
-
224
- // interface FormItem {
225
- // type: Number;
226
- // title?: String;
227
- // model: IModelItem[]; //src\utils\interface\dialogInterface.ts
228
- // rules:Form.rules;
229
- // attrs: Form; //import { Form } from "element-ui";
230
- // }
231
- export default {
232
- name: "form",
233
- components: {
234
- OlNumberRange,
235
- },
236
- props: {
237
- url: {
238
- type: String,
239
- // default: "/api/app/warehouse/warehouse",
240
- default: "",
241
- },
242
- form: Object,
243
- // 默认值
244
- defaultValue: {
245
- type: Object,
246
- default: () => ({}),
247
- },
248
- showBtn: {
249
- type: Boolean,
250
- default: true,
251
- },
252
- },
253
- data() {
254
- return {
255
- // model: [],
256
- formInit: {}, // 初始化表单,用于重置表单用
257
- // formValue: {}, // 表单数据
258
- };
259
- },
260
- computed: {
261
- width() {
262
- return function (item) {
263
- if (this.form.model.length > 18 && item.type != "textarea") {
264
- return "25%";
265
- } else if (
266
- this.form.model.length > 10 &&
267
- this.form.model.length <= 18 &&
268
- item.type != "textarea"
269
- ) {
270
- return "calc(100% / 3)";
271
- } else if (
272
- this.form.model.length > 6 &&
273
- this.form.model.length <= 10 &&
274
- item.type != "textarea"
275
- ) {
276
- return "50%";
277
- } else {
278
- return item.type == "textarea" && item.width ? item.width : "100%";
279
- }
280
- };
281
- },
282
- },
283
- watch: {
284
- // 副作用以便父级直接使用
285
- "form.type": {
286
- handler(newValue) {
287
- // 如果没有type则默认值为1
288
- if (!Object.keys(this.form).includes("type")) {
289
- this.$set(this.form, "type", 1);
290
- }
291
- let result;
292
- switch (newValue) {
293
- case 0:
294
- result = "详情"; // 当 newValue 为 0 时,标题为 "详情"
295
- break;
296
- case 1:
297
- result = "新建";
298
- break;
299
- case 2:
300
- result = "编辑";
301
- break;
302
- default:
303
- result = "弹框";
304
- break;
305
- }
306
- this.form.title = result;
307
- },
308
- immediate: true,
309
- },
310
- // "form.model": {
311
- // handler() {
312
-
313
- // },
314
- // immediate: true,
315
- // deep: true
316
- // }
317
- },
318
- created() {
319
- // 默认值复制
320
- if (Object.keys(this.defaultValue) && Object.keys(this.defaultValue).length) {
321
- Object.keys(this.defaultValue).forEach(key => {
322
- form.value[key] = this.defaultValue[key];
323
- });
324
- }
325
- initForm({
326
- url: this.url,
327
- form: this.form,
328
- });
329
- },
330
- // beforeDestroy() {},
331
- methods: {
332
- // 保留之前的change调用方式,并添扩展新的
333
- selectChangeHandle(val, item) {
334
- (item &&
335
- item.listeners &&
336
- item.listeners.change &&
337
- item.listeners.change(item, this.form.value[item.prop])) ||
338
- item.change
339
- ? item.change(val)
340
- : this.selectChange(item, val);
341
- },
342
- changeHandle(val, item) {
343
- if (
344
- item &&
345
- item.listeners &&
346
- item.listeners.change &&
347
- item.listeners.change(item, this.form.value[item.prop])
348
- ) {
349
- this.selectChange(item, val);
350
- }
351
- },
352
- selectChange(obj, val) {
353
- const temp = {
354
- obj: obj,
355
- val: val,
356
- };
357
- this.$emit("selectChange", temp);
358
- },
359
- inputDisabled(item) {
360
- if (!item.props) return false;
361
- if (!Object.keys(item.props).includes("disabled")) return false;
362
- // disabled是函数还是Boolean值,如果boolean值直接返回,如果是函数执行函数并返回boolean
363
- return typeof item.props.disabled === "function"
364
- ? item.props.disabled({ item, form: this.form })
365
- : item.props.disabled;
366
- },
367
- validate() {
368
- return new Promise((resolve, reject) => {
369
- this.$refs.formRef.validate(valid => {
370
- if (valid) {
371
- resolve({
372
- valid,
373
- formData: (this.form && this.form.value) || {},
374
- });
375
- } else {
376
- reject("表单验证失败");
377
- }
378
- });
379
- });
380
- },
381
- onCancel() {
382
- this.$refs.formRef.resetFields();
383
- this.$refs.formRef.clearValidate();
384
- this.$emit("onCancel");
385
- },
386
- onConfirm() {
387
- console.log("BaseForm数据", this.form);
388
- this.validate()
389
- .then(() => {
390
- this.$emit("onSubmit", { form: this.form, data: this.form.value });
391
- })
392
- .catch(err => {
393
- console.log("校验失败", err);
394
- });
395
- },
396
- },
397
- };
398
- </script>
399
-
400
- <style lang="scss" scoped>
401
- .dialog-footer {
402
- display: flex;
403
- justify-content: flex-end;
404
- }
405
- </style>
@@ -1,7 +0,0 @@
1
- import OlSearch from "./src/index.vue";
2
-
3
- OlSearch.install = function (Vue) {
4
- Vue.component("ol-search ", OlSearch);
5
- };
6
-
7
- export default OlSearch;