@fecp/designer 5.5.111 → 5.5.113

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 (103) hide show
  1. package/es/designer/package.json.mjs +1 -1
  2. package/es/designer/src/components/DocumentParam.vue.mjs +1 -1
  3. package/es/designer/src/components/ParamsConfig.vue2.mjs +1 -1
  4. package/es/designer/src/layout/aside/HiddenFieldDialog.vue.mjs +1 -1
  5. package/es/designer/src/packages/advancedFilter/ValueInput.vue2.mjs +1 -1
  6. package/es/designer/src/packages/dataLinkage/index.vue.mjs +1 -1
  7. package/es/designer/src/packages/dialogGlobal/index.vue2.mjs +1 -1
  8. package/es/designer/src/packages/eventFlow/dialog/action/RiskSch.vue.mjs +1 -1
  9. package/es/designer/src/packages/form/property/approvalHistory.vue.mjs +1 -1
  10. package/es/designer/src/packages/form/property/contract.vue.mjs +1 -1
  11. package/es/designer/src/packages/form/property/document.vue.mjs +25 -11
  12. package/es/designer/src/packages/form/property/subForm.vue.mjs +1 -1
  13. package/es/designer/src/packages/prod/index.vue.mjs +1 -1
  14. package/es/designer/src/packages/table/headerBtn.vue.mjs +1 -1
  15. package/es/designer.css +554 -132
  16. package/es/packages/mobile/index.mjs +2 -2
  17. package/es/packages/mobile/src/components/all.mjs +4 -2
  18. package/es/packages/mobile/src/components/custom/appDetail/AppDetail.vue.mjs +40 -11
  19. package/es/packages/mobile/src/components/custom/appTimeLine/AppTimeLine.vue.mjs +471 -0
  20. package/es/packages/mobile/src/components/custom/appTimeLine/index.mjs +10 -0
  21. package/es/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.mjs +142 -62
  22. package/es/packages/mobile/src/components/custom/approvalList/ApprovalCard.vue.mjs +7 -6
  23. package/es/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.mjs +168 -52
  24. package/es/packages/mobile/src/components/custom/document/Document.vue.mjs +258 -0
  25. package/es/packages/mobile/src/components/custom/document/assets/404.png.mjs +4 -0
  26. package/es/packages/mobile/src/components/custom/document/assets/audio.png.mjs +4 -0
  27. package/es/packages/mobile/src/components/custom/document/assets/black.png.mjs +4 -0
  28. package/es/packages/mobile/src/components/custom/document/assets/exl.png.mjs +4 -0
  29. package/es/packages/mobile/src/components/custom/document/assets/folder.png.mjs +4 -0
  30. package/es/packages/mobile/src/components/custom/document/assets/img.png.mjs +4 -0
  31. package/es/packages/mobile/src/components/custom/document/assets/other.png.mjs +4 -0
  32. package/es/packages/mobile/src/components/custom/document/assets/pdf.png.mjs +4 -0
  33. package/es/packages/mobile/src/components/custom/document/assets/ppt.png.mjs +4 -0
  34. package/es/packages/mobile/src/components/custom/document/assets/rar.png.mjs +4 -0
  35. package/es/packages/mobile/src/components/custom/document/assets/supp.png.mjs +4 -0
  36. package/es/packages/mobile/src/components/custom/document/assets/txt.png.mjs +4 -0
  37. package/es/packages/mobile/src/components/custom/document/assets/upload.png.mjs +4 -0
  38. package/es/packages/mobile/src/components/custom/document/assets/uploadBu.png.mjs +4 -0
  39. package/es/packages/mobile/src/components/custom/document/assets/uploadBuHover.png.mjs +4 -0
  40. package/es/packages/mobile/src/components/custom/document/assets/uploadHover.png.mjs +4 -0
  41. package/es/packages/mobile/src/components/custom/document/assets/video.png.mjs +4 -0
  42. package/es/packages/mobile/src/components/custom/document/assets/word.png.mjs +4 -0
  43. package/es/packages/mobile/src/components/custom/document/index.mjs +10 -0
  44. package/es/packages/mobile/src/components/custom/timeLineFilter/index.mjs +1 -5
  45. package/es/packages/mobile/src/components/dataDisplay/menuGrid/MenuGrid.vue.mjs +2 -2
  46. package/es/packages/mobile/src/components/navigation/navBar/NavBar.vue.mjs +2 -2
  47. package/es/packages/mobile/src/components/navigation/tabs/Tabs.vue.mjs +15 -7
  48. package/es/packages/mobile/src/index.vue.mjs +3 -3
  49. package/es/packages/mobile/src/page.vue.mjs +53 -3
  50. package/es/packages/vue/src/components/bus/document/Document.vue.mjs +1 -1
  51. package/es/packages/vue/src/utils/datasource.mjs +5 -1
  52. package/lib/designer/package.json.js +1 -1
  53. package/lib/designer/src/components/DocumentParam.vue.js +1 -1
  54. package/lib/designer/src/components/ParamsConfig.vue2.js +1 -1
  55. package/lib/designer/src/layout/aside/HiddenFieldDialog.vue.js +1 -1
  56. package/lib/designer/src/packages/advancedFilter/ValueInput.vue2.js +1 -1
  57. package/lib/designer/src/packages/dataLinkage/index.vue.js +1 -1
  58. package/lib/designer/src/packages/dialogGlobal/index.vue2.js +1 -1
  59. package/lib/designer/src/packages/eventFlow/dialog/action/RiskSch.vue.js +1 -1
  60. package/lib/designer/src/packages/form/property/approvalHistory.vue.js +1 -1
  61. package/lib/designer/src/packages/form/property/contract.vue.js +1 -1
  62. package/lib/designer/src/packages/form/property/document.vue.js +27 -13
  63. package/lib/designer/src/packages/form/property/subForm.vue.js +1 -1
  64. package/lib/designer/src/packages/prod/index.vue.js +1 -1
  65. package/lib/designer/src/packages/table/headerBtn.vue.js +1 -1
  66. package/lib/designer.css +554 -132
  67. package/lib/packages/mobile/index.js +8 -8
  68. package/lib/packages/mobile/src/components/all.js +10 -8
  69. package/lib/packages/mobile/src/components/custom/appDetail/AppDetail.vue.js +39 -10
  70. package/lib/packages/mobile/src/components/custom/appTimeLine/AppTimeLine.vue.js +471 -0
  71. package/lib/packages/mobile/src/components/custom/appTimeLine/index.js +10 -0
  72. package/lib/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.js +141 -61
  73. package/lib/packages/mobile/src/components/custom/approvalList/ApprovalCard.vue.js +7 -6
  74. package/lib/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.js +168 -52
  75. package/lib/packages/mobile/src/components/custom/document/Document.vue.js +258 -0
  76. package/lib/packages/mobile/src/components/custom/document/assets/404.png.js +4 -0
  77. package/lib/packages/mobile/src/components/custom/document/assets/audio.png.js +4 -0
  78. package/lib/packages/mobile/src/components/custom/document/assets/black.png.js +4 -0
  79. package/lib/packages/mobile/src/components/custom/document/assets/exl.png.js +4 -0
  80. package/lib/packages/mobile/src/components/custom/document/assets/folder.png.js +4 -0
  81. package/lib/packages/mobile/src/components/custom/document/assets/img.png.js +4 -0
  82. package/lib/packages/mobile/src/components/custom/document/assets/other.png.js +4 -0
  83. package/lib/packages/mobile/src/components/custom/document/assets/pdf.png.js +4 -0
  84. package/lib/packages/mobile/src/components/custom/document/assets/ppt.png.js +4 -0
  85. package/lib/packages/mobile/src/components/custom/document/assets/rar.png.js +4 -0
  86. package/lib/packages/mobile/src/components/custom/document/assets/supp.png.js +4 -0
  87. package/lib/packages/mobile/src/components/custom/document/assets/txt.png.js +4 -0
  88. package/lib/packages/mobile/src/components/custom/document/assets/upload.png.js +4 -0
  89. package/lib/packages/mobile/src/components/custom/document/assets/uploadBu.png.js +4 -0
  90. package/lib/packages/mobile/src/components/custom/document/assets/uploadBuHover.png.js +4 -0
  91. package/lib/packages/mobile/src/components/custom/document/assets/uploadHover.png.js +4 -0
  92. package/lib/packages/mobile/src/components/custom/document/assets/video.png.js +4 -0
  93. package/lib/packages/mobile/src/components/custom/document/assets/word.png.js +4 -0
  94. package/lib/packages/mobile/src/components/custom/document/index.js +10 -0
  95. package/lib/packages/mobile/src/components/custom/timeLineFilter/index.js +1 -4
  96. package/lib/packages/mobile/src/components/dataDisplay/menuGrid/MenuGrid.vue.js +2 -2
  97. package/lib/packages/mobile/src/components/navigation/navBar/NavBar.vue.js +2 -2
  98. package/lib/packages/mobile/src/components/navigation/tabs/Tabs.vue.js +14 -6
  99. package/lib/packages/mobile/src/index.vue.js +3 -3
  100. package/lib/packages/mobile/src/page.vue.js +53 -3
  101. package/lib/packages/vue/src/components/bus/document/Document.vue.js +1 -1
  102. package/lib/packages/vue/src/utils/datasource.js +5 -1
  103. package/package.json +1 -1
