@fecp/designer 5.5.110 → 5.5.112

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 (43) hide show
  1. package/es/designer/package.json.mjs +1 -1
  2. package/es/designer/src/packages/dialog/useDialogDialog.mjs +1 -1
  3. package/es/designer/src/packages/dialogGlobal/useDialogGlobalDialog.mjs +1 -1
  4. package/es/designer/src/packages/form/property/widgets.vue.mjs +2 -2
  5. package/es/designer.css +284 -138
  6. package/es/packages/mobile/index.mjs +0 -2
  7. package/es/packages/mobile/src/components/all.mjs +2 -2
  8. package/es/packages/mobile/src/components/custom/appDetail/AppDetail.vue.mjs +38 -10
  9. package/es/packages/mobile/src/components/custom/appTimeLine/AppTimeLine.vue.mjs +340 -0
  10. package/es/packages/mobile/src/components/custom/appTimeLine/index.mjs +10 -0
  11. package/es/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.mjs +142 -62
  12. package/es/packages/mobile/src/components/custom/approvalList/ApprovalCard.vue.mjs +7 -6
  13. package/es/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.mjs +168 -52
  14. package/es/packages/mobile/src/components/custom/timeLineFilter/index.mjs +1 -5
  15. package/es/packages/mobile/src/components/dataDisplay/menuGrid/MenuGrid.vue.mjs +2 -2
  16. package/es/packages/mobile/src/components/navigation/navBar/NavBar.vue.mjs +2 -2
  17. package/es/packages/mobile/src/components/navigation/tabs/Tabs.vue.mjs +15 -7
  18. package/es/packages/mobile/src/index.vue.mjs +3 -3
  19. package/es/packages/mobile/src/page.vue.mjs +53 -3
  20. package/es/packages/vue/src/components/layout/Layout.vue.mjs +1 -1
  21. package/es/packages/vue/src/utils/datasource.mjs +5 -1
  22. package/lib/designer/package.json.js +1 -1
  23. package/lib/designer/src/packages/dialog/useDialogDialog.js +1 -1
  24. package/lib/designer/src/packages/dialogGlobal/useDialogGlobalDialog.js +1 -1
  25. package/lib/designer/src/packages/form/property/widgets.vue.js +2 -2
  26. package/lib/designer.css +284 -138
  27. package/lib/packages/mobile/index.js +8 -10
  28. package/lib/packages/mobile/src/components/all.js +8 -8
  29. package/lib/packages/mobile/src/components/custom/appDetail/AppDetail.vue.js +37 -9
  30. package/lib/packages/mobile/src/components/custom/appTimeLine/AppTimeLine.vue.js +340 -0
  31. package/lib/packages/mobile/src/components/custom/appTimeLine/index.js +10 -0
  32. package/lib/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.js +141 -61
  33. package/lib/packages/mobile/src/components/custom/approvalList/ApprovalCard.vue.js +7 -6
  34. package/lib/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.js +168 -52
  35. package/lib/packages/mobile/src/components/custom/timeLineFilter/index.js +1 -4
  36. package/lib/packages/mobile/src/components/dataDisplay/menuGrid/MenuGrid.vue.js +2 -2
  37. package/lib/packages/mobile/src/components/navigation/navBar/NavBar.vue.js +2 -2
  38. package/lib/packages/mobile/src/components/navigation/tabs/Tabs.vue.js +14 -6
  39. package/lib/packages/mobile/src/index.vue.js +3 -3
  40. package/lib/packages/mobile/src/page.vue.js +53 -3
  41. package/lib/packages/vue/src/components/layout/Layout.vue.js +1 -1
  42. package/lib/packages/vue/src/utils/datasource.js +5 -1
  43. package/package.json +1 -1
@@ -11,73 +11,141 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
11
11
  ;/* empty css */
12
12
  ;/* empty css */
13
13
  ;/* empty css */
14
- ;/* empty css */
15
- ;/* empty css */
16
14
  ;/* empty css */
17
15
  ;/* empty css */
16
+ ;/* empty css */
17
+ ;/* empty css */
18
18
  ;/* empty css */
19
19
  ;/* empty css */
20
20
  ;/* empty css */
21
21
  const Vue = require("vue");
