cloud-web-corejs 1.0.54-dev.810 → 1.0.54-dev.811
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.
- package/package.json +1 -1
- package/src/components/VabUpload/image-viewer.vue +442 -442
- package/src/components/VabUpload/index.vue +44 -2
- package/src/components/VabUpload/mixins.js +126 -19
- package/src/components/VabUpload/view.vue +247 -209
- package/src/components/baseTabs/mixins.js +181 -181
- package/src/components/mobile/wf/content.vue +1665 -1556
- package/src/components/table/config.js +78 -78
- package/src/components/table/index.js +1276 -1276
- package/src/components/table/tableForm.vue +330 -330
- package/src/components/table/tableFormMixin.js +318 -318
- package/src/components/table/vxeFilter/index.js +163 -163
- package/src/components/table/vxeFilter/mixin.js +316 -316
- package/src/components/wf/content.vue +1188 -1188
- package/src/components/wf/wf.js +29 -12
- package/src/components/wf/wfActionDropdown.vue +1 -1
- package/src/components/wf/wfActionItems.js +1 -1
- package/src/components/xform/docs/2026-08 xform H5 P0 /345/256/236/347/216/260/350/247/204/346/240/274.md" +528 -0
- package/src/components/xform/docs/2026-08 xform H5 P1 /345/256/236/347/216/260/350/247/204/346/240/274.md" +412 -0
- package/src/components/xform/docs/2026-08 xform H5 P2 /345/256/236/347/216/260/350/247/204/346/240/274.md" +287 -0
- package/src/components/xform/docs/2026-08 xform /347/247/273/345/212/250/347/253/257/345/270/203/345/261/200/345/257/271/351/275/220 bill_setting /346/226/271/346/241/210.md" +400 -0
- package/src/components/xform/form-designer/designer.js +15 -0
- package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +269 -269
- package/src/components/xform/form-designer/form-widget/container-widget/detail-temp-widget.vue +132 -0
- package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +250 -250
- package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +319 -320
- package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +365 -365
- package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +554 -555
- package/src/components/xform/form-designer/form-widget/dialog/vabSearchDialog.vue +409 -409
- package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +150 -132
- package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +114 -114
- package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +154 -154
- package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +29 -1
- package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +178 -178
- package/src/components/xform/form-designer/form-widget/field-widget/mixins/time-limit-mixin.js +77 -77
- package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +139 -139
- package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +106 -106
- package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +134 -134
- package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +1 -0
- package/src/components/xform/form-designer/setting-panel/form-setting.vue +39 -39
- package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +438 -438
- package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +2103 -2103
- package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +90 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +82 -82
- package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +8 -8
- package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +137 -137
- package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +237 -237
- package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +43 -43
- package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +43 -43
- package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -96
- package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +42 -42
- package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +43 -43
- package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +158 -158
- package/src/components/xform/form-designer/setting-panel/property-editor/h5Span-editor.vue +51 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/itemStyle-editor.vue +39 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +188 -188
- package/src/components/xform/form-designer/setting-panel/property-editor/styleTempClass-editor.vue +51 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +347 -347
- package/src/components/xform/form-designer/setting-panel/propertyRegister.js +4 -0
- package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +55 -3
- package/src/components/xform/form-render/container-item/data-table-mixin.js +33 -12
- package/src/components/xform/form-render/container-item/detail-h5-item.vue +183 -32
- package/src/components/xform/form-render/container-item/detail-temp-item.vue +110 -0
- package/src/components/xform/form-render/container-item/h5-card-pane-item.vue +160 -140
- package/src/components/xform/form-render/container-item/list-h5-item.vue +1642 -1700
- package/src/components/xform/form-render/index.vue +153 -147
- package/src/components/xform/form-render/indexMixin.js +12 -0
- package/src/components/xform/lang/en-US.js +10 -0
- package/src/components/xform/lang/zh-CN.js +12 -0
- package/src/components/xform/mixins/defaultHandle.js +707 -707
- package/src/components/xform/styles/h5.scss +1633 -0
- package/src/components/xform/utils/textMaskUtil.js +182 -182
- package/src/components/xform/utils/treeTableUtil.js +1292 -1265
- package/src/components/xform/utils/util.js +56 -11
- package/src/utils/pdfUtil.js +429 -429
- package/src/views/bd/setting/bd_company_env/dialog.vue +174 -174
- package/src/views/bd/setting/table_model/edit.vue +1066 -1066
- package/src/views/bd/setting/table_model/mixins/edit.js +1455 -1455
- package/src/views/bd/setting/table_model/mixins/zdDialog.js +148 -148
- package/src/views/user/home/wjl/content.vue +394 -31
- package/src/views/user/role/edit.vue +632 -632
- package/src/views/user/role/list.vue +260 -260
- package/src/views/user/wf/wf_manage/list.vue +1116 -1116
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
</el-card>
|
|
116
116
|
</el-col>
|
|
117
117
|
</el-row>
|
|
118
|
-
<el-row class="home-bottom">
|
|
118
|
+
<el-row class="home-bottom" v-show="isServiceProvider">
|
|
119
119
|
<el-col :span="10">
|
|
120
120
|
<el-card class="box-card">
|
|
121
121
|
<div slot="header" class="clearfix">
|
|
@@ -123,10 +123,24 @@
|
|
|
123
123
|
<i class="el-icon-star-off ico"></i>
|
|
124
124
|
{{ $t1("快捷通道") }}
|
|
125
125
|
</span>
|
|
126
|
-
|
|
126
|
+
<el-tooltip
|
|
127
|
+
class="item"
|
|
128
|
+
effect="dark"
|
|
129
|
+
:content="$t1('刷新')"
|
|
130
|
+
placement="top"
|
|
131
|
+
>
|
|
132
|
+
<el-button type="text" @click="getOrderCount(true)" class="more">
|
|
133
|
+
<i class="el-icon-refresh"></i>
|
|
134
|
+
</el-button>
|
|
135
|
+
</el-tooltip>
|
|
127
136
|
</div>
|
|
128
137
|
<div class="shortcut-box">
|
|
129
|
-
<div
|
|
138
|
+
<div
|
|
139
|
+
class="item"
|
|
140
|
+
v-for="item in shortcutItems"
|
|
141
|
+
:key="item.key"
|
|
142
|
+
@click="openShortcut(item)"
|
|
143
|
+
>
|
|
130
144
|
<span class="name">{{ item.name }}</span>
|
|
131
145
|
<span class="count">({{ item.count }})</span>
|
|
132
146
|
</div>
|
|
@@ -140,7 +154,22 @@
|
|
|
140
154
|
<i class="el-icon-message ico"></i>
|
|
141
155
|
{{ $t1("待处理消息") }}
|
|
142
156
|
</span>
|
|
143
|
-
<el-
|
|
157
|
+
<el-tooltip
|
|
158
|
+
class="item"
|
|
159
|
+
effect="dark"
|
|
160
|
+
:content="$t1('刷新')"
|
|
161
|
+
placement="top"
|
|
162
|
+
>
|
|
163
|
+
<el-button
|
|
164
|
+
type="text"
|
|
165
|
+
@click="getOrderMessage(true)"
|
|
166
|
+
class="more"
|
|
167
|
+
style="right: 72px"
|
|
168
|
+
>
|
|
169
|
+
<i class="el-icon-refresh"></i>
|
|
170
|
+
</el-button>
|
|
171
|
+
</el-tooltip>
|
|
172
|
+
<el-button type="text" @click="openOrderMessageList()"
|
|
144
173
|
><span class="more">MORE+</span></el-button
|
|
145
174
|
>
|
|
146
175
|
</div>
|
|
@@ -180,6 +209,50 @@
|
|
|
180
209
|
@readHanlde="notifyMessageReadHanlde"
|
|
181
210
|
></notifyMessageInfoDialog>
|
|
182
211
|
|
|
212
|
+
<el-dialog
|
|
213
|
+
:title="$t1('处理消息')"
|
|
214
|
+
:append-to-body="true"
|
|
215
|
+
:modal-append-to-body="true"
|
|
216
|
+
:close-on-click-modal="false"
|
|
217
|
+
v-if="showDealDialog"
|
|
218
|
+
:visible.sync="showDealDialog"
|
|
219
|
+
custom-class="el-dialog dialog-style"
|
|
220
|
+
width="560px"
|
|
221
|
+
:destroy-on-close="true"
|
|
222
|
+
v-el-drag-dialog
|
|
223
|
+
>
|
|
224
|
+
<el-form :model="dealForm" label-width="100px" class="deal-msg-form">
|
|
225
|
+
<el-form-item :label="$t1('标题')">
|
|
226
|
+
<span>{{ dealRow.title }}</span>
|
|
227
|
+
</el-form-item>
|
|
228
|
+
<el-form-item :label="$t1('业务单据号')">
|
|
229
|
+
<span>{{ dealRow.bill_order_no }}</span>
|
|
230
|
+
</el-form-item>
|
|
231
|
+
<el-form-item :label="$t1('消息内容')">
|
|
232
|
+
<div class="deal-msg-content">{{ dealRow.content }}</div>
|
|
233
|
+
</el-form-item>
|
|
234
|
+
<el-form-item :label="$t1('处理备注')">
|
|
235
|
+
<el-input
|
|
236
|
+
type="textarea"
|
|
237
|
+
v-model="dealForm.deal_remark"
|
|
238
|
+
:rows="4"
|
|
239
|
+
:placeholder="$t1('请输入处理备注')"
|
|
240
|
+
maxlength="500"
|
|
241
|
+
show-word-limit
|
|
242
|
+
/>
|
|
243
|
+
</el-form-item>
|
|
244
|
+
</el-form>
|
|
245
|
+
<span slot="footer" class="dialog-footer">
|
|
246
|
+
<el-button @click="showDealDialog = false">{{ $t1("取消") }}</el-button>
|
|
247
|
+
<el-button
|
|
248
|
+
type="primary"
|
|
249
|
+
:loading="dealSubmitting"
|
|
250
|
+
@click="submitDealMessage"
|
|
251
|
+
>{{ $t1("确定") }}</el-button
|
|
252
|
+
>
|
|
253
|
+
</span>
|
|
254
|
+
</el-dialog>
|
|
255
|
+
|
|
183
256
|
<el-dialog
|
|
184
257
|
:title="$t1('选择分组')"
|
|
185
258
|
:append-to-body="true"
|
|
@@ -253,31 +326,94 @@ export default {
|
|
|
253
326
|
wfTimer: null,
|
|
254
327
|
homeConfig: corejsConfig.homeConfig || {},
|
|
255
328
|
pendingMsgOption: {},
|
|
329
|
+
isServiceProvider: false,
|
|
330
|
+
roleChecked: false,
|
|
331
|
+
showDealDialog: false,
|
|
332
|
+
dealSubmitting: false,
|
|
333
|
+
dealRow: {},
|
|
334
|
+
dealForm: {
|
|
335
|
+
deal_remark: "",
|
|
336
|
+
},
|
|
256
337
|
shortcutItems: [
|
|
257
|
-
{ key: "pendingAccept", name: "待接单", count: 10 },
|
|
258
|
-
{ key: "overdueAppoint", name: "超时预约", count: 10 },
|
|
259
|
-
{ key: "pendingAppoint", name: "待预约", count: 10 },
|
|
260
|
-
{ key: "pendingAssign", name: "待派师傅", count: 10 },
|
|
261
|
-
{ key: "masterReturn", name: "师傅退单", count: 10 },
|
|
262
|
-
{ key: "pendingInstall", name: "签收待安装", count: 10 },
|
|
263
|
-
{ key: "pendingFinish", name: "待完工单", count: 10 },
|
|
264
|
-
{ key: "pendingConfirm", name: "待确认完工", count: 10 },
|
|
265
|
-
{ key: "pendingAppeal", name: "待申诉", count: 10 },
|
|
266
|
-
{ key: "complaint", name: "投诉/催单", count: 10 },
|
|
267
|
-
],
|
|
268
|
-
pendingMessageRows: [
|
|
269
338
|
{
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
339
|
+
key: "unTakeQty",
|
|
340
|
+
name: "待接单",
|
|
341
|
+
count: 0,
|
|
342
|
+
formCode: "fwm_so_order_list",
|
|
343
|
+
query: { quick_type: 1 },
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
key: "outTimeBookQty",
|
|
347
|
+
name: "超时预约",
|
|
348
|
+
count: 0,
|
|
349
|
+
formCode: "fwm_so_order_list",
|
|
350
|
+
query: { quick_type: 2 },
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
key: "unBookQty",
|
|
354
|
+
name: "待预约",
|
|
355
|
+
count: 0,
|
|
356
|
+
formCode: "fwm_so_order_list",
|
|
357
|
+
query: { quick_type: 3 },
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
key: "unTakeEngineerQty",
|
|
361
|
+
name: "待派师傅",
|
|
362
|
+
count: 0,
|
|
363
|
+
formCode: "fwm_so_order_list",
|
|
364
|
+
query: { quick_type: 4 },
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
key: "engineerReturnQty",
|
|
368
|
+
name: "师傅退单",
|
|
369
|
+
count: 0,
|
|
370
|
+
formCode: "fwm_so_order_list",
|
|
371
|
+
query: { quick_type: 5 },
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
key: "unIntallQty",
|
|
375
|
+
name: "签收待安装",
|
|
376
|
+
count: 0,
|
|
377
|
+
formCode: "fwm_so_order_list",
|
|
378
|
+
query: { quick_type: 6 },
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
key: "unFinishQty",
|
|
382
|
+
name: "待完工单",
|
|
383
|
+
count: 0,
|
|
384
|
+
formCode: "fwm_so_order_list",
|
|
385
|
+
query: { quick_type: 7 },
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
key: "unCommitFinishQty",
|
|
389
|
+
name: "待确认完工",
|
|
390
|
+
count: 0,
|
|
391
|
+
formCode: "fwm_so_order_list",
|
|
392
|
+
query: { quick_type: 8 },
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
key: "unComplainQty",
|
|
396
|
+
name: "待申诉",
|
|
397
|
+
count: 0,
|
|
398
|
+
formCode: "fwm_so_order_appeal_list",
|
|
399
|
+
query: { query_type: 3 },
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
key: "urgeOrComplainQty",
|
|
403
|
+
name: "投诉/催单",
|
|
404
|
+
count: 0,
|
|
405
|
+
formCode: "fwm_so_order_list",
|
|
406
|
+
query: { quick_type: 10 },
|
|
274
407
|
},
|
|
275
408
|
],
|
|
409
|
+
pendingMessageRows: [],
|
|
276
410
|
};
|
|
277
411
|
},
|
|
278
412
|
activated() {
|
|
279
413
|
this.activating = true;
|
|
280
|
-
if (this.wfTimer) {
|
|
414
|
+
if (!this.wfTimer) {
|
|
415
|
+
this.initWfTimer();
|
|
416
|
+
} else {
|
|
281
417
|
this.timerExcFun(true);
|
|
282
418
|
}
|
|
283
419
|
},
|
|
@@ -295,6 +431,7 @@ export default {
|
|
|
295
431
|
this.initWfTimer();
|
|
296
432
|
//初始化流程待办路由
|
|
297
433
|
this.initWorkflowManageRoute();
|
|
434
|
+
this.initServiceProviderRole();
|
|
298
435
|
},
|
|
299
436
|
mounted() {
|
|
300
437
|
this.initPendingMsgTable();
|
|
@@ -328,6 +465,10 @@ export default {
|
|
|
328
465
|
}
|
|
329
466
|
this.getWfInfoList(isLoading);
|
|
330
467
|
this.getUnreadMessageNum(isLoading);
|
|
468
|
+
if (this.isServiceProvider) {
|
|
469
|
+
this.getOrderCount(isLoading);
|
|
470
|
+
this.getOrderMessage(isLoading);
|
|
471
|
+
}
|
|
331
472
|
this.$emit("timerHandle");
|
|
332
473
|
},
|
|
333
474
|
clearTimer() {
|
|
@@ -345,6 +486,7 @@ export default {
|
|
|
345
486
|
: require("@/resources/images" + "/default-header.png");
|
|
346
487
|
|
|
347
488
|
this.userInfo = userInfo;
|
|
489
|
+
this.initServiceProviderRole();
|
|
348
490
|
},
|
|
349
491
|
});
|
|
350
492
|
this.$http({
|
|
@@ -487,18 +629,25 @@ export default {
|
|
|
487
629
|
columns: [
|
|
488
630
|
{
|
|
489
631
|
title: this.$t1("通知时间"),
|
|
490
|
-
field: "
|
|
491
|
-
width:
|
|
632
|
+
field: "create_date",
|
|
633
|
+
width: 150,
|
|
492
634
|
},
|
|
493
635
|
{
|
|
494
636
|
title: this.$t1("消息类型"),
|
|
495
|
-
field: "
|
|
496
|
-
width:
|
|
637
|
+
field: "message_type",
|
|
638
|
+
width: 120,
|
|
639
|
+
slots: {
|
|
640
|
+
default: ({ row }) => {
|
|
641
|
+
return [
|
|
642
|
+
<span>{this.getMessageTypeName(row.message_type)}</span>,
|
|
643
|
+
];
|
|
644
|
+
},
|
|
645
|
+
},
|
|
497
646
|
},
|
|
498
647
|
{
|
|
499
648
|
title: this.$t1("业务单据号"),
|
|
500
|
-
field: "
|
|
501
|
-
minWidth:
|
|
649
|
+
field: "bill_order_no",
|
|
650
|
+
minWidth: 150,
|
|
502
651
|
slots: {
|
|
503
652
|
default: ({ row }) => {
|
|
504
653
|
return [
|
|
@@ -506,10 +655,10 @@ export default {
|
|
|
506
655
|
href="javascript:void(0);"
|
|
507
656
|
class="a-link"
|
|
508
657
|
onclick={() => {
|
|
509
|
-
this.
|
|
658
|
+
this.openOrderView(row);
|
|
510
659
|
}}
|
|
511
660
|
>
|
|
512
|
-
{row.
|
|
661
|
+
{row.bill_order_no}
|
|
513
662
|
</a>,
|
|
514
663
|
];
|
|
515
664
|
},
|
|
@@ -518,7 +667,7 @@ export default {
|
|
|
518
667
|
{
|
|
519
668
|
title: this.$t1("标题"),
|
|
520
669
|
field: "title",
|
|
521
|
-
minWidth:
|
|
670
|
+
minWidth: 150,
|
|
522
671
|
},
|
|
523
672
|
{
|
|
524
673
|
title: this.$t1("操作"),
|
|
@@ -554,7 +703,209 @@ export default {
|
|
|
554
703
|
});
|
|
555
704
|
},
|
|
556
705
|
handlePendingMessage(row) {
|
|
557
|
-
this.
|
|
706
|
+
this.dealRow = row || {};
|
|
707
|
+
this.dealForm = { deal_remark: "" };
|
|
708
|
+
this.dealSubmitting = false;
|
|
709
|
+
this.showDealDialog = true;
|
|
710
|
+
},
|
|
711
|
+
openOrderView(row) {
|
|
712
|
+
let dataId = row.id;
|
|
713
|
+
if (dataId == null) {
|
|
714
|
+
this.$message.warning(this.$t1("未找到工单"));
|
|
715
|
+
return;
|
|
716
|
+
}
|
|
717
|
+
this.wfContentOption = {
|
|
718
|
+
objId: dataId,
|
|
719
|
+
url: "form",
|
|
720
|
+
formCode: "fwm_so_order_view",
|
|
721
|
+
};
|
|
722
|
+
this.showWfDialog = true;
|
|
723
|
+
},
|
|
724
|
+
submitDealMessage() {
|
|
725
|
+
if (!this.dealRow || !this.dealRow.id) {
|
|
726
|
+
return;
|
|
727
|
+
}
|
|
728
|
+
this.dealSubmitting = true;
|
|
729
|
+
this.callFormScript({
|
|
730
|
+
url: YX_PREFIX + "/bd_api/fwm_so_order_message_list/doDealOrderMessage",
|
|
731
|
+
data: {
|
|
732
|
+
id: this.dealRow.id,
|
|
733
|
+
deal_remark: this.dealForm.deal_remark,
|
|
734
|
+
},
|
|
735
|
+
isLoading: true,
|
|
736
|
+
success: (res) => {
|
|
737
|
+
this.dealSubmitting = false;
|
|
738
|
+
this.showDealDialog = false;
|
|
739
|
+
this.$message.success(res.content || this.$t1("处理成功"));
|
|
740
|
+
this.getOrderCount(true);
|
|
741
|
+
this.getOrderMessage(true);
|
|
742
|
+
},
|
|
743
|
+
fail: (res, response) => {
|
|
744
|
+
this.dealSubmitting = false;
|
|
745
|
+
if (response && response.status == 200) {
|
|
746
|
+
this.$errorMsg(res);
|
|
747
|
+
}
|
|
748
|
+
},
|
|
749
|
+
});
|
|
750
|
+
},
|
|
751
|
+
getMessageTypeName(type) {
|
|
752
|
+
let map = {
|
|
753
|
+
1: this.$t1("工单"),
|
|
754
|
+
2: this.$t1("备件申请"),
|
|
755
|
+
3: this.$t1("结算"),
|
|
756
|
+
4: this.$t1("考核"),
|
|
757
|
+
};
|
|
758
|
+
return map[type] || type || "";
|
|
759
|
+
},
|
|
760
|
+
initServiceProviderRole() {
|
|
761
|
+
if (this.roleChecked) {
|
|
762
|
+
return;
|
|
763
|
+
}
|
|
764
|
+
let userId = this.$store.getters.userId || this.userInfo.id;
|
|
765
|
+
if (!userId) {
|
|
766
|
+
return;
|
|
767
|
+
}
|
|
768
|
+
this.roleChecked = true;
|
|
769
|
+
this.$http({
|
|
770
|
+
url: USER_PREFIX + "/user/getUserRole",
|
|
771
|
+
method: "post",
|
|
772
|
+
data: { id: userId },
|
|
773
|
+
failMsg: false,
|
|
774
|
+
errorMsg: false,
|
|
775
|
+
success: (res) => {
|
|
776
|
+
let rows = res.objx || [];
|
|
777
|
+
let codes = rows.map((row) => row.roleCode);
|
|
778
|
+
this.isServiceProvider =
|
|
779
|
+
codes.includes("yjfws") || codes.includes("ejfws");
|
|
780
|
+
if (this.isServiceProvider) {
|
|
781
|
+
this.getOrderCount(true);
|
|
782
|
+
this.getOrderMessage(true);
|
|
783
|
+
this.$nextTick(() => {
|
|
784
|
+
let grid = this.$refs["table-pending-msg"];
|
|
785
|
+
if (grid && grid.recalculate) {
|
|
786
|
+
grid.recalculate();
|
|
787
|
+
}
|
|
788
|
+
});
|
|
789
|
+
}
|
|
790
|
+
},
|
|
791
|
+
fail: () => {
|
|
792
|
+
this.roleChecked = false;
|
|
793
|
+
},
|
|
794
|
+
});
|
|
795
|
+
},
|
|
796
|
+
callFormScript(opts) {
|
|
797
|
+
let isLoading = opts.isLoading ?? true;
|
|
798
|
+
return this.$http({
|
|
799
|
+
url: opts.url,
|
|
800
|
+
method: "post",
|
|
801
|
+
data: opts.data || {},
|
|
802
|
+
isLoading,
|
|
803
|
+
modal: isLoading || false,
|
|
804
|
+
success: opts.success,
|
|
805
|
+
failMsg: false,
|
|
806
|
+
errorMsg: false,
|
|
807
|
+
fail:
|
|
808
|
+
opts.fail ||
|
|
809
|
+
((res, response) => {
|
|
810
|
+
if (response && response.status == 200) {
|
|
811
|
+
this.$errorMsg(res);
|
|
812
|
+
}
|
|
813
|
+
}),
|
|
814
|
+
});
|
|
815
|
+
},
|
|
816
|
+
getOrderCount(isLoading) {
|
|
817
|
+
if (!this.isServiceProvider || !this.activating) {
|
|
818
|
+
return;
|
|
819
|
+
}
|
|
820
|
+
this.callFormScript({
|
|
821
|
+
url: YX_PREFIX + "/bd_api/intf/getOrderCount",
|
|
822
|
+
isLoading,
|
|
823
|
+
success: (res) => {
|
|
824
|
+
let objx = res.objx || {};
|
|
825
|
+
this.shortcutItems.forEach((item) => {
|
|
826
|
+
item.count = objx[item.key] != null ? objx[item.key] : 0;
|
|
827
|
+
});
|
|
828
|
+
},
|
|
829
|
+
});
|
|
830
|
+
},
|
|
831
|
+
getOrderMessage(isLoading) {
|
|
832
|
+
if (!this.isServiceProvider || !this.activating) {
|
|
833
|
+
return;
|
|
834
|
+
}
|
|
835
|
+
this.callFormScript({
|
|
836
|
+
url: YX_PREFIX + "/bd_api/intf/getOrderMessage",
|
|
837
|
+
isLoading,
|
|
838
|
+
success: (res) => {
|
|
839
|
+
let objx = res.objx;
|
|
840
|
+
this.pendingMessageRows = Array.isArray(objx)
|
|
841
|
+
? objx
|
|
842
|
+
: (objx && objx.records) || [];
|
|
843
|
+
},
|
|
844
|
+
});
|
|
845
|
+
},
|
|
846
|
+
openShortcut(item) {
|
|
847
|
+
if (!item || !item.formCode) {
|
|
848
|
+
return;
|
|
849
|
+
}
|
|
850
|
+
this.openFormList(item.formCode, item.query);
|
|
851
|
+
},
|
|
852
|
+
openOrderMessageList() {
|
|
853
|
+
this.openFormList("fwm_so_order_message_list");
|
|
854
|
+
},
|
|
855
|
+
findFormPath(formCode) {
|
|
856
|
+
if (!formCode) {
|
|
857
|
+
return null;
|
|
858
|
+
}
|
|
859
|
+
let match = (path) => {
|
|
860
|
+
if (!path) {
|
|
861
|
+
return false;
|
|
862
|
+
}
|
|
863
|
+
let p = String(path).split("?")[0];
|
|
864
|
+
return p === formCode || p.endsWith("/" + formCode);
|
|
865
|
+
};
|
|
866
|
+
let walk = (routes) => {
|
|
867
|
+
for (let r of routes || []) {
|
|
868
|
+
if (match(r.path) || match(r.url)) {
|
|
869
|
+
let candidates = [r.path, r.url].filter(Boolean);
|
|
870
|
+
return (
|
|
871
|
+
candidates.find((p) => String(p).startsWith("/")) || candidates[0]
|
|
872
|
+
);
|
|
873
|
+
}
|
|
874
|
+
let found = walk(r.children);
|
|
875
|
+
if (found) {
|
|
876
|
+
return found;
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
return null;
|
|
880
|
+
};
|
|
881
|
+
return (
|
|
882
|
+
walk(this.$store.getters.permission_routes) ||
|
|
883
|
+
walk(this.$store.getters.add_routes) ||
|
|
884
|
+
walk(this.$store.getters.sidebarRouters)
|
|
885
|
+
);
|
|
886
|
+
},
|
|
887
|
+
openFormList(formCode, query) {
|
|
888
|
+
let path = this.findFormPath(formCode);
|
|
889
|
+
if (!path) {
|
|
890
|
+
this.$message.warning(this.$t1("未找到对应菜单"));
|
|
891
|
+
return;
|
|
892
|
+
}
|
|
893
|
+
path = String(path).split("?")[0];
|
|
894
|
+
let q = query || {};
|
|
895
|
+
let queryData = { ...q };
|
|
896
|
+
if (
|
|
897
|
+
formCode !== "fwm_so_order_list" &&
|
|
898
|
+
formCode !== "fwm_so_order_appeal_list"
|
|
899
|
+
) {
|
|
900
|
+
queryData.param = JSON.stringify(q);
|
|
901
|
+
}
|
|
902
|
+
let view = {
|
|
903
|
+
path,
|
|
904
|
+
query: queryData,
|
|
905
|
+
};
|
|
906
|
+
this.$store.dispatch("tagsView/delCachedView", view).then(() => {
|
|
907
|
+
this.$openView(view);
|
|
908
|
+
});
|
|
558
909
|
},
|
|
559
910
|
openWfDialog(row) {
|
|
560
911
|
this.wfContentOption = {
|
|
@@ -1040,6 +1391,18 @@ body #app .index-home {
|
|
|
1040
1391
|
}
|
|
1041
1392
|
}
|
|
1042
1393
|
|
|
1394
|
+
.deal-msg-form {
|
|
1395
|
+
padding: 8px 12px 0;
|
|
1396
|
+
|
|
1397
|
+
.deal-msg-content {
|
|
1398
|
+
max-height: 160px;
|
|
1399
|
+
overflow: auto;
|
|
1400
|
+
line-height: 20px;
|
|
1401
|
+
white-space: pre-wrap;
|
|
1402
|
+
word-break: break-all;
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1043
1406
|
.box-card .more {
|
|
1044
1407
|
background-color: #f7f7f7;
|
|
1045
1408
|
}
|