@@ -69,10 +69,10 @@ import { MobileTabbar } from "./src/components/navigation/tabbar/index.mjs";
69
69
  import { MobileTabbarItem } from "./src/components/navigation/tabbarItem/index.mjs";
70
70
  import { MobileTreeSelect } from "./src/components/navigation/treeSelect/index.mjs";
71
71
  import { MobileLayout } from "./src/components/layout/layout/index.mjs";
72
- import { MobileTimeLineFilter } from "./src/components/custom/timeLineFilter/index.mjs";
73
72
  import { MobileAppDetail } from "./src/components/custom/appDetail/index.mjs";
74
73
  import { MobileApprovalBar } from "./src/components/custom/approvalBar/index.mjs";
75
74
  import { MobileApprovalList } from "./src/components/custom/approvalList/index.mjs";
75
+ import { MobileDocument } from "./src/components/custom/document/index.mjs";
76
76
  import { closeDialog, showConfirmDialog, showDialog } from "./node_modules/vant/es/dialog/function-call.mjs";
77
77
  import { showImagePreview } from "./node_modules/vant/es/image-preview/function-call.mjs";
78
78
  import { closeNotify, showNotify } from "./node_modules/vant/es/notify/function-call.mjs";
@@ -103,6 +103,7 @@ export {
103
103
  MobileCollapseItem,
104
104
  MobileDataStat,
105
105
  MobileDivider,
106
+ MobileDocument,
106
107
  MobileDropdownMenu,
107
108
  MobileEmpty,
108
109
  MobileField,
@@ -154,7 +155,6 @@ export {
154
155
  MobileTabs,
155
156
  MobileTextEllipsis,
156
157
  MobileTimeLine,
157
- MobileTimeLineFilter,
158
158
  MobileTreeSelect,
159
159
  MobileUploader,
160
160
  allowMultipleToast,
@@ -65,10 +65,12 @@ import { MobileTabbar } from "./navigation/tabbar/index.mjs";
65
65
  import { MobileTabbarItem } from "./navigation/tabbarItem/index.mjs";
66
66
  import { MobileTreeSelect } from "./navigation/treeSelect/index.mjs";
67
67
  import { MobileLayout } from "./layout/layout/index.mjs";
68
- import { MobileTimeLineFilter } from "./custom/timeLineFilter/index.mjs";
68
+ import "./custom/timeLineFilter/index.mjs";
69
69
  import { MobileAppDetail } from "./custom/appDetail/index.mjs";
70
70
  import { MobileApprovalBar } from "./custom/approvalBar/index.mjs";
71
71
  import { MobileApprovalList } from "./custom/approvalList/index.mjs";
72
+ import "./custom/appTimeLine/index.mjs";
73
+ import { MobileDocument } from "./custom/document/index.mjs";
72
74
  export {
73
75
  MobileActionBar,
74
76
  MobileActionSheet,
@@ -87,6 +89,7 @@ export {
87
89
  MobileCollapseItem,
88
90
  MobileDataStat,
89
91
  MobileDivider,
92
+ MobileDocument,
90
93
  MobileDropdownMenu,
91
94
  MobileEmpty,
92
95
  MobileField,
@@ -138,7 +141,6 @@ export {
138
141
  MobileTabs,
139
142
  MobileTextEllipsis,
140
143
  MobileTimeLine,
141
- MobileTimeLineFilter,
142
144
  MobileTreeSelect,
143
145
  MobileUploader
144
146
  };
@@ -1,4 +1,6 @@
1
- import { getCurrentInstance, ref, computed, resolveComponent, createElementBlock, openBlock, Fragment, createVNode, createBlock, createCommentVNode, unref, isRef, normalizeProps, mergeProps } from "vue";
1
+ import { getCurrentInstance, ref, computed, resolveComponent, createElementBlock, openBlock, Fragment, createVNode, createBlock, createCommentVNode, unref, isRef, mergeProps } from "vue";
2
+ import { MobileTimeLineFilter } from "../appTimeLine/index.mjs";
3
+ import { MobileDocument } from "../document/index.mjs";
2
4
  /* empty css */
3
5
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.mjs";
4
6
  const _sfc_main = {
@@ -31,20 +33,37 @@ const _sfc_main = {
31
33
  actionBar: {
32
34
  type: Object
33
35
  },
34
- taskId: {
35
- type: String,
36
- default: ""
36
+ swipeable: {
37
+ type: Boolean,
38
+ default: true
37
39
  },
38
- taskType: {
40
+ operationPageId: {
39
41
  type: String,
40
42
  default: ""
41
43
  }
42
44
  },
43
45
  setup(__props) {
46
+ var _a, _b;
44
47
  const props = __props;
45
48
  const currentInstance = getCurrentInstance();
46
49
  const ctx = currentInstance.proxy;
47
50
  ctx.route;
51
+ const opinionTypeOptions = ref([]);
52
+ const taskData = { ...props.params.taskData };
53
+ const taskParams = { ...props.params };
54
+ delete taskParams.taskData;
55
+ ctx.$http.postForm(
56
+ "/base-server/flow/flowApproveDetail/findById",
57
+ {
58
+ taskId: (_a = props.params) == null ? void 0 : _a.taskId,
59
+ type: (_b = props.params) == null ? void 0 : _b.type
60
+ },
61
+ false
62
+ ).then((data) => {
63
+ opinionTypeOptions.value = data.approvalBtn.filter(
64
+ (item) => item.approveType != "C1"
65
+ );
66
+ });
48
67
  const activeName = ref("tab_base_info");
49
68
  const baseInfoPageId = ref("");
50
69
  if (props.baseInfoPageSource == "dynamic") ;
@@ -61,10 +80,14 @@ const _sfc_main = {
61
80
  ...props.options || []
62
81
  ];
63
82
  if (props.document) {
64
- tabs.push({ id: "tab_doc_info", title: "要件信息" });
83
+ tabs.push({ id: "tab_doc_info", title: "要件信息", component: MobileDocument });
65
84
  }
66
85
  if (props.approvalHistory) {
67
- tabs.push({ id: "tab_timeline_info", title: "审批历史" });
86
+ tabs.push({
87
+ id: "tab_timeline_info",
88
+ title: "审批历史",
89
+ component: MobileTimeLineFilter
90
+ });
68
91
  }
69
92
  return tabs;
70
93
  });
@@ -79,14 +102,20 @@ const _sfc_main = {
79
102
  modelValue: unref(activeName),
80
103
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(activeName) ? activeName.value = $event : null),
81
104
  options: unref(tabsOptions),
82
- params: __props.params
83
- }, null, 8, ["modelValue", "options", "params"]),
84
- __props.actionBar ? (openBlock(), createBlock(_component_FecMobileApprovalBar, normalizeProps(mergeProps({ key: 0 }, __props.actionBar)), null, 16)) : createCommentVNode("", true)
105
+ params: taskParams,
106
+ swipeable: __props.swipeable
107
+ }, null, 8, ["modelValue", "options", "swipeable"]),
108
+ __props.actionBar ? (openBlock(), createBlock(_component_FecMobileApprovalBar, mergeProps({ key: 0 }, __props.actionBar, {
109
+ params: taskParams,
110
+ taskData,
111
+ opinionTypeOptions: unref(opinionTypeOptions),
112
+ operationPageId: __props.operationPageId
113
+ }), null, 16, ["opinionTypeOptions", "operationPageId"])) : createCommentVNode("", true)
85
114
  ], 64);