22
+ const common = require("../../../utils/common.js");
23
+ const pageHistory = require("../../../utils/pageHistory.js");
24
+ const eventBus = require("../../../utils/eventBus.js");
25
+ const page = require("../../../page.vue.js");
26
+ const vuex_esmBundler = require("../../../../../../node_modules/vuex/dist/vuex.esm-bundler.js");
22
27
  ;/* empty css */
23
28
  const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.js");
29
+ const functionCall = require("../../../../node_modules/vant/es/toast/function-call.js");
30
+ require("../../../../node_modules/vant/es/toast/index.js");
24
31
  const index = require("../../../../node_modules/vant/es/action-bar/index.js");
25
32
  const index$1 = require("../../../../node_modules/vant/es/action-bar-button/index.js");
26
33
  const index$2 = require("../../../../node_modules/vant/es/popup/index.js");
27
34
  const index$3 = require("../../../../node_modules/vant/es/field/index.js");
28
35
  const index$4 = require("../../../../node_modules/vant/es/picker/index.js");
29
36
  const _hoisted_1 = { class: "appPopContent" };
30
- const _hoisted_2 = { class: "appOptContent" };
37
+ const _hoisted_2 = {
38
+ class: "appOptContent",
39
+ style: { "max-height": "235px", "padding-bottom": "0" }
40
+ };
41
+ const _hoisted_3 = { class: "appPopContent" };
42
+ const _hoisted_4 = { class: "appOptContent" };
31
43
  const _sfc_main = {
32
44
  __name: "ApprovalBar",
33
45
  props: {
46
+ params: {
47
+ type: Object,
48
+ default: {}
49
+ },
50
+ taskData: {
51
+ type: Object,
52
+ default: {}
53
+ },
34
54
  actionBarOptions: {
35
55
  type: Array,
36
56
  default: []
57
+ },
58
+ opinionTypeOptions: {
59
+ type: Array,
60
+ default: []
61
+ },
62
+ operationPageId: {
63
+ type: String,
64
+ default: ""
37
65
  }
38
66
  },
39
67
  setup(__props) {
68
+ const store = vuex_esmBundler.useStore();
69
+ const props = __props;
70
+ const currentInstance = Vue.getCurrentInstance();
71
+ const ctx = currentInstance.proxy;
72
+ const pageList = Vue.inject("pageList");
73
+ const operPage = common.findPageById(pageList.value, props.operationPageId);
40
74
  const showAgreePop = Vue.ref(false);
41
75
  const showOtherPop = Vue.ref(false);
42
76
  const showOpinionPicker = Vue.ref(false);
43
- const showTargetNodePicker = Vue.ref(false);
44
- const currentActionItem = Vue.ref({});
77
+ Vue.ref(false);
45
78
  const opinionForm = Vue.reactive({
46
- opinionType: "",
47
- opinionContent: "",
79
+ approveId: "",
80
+ approveIdea: "",
48
81
  targetNode: ""
49
82
  });
83
+ const opinionTypeOptionsFieldName = {
84
+ text: "approveIdea",
85
+ value: "id"
86
+ };
50
87
  function clickHandler(item) {
51
88
  console.log("🚀 ~ clickHandler ~ item:", item);
52
89
  if (item.approvalType == "agree") {
53
90
  showAgreePop.value = true;
54
91
  } else if (item.approvalType == "other") {
55
- currentActionItem.value = item;
56
- opinionForm.opinionType = "";
57
- opinionForm.opinionContent = "";
58
- opinionForm.targetNode = "";
59
92
  showOtherPop.value = true;
60
93
  }
61
94
  }
62
95
  function onOpinionConfirm({ selectedOptions }) {
63
- var _a;
64
- opinionForm.opinionType = ((_a = selectedOptions[0]) == null ? void 0 : _a.value) || "";
96
+ var _a, _b, _c;
97
+ opinionForm.approveId = ((_a = selectedOptions[0]) == null ? void 0 : _a.id) || "";
98
+ opinionForm.approveText = ((_b = selectedOptions[0]) == null ? void 0 : _b.approveIdea) || "";
99
+ opinionForm.approveType = ((_c = selectedOptions[0]) == null ? void 0 : _c.approveType) || "";
65
100
  showOpinionPicker.value = false;
66
101
  }
67
- function onTargetNodeConfirm({ selectedOptions }) {
68
- var _a;
69
- opinionForm.targetNode = ((_a = selectedOptions[0]) == null ? void 0 : _a.value) || "";
70
- showTargetNodePicker.value = false;
71
- }
102
+ const operPageRef = Vue.ref();
72
103
  function submitOpinion() {
73
- console.log("提交审批意见:", opinionForm);
74
- showOtherPop.value = false;
104
+ var _a;
105
+ const formData = ((_a = operPageRef.value) == null ? void 0 : _a.getFormData()) || {};
106
+ const commitData = {
107
+ appPageData: formData,
108
+ approveDesc: opinionForm.approveIdea,
109
+ approveId: opinionForm.approveId,
110
+ approveName: opinionForm.approveText || "同意",
111
+ approveType: opinionForm.approveType || "C1",
112
+ currentUser: store.getters.user,
113
+ sendUserId: "",
114
+ nextUser: "",
115
+ targetNodeId: "",
116
+ addSignList: [],
117
+ taskData: props.taskData,
118
+ taskId: props.taskData.taskId,
119
+ variables: {}
120
+ };
121
+ console.log("🚀 ~ submitOpinion ~ commitData:", commitData);
122
+ functionCall.showLoadingToast({
123
+ message: "提交中...",
124
+ forbidClick: true,
125
+ duration: 0
126
+ });
127
+ ctx.$http.post("/base-server/flow/flowApproveDetail/doCommit", commitData, false).then((data) => {
128
+ if (data && data.needOper) {
129
+ functionCall.showFailToast("待开发:需要人工操作的节点");
130
+ } else {
131
+ functionCall.showSuccessToast("提交成功");
132
+ showOtherPop.value = false;
133
+ showAgreePop.value = false;
134
+ goBack();
135
+ }
136
+ });
75
137
  }
138
+ const goBack = () => {
139
+ const prevPage = pageHistory.pageHistory.back();
140
+ if (prevPage) {
141
+ eventBus.default.emit("loadPage", { pageId: prevPage.id });
142
+ }
143
+ };
76
144
  return (_ctx, _cache) => {
77
145
  const _component_van_action_bar_button = index$1.ActionBarButton;
78
146
  const _component_van_action_bar = index.ActionBar;
79
- const _component_van_popup = index$2.Popup;
80
147
  const _component_van_field = index$3.Field;
148
+ const _component_van_popup = index$2.Popup;
81
149
  const _component_van_picker = index$4.Picker;
82
150
  return Vue.openBlock(), Vue.createElementBlock(Vue.Fragment, null, [
83
151
  Vue.createVNode(_component_van_action_bar, { "safe-area-inset-bottom": "" }, {
@@ -94,42 +162,68 @@ const _sfc_main = {
94
162
  }),
95
163
  Vue.createVNode(_component_van_popup, {
96
164
  show: Vue.unref(showAgreePop),
97
- "onUpdate:show": _cache[0] || (_cache[0] = ($event) => Vue.isRef(showAgreePop) ? showAgreePop.value = $event : null),
165
+ "onUpdate:show": _cache[1] || (_cache[1] = ($event) => Vue.isRef(showAgreePop) ? showAgreePop.value = $event : null),
98
166
  round: "",
99
167
  position: "bottom",
100
- style: { height: "30%" }
101
- }, null, 8, ["show"]),
168
+ style: { "height": "80%" }
169
+ }, {
170
+ default: Vue.withCtx(() => [
171
+ Vue.createElementVNode("div", _hoisted_1, [
172
+ Vue.unref(operPage) ? (Vue.openBlock(), Vue.createBlock(page.default, {
173
+ key: 0,
174
+ parentPage: Vue.unref(operPage),
175
+ params: __props.params,
176
+ ref_key: "operPageRef",
177
+ ref: operPageRef
178
+ }, null, 8, ["parentPage", "params"])) : Vue.createCommentVNode("", true),
179
+ Vue.createElementVNode("div", _hoisted_2, [
180
+ Vue.createVNode(_component_van_field, {
181
+ modelValue: Vue.unref(opinionForm).approveIdea,
182
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => Vue.unref(opinionForm).approveIdea = $event),
183
+ rows: "6",
184
+ autosize: "",
185
+ label: "意见内容",
186
+ type: "textarea",
187
+ maxlength: "500",
188
+ "show-word-limit": "",
189
+ placeholder: "请输入审批意见"
190
+ }, null, 8, ["modelValue"])
191
+ ]),
192
+ Vue.createVNode(_component_van_action_bar, { "safe-area-inset-bottom": "" }, {
193
+ default: Vue.withCtx(() => [
194
+ Vue.createVNode(_component_van_action_bar_button, {
195
+ class: Vue.normalizeClass("icon-blue"),
196
+ text: "提交",
197
+ onClick: submitOpinion
198
+ })
199
+ ]),
200
+ _: 1
201
+ })
202
+ ])
203
+ ]),
204
+ _: 1
205
+ }, 8, ["show"]),
102
206
  Vue.createVNode(_component_van_popup, {
103
207
  show: Vue.unref(showOtherPop),
104
- "onUpdate:show": _cache[6] || (_cache[6] = ($event) => Vue.isRef(showOtherPop) ? showOtherPop.value = $event : null),
208
+ "onUpdate:show": _cache[5] || (_cache[5] = ($event) => Vue.isRef(showOtherPop) ? showOtherPop.value = $event : null),
105
209
  round: "",
106
210
  position: "bottom"
107
211
  }, {
108
212
  default: Vue.withCtx(() => [
109
- Vue.createElementVNode("div", _hoisted_1, [
110
- Vue.createElementVNode("div", _hoisted_2, [
213
+ Vue.createElementVNode("div", _hoisted_3, [
214
+ Vue.createElementVNode("div", _hoisted_4, [
111
215
  Vue.createVNode(_component_van_field, {
112
- modelValue: Vue.unref(currentActionItem).opinionType,
113
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => Vue.unref(currentActionItem).opinionType = $event),
216
+ modelValue: Vue.unref(opinionForm).approveText,
217
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => Vue.unref(opinionForm).approveText = $event),
114
218
  "is-link": "",
115
219
  readonly: "",
116
220
  label: "审批意见",
117
221
  placeholder: "请选择审批意见",
118
- onClick: _cache[2] || (_cache[2] = ($event) => showOpinionPicker.value = true)
222
+ onClick: _cache[3] || (_cache[3] = ($event) => showOpinionPicker.value = true)
119
223
  }, null, 8, ["modelValue"]),
120
- Vue.unref(currentActionItem).needTargetNode ? (Vue.openBlock(), Vue.createBlock(_component_van_field, {
121
- key: 0,
122
- modelValue: Vue.unref(opinionForm).targetNode,
123
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => Vue.unref(opinionForm).targetNode = $event),
124
- "is-link": "",
125
- readonly: "",
126
- label: "目标节点",
127
- placeholder: "请选择目标节点",
128
- onClick: _cache[4] || (_cache[4] = ($event) => showTargetNodePicker.value = true)
129
- }, null, 8, ["modelValue"])) : Vue.createCommentVNode("", true),
130
224
  Vue.createVNode(_component_van_field, {
131
- modelValue: Vue.unref(opinionForm).opinionContent,
132
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => Vue.unref(opinionForm).opinionContent = $event),
225
+ modelValue: Vue.unref(opinionForm).approveIdea,
226
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => Vue.unref(opinionForm).approveIdea = $event),
133
227
  rows: "6",
134
228
  autosize: "",
135
229
  label: "意见内容",
@@ -155,30 +249,16 @@ const _sfc_main = {
155
249
  }, 8, ["show"]),
156
250
  Vue.createVNode(_component_van_popup, {
157
251
  show: Vue.unref(showOpinionPicker),
158
- "onUpdate:show": _cache[8] || (_cache[8] = ($event) => Vue.isRef(showOpinionPicker) ? showOpinionPicker.value = $event : null),
252
+ "onUpdate:show": _cache[7] || (_cache[7] = ($event) => Vue.isRef(showOpinionPicker) ? showOpinionPicker.value = $event : null),
159
253
  round: "",
160
254
  position: "bottom"
161
255
  }, {
162
256
  default: Vue.withCtx(() => [
163
257
  Vue.createVNode(_component_van_picker, {
164
- columns: Vue.unref(currentActionItem).opinionOptions || [],
258
+ columns: __props.opinionTypeOptions || [],
259
+ "columns-field-names": opinionTypeOptionsFieldName,
165
260
  onConfirm: onOpinionConfirm,
166
- onCancel: _cache[7] || (_cache[7] = ($event) => showOpinionPicker.value = false)
167
- }, null, 8, ["columns"])
168
- ]),
169
- _: 1
170
- }, 8, ["show"]),
171
- Vue.createVNode(_component_van_popup, {
172
- show: Vue.unref(showTargetNodePicker),
173
- "onUpdate:show": _cache[10] || (_cache[10] = ($event) => Vue.isRef(showTargetNodePicker) ? showTargetNodePicker.value = $event : null),
174
- round: "",
175
- position: "bottom"
176
- }, {
177
- default: Vue.withCtx(() => [
178
- Vue.createVNode(_component_van_picker, {
179
- columns: Vue.unref(currentActionItem).targetNodeOptions || [],
180
- onConfirm: onTargetNodeConfirm,
181
- onCancel: _cache[9] || (_cache[9] = ($event) => showTargetNodePicker.value = false)
261
+ onCancel: _cache[6] || (_cache[6] = ($event) => showOpinionPicker.value = false)
182
262
  }, null, 8, ["columns"])
183
263
  ]),
184
264
  _: 1
@@ -187,5 +267,5 @@ const _sfc_main = {
187
267
  };
188
268
  }
189
269
  };
190
- const _ApprovalBar = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-fc8cdb72"]]);
270
+ const _ApprovalBar = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-3f63aa02"]]);
191
271
  exports.default = _ApprovalBar;
@@ -93,7 +93,8 @@ const _sfc_main = {
93
93
  Vue.createElementVNode("div", _hoisted_7, [
94
94
  Vue.createElementVNode("span", _hoisted_8, Vue.toDisplayString(formatTime(__props.item.taskCreateDateTime)), 1),
95
95
  Vue.createElementVNode("div", _hoisted_9, [
96
- Vue.createVNode(_component_van_button, {
96
+ __props.type != 0 ? (Vue.openBlock(), Vue.createBlock(_component_van_button, {
97
+ key: 0,
97
98
  plain: "",
98
99
  hairline: "",
99
100
  round: "",
@@ -104,21 +105,21 @@ const _sfc_main = {
104
105
  Vue.createTextVNode(" 查看 ")
105
106
  ])),
106
107
  _: 1
107
- }),
108
+ })) : Vue.createCommentVNode("", true),
108
109
  __props.type == 0 ? (Vue.openBlock(), Vue.createBlock(_component_van_button, {
109
- key: 0,
110
+ key: 1,
110
111
  type: "primary",
111
112
  round: "",
112
113
  size: "small",
113
114
  onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("approve", __props.item))
114
115
  }, {
115
116
  default: Vue.withCtx(() => _cache[4] || (_cache[4] = [
116
- Vue.createTextVNode(" 同意 ")
117
+ Vue.createTextVNode(" 审批 ")
117
118
  ])),
118
119
  _: 1
119
120
  })) : Vue.createCommentVNode("", true),
120
121
  __props.type == 1 ? (Vue.openBlock(), Vue.createBlock(_component_van_button, {
121
- key: 1,
122
+ key: 2,
122
123
  type: "warning",
123
124
  round: "",
124
125
  size: "small",
@@ -135,5 +136,5 @@ const _sfc_main = {
135
136
  };
136
137
  }
137
138
  };
138
- const ApprovalCard = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-8bbf96c9"]]);
139
+ const ApprovalCard = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-0c40807f"]]);
139
140
  exports.default = ApprovalCard;
@@ -15,6 +15,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
15
15
  ;/* empty css */
16
16
  const Vue = require("vue");
17
17
  const ApprovalCard = require("./ApprovalCard.vue.js");
18
+ const eventBus = require("../../../utils/eventBus.js");
18
19
  ;/* empty css */
19
20
  const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.js");
20
21
  const index = require("../../../../node_modules/vant/es/search/index.js");
@@ -24,13 +25,16 @@ const index$3 = require("../../../../node_modules/vant/es/list/index.js");
24
25
  const _hoisted_1 = { class: "fec-mobile-approval-list" };
25
26
  const _hoisted_2 = { class: "fec-tab-content" };
26
27
  const _hoisted_3 = { class: "fec-tab-content" };
27
- const _hoisted_4 = { class: "fec-list" };
28
- const _hoisted_5 = { class: "fec-tab-content" };
29
- const _hoisted_6 = { class: "fec-list" };
28
+ const _hoisted_4 = { class: "fec-tab-content" };
30
29
  const _sfc_main = {
31
30
  __name: "ApprovalList",
32
- props: {},
31
+ props: {
32
+ todoPage: String,
33
+ donePage: String,
34
+ ccPage: String
35
+ },
33
36
  setup(__props) {
37
+ const props = __props;
34
38
  const currentInstance = Vue.getCurrentInstance();
35
39
  const ctx = currentInstance.proxy;
36
40
  ctx.route;
@@ -39,28 +43,50 @@ const _sfc_main = {
39
43
  const doneList = Vue.ref([]);
40
44
  const ccList = Vue.ref([]);
41
45
  const searchData = Vue.ref("");
42
- const finished = Vue.ref(false);
43
- const loading = Vue.ref(false);
44
- let pageNo = 1;
46
+ const todoLoading = Vue.ref(false);
47
+ const todoFinished = Vue.ref(false);
48
+ const doneLoading = Vue.ref(false);
49
+ const doneFinished = Vue.ref(false);
50
+ const ccLoading = Vue.ref(false);
51
+ const ccFinished = Vue.ref(false);
52
+ let todoPageNo = 0;
53
+ let donePageNo = 0;
54
+ let ccPageNo = 0;
45
55
  let pageSize = 10;
46
- function onLoad() {
47
- loading.value = true;
48
- pageNo++;
49
- call();
56
+ const todoError = Vue.ref(false);
57
+ const doneError = Vue.ref(false);
58
+ const ccError = Vue.ref(false);
59
+ function onTodoLoad() {
60
+ todoLoading.value = true;
61
+ todoPageNo++;
62
+ call("0");
50
63
  }
51
- function call() {
64
+ function onDoneLoad() {
65
+ doneLoading.value = true;
66
+ donePageNo++;
67
+ call("1");
68
+ }
69
+ function onCcLoad() {
70
+ ccLoading.value = true;
71
+ ccPageNo++;
72
+ call("2");
73
+ }
74
+ function call(taskStatus) {
75
+ const errorRef = taskStatus == "0" ? todoError : taskStatus == "1" ? doneError : ccError;
76
+ errorRef.value = false;
77
+ const pageNo = taskStatus == "0" ? todoPageNo : taskStatus == "1" ? donePageNo : ccPageNo;
52
78
  ctx.$http.post(
53
79
  "/base-server/flow/workbench/findTaskListByPage",
54
80
  {
55
81
  pageNo,
56
82
  pageSize,
57
- taskStatus: activeName.value,
83
+ taskStatus,
58
84
  searchData: searchData.value
59
85
  },
60
86
  false
61
87
  ).then((data) => {
62
88
  const list = data.list;
63
- switch (activeName.value) {
89
+ switch (taskStatus) {
64
90
  case "0":
65
91
  list.forEach((item) => {
66
92
  item.statusColor = item.statusColor || "#fa8c16";
@@ -68,32 +94,91 @@ const _sfc_main = {
68
94
  item.statusText = item.statusText || "待处理";
69
95
  });
70
96
  todoList.value.push(...list);
97
+ if (list.length < pageSize) {
98
+ todoFinished.value = true;
99
+ }
71
100
  break;
72
101
  case "1":
73
- doneList.value = list;
102
+ list.forEach((item) => {
103
+ item.statusColor = item.statusColor || "#52c41a";
104
+ item.statusIcon = item.statusIcon || "checked";
105
+ item.statusText = item.statusText || "已完成";
106
+ });
107
+ doneList.value.push(...list);
108
+ if (list.length < pageSize) {
109
+ doneFinished.value = true;
110
+ }
74
111
  break;
75
112
  case "2":
76
- ccList.value = list;
113
+ list.forEach((item) => {
114
+ item.statusColor = item.statusColor || "#52c41a";
115
+ item.statusIcon = item.statusIcon || "checked";
116
+ item.statusText = item.statusText || "已完成";
117
+ });
118
+ ccList.value.push(...list);
119
+ if (list.length < pageSize) {
120
+ ccFinished.value = true;
121
+ }
77
122
  break;
78
123
  }
79
- if (list.length < pageSize) {
80
- finished.value = true;
81
- }
124
+ }).catch((err) => {
125
+ errorRef.value = true;
82
126
  }).finally(() => {
83
- loading.value = false;
127
+ switch (taskStatus) {
128
+ case "0":
129
+ todoLoading.value = false;
130
+ break;
131
+ case "1":
132
+ doneLoading.value = false;
133
+ break;
134
+ case "2":
135
+ ccLoading.value = false;
136
+ break;
137
+ }
84
138
  });
85
139
  }
86
140
  function onView(item) {
87
141
  console.log("查看:", item);
88
142
  }
89
143
  function onApprove(item) {
90
- console.log("同意:", item);
144
+ console.log("审批:", item);
145
+ if (props.todoPage) {
146
+ const params = {
147
+ traceNo: item.traceNo,
148
+ taskId: item.taskId,
149
+ type: "0",
150
+ taskData: item
151
+ };
152
+ eventBus.default.emit("loadPage", {
153
+ pageId: props.todoPage,
154
+ params
155
+ });
156
+ }
91
157
  }
92
158
  function onRevoke(item) {
93
159
  console.log("撤销:", item);
94
160
  }
95
161
  function onSearch(val) {
96
- console.log("🚀 ~ onSearch ~ val:", val);
162
+ todoList.value = [];
163
+ todoFinished.value = false;
164
+ todoPageNo = 0;
165
+ doneList.value = [];
166
+ doneFinished.value = false;
167
+ donePageNo = 0;
168
+ ccList.value = [];
169
+ ccFinished.value = false;
170
+ ccPageNo = 0;
171
+ switch (activeName.value) {
172
+ case "0":
173
+ onTodoLoad();
174
+ break;
175
+ case "1":
176
+ onDoneLoad();
177
+ break;
178
+ case "2":
179
+ onCcLoad();
180
+ break;
181
+ }
97
182
  }
98
183
  return (_ctx, _cache) => {
99
184
  const _component_van_search = index.Search;
@@ -113,7 +198,7 @@ const _sfc_main = {
113
198
  sticky: "",
114
199
  class: "fec-tabs",
115
200
  active: Vue.unref(activeName),
116
- "onUpdate:active": _cache[2] || (_cache[2] = ($event) => Vue.isRef(activeName) ? activeName.value = $event : null),
201
+ "onUpdate:active": _cache[7] || (_cache[7] = ($event) => Vue.isRef(activeName) ? activeName.value = $event : null),
117
202
  swipeable: "",
118
203
  "lazy-render": ""
119
204
  }, {
@@ -127,11 +212,15 @@ const _sfc_main = {
127
212
  default: Vue.withCtx(() => [
128
213
  Vue.createElementVNode("div", _hoisted_2, [
129
214
  Vue.createVNode(_component_van_list, {
130
- loading: Vue.unref(loading),
131
- "onUpdate:loading": _cache[1] || (_cache[1] = ($event) => Vue.isRef(loading) ? loading.value = $event : null),
132
- finished: Vue.unref(finished),
215
+ loading: Vue.unref(todoLoading),
216
+ "onUpdate:loading": _cache[1] || (_cache[1] = ($event) => Vue.isRef(todoLoading) ? todoLoading.value = $event : null),
217
+ error: Vue.unref(todoError),
218
+ "onUpdate:error": _cache[2] || (_cache[2] = ($event) => Vue.isRef(todoError) ? todoError.value = $event : null),
219
+ finished: Vue.unref(todoFinished),
220
+ offset: 50,
133
221
  "finished-text": "没有更多了",
134
- onLoad,
222
+ onLoad: onTodoLoad,
223
+ "error-text": "请求失败,点击重新加载",
135
224
  class: "fec-list"
136
225
  }, {
137
226
  default: Vue.withCtx(() => [
@@ -140,13 +229,12 @@ const _sfc_main = {
140
229
  key: item.id,
141
230
  item,
142
231
  type: 0,
143
- onView,
144
232
  onApprove
145
233
  }, null, 8, ["item"]);
146
234
  }), 128))
147
235
  ]),
148
236
  _: 1
149
- }, 8, ["loading", "finished"])
237
+ }, 8, ["loading", "error", "finished"])
150
238
  ])
151
239
  ]),
152
240
  _: 1
@@ -159,17 +247,31 @@ const _sfc_main = {
159
247
  }, {
160
248
  default: Vue.withCtx(() => [
161
249
  Vue.createElementVNode("div", _hoisted_3, [
162
- Vue.createElementVNode("div", _hoisted_4, [
163
- (Vue.openBlock(true), Vue.createElementBlock(Vue.Fragment, null, Vue.renderList(Vue.unref(doneList), (item) => {
164
- return Vue.openBlock(), Vue.createBlock(ApprovalCard.default, {
165
- key: item.id,
166
- item,
167
- type: 1,
168
- onView,
169
- onRevoke
170
- }, null, 8, ["item"]);
171
- }), 128))
172
- ])
250
+ Vue.createVNode(_component_van_list, {
251
+ loading: Vue.unref(doneLoading),
252
+ "onUpdate:loading": _cache[3] || (_cache[3] = ($event) => Vue.isRef(doneLoading) ? doneLoading.value = $event : null),
253
+ error: Vue.unref(doneError),
254
+ "onUpdate:error": _cache[4] || (_cache[4] = ($event) => Vue.isRef(doneError) ? doneError.value = $event : null),
255
+ finished: Vue.unref(doneFinished),
256
+ offset: 50,
257
+ "finished-text": "没有更多了",
258
+ "error-text": "请求失败,点击重新加载",
259
+ onLoad: onDoneLoad,
260
+ class: "fec-list"
261
+ }, {
262
+ default: Vue.withCtx(() => [
263
+ (Vue.openBlock(true), Vue.createElementBlock(Vue.Fragment, null, Vue.renderList(Vue.unref(doneList), (item) => {
264
+ return Vue.openBlock(), Vue.createBlock(ApprovalCard.default, {
265
+ key: item.id,
266
+ item,
267
+ type: 1,
268
+ onView,
269
+ onRevoke
270
+ }, null, 8, ["item"]);
271
+ }), 128))
272
+ ]),
273
+ _: 1
274
+ }, 8, ["loading", "error", "finished"])
173
275
  ])
174
276
  ]),
175
277
  _: 1
@@ -181,17 +283,31 @@ const _sfc_main = {
181
283
  "show-zero-badge": false
182
284
  }, {
183
285
  default: Vue.withCtx(() => [
184
- Vue.createElementVNode("div", _hoisted_5, [
185
- Vue.createElementVNode("div", _hoisted_6, [
186
- (Vue.openBlock(true), Vue.createElementBlock(Vue.Fragment, null, Vue.renderList(Vue.unref(ccList), (item) => {
187
- return Vue.openBlock(), Vue.createBlock(ApprovalCard.default, {
188
- key: item.id,
189
- item,
190
- type: 2,
191
- onView
192
- }, null, 8, ["item"]);
193
- }), 128))
194
- ])
286
+ Vue.createElementVNode("div", _hoisted_4, [
287
+ Vue.createVNode(_component_van_list, {
288
+ loading: Vue.unref(ccLoading),
289
+ "onUpdate:loading": _cache[5] || (_cache[5] = ($event) => Vue.isRef(ccLoading) ? ccLoading.value = $event : null),
290
+ error: Vue.unref(ccError),
291
+ "onUpdate:error": _cache[6] || (_cache[6] = ($event) => Vue.isRef(ccError) ? ccError.value = $event : null),
292
+ finished: Vue.unref(ccFinished),
293
+ offset: 50,
294
+ "finished-text": "没有更多了",
295
+ "error-text": "请求失败,点击重新加载",
296
+ onLoad: onCcLoad,
297
+ class: "fec-list"
298
+ }, {
299
+ default: Vue.withCtx(() => [
300
+ (Vue.openBlock(true), Vue.createElementBlock(Vue.Fragment, null, Vue.renderList(Vue.unref(ccList), (item) => {
301
+ return Vue.openBlock(), Vue.createBlock(ApprovalCard.default, {
302
+ key: item.id,
303
+ item,
304
+ type: 2,
305
+ onView
306
+ }, null, 8, ["item"]);
307
+ }), 128))
308
+ ]),
309
+ _: 1
310
+ }, 8, ["loading", "error", "finished"])
195
311
  ])
196
312
  ]),
197
313
  _: 1
@@ -203,5 +319,5 @@ const _sfc_main = {
203
319
  };
204
320
  }
205
321
  };
206
- const _ApprovalList = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-15b64ae4"]]);
322
+ const _ApprovalList = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-64531f31"]]);
207
323
  exports.default = _ApprovalList;