persagy-vant 0.0.25 → 0.0.26

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 (76) hide show
  1. package/es/background/index.css +1 -1
  2. package/es/background/index.less +10 -0
  3. package/es/background/types.d.ts +1 -1
  4. package/es/empty/Empty.mjs +6 -274
  5. package/es/empty/assets/default.png +0 -0
  6. package/es/empty/assets/network.png +0 -0
  7. package/es/empty/index.css +1 -1
  8. package/es/empty/index.less +19 -1
  9. package/es/empty/var.less +6 -5
  10. package/es/field/index.css +1 -1
  11. package/es/field/var.less +1 -1
  12. package/es/floor-select/FloorSelect.mjs +3 -0
  13. package/es/floor-select/index.css +1 -1
  14. package/es/floor-select/index.less +4 -3
  15. package/es/index.d.ts +2 -1
  16. package/es/index.mjs +4 -1
  17. package/es/radio-panel/RadioPanel.mjs +25 -13
  18. package/es/sidebar-item/SidebarItem.mjs +1 -2
  19. package/es/work-order-card/WorkOrderCard.d.ts +145 -0
  20. package/es/work-order-card/WorkOrderCard.mjs +121 -0
  21. package/es/work-order-card/index.css +1 -0
  22. package/es/work-order-card/index.d.ts +107 -0
  23. package/es/work-order-card/index.less +34 -0
  24. package/es/work-order-card/index.mjs +8 -0
  25. package/es/work-order-card/style/index.d.ts +1 -0
  26. package/es/work-order-card/style/index.mjs +8 -0
  27. package/es/work-order-card/style/less.d.ts +1 -0
  28. package/es/work-order-card/style/less.mjs +8 -0
  29. package/es/work-order-card/types.d.ts +16 -0
  30. package/es/work-order-card/types.mjs +0 -0
  31. package/es/work-order-card/var.css +0 -0
  32. package/es/work-order-card/var.less +6 -0
  33. package/lib/background/index.css +1 -1
  34. package/lib/background/index.less +10 -0
  35. package/lib/background/types.d.ts +1 -1
  36. package/lib/empty/Empty.js +6 -274
  37. package/lib/empty/assets/default.png +0 -0
  38. package/lib/empty/assets/network.png +0 -0
  39. package/lib/empty/index.css +1 -1
  40. package/lib/empty/index.less +19 -1
  41. package/lib/empty/var.less +6 -5
  42. package/lib/field/index.css +1 -1
  43. package/lib/field/var.less +1 -1
  44. package/lib/floor-select/FloorSelect.js +3 -0
  45. package/lib/floor-select/index.css +1 -1
  46. package/lib/floor-select/index.less +4 -3
  47. package/lib/index.css +1 -1
  48. package/lib/index.d.ts +2 -1
  49. package/lib/index.js +4 -1
  50. package/lib/index.less +1 -0
  51. package/lib/radio-panel/RadioPanel.js +25 -13
  52. package/lib/sidebar-item/SidebarItem.js +1 -2
  53. package/lib/vant.cjs.js +1284 -1424
  54. package/lib/vant.es.js +1284 -1424
  55. package/lib/vant.js +1284 -1424
  56. package/lib/vant.min.js +1 -1
  57. package/lib/web-types.json +1 -1
  58. package/lib/work-order-card/WorkOrderCard.d.ts +145 -0
  59. package/lib/work-order-card/WorkOrderCard.js +140 -0
  60. package/lib/work-order-card/index.css +1 -0
  61. package/lib/work-order-card/index.d.ts +107 -0
  62. package/lib/work-order-card/index.js +37 -0
  63. package/lib/work-order-card/index.less +34 -0
  64. package/lib/work-order-card/style/index.d.ts +1 -0
  65. package/lib/work-order-card/style/index.js +8 -0
  66. package/lib/work-order-card/style/less.d.ts +1 -0
  67. package/lib/work-order-card/style/less.js +8 -0
  68. package/lib/work-order-card/types.d.ts +16 -0
  69. package/lib/work-order-card/types.js +15 -0
  70. package/lib/work-order-card/var.css +0 -0
  71. package/lib/work-order-card/var.less +6 -0
  72. package/package.json +2 -2
  73. package/skills/use-persagy-vant/SKILL.md +2 -2
  74. package/skills/use-persagy-vant/references/business-component-catalog.md +5 -0
  75. package/skills/use-persagy-vant/references/component-catalog.md +7 -4
  76. package/skills/use-persagy-vant/references/page-recipes.md +11 -1