86
115
  };
87
116
  }
88
117
  };
89
- const _AppDetail = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ab2095bf"]]);
118
+ const _AppDetail = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7df517b6"]]);
90
119
  export {
91
120
  _AppDetail as default
92
121
  };
@@ -0,0 +1,471 @@
1
+ /* empty css */
2
+ /* empty css */
3
+ /* empty css */
4
+ /* empty css */
5
+ /* empty css */
6
+ /* empty css */
7
+ /* empty css */
8
+ /* empty css */
9
+ import { getCurrentInstance, ref, computed, resolveComponent, createElementBlock, openBlock, createBlock, createVNode, unref, withCtx, createTextVNode, Fragment, renderList, normalizeClass, createCommentVNode, createElementVNode, withModifiers, toDisplayString, normalizeStyle, isRef } from "vue";
10
+ import { useStore } from "../../../../../../node_modules/vuex/dist/vuex.esm-bundler.mjs";
11
+ /* empty css */
12
+ import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.mjs";
13
+ import { Loading } from "../../../../node_modules/vant/es/loading/index.mjs";
14
+ import { Steps } from "../../../../node_modules/vant/es/steps/index.mjs";
15
+ import { Step } from "../../../../node_modules/vant/es/step/index.mjs";
16
+ import { Icon } from "../../../../node_modules/vant/es/icon/index.mjs";
17
+ import { Popup } from "../../../../node_modules/vant/es/popup/index.mjs";
18
+ const _hoisted_1 = { class: "fec-mobile-approval-timeline" };
19
+ const _hoisted_2 = {
20
+ key: 0,
21
+ class: "fec-timeline-loading"
22
+ };
23
+ const _hoisted_3 = {
24
+ key: 0,
25
+ class: "fec-step-square-text"
26
+ };
27
+ const _hoisted_4 = {
28
+ key: 1,
29
+ class: "fec-step-square-text"
30
+ };
31
+ const _hoisted_5 = {
32
+ key: 0,
33
+ class: "fec-step-square-text"
34
+ };
35
+ const _hoisted_6 = {
36
+ key: 1,
37
+ class: "fec-step-square-text"
38
+ };
39
+ const _hoisted_7 = {
40
+ key: 2,
41
+ class: "fec-step-square-text"
42
+ };
43
+ const _hoisted_8 = { class: "fec-step-title" };
44
+ const _hoisted_9 = ["onClick"];
45
+ const _hoisted_10 = {
46
+ key: 0,
47
+ class: "fec-step-role"
48
+ };
49
+ const _hoisted_11 = { class: "fec-step-header-right" };
50
+ const _hoisted_12 = { class: "fec-step-time" };
51
+ const _hoisted_13 = {
52
+ key: 0,
53
+ class: "fec-step-title"
54
+ };
55
+ const _hoisted_14 = ["onClick"];
56
+ const _hoisted_15 = {
57
+ key: 0,
58
+ class: "fec-step-role"
59
+ };
60
+ const _hoisted_16 = {
61
+ key: 1,
62
+ class: "fec-step-title"
63
+ };
64
+ const _hoisted_17 = ["onClick"];
65
+ const _hoisted_18 = { class: "fec-step-header-right" };
66
+ const _hoisted_19 = { class: "fec-step-time" };
67
+ const _hoisted_20 = {
68
+ key: 0,
69
+ class: "fec-step-desc"
70
+ };
71
+ const _hoisted_21 = { class: "fec-step-opinion" };
72
+ const _hoisted_22 = ["onClick"];
73
+ const _hoisted_23 = {
74
+ key: 0,
75
+ class: "fec-step-desc-toggle"
76
+ };
77
+ const _hoisted_24 = { key: 1 };
78
+ const _hoisted_25 = { class: "fec-step-desc-popup" };
79
+ const _hoisted_26 = { class: "fec-step-desc-popup-content" };
80
+ const _hoisted_27 = { class: "fec-assignee-popup" };
81
+ const _hoisted_28 = { class: "fec-assignee-list" };
82
+ const _hoisted_29 = { class: "fec-assignee-avatar" };
83
+ const _hoisted_30 = { class: "fec-assignee-info" };
84
+ const _hoisted_31 = { class: "fec-assignee-name" };
85
+ const _hoisted_32 = {
86
+ key: 0,
87
+ class: "fec-assignee-no"
88
+ };
89
+ const NAME_MAX_LENGTH = 16;
90
+ const DESC_MAX_LINES = 4;
91
+ const _sfc_main = /* @__PURE__ */ Object.assign({
92
+ name: "AppTimeLine"
93
+ }, {
94
+ __name: "AppTimeLine",
95
+ props: {
96
+ // 业务主键号
97
+ traceNo: {
98
+ type: String,
99
+ default: ""
100
+ },
101
+ hisTaskData: {
102
+ type: Array,
103
+ default: []
104
+ }
105
+ },
106
+ setup(__props) {
107
+ const store = useStore();
108
+ const props = __props;
109
+ const currentInstance = getCurrentInstance();
110
+ const ctx = currentInstance.proxy;
111
+ const loading = ref(false);
112
+ const hisTask = ref([]);
113
+ const task = ref([]);
114
+ const showDescPopup = ref(false);
115
+ const descText = ref("");
116
+ const showAssigneePopup = ref(false);
117
+ const currentAssignees = ref([]);
118
+ function isDescOverflow(item) {
119
+ const desc = getOpinionDesc(item);
120
+ if (!desc) return false;
121
+ const charsPerLine = 21;
122
+ const maxChars = charsPerLine * DESC_MAX_LINES;
123
+ const lines = desc.split("\n");
124
+ let totalLines = 0;
125
+ for (const line of lines) {
126
+ totalLines += Math.ceil((line.length || 1) / charsPerLine);
127
+ }
128
+ return totalLines > DESC_MAX_LINES || desc.length > maxChars;
129
+ }
130
+ function onDescClick(item) {
131
+ descText.value = getOpinionDesc(item);
132
+ showDescPopup.value = true;
133
+ }
134
+ function hasMultipleAssignees(item) {
135
+ return Array.isArray(item.assignee) && item.assignee.length > 1;
136
+ }
137
+ function getDisplayName(item) {
138
+ const full = getName(item) || "";
139
+ if (full.length > NAME_MAX_LENGTH) {
140
+ return full.slice(0, NAME_MAX_LENGTH) + "...";
141
+ }
142
+ return full;
143
+ }
144
+ function onAssigneeClick(item) {
145
+ if (!hasMultipleAssignees(item)) return;
146
+ currentAssignees.value = item.assignee || [];
147
+ showAssigneePopup.value = true;
148
+ }
149
+ if (props.traceNo) {
150
+ fetchData();
151
+ } else if (props.hisTaskData.length > 0) {
152
+ hisTask.value = props.hisTaskData;
153
+ task.value = [];
154
+ } else {
155
+ hisTask.value = [];
156
+ task.value = [];
157
+ }
158
+ function fetchData() {
159
+ loading.value = true;
160
+ ctx.$http.postForm(
161
+ "/base-server/flow/flowData/findTimeLineByTraceNo",
162
+ {
163
+ traceNo: props.traceNo,
164
+ type: "app",
165
+ taskDefKey: ""
166
+ },
167
+ false
168
+ ).then((data) => {
169
+ hisTask.value = data.hisTask || [];
170
+ const tempTask = data.task || [];
171
+ tempTask.forEach((task2) => {
172
+ if (task2.taskType == "signTask") {
173
+ const filteredOutList = [];
174
+ task2.signTaskList.forEach((signTask) => {
175
+ const taskId = signTask.taskId;
176
+ hisTask.value = hisTask.value.filter((hisTask2) => {
177
+ if (hisTask2.taskType == "signTask") {
178
+ const data2 = hisTask2.signTaskList.find(
179
+ (item) => item.taskId == taskId
180
+ );
181
+ if (data2) {
182
+ filteredOutList.push(hisTask2);
183
+ return false;
184
+ }
185
+ }
186
+ return true;
187
+ });
188
+ });
189
+ if (filteredOutList.length > 0) {
190
+ task2.signTaskList = filteredOutList[0].signTaskList;
191
+ }
192
+ }
193
+ });
194
+ task.value = tempTask;
195
+ loading.value = false;
196
+ });
197
+ }
198
+ const timelineList = computed(() => {
199
+ const list = [];
200
+ (task.value || []).forEach((item) => {
201
+ list.push({ ...item, __type: "current" });
202
+ });
203
+ hisTask.value.forEach((item) => {
204
+ list.push({ ...item, __type: "history" });
205
+ });
206
+ return list;
207
+ });
208
+ function getName(item) {
209
+ if (item.__type === "current" && Array.isArray(item.assignee)) {
210
+ return item.assignee.map((v) => v.opName).filter((v) => {
211
+ if (item.taskType == "signTask") {
212
+ if (v.opNo == store.getters.user.opNo) {
213
+ return true;
214
+ } else {
215
+ return false;
216
+ }
217
+ } else {
218
+ return true;
219
+ }
220
+ }).join(",") || "未知";
221
+ }
222
+ return item.assigneeName || "";
223
+ }
224
+ function getRole(item) {
225
+ return item.name || "";
226
+ }
227
+ function getInitial(item) {
228
+ const name = getName(item);
229
+ return name ? name.charAt(0) : "?";
230
+ }
231
+ function getOpinion(item) {
232
+ if (item.__type === "current") {
233
+ return "";
234
+ }
235
+ return item.approveName || "";
236
+ }
237
+ function getOpinionDesc(item) {
238
+ if (item.__type === "current") return "";
239
+ return item.approveDesc || "";
240
+ }
241
+ function getIconColor(item) {
242
+ if (item.__type === "current") {
243
+ return "#FF7D00";
244
+ }
245
+ const approveType = (item.approveType || "").trim();
246
+ const first = approveType.charAt(0).toUpperCase();
247
+ switch (first) {
248
+ case "C":
249
+ return "#00B42A";
250
+ case "R":
251
+ return "#FFC53D";
252
+ case "E":
253
+ return "#F53F3F";
254
+ case "G":
255
+ return "#86909C";
256
+ default:
257
+ return "#69b1ff";
258
+ }
259
+ }
260
+ function getIconText(item) {
261
+ if (item.__type === "current") {
262
+ return "ellipsis";
263
+ }
264
+ const approveType = (item.approveType || "").trim();
265
+ const first = approveType.charAt(0).toUpperCase();
266
+ switch (first) {
267
+ case "0":
268
+ return "play";
269
+ case "C":
270
+ return "success";
271
+ case "R":
272
+ return "revoke";
273
+ case "E":
274
+ return "cross";
275
+ case "G":
276
+ return "minus";
277
+ default:
278
+ return "success";
279
+ }
280
+ }
281
+ function formatTime(time) {
282
+ if (!time) return "";
283
+ const d = new Date(time);
284
+ if (isNaN(d.getTime())) return time;
285
+ const pad = (n) => String(n).padStart(2, "0");
286
+ return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(
287
+ d.getHours()
288
+ )}:${pad(d.getMinutes())}`;
289
+ }
290
+ return (_ctx, _cache) => {
291
+ const _component_van_loading = Loading;
292
+ const _component_van_icon = Icon;
293
+ const _component_AppTimeLine = resolveComponent("AppTimeLine", true);
294
+ const _component_van_step = Step;
295
+ const _component_van_steps = Steps;
296
+ const _component_van_popup = Popup;
297
+ return openBlock(), createElementBlock("div", _hoisted_1, [
298
+ unref(loading) ? (openBlock(), createElementBlock("div", _hoisted_2, [
299
+ createVNode(_component_van_loading, {
300
+ size: "20",
301
+ color: "#999"
302
+ }, {
303
+ default: withCtx(() => _cache[2] || (_cache[2] = [
304
+ createTextVNode("加载中...")
305
+ ])),
306
+ _: 1
307
+ })
308
+ ])) : (openBlock(), createBlock(_component_van_steps, {
309
+ key: 1,
310
+ active: -1,
311
+ direction: "vertical",
312
+ "active-color": "#52c41a",
313
+ "inactive-icon": "circle",
314
+ class: "fec-steps"
315
+ }, {
316
+ default: withCtx(() => [
317
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(timelineList), (item, index) => {
318
+ return openBlock(), createBlock(_component_van_step, {
319
+ key: item.taskId || index,
320
+ class: normalizeClass(["fec-step", `fec-step-${item.__type}`])
321
+ }, {
322
+ "inactive-icon": withCtx(() => [
323
+ item.__type == "current" ? (openBlock(), createElementBlock("div", {
324
+ key: 0,
325
+ class: normalizeClass(["fec-step-square", item.taskType || "task"]),
326
+ style: { "background-color": "#ffaf5c" }
327
+ }, [
328
+ item.taskType == "task" ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(getInitial(item)), 1)) : item.taskType == "signTask" ? (openBlock(), createElementBlock("span", _hoisted_4, " 会 ")) : createCommentVNode("", true),
329
+ createElementVNode("span", {
330
+ class: "fec-step-icon",
331
+ style: normalizeStyle({ background: getIconColor(item) })
332
+ }, [
333
+ createVNode(_component_van_icon, {
334
+ name: getIconText(item)
335
+ }, null, 8, ["name"])
336
+ ], 4)
337
+ ], 2)) : (openBlock(), createElementBlock("div", {
338
+ key: 1,
339
+ class: normalizeClass(["fec-step-square", item.taskType || "task"])
340
+ }, [
341
+ !item.taskType || item.taskType == "task" ? (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(getInitial(item)), 1)) : item.taskType == "signTask" ? (openBlock(), createElementBlock("span", _hoisted_6, " 会 ")) : (openBlock(), createElementBlock("span", _hoisted_7, " ? ")),
342
+ !item.taskType || item.taskType == "task" ? (openBlock(), createElementBlock("span", {
343
+ key: 3,
344
+ class: "fec-step-icon",
345
+ style: normalizeStyle({ background: getIconColor(item) })
346
+ }, [
347
+ createVNode(_component_van_icon, {
348
+ name: getIconText(item)
349
+ }, null, 8, ["name"])
350
+ ], 4)) : createCommentVNode("", true)
351
+ ], 2))
352
+ ]),
353
+ default: withCtx(() => [
354
+ item.__type == "current" ? (openBlock(), createElementBlock("div", {
355
+ key: 0,
356
+ class: normalizeClass(["fec-step-header", item.taskType || "task"])
357
+ }, [
358
+ createElementVNode("div", _hoisted_8, [
359
+ createElementVNode("span", {
360
+ class: normalizeClass(["fec-step-name", { "is-clickable": hasMultipleAssignees(item) }]),
361
+ onClick: withModifiers(($event) => hasMultipleAssignees(item) && onAssigneeClick(item), ["stop"])
362
+ }, toDisplayString(getDisplayName(item) || "其他处理人"), 11, _hoisted_9),
363
+ getRole(item) ? (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(getRole(item)), 1)) : createCommentVNode("", true)
364
+ ]),
365
+ createElementVNode("div", _hoisted_11, [
366
+ createElementVNode("div", _hoisted_12, toDisplayString(formatTime(item.createTime)), 1)
367
+ ])
368
+ ], 2)) : (openBlock(), createElementBlock("div", {
369
+ key: 1,
370
+ class: normalizeClass(["fec-step-header", item.taskType || "task"])
371
+ }, [
372
+ !item.taskType || item.taskType == "task" ? (openBlock(), createElementBlock("div", _hoisted_13, [
373
+ createElementVNode("span", {
374
+ class: normalizeClass(["fec-step-name", { "is-clickable": hasMultipleAssignees(item) }]),
375
+ onClick: withModifiers(($event) => hasMultipleAssignees(item) && onAssigneeClick(item), ["stop"])
376
+ }, toDisplayString(getDisplayName(item)), 11, _hoisted_14),
377
+ getRole(item) ? (openBlock(), createElementBlock("span", _hoisted_15, toDisplayString(getRole(item)), 1)) : createCommentVNode("", true)
378
+ ])) : item.taskType == "signTask" ? (openBlock(), createElementBlock("div", _hoisted_16, [
379
+ createElementVNode("span", {
380
+ class: normalizeClass(["fec-step-name", { "is-clickable": hasMultipleAssignees(item) }]),
381
+ onClick: withModifiers(($event) => hasMultipleAssignees(item) && onAssigneeClick(item), ["stop"])
382
+ }, toDisplayString(getDisplayName(item) || item.name), 11, _hoisted_17)
383
+ ])) : createCommentVNode("", true),
384
+ createElementVNode("div", _hoisted_18, [
385
+ createElementVNode("div", _hoisted_19, toDisplayString(formatTime(item.endTime || item.createTime)), 1),
386
+ getOpinion(item) ? (openBlock(), createElementBlock("div", _hoisted_20, [
387
+ createElementVNode("span", _hoisted_21, toDisplayString(getOpinion(item)), 1)
388
+ ])) : createCommentVNode("", true)
389
+ ])
390
+ ], 2)),
391
+ item.__type != "current" ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
392
+ (!item.taskType || item.taskType == "task") && getOpinionDesc(item) ? (openBlock(), createElementBlock("div", {
393
+ key: 0,
394
+ class: "fec-step-desc-text-wrap",
395
+ onClick: ($event) => isDescOverflow(item) && onDescClick(item)
396
+ }, [
397
+ createElementVNode("div", {
398
+ class: normalizeClass(["fec-step-desc-text", { "is-collapsed": isDescOverflow(item) }])
399
+ }, toDisplayString(getOpinionDesc(item)), 3),
400
+ isDescOverflow(item) ? (openBlock(), createElementBlock("span", _hoisted_23, " 点击查看全部 ")) : createCommentVNode("", true)
401
+ ], 8, _hoisted_22)) : item.taskType == "signTask" ? (openBlock(), createElementBlock("div", _hoisted_24, [
402
+ createVNode(_component_AppTimeLine, {
403
+ hisTaskData: item.signTaskList
404
+ }, null, 8, ["hisTaskData"])
405
+ ])) : createCommentVNode("", true)
406
+ ], 64)) : item.__type == "current" && item.taskType == "signTask" ? (openBlock(), createBlock(_component_AppTimeLine, {
407
+ key: 3,
408
+ hisTaskData: item.signTaskList
409
+ }, null, 8, ["hisTaskData"])) : createCommentVNode("", true)
410
+ ]),
411
+ _: 2
412
+ }, 1032, ["class"]);
413
+ }), 128))
414
+ ]),
415
+ _: 1
416
+ })),
417
+ createVNode(_component_van_popup, {
418
+ show: unref(showDescPopup),
419
+ "onUpdate:show": _cache[0] || (_cache[0] = ($event) => isRef(showDescPopup) ? showDescPopup.value = $event : null),
420
+ round: "",
421
+ position: "bottom",
422
+ style: { maxHeight: "70%" },
423
+ closeable: "",
424
+ teleport: "body"
425
+ }, {
426
+ default: withCtx(() => [
427
+ createElementVNode("div", _hoisted_25, [
428
+ _cache[3] || (_cache[3] = createElementVNode("div", { class: "fec-step-desc-popup-title" }, "审批意见", -1)),
429
+ createElementVNode("div", _hoisted_26, toDisplayString(unref(descText)), 1)
430
+ ])
431
+ ]),
432
+ _: 1
433
+ }, 8, ["show"]),
434
+ createVNode(_component_van_popup, {
435
+ show: unref(showAssigneePopup),
436
+ "onUpdate:show": _cache[1] || (_cache[1] = ($event) => isRef(showAssigneePopup) ? showAssigneePopup.value = $event : null),
437
+ round: "",
438
+ position: "bottom",
439
+ style: { maxHeight: "60%" },
440
+ closeable: "",
441
+ teleport: "body"
442
+ }, {
443
+ default: withCtx(() => [
444
+ createElementVNode("div", _hoisted_27, [
445
+ _cache[4] || (_cache[4] = createElementVNode("div", { class: "fec-assignee-popup-title" }, "审批人", -1)),
446
+ createElementVNode("div", _hoisted_28, [
447
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(currentAssignees), (a) => {
448
+ return openBlock(), createElementBlock("div", {
449
+ key: a.userId || a.opNo,
450
+ class: "fec-assignee-item"
451
+ }, [
452
+ createElementVNode("div", _hoisted_29, toDisplayString((a.opName || "").charAt(0)), 1),
453
+ createElementVNode("div", _hoisted_30, [
454
+ createElementVNode("div", _hoisted_31, toDisplayString(a.opName), 1),
455
+ a.opNo ? (openBlock(), createElementBlock("div", _hoisted_32, toDisplayString(a.opNo), 1)) : createCommentVNode("", true)
456
+ ])
457
+ ]);
458
+ }), 128))
459
+ ])
460
+ ])
461
+ ]),
462
+ _: 1
463
+ }, 8, ["show"])
464
+ ]);
465
+ };
466
+ }
467
+ });
468
+ const _TimeLineFilter = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-723b161c"]]);
469
+ export {
470
+ _TimeLineFilter as default
471
+ };
@@ -0,0 +1,10 @@
1
+ import _TimeLineFilter from "./AppTimeLine.vue.mjs";
2
+ import install from "../../../utils/install.mjs";
3
+ const MobileTimeLineFilter = install.withInstall(
4
+ "MobileTimeLineFilter",
5
+ _TimeLineFilter
6
+ );
7
+ export {
8
+ MobileTimeLineFilter,
9
+ MobileTimeLineFilter as default
10
+ };