@@ -0,0 +1,145 @@
1
+ import { type ExtractPropTypes } from 'vue';
2
+ import type { WorkOrderCardAction, WorkOrderCardInfo, WorkOrderCardTag } from './types';
3
+ declare const props: {
4
+ title: {
5
+ type: import("vue").PropType<string>;
6
+ default: string;
7
+ };
8
+ expanded: {
9
+ type: () => boolean | undefined;
10
+ default: undefined;
11
+ };
12
+ defaultExpanded: BooleanConstructor;
13
+ expandable: {
14
+ type: BooleanConstructor;
15
+ default: true;
16
+ };
17
+ tags: {
18
+ type: import("vue").PropType<WorkOrderCardTag[]>;
19
+ default: () => never[];
20
+ };
21
+ location: StringConstructor;
22
+ showLocation: {
23
+ type: BooleanConstructor;
24
+ default: true;
25
+ };
26
+ primaryInfos: {
27
+ type: import("vue").PropType<WorkOrderCardInfo[]>;
28
+ default: () => never[];
29
+ };
30
+ expandedInfos: {
31
+ type: import("vue").PropType<WorkOrderCardInfo[]>;
32
+ default: () => never[];
33
+ };
34
+ actions: {
35
+ type: import("vue").PropType<WorkOrderCardAction[]>;
36
+ default: () => never[];
37
+ };
38
+ overdue: StringConstructor;
39
+ showOverdue: {
40
+ type: BooleanConstructor;
41
+ default: true;
42
+ };
43
+ clickable: BooleanConstructor;
44
+ };
45
+ export declare type WorkOrderCardProps = ExtractPropTypes<typeof props>;
46
+ declare const _default: import("vue").DefineComponent<{
47
+ title: {
48
+ type: import("vue").PropType<string>;
49
+ default: string;
50
+ };
51
+ expanded: {
52
+ type: () => boolean | undefined;
53
+ default: undefined;
54
+ };
55
+ defaultExpanded: BooleanConstructor;
56
+ expandable: {
57
+ type: BooleanConstructor;
58
+ default: true;
59
+ };
60
+ tags: {
61
+ type: import("vue").PropType<WorkOrderCardTag[]>;
62
+ default: () => never[];
63
+ };
64
+ location: StringConstructor;
65
+ showLocation: {
66
+ type: BooleanConstructor;
67
+ default: true;
68
+ };
69
+ primaryInfos: {
70
+ type: import("vue").PropType<WorkOrderCardInfo[]>;
71
+ default: () => never[];
72
+ };
73
+ expandedInfos: {
74
+ type: import("vue").PropType<WorkOrderCardInfo[]>;
75
+ default: () => never[];
76
+ };
77
+ actions: {
78
+ type: import("vue").PropType<WorkOrderCardAction[]>;
79
+ default: () => never[];
80
+ };
81
+ overdue: StringConstructor;
82
+ showOverdue: {
83
+ type: BooleanConstructor;
84
+ default: true;
85
+ };
86
+ clickable: BooleanConstructor;
87
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "click-action" | "update:expanded")[], "click" | "click-action" | "update:expanded", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
88
+ title: {
89
+ type: import("vue").PropType<string>;
90
+ default: string;
91
+ };
92
+ expanded: {
93
+ type: () => boolean | undefined;
94
+ default: undefined;
95
+ };
96
+ defaultExpanded: BooleanConstructor;
97
+ expandable: {
98
+ type: BooleanConstructor;
99
+ default: true;
100
+ };
101
+ tags: {
102
+ type: import("vue").PropType<WorkOrderCardTag[]>;
103
+ default: () => never[];
104
+ };
105
+ location: StringConstructor;
106
+ showLocation: {
107
+ type: BooleanConstructor;
108
+ default: true;
109
+ };
110
+ primaryInfos: {
111
+ type: import("vue").PropType<WorkOrderCardInfo[]>;
112
+ default: () => never[];
113
+ };
114
+ expandedInfos: {
115
+ type: import("vue").PropType<WorkOrderCardInfo[]>;
116
+ default: () => never[];
117
+ };
118
+ actions: {
119
+ type: import("vue").PropType<WorkOrderCardAction[]>;
120
+ default: () => never[];
121
+ };
122
+ overdue: StringConstructor;
123
+ showOverdue: {
124
+ type: BooleanConstructor;
125
+ default: true;
126
+ };
127
+ clickable: BooleanConstructor;
128
+ }>> & {
129
+ onClick?: ((...args: any[]) => any) | undefined;
130
+ "onClick-action"?: ((...args: any[]) => any) | undefined;
131
+ "onUpdate:expanded"?: ((...args: any[]) => any) | undefined;
132
+ }, {
133
+ title: string;
134
+ tags: WorkOrderCardTag[];
135
+ clickable: boolean;
136
+ expanded: boolean | undefined;
137
+ actions: WorkOrderCardAction[];
138
+ expandable: boolean;
139
+ defaultExpanded: boolean;
140
+ showLocation: boolean;
141
+ primaryInfos: WorkOrderCardInfo[];
142
+ expandedInfos: WorkOrderCardInfo[];
143
+ showOverdue: boolean;
144
+ }>;
145
+ export default _default;
@@ -0,0 +1,140 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name2 in all)
7
+ __defProp(target, name2, { get: all[name2], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var stdin_exports = {};
19
+ __export(stdin_exports, {
20
+ default: () => stdin_default
21
+ });
22
+ module.exports = __toCommonJS(stdin_exports);
23
+ var import_vue = require("vue");
24
+ var import_button = require("../button");
25
+ var import_utils = require("../utils");
26
+ var import_divider = require("../divider");
27
+ var import_icon = require("../icon");
28
+ var import_tag = require("../tag");
29
+ const [name, bem] = (0, import_utils.createNamespace)("work-order-card");
30
+ const props = {
31
+ title: (0, import_utils.makeStringProp)(""),
32
+ expanded: {
33
+ type: Boolean,
34
+ default: void 0
35
+ },
36
+ defaultExpanded: Boolean,
37
+ expandable: import_utils.truthProp,
38
+ tags: (0, import_utils.makeArrayProp)(),
39
+ location: String,
40
+ showLocation: import_utils.truthProp,
41
+ primaryInfos: (0, import_utils.makeArrayProp)(),
42
+ expandedInfos: (0, import_utils.makeArrayProp)(),
43
+ actions: (0, import_utils.makeArrayProp)(),
44
+ overdue: String,
45
+ showOverdue: import_utils.truthProp,
46
+ clickable: Boolean
47
+ };
48
+ var stdin_default = (0, import_vue.defineComponent)({
49
+ name,
50
+ props,
51
+ emits: ["click", "click-action", "update:expanded"],
52
+ setup(props2, {
53
+ emit,
54
+ slots
55
+ }) {
56
+ const innerExpanded = (0, import_vue.ref)(props2.defaultExpanded);
57
+ const isExpanded = (0, import_vue.computed)(() => {
58
+ var _a;
59
+ return (_a = props2.expanded) != null ? _a : innerExpanded.value;
60
+ });
61
+ (0, import_vue.watch)(() => props2.defaultExpanded, (value) => {
62
+ if (props2.expanded === void 0)
63
+ innerExpanded.value = value;
64
+ });
65
+ const toggle = () => {
66
+ if (!props2.expandable)
67
+ return;
68
+ const value = !isExpanded.value;
69
+ if (props2.expanded === void 0)
70
+ innerExpanded.value = value;
71
+ emit("update:expanded", value);
72
+ };
73
+ const renderInfo = (info) => (0, import_vue.createVNode)("div", {
74
+ "class": bem("info")
75
+ }, [info.icon && (0, import_vue.createVNode)(import_icon.Icon, {
76
+ "name": info.icon,
77
+ "size": "12"
78
+ }, null), (0, import_vue.createVNode)("span", null, [info.text])]);
79
+ const renderAction = (action, index) => (0, import_vue.createVNode)(import_button.Button, {
80
+ "type": "text",
81
+ "disabled": action.disabled,
82
+ "style": {
83
+ "--van-button-primary-background-color": action.color || "var(--van-gray-7)"
84
+ },
85
+ "onClick": (event) => {
86
+ event.stopPropagation();
87
+ emit("click-action", action, index);
88
+ }
89
+ }, {
90
+ default: () => [action.text]
91
+ });
92
+ const hasExpandedContent = () => Boolean(slots.expanded || props2.expandedInfos.length);
93
+ return () => (0, import_vue.createVNode)("div", {
94
+ "class": [bem(), bem({
95
+ expanded: isExpanded.value,
96
+ expandable: props2.expandable,
97
+ actions: props2.actions.length > 0,
98
+ expandedContent: hasExpandedContent()
99
+ })],
100
+ "onClick": () => props2.clickable && emit("click")
101
+ }, [props2.showOverdue && props2.overdue && (0, import_vue.createVNode)("div", {
102
+ "class": bem("overdue")
103
+ }, [props2.overdue]), (0, import_vue.createVNode)("div", {
104
+ "class": bem("header"),
105
+ "onClick": toggle
106
+ }, [(0, import_vue.createVNode)("div", {
107
+ "class": bem("title")
108
+ }, [slots.title ? slots.title() : props2.title]), props2.expandable && (0, import_vue.createVNode)(import_icon.Icon, {
109
+ "name": "trangle-down",
110
+ "size": "16",
111
+ "class": bem("arrow")
112
+ }, null)]), (0, import_vue.createVNode)("div", {
113
+ "class": bem("tags")
114
+ }, [slots.tags ? slots.tags() : props2.tags.map((tag) => (0, import_vue.createVNode)(import_tag.Tag, {
115
+ "color": tag.color,
116
+ "textColor": tag.textColor
117
+ }, {
118
+ default: () => [tag.text]
119
+ }))]), props2.showLocation && props2.location && (0, import_vue.createVNode)("div", {
120
+ "class": bem("location")
121
+ }, [(0, import_vue.createVNode)(import_icon.Icon, {
122
+ "name": "location-o",
123
+ "size": "12"
124
+ }, null), (0, import_vue.createVNode)("span", null, [props2.location])]), (0, import_vue.createVNode)("div", {
125
+ "class": bem("infos")
126
+ }, [slots.info ? slots.info() : props2.primaryInfos.map(renderInfo)]), hasExpandedContent() && (0, import_vue.createVNode)("div", {
127
+ "class": bem("expanded-wrapper", {
128
+ visible: isExpanded.value
129
+ }),
130
+ "aria-hidden": !isExpanded.value
131
+ }, [(0, import_vue.createVNode)("div", {
132
+ "class": bem("expanded-content")
133
+ }, [(0, import_vue.createVNode)(import_divider.Divider, {
134
+ "dashed": true,
135
+ "hairline": true
136
+ }, null), slots.expanded ? slots.expanded() : props2.expandedInfos.map(renderInfo)])]), props2.actions.length > 0 && (0, import_vue.createVNode)("div", {
137
+ "class": bem("actions")
138
+ }, [props2.actions.map(renderAction)])]);
139
+ }
140
+ });
@@ -0,0 +1 @@
1
+ :root{--van-work-order-card-padding: var(--van-padding-md);--van-work-order-card-radius: var(--van-border-radius-lg);--van-work-order-card-title-font-size: 15px;--van-work-order-card-title-color: var(--van-gray-8);--van-work-order-card-info-color: var(--van-gray-7)}.van-work-order-card{position:relative;overflow:hidden;background:var(--van-white);border-radius:var(--van-work-order-card-radius)}.van-work-order-card__header{display:flex;align-items:flex-start;padding:var(--van-work-order-card-padding) var(--van-work-order-card-padding) 0;cursor:pointer}.van-work-order-card__title{flex:1;min-width:0;overflow:hidden;color:var(--van-work-order-card-title-color);font-size:var(--van-work-order-card-title-font-size);font-weight:var(--van-font-weight-bold);line-height:23px;text-overflow:ellipsis;white-space:nowrap}.van-work-order-card__arrow{flex:none;margin:4px 0 0 2px;color:var(--van-gray-6);transition:transform .2s}.van-work-order-card--expanded .van-work-order-card__title{overflow:visible;white-space:normal}.van-work-order-card:not(.van-work-order-card--expandable) .van-work-order-card__title{overflow:visible;white-space:normal}.van-work-order-card--expanded .van-work-order-card__arrow{color:var(--van-black);transform:rotate(180deg)}.van-work-order-card__tags{display:flex;flex-wrap:wrap;gap:4px;padding:8px var(--van-work-order-card-padding) 0}.van-work-order-card__location{display:flex;gap:4px;align-items:center;margin:8px 10px 0;padding:0 6px;overflow:hidden;color:var(--van-gray-8);font-size:13px;line-height:21px;white-space:nowrap;background:linear-gradient(90deg,rgba(223,232,243,.7),rgba(223,232,243,0));border-radius:4px}.van-work-order-card__location span{overflow:hidden;text-overflow:ellipsis}.van-work-order-card__infos{padding:8px var(--van-work-order-card-padding) 0}.van-work-order-card:not(.van-work-order-card--actions):not(.van-work-order-card--expanded-content) .van-work-order-card__infos{padding-bottom:8px}.van-work-order-card__info{display:flex;gap:4px;align-items:center;min-height:21px;color:var(--van-work-order-card-info-color);font-size:13px;line-height:21px}.van-work-order-card__expanded-wrapper{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .24s cubic-bezier(.2,.8,.2,1),opacity .18s ease}.van-work-order-card__expanded-wrapper--visible{grid-template-rows:1fr;opacity:1}.van-work-order-card__expanded-content{min-height:0;padding:0 var(--van-work-order-card-padding);overflow:hidden}.van-work-order-card:not(.van-work-order-card--actions) .van-work-order-card__expanded-content{padding-bottom:8px}.van-work-order-card__expanded-content .van-divider{margin:4px 0;border-color:var(--van-gray-4)}.van-work-order-card__overdue{position:absolute;top:0;right:0;padding:2px 8px;color:var(--van-white);font-size:10px;line-height:12px;background:var(--van-danger-color);border-radius:0 2px 0 8px}.van-work-order-card__actions{position:relative;display:flex;margin-top:8px;padding-top:1px;--van-button-default-height: 38px;--van-button-default-font-size: var(--van-font-size-md);--van-button-default-line-height: 22px;--van-button-border-radius: 0;--van-button-plain-background-color: transparent}.van-work-order-card__actions:before{position:absolute;top:0;right:var(--van-work-order-card-padding);left:var(--van-work-order-card-padding);height:.5px;background:var(--van-gray-2);content:""}.van-work-order-card__actions .van-button{flex:1}.van-work-order-card__actions .van-button+.van-button{position:relative}.van-work-order-card__actions .van-button+.van-button:after{position:absolute;top:50%;left:0;width:.5px;height:12px;background:var(--van-gray-2);transform:translateY(-50%);content:""}
@@ -0,0 +1,107 @@
1
+ export declare const WorkOrderCard: import("../utils").WithInstall<import("vue").DefineComponent<{
2
+ title: {
3
+ type: import("vue").PropType<string>;
4
+ default: string;
5
+ };
6
+ expanded: {
7
+ type: () => boolean | undefined;
8
+ default: undefined;
9
+ };
10
+ defaultExpanded: BooleanConstructor;
11
+ expandable: {
12
+ type: BooleanConstructor;
13
+ default: true;
14
+ };
15
+ tags: {
16
+ type: import("vue").PropType<import("./types").WorkOrderCardTag[]>;
17
+ default: () => never[];
18
+ };
19
+ location: StringConstructor;
20
+ showLocation: {
21
+ type: BooleanConstructor;
22
+ default: true;
23
+ };
24
+ primaryInfos: {
25
+ type: import("vue").PropType<import("./types").WorkOrderCardInfo[]>;
26
+ default: () => never[];
27
+ };
28
+ expandedInfos: {
29
+ type: import("vue").PropType<import("./types").WorkOrderCardInfo[]>;
30
+ default: () => never[];
31
+ };
32
+ actions: {
33
+ type: import("vue").PropType<import("./types").WorkOrderCardAction[]>;
34
+ default: () => never[];
35
+ };
36
+ overdue: StringConstructor;
37
+ showOverdue: {
38
+ type: BooleanConstructor;
39
+ default: true;
40
+ };
41
+ clickable: BooleanConstructor;
42
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "click-action" | "update:expanded")[], "click" | "click-action" | "update:expanded", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
43
+ title: {
44
+ type: import("vue").PropType<string>;
45
+ default: string;
46
+ };
47
+ expanded: {
48
+ type: () => boolean | undefined;
49
+ default: undefined;
50
+ };
51
+ defaultExpanded: BooleanConstructor;
52
+ expandable: {
53
+ type: BooleanConstructor;
54
+ default: true;
55
+ };
56
+ tags: {
57
+ type: import("vue").PropType<import("./types").WorkOrderCardTag[]>;
58
+ default: () => never[];
59
+ };
60
+ location: StringConstructor;
61
+ showLocation: {
62
+ type: BooleanConstructor;
63
+ default: true;
64
+ };
65
+ primaryInfos: {
66
+ type: import("vue").PropType<import("./types").WorkOrderCardInfo[]>;
67
+ default: () => never[];
68
+ };
69
+ expandedInfos: {
70
+ type: import("vue").PropType<import("./types").WorkOrderCardInfo[]>;
71
+ default: () => never[];
72
+ };
73
+ actions: {
74
+ type: import("vue").PropType<import("./types").WorkOrderCardAction[]>;
75
+ default: () => never[];
76
+ };
77
+ overdue: StringConstructor;
78
+ showOverdue: {
79
+ type: BooleanConstructor;
80
+ default: true;
81
+ };
82
+ clickable: BooleanConstructor;
83
+ }>> & {
84
+ onClick?: ((...args: any[]) => any) | undefined;
85
+ "onClick-action"?: ((...args: any[]) => any) | undefined;
86
+ "onUpdate:expanded"?: ((...args: any[]) => any) | undefined;
87
+ }, {
88
+ title: string;
89
+ tags: import("./types").WorkOrderCardTag[];
90
+ clickable: boolean;
91
+ expanded: boolean | undefined;
92
+ actions: import("./types").WorkOrderCardAction[];
93
+ expandable: boolean;
94
+ defaultExpanded: boolean;
95
+ showLocation: boolean;
96
+ primaryInfos: import("./types").WorkOrderCardInfo[];
97
+ expandedInfos: import("./types").WorkOrderCardInfo[];
98
+ showOverdue: boolean;
99
+ }>>;
100
+ export default WorkOrderCard;
101
+ export type { WorkOrderCardProps } from './WorkOrderCard';
102
+ export type { WorkOrderCardAction, WorkOrderCardInfo, WorkOrderCardTag } from './types';
103
+ declare module 'vue' {
104
+ interface GlobalComponents {
105
+ VanWorkOrderCard: typeof WorkOrderCard;
106
+ }
107
+ }
@@ -0,0 +1,37 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var stdin_exports = {};
29
+ __export(stdin_exports, {
30
+ WorkOrderCard: () => WorkOrderCard,
31
+ default: () => stdin_default
32
+ });
33
+ module.exports = __toCommonJS(stdin_exports);
34
+ var import_utils = require("../utils");
35
+ var import_WorkOrderCard = __toESM(require("./WorkOrderCard"));
36
+ const WorkOrderCard = (0, import_utils.withInstall)(import_WorkOrderCard.default);
37
+ var stdin_default = WorkOrderCard;
@@ -0,0 +1,34 @@
1
+ @import './var.less';
2
+
3
+ :root {
4
+ --van-work-order-card-padding: @work-order-card-padding;
5
+ --van-work-order-card-radius: @work-order-card-radius;
6
+ --van-work-order-card-title-font-size: @work-order-card-title-font-size;
7
+ --van-work-order-card-title-color: @work-order-card-title-color;
8
+ --van-work-order-card-info-color: @work-order-card-info-color;
9
+ }
10
+
11
+ .van-work-order-card { position: relative; overflow: hidden; background: var(--van-white); border-radius: var(--van-work-order-card-radius); }
12
+ .van-work-order-card__header { display: flex; align-items: flex-start; padding: var(--van-work-order-card-padding) var(--van-work-order-card-padding) 0; cursor: pointer; }
13
+ .van-work-order-card__title { flex: 1; min-width: 0; overflow: hidden; color: var(--van-work-order-card-title-color); font-size: var(--van-work-order-card-title-font-size); font-weight: var(--van-font-weight-bold); line-height: 23px; text-overflow: ellipsis; white-space: nowrap; }
14
+ .van-work-order-card__arrow { flex: none; margin: 4px 0 0 2px; color: var(--van-gray-6); transition: transform .2s; }
15
+ .van-work-order-card--expanded .van-work-order-card__title { overflow: visible; white-space: normal; }
16
+ .van-work-order-card:not(.van-work-order-card--expandable) .van-work-order-card__title { overflow: visible; white-space: normal; }
17
+ .van-work-order-card--expanded .van-work-order-card__arrow { color: var(--van-black); transform: rotate(180deg); }
18
+ .van-work-order-card__tags { display: flex; flex-wrap: wrap; gap: 4px; padding: 8px var(--van-work-order-card-padding) 0; }
19
+ .van-work-order-card__location { display: flex; gap: 4px; align-items: center; margin: 8px 10px 0; padding: 0 6px; overflow: hidden; color: var(--van-gray-8); font-size: 13px; line-height: 21px; white-space: nowrap; background: linear-gradient(90deg, rgb(223 232 243 / 70%), rgb(223 232 243 / 0%)); border-radius: 4px; }
20
+ .van-work-order-card__location span { overflow: hidden; text-overflow: ellipsis; }
21
+ .van-work-order-card__infos { padding: 8px var(--van-work-order-card-padding) 0; }
22
+ .van-work-order-card:not(.van-work-order-card--actions):not(.van-work-order-card--expanded-content) .van-work-order-card__infos { padding-bottom: 8px; }
23
+ .van-work-order-card__info { display: flex; gap: 4px; align-items: center; min-height: 21px; color: var(--van-work-order-card-info-color); font-size: 13px; line-height: 21px; }
24
+ .van-work-order-card__expanded-wrapper { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .24s cubic-bezier(.2, .8, .2, 1), opacity .18s ease; }
25
+ .van-work-order-card__expanded-wrapper--visible { grid-template-rows: 1fr; opacity: 1; }
26
+ .van-work-order-card__expanded-content { min-height: 0; padding: 0 var(--van-work-order-card-padding); overflow: hidden; }
27
+ .van-work-order-card:not(.van-work-order-card--actions) .van-work-order-card__expanded-content { padding-bottom: 8px; }
28
+ .van-work-order-card__expanded-content .van-divider { margin: 4px 0; border-color: var(--van-gray-4); }
29
+ .van-work-order-card__overdue { position: absolute; top: 0; right: 0; padding: 2px 8px; color: var(--van-white); font-size: 10px; line-height: 12px; background: var(--van-danger-color); border-radius: 0 2px 0 8px; }
30
+ .van-work-order-card__actions { position: relative; display: flex; margin-top: 8px; padding-top: 1px; --van-button-default-height: 38px; --van-button-default-font-size: var(--van-font-size-md); --van-button-default-line-height: 22px; --van-button-border-radius: 0; --van-button-plain-background-color: transparent; }
31
+ .van-work-order-card__actions::before { position: absolute; top: 0; right: var(--van-work-order-card-padding); left: var(--van-work-order-card-padding); height: .5px; background: var(--van-gray-2); content: ''; }
32
+ .van-work-order-card__actions .van-button { flex: 1; }
33
+ .van-work-order-card__actions .van-button + .van-button { position: relative; }
34
+ .van-work-order-card__actions .van-button + .van-button::after { position: absolute; top: 50%; left: 0; width: .5px; height: 12px; background: var(--van-gray-2); transform: translateY(-50%); content: ''; }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ require("../../style/base.css");
2
+ require("../../badge/index.css");
3
+ require("../../icon/index.css");
4
+ require("../../tag/index.css");
5
+ require("../../loading/index.css");
6
+ require("../../button/index.css");
7
+ require("../../divider/index.css");
8
+ require("../index.css");
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ require("../../style/base.less");
2
+ require("../../badge/index.less");
3
+ require("../../icon/index.less");
4
+ require("../../tag/index.less");
5
+ require("../../loading/index.less");
6
+ require("../../button/index.less");
7
+ require("../../divider/index.less");
8
+ require("../index.less");
@@ -0,0 +1,16 @@
1
+ import type { Numeric } from '../utils';
2
+ export declare type WorkOrderCardTag = {
3
+ text: string;
4
+ color?: string;
5
+ textColor?: string;
6
+ };
7
+ export declare type WorkOrderCardInfo = {
8
+ icon?: string;
9
+ text: string;
10
+ };
11
+ export declare type WorkOrderCardAction = {
12
+ text: string;
13
+ color?: string;
14
+ disabled?: boolean;
15
+ };
16
+ export declare type WorkOrderCardValue = Numeric;
@@ -0,0 +1,15 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var stdin_exports = {};
15
+ module.exports = __toCommonJS(stdin_exports);
File without changes
@@ -0,0 +1,6 @@
1
+ @import '../style/var.less';
2
+ @work-order-card-padding: var(--van-padding-md);
3
+ @work-order-card-radius: var(--van-border-radius-lg);
4
+ @work-order-card-title-font-size: 15px;
5
+ @work-order-card-title-color: var(--van-gray-8);
6
+ @work-order-card-info-color: var(--van-gray-7);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "persagy-vant",
3
- "version": "0.0.25",
3
+ "version": "0.0.26",
4
4
  "description": "Lightweight Mobile UI Components built on Vue",
5
5
  "main": "lib/vant.cjs.js",
6
6
  "module": "es/index.mjs",
@@ -54,8 +54,8 @@
54
54
  "dependencies": {
55
55
  "@vant/popperjs": "1.2.1",
56
56
  "@vant/use": "1.4.2",
57
+ "meos-bot-web": "^0.3.2",
57
58
  "plyr": "3.7.8",
58
- "persagy-vant-icons": "^0.2.5",
59
59
  "pnpm": "^9.7.1"
60
60
  },
61
61
  "peerDependencies": {
@@ -12,7 +12,7 @@ description: 使用 Persagy Vant 为 Vue 3 移动端业务页面规划、实现
12
12
  1. 阅读 `references/reuse-policy.md`,确认复用边界与禁止项。
13
13
  2. 阅读 `references/design-interaction-baseline.md`,将其中适用的设计、状态和反馈规则落实到页面;如与产品需求冲突,以明确的产品需求为准并说明差异。
14
14
  3. 阅读 `references/business-component-catalog.md`,按用户任务先确定业务组件;再从 `references/component-catalog.md` 补齐基础组件。
15
- 4. 阅读每个被选中组件的 README 和 demo:使用 `node_modules/persagy-vant/es/<component>/README.zh-CN.md`。API、事件、插槽和导入方式均以这些资料为准。
15
+ 4. 阅读每个被选中组件的 README 和 demo:在组件库仓库中使用 `src/<component>/README.zh-CN.md`,在业务项目中使用 `node_modules/persagy-vant/es/<component>/README.zh-CN.md`。API、事件、插槽和导入方式均以这些资料为准。
16
16
  5. 按 `references/page-recipes.md` 组合页面,补齐加载、空数据、错误、禁用和提交中状态。
17
17
  6. 使用组件提供的 props、事件、插槽、Less 变量或公开 class 扩展点;不得复制组件内部 DOM、样式或私有逻辑。
18
18
  7. 输出或提交前,按 `references/reuse-policy.md` 和 `references/design-interaction-baseline.md` 完成自查,并附上“组件复用清单”和“规范落实项”。
@@ -25,6 +25,6 @@ description: 使用 Persagy Vant 为 Vue 3 移动端业务页面规划、实现
25
25
 
26
26
  ## 资料边界
27
27
 
28
- - 已安装包中的 `node_modules/persagy-vant/es/<component>/README.zh-CN.md`,连同类型定义和 demo,是组件 API 的唯一事实来源。
28
+ - 组件库仓库中的 `src/<component>/README.zh-CN.md`,或已安装包中的 `node_modules/persagy-vant/es/<component>/README.zh-CN.md`,连同类型定义和 demo,是组件 API 的唯一事实来源。
29
29
  - `references/` 用于选型、复用规则、页面组合与设计交互基线,不能据此编造不存在的 props 或事件。
30
30
  - 当前目录是对外分发版本;随 `persagy-vant` 发布版本一起更新。组件库维护、扩展或新增组件不属于本 Skill 的授权范围。
@@ -8,6 +8,7 @@
8
8
  | 选择多位人员 | `multi-person-select` | 多选、已选展开、清空和分组检索 |
9
9
  | 选择空间或专业对象 | `object-select` | 空间/专业视角切换、树形对象多选 |
10
10
  | 选择楼座/楼层位置 | `location-select` | 楼座标签、位置树和位置单选 |
11
+ | 按楼座和楼层选择空间 | `floor-select` | 全屏楼层导航、空间单元格和楼座更多面板 |
11
12
  | 添加物料、工具或备件 | `material-add` | 物料搜索、分类、数量和已选清单 |
12
13
  | 批量勾选条目/录入数量 | `quantity-input` | 已选项展开、清空和批量确认 |
13
14
  | 工单列表的组合筛选 | `work-order-filter` | 项目、时间、排序、待办和工单类型筛选 |
@@ -15,10 +16,14 @@
15
16
  | 页面底部主次操作 | `bottom-action-bar` | 固定底栏、更多操作、按钮 loading/disabled |
16
17
  | 蓝色标识或业务标注 | `blue-mark` | 相同视觉的业务标签/标记 |
17
18
  | 视频预览 | `video-preview` | 视频预览容器与交互 |
19
+ | AI 对话面板/移动端 bot | `bot-mobile` 系列(`BotMobile`/`BotMobilePrompts`/`BotMobileContextTags`/`BotMobileSheet`/`BotMobileView`/`BotFab`/`BotHistoryDrawer`/`BotVoiceBar`/`BotSessionList`) | 对话流、消息渲染、示例输入、上下文标签、呼出面板、纯展示消息渲染、悬浮入口、会话历史抽屉、按住说话和全部会话列表 |
20
+ | 展示和处理工单 | `work-order-card` | 工单标题、标签、位置、展开详情和卡片内操作 |
18
21
 
19
22
  ## 业务组件组合
20
23
 
21
24
  - **创建或编辑工单**:`form` + `field` + `location-select`/`object-select` + `single-person-select`/`multi-person-select` + `material-add` + `bottom-action-bar`。
22
25
  - **工单列表**:`work-order-filter` + `pull-refresh` + `list` + `card` + `empty`。
26
+ - **工单列表(包含展开信息或行内操作)**:`work-order-filter` + `pull-refresh` + `list` + `work-order-card` + `empty`。
27
+ - **按楼层选择空间**:`floor-select`;不要自行组合楼座标签、楼层导航和空间选择列表。
23
28
  - **批量任务或物料确认**:`quantity-input` 或 `material-add` + `bottom-action-bar` + `dialog`。
24
29
  - **巡检/维修详情**:`nav-bar` + `cell-group`/`card` + `tag` + `action-bar`/`bottom-action-bar`。
@@ -4,23 +4,25 @@
4
4
 
5
5
  ## 页面骨架与状态
6
6
 
7
- - `nav-bar`、`tabbar`、`tab`、`tabs`、`sidebar`:页面与分区导航。
7
+ - `background`:带主题背景的页面内容容器;普通页面仍以 `--van-gray-1` 为默认背景,只有设计明确要求时才选择内置主题或自定义背景图。
8
+ - `nav-bar`、`tabbar`、`tab`、`tabs`、`sidebar`:页面与分区导航。标签较多时优先使用 `tabs` 的滚动或更多面板能力;筛选型分区选择 `type="filter"`。
8
9
  - `cell`、`cell-group`、`row`、`col`、`space`、`divider`:信息布局与分组。
9
10
  - `empty`、`loading`、`skeleton`、`overlay`、`pull-refresh`、`list`、`pagination`:加载、空态、刷新与列表分页。
10
11
  - `bottom-action-bar`、`action-bar`、`submit-bar`:固定操作区;不要自行实现 fixed footer。
11
12
 
12
13
  ## 表单与通用选择
13
14
 
14
- - `form`、`field`:表单结构、校验、输入与只读选择入口。
15
+ - `form-panel` + `form` + `field`:多字段编辑的表单面板、校验、输入与只读选择入口;不要将同一编辑任务拆为零散弹层。
15
16
  - `checkbox`、`radio`、`switch`、`stepper`、`rate`、`slider`:布尔、单选、多选与数值录入。
16
17
  - `picker`、`datetime-picker`、`calendar`、`area`、`cascader`、`tree-select`:普通选项、日期、地区、级联与树形数据选择。
17
- - `search`、`filter-tag`、`dropdown-menu`、`dropdown-item`:搜索与轻量筛选。
18
+ - `search`、`filter-tag`、`dropdown-menu`、`dropdown-item`:搜索与轻量筛选;短选项的外露筛选优先使用 `filter-tag`,需要更大触达面积时选其大尺寸规格。
18
19
 
19
20
  ## 内容与反馈
20
21
 
21
22
  - `card`、`tag`、`badge`、`notice-bar`、`image`、`icon`:内容展示与状态标识。
22
23
  - `popup`、`action-sheet`、`share-sheet`、`popover`:动作选择与自定义容器。
23
- - `dialog`、`toast`、`notify`:确认、短反馈与通知;不得重复封装确认弹窗或全局提示。
24
+ - `dialog`、`toast`、`notify`:确认、短反馈与顶部通知;不得重复封装确认弹窗或全局提示。
25
+ - `friendly-tip`、`popover`:基于触发元素的引导说明和轻量操作菜单。一次性友好引导使用 `friendly-tip`,点击空白处关闭;不要手写定位气泡。
24
26
  - `swipe`、`swipe-item`、`swipe-cell`、`collapse`、`grid`、`index-bar`:浏览、滑动操作、折叠和网格内容。
25
27
 
26
28
  ## 选型规则
@@ -29,3 +31,4 @@
29
31
  - 可分页的业务列表:组合 `list`、`pull-refresh`、`empty`、`loading`,不要手写重复加载状态。
30
32
  - 选择入口默认使用 `field` 或 `cell`,具体选择面板优先从 `business-component-catalog.md` 选择。
31
33
  - 页面有主操作时优先使用 `bottom-action-bar`;在表单提交语义明确时使用 `submit-bar`。
34
+ - 非破坏性的局部快捷操作使用 `popover`;会影响全局数据或需要确认的操作不使用气泡菜单。