Просмотр исходного кода

增加接单中心page3page4页面

Yannay месяцев назад: 2
Родитель
Сommit
919efc9f07

+ 639 - 2
pages/orderDetailNew/components/pageFour.vue

@@ -1,5 +1,642 @@
1 1
 <template>
2
-    <view>
3
-        4
2
+    <view class="page-container">
3
+        <!-- 入库信息卡片 -->
4
+        <view class="card_wrap">
5
+            <view class="address-section">
6
+                <view class="address-header">
7
+                    <u-icon name="car-fill" size="36rpx" color="#108cff" class="location-icon"></u-icon>
8
+                    <text class="address-title">入库信息</text>
9
+                </view>
10
+                <!-- 编码和快递单号同一行 -->
11
+                <u-row class="info-row" justify="space-between">
12
+                    <u-col span="4.5">
13
+                        <view class="info-label">编码</view>
14
+                        <u--input v-model="warehouseInfo.accountHolder" placeholder="请输入编码" class="info-input" />
15
+                    </u-col>
16
+                    <u-col span="4.5">
17
+                        <view class="info-label">快递单号</view>
18
+                        <u--input v-model="warehouseInfo.bankName" placeholder="请输入快递单号" class="info-input" />
19
+                    </u-col>
20
+                    <u-col span="2">
21
+                        <view class="info-label">物流图片</view>
22
+                        <view class="image-uploader" @click="selectImage">
23
+                            <u-icon v-if="!warehouseInfo.uploadedImage" name="camera-fill" size="48rpx" color="#909399"
24
+                                class="camera-icon"></u-icon>
25
+                            <image v-else :src="warehouseInfo.uploadedImage" mode="aspectFill" class="image-preview">
26
+                            </image>
27
+                        </view>
28
+                    </u-col>
29
+                </u-row>
30
+
31
+                <!-- 单独一行的收单物品 -->
32
+                <u-row class="info-row">
33
+                    <u-col span="12">
34
+                        <view class="info-label">收单物品</view>
35
+                        <u--input v-model="warehouseInfo.item" placeholder="请输入收单物品" class="info-input" />
36
+                    </u-col>
37
+                </u-row>
38
+
39
+                <!-- 查码费和表款同一行 -->
40
+                <u-row class="info-row" justify="space-between">
41
+                    <u-col span="5.8">
42
+                        <view class="info-label">查码费</view>
43
+                        <u--input v-model="warehouseInfo.checkCodeFee" placeholder="请输入查码费" class="info-input"
44
+                            type="number" />
45
+                    </u-col>
46
+                    <u-col span="5.8">
47
+                        <view class="info-label">表款</view>
48
+                        <u--input v-model="warehouseInfo.tableFee" placeholder="请输入表款" class="info-input"
49
+                            type="number" />
50
+                    </u-col>
51
+                </u-row>
52
+
53
+                <!-- 维修金额和毛业绩同一行 -->
54
+                <u-row class="info-row" justify="space-between">
55
+                    <u-col span="5.8">
56
+                        <view class="info-label">维修金额</view>
57
+                        <u--input v-model="warehouseInfo.repairAmount" placeholder="请输入维修金额" class="info-input"
58
+                            type="number" />
59
+                    </u-col>
60
+                    <u-col span="5.8">
61
+                        <view class="info-label">毛业绩</view>
62
+                        <u--input v-model="warehouseInfo.grossPerformance" placeholder="请输入毛业绩" class="info-input"
63
+                            type="number" />
64
+                    </u-col>
65
+                </u-row>
66
+
67
+                <!-- 收单备注 -->
68
+                <u-row class="info-row">
69
+                    <u-col span="12">
70
+                        <view class="info-label">收单备注</view>
71
+                        <u--textarea v-model="warehouseInfo.remarks" placeholder="请输入收单备注" class="info-input"
72
+                            confirmType="done" rows="4" />
73
+
74
+                    </u-col>
75
+                </u-row>
76
+            </view>
77
+        </view>
78
+
79
+        <!-- 新添加的卡片 -->
80
+        <view class="card_wrap">
81
+            <view class="address-section">
82
+                <view class="address-header">
83
+                    <u-icon name="list" size="36rpx" color="#108cff" class="location-icon"></u-icon>
84
+                    <text class="address-title">分成信息</text>
85
+                    <u-button type="primary" plain shape="circle" size="mini" class="add-button" @click="addSplit">
86
+                        <u-icon name="plus" size="24rpx" color="#108cff"></u-icon>
87
+                        <text>添加</text>
88
+                    </u-button>
89
+                </view>
90
+            </view>
91
+            <!-- 分成信息表格 -->
92
+            <view class="split-table">
93
+                <u-row class="split-table-header">
94
+                    <u-col span="2">
95
+                        <text class="header-text">关联</text>
96
+                    </u-col>
97
+                    <u-col span="2">
98
+                        <text class="header-text">账户类型</text>
99
+                    </u-col>
100
+                    <u-col span="2">
101
+                        <text class="header-text">分成人</text>
102
+                    </u-col>
103
+                    <u-col span="2">
104
+                        <text class="header-text">比例(%)</text>
105
+                    </u-col>
106
+                    <u-col span="2">
107
+                        <text class="header-text">归属公司</text>
108
+                    </u-col>
109
+                    <u-col span="2" class="action-column">
110
+                        <text class="header-text">操作</text>
111
+                    </u-col>
112
+                </u-row>
113
+                <u-row v-for="(item, index) in profitSharingList" :key="item.id" class="split-table-row">
114
+                    <u-col span="2">
115
+                        <view class="table-cell">
116
+                            <select v-model="item.association" class="custom-select">
117
+                                <option value="">无</option>
118
+                                <option v-for="option in associationOptions" :key="option" :value="option">
119
+                                    {{ option }}
120
+                                </option>
121
+                            </select>
122
+                        </view>
123
+                    </u-col>
124
+                    <u-col span="2">
125
+                        <view class="table-cell">
126
+                            <view :class="['account-type', item.accountType === 'frontend' ? 'frontend' : 'backend']"
127
+                                @click="toggleAccountType(item)" style="cursor: pointer;">
128
+                                {{ item.accountType === 'frontend' ? '前' : '后' }}
129
+                            </view>
130
+                        </view>
131
+                    </u-col>
132
+                    <u-col span="2">
133
+                        <view class="table-cell">
134
+                            <select v-model="item.person" class="custom-select">
135
+                                <option value="">无</option>
136
+                                <option v-for="person in personOptions" :key="person" :value="person">
137
+                                    {{ person }}
138
+                                </option>
139
+                            </select>
140
+                        </view>
141
+                    </u-col>
142
+                    <u-col span="2">
143
+                        <view class="table-cell">
144
+                            <u--input v-model="item.percentage" type="number" class="percentage-input"
145
+                                @input="handlePercentageInput(item)" min="0" max="100" precision="0" />
146
+                        </view>
147
+                    </u-col>
148
+                    <u-col span="2">
149
+                        <view class="table-cell">
150
+                            <view class="radio-wrapper" @click="toggleBelongToCompany(item)">
151
+                                <view :class="['radio-circle', item.belongToCompany ? 'active' : '']">
152
+                                    <u-icon v-if="item.belongToCompany" name="checkmark" size="20rpx"
153
+                                        color="#fff"></u-icon>
154
+                                </view>
155
+                            </view>
156
+                        </view>
157
+                    </u-col>
158
+                    <u-col span="2" class="action-column">
159
+                        <view class="table-cell">
160
+                            <u-button type="error" plain shape="circle" size="mini" @click="deleteSplit(index)"
161
+                                :disabled="profitSharingList.length <= 1">
162
+                                <u-icon name="trash" size="20rpx" color="#ff6b6b"></u-icon>
163
+                            </u-button>
164
+                        </view>
165
+                    </u-col>
166
+                </u-row>
167
+            </view>
168
+        </view>
4 169
     </view>
5 170
 </template>
171
+
172
+<script>
173
+export default {
174
+    data() {
175
+        return {
176
+            // 入库信息相关的数据
177
+            warehouseInfo: {
178
+                accountHolder: '',
179
+                bankName: '',
180
+                item: '',
181
+                checkCodeFee: '',
182
+                tableFee: '',
183
+                repairAmount: '',
184
+                grossPerformance: '',
185
+                remarks: '',
186
+                uploadedImage: ''
187
+            },
188
+            // 分成信息相关的数据
189
+            profitSharingList: [
190
+                {
191
+                    id: Date.now() + '_1', // 唯一ID
192
+                    association: '', // 关联
193
+                    accountType: 'frontend', // 账户类型:frontend(前端)/backend(后端)
194
+                    person: '', // 分成人
195
+                    percentage: 100, // 分成比例
196
+                    belongToCompany: false // 归属公司
197
+                }
198
+            ],
199
+            // 关联选项列表
200
+            associationOptions: ['选项1', '选项2', '选项3'],
201
+            // 分成人选项列表
202
+            personOptions: ['人员A', '人员B', '人员C']
203
+        };
204
+    },
205
+    methods: {
206
+        // 选择图片
207
+        selectImage() {
208
+            uni.chooseImage({
209
+                count: 1,
210
+                sizeType: ['original', 'compressed'],
211
+                sourceType: ['album', 'camera'],
212
+                success: (res) => {
213
+                    const tempFilePath = res.tempFilePaths[0];
214
+                    this.warehouseInfo.uploadedImage = tempFilePath;
215
+                }
216
+            });
217
+        },
218
+        // 添加分成行
219
+        addSplit() {
220
+            // 生成唯一ID
221
+            const newId = Date.now() + '_' + (this.profitSharingList.length + 1);
222
+            // 添加新行
223
+            this.profitSharingList.push({
224
+                id: newId,
225
+                association: '',
226
+                accountType: 'frontend',
227
+                person: '',
228
+                percentage: 0,
229
+                belongToCompany: false
230
+            });
231
+            // 重新计算所有行的比例
232
+            this.recalculatePercentage();
233
+        },
234
+        // 删除分成行
235
+        deleteSplit(index) {
236
+            if (this.profitSharingList.length <= 1) {
237
+                return; // 至少保留一行
238
+            }
239
+            // 删除对应行
240
+            this.profitSharingList.splice(index, 1);
241
+            // 重新计算所有行的比例
242
+            this.recalculatePercentage();
243
+        },
244
+        // 重新计算分成比例
245
+        recalculatePercentage() {
246
+            const totalRows = this.profitSharingList.length;
247
+            if (totalRows > 0) {
248
+                // 计算平均比例(向下取整)
249
+                const avgPercentage = Math.floor(100 / totalRows);
250
+                // 设置所有行的比例
251
+                this.profitSharingList.forEach(item => {
252
+                    item.percentage = avgPercentage;
253
+                });
254
+            }
255
+        },
256
+        // 切换账户类型
257
+        toggleAccountType(item) {
258
+            item.accountType = item.accountType === 'frontend' ? 'backend' : 'frontend';
259
+        },
260
+        // 处理百分比输入
261
+        handlePercentageInput(item) {
262
+            // 确保输入是数字
263
+            let value = Number(item.percentage);
264
+
265
+            // 验证输入值是否在有效范围内(0-100)
266
+            if (isNaN(value)) {
267
+                item.percentage = 0;
268
+            } else if (value < 0) {
269
+                item.percentage = 0;
270
+            } else if (value > 100) {
271
+                item.percentage = 100;
272
+            } else {
273
+                // 确保是整数
274
+                item.percentage = Math.floor(value);
275
+            }
276
+        },
277
+        // 切换归属公司状态
278
+        toggleBelongToCompany(item) {
279
+            item.belongToCompany = !item.belongToCompany;
280
+        }
281
+    }
282
+}
283
+</script>
284
+
285
+<style lang="scss" scoped>
286
+// 导入公共样式
287
+@import './common.scss';
288
+
289
+// 主样式
290
+.page-container {
291
+    box-sizing: border-box;
292
+    padding: 0;
293
+    background-color: map-get($colors, bg);
294
+    font-family: map-get($font, family);
295
+    -webkit-font-smoothing: map-get($font, smoothing);
296
+    font-smoothing: map-get($font, smoothing);
297
+}
298
+
299
+.address-section {
300
+    padding: map-get($sizes, padding-sm) map-get($sizes, padding);
301
+
302
+    .u-col {
303
+        padding: 0;
304
+        box-sizing: border-box;
305
+    }
306
+
307
+    .u-col:first-child {
308
+        padding-right: 15rpx;
309
+    }
310
+
311
+    .u-col:last-child {
312
+        padding-left: 15rpx;
313
+    }
314
+}
315
+
316
+// 表单行样式
317
+.info-row {
318
+    margin-bottom: 20rpx;
319
+    box-sizing: border-box;
320
+    padding: 0;
321
+}
322
+
323
+// 表单标签样式
324
+.info-label {
325
+    @include font-styles($size: tiny, $weight: regular, $color: tertiary);
326
+    margin-bottom: 8rpx;
327
+    display: block;
328
+}
329
+
330
+// 输入框样式
331
+.info-input {
332
+    height: 65rpx;
333
+    border-radius: 8rpx;
334
+    border: 1rpx solid #e5e7eb;
335
+    padding: 20rpx 16rpx;
336
+    width: 100%;
337
+    box-sizing: border-box;
338
+    @include font-styles($size: small, $weight: regular, $color: secondary);
339
+
340
+    // textarea特殊样式
341
+    &[type="textarea"] {
342
+        min-height: 160rpx;
343
+        resize: vertical;
344
+        padding-top: 20rpx;
345
+        padding-bottom: 20rpx;
346
+    }
347
+}
348
+
349
+// 图片上传样式
350
+.image-uploader {
351
+    width: 100%;
352
+    height: 65rpx;
353
+    border: 2rpx dashed #409eff;
354
+    border-radius: 8rpx;
355
+    display: flex;
356
+    align-items: center;
357
+    justify-content: center;
358
+    cursor: pointer;
359
+    background-color: #ecf5ff;
360
+    box-sizing: border-box;
361
+    overflow: hidden;
362
+    transition: all 0.3s ease;
363
+
364
+    &:hover {
365
+        border-color: #66b1ff;
366
+        background-color: #f0f9ff;
367
+        transform: scale(1.02);
368
+    }
369
+}
370
+
371
+.camera-icon {
372
+    margin: 0;
373
+    font-size: 32rpx;
374
+    color: #409eff;
375
+    transition: all 0.3s ease;
376
+}
377
+
378
+.image-uploader:hover .camera-icon {
379
+    color: #66b1ff;
380
+    transform: scale(1.1);
381
+}
382
+
383
+.image-preview {
384
+    width: 100%;
385
+    height: 100%;
386
+    object-fit: cover;
387
+    border-radius: 10rpx;
388
+    box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
389
+    transition: all 0.3s ease;
390
+}
391
+
392
+.image-uploader:hover .image-preview {
393
+    transform: scale(1.02);
394
+    box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.15);
395
+}
396
+
397
+.hidden-input {
398
+    display: none;
399
+}
400
+
401
+// 分成信息卡片样式
402
+.address-header {
403
+    display: flex;
404
+    align-items: center;
405
+    justify-content: space-between;
406
+    margin-bottom: 20rpx;
407
+
408
+    .address-title {
409
+        @include font-styles($size: small, $weight: medium, $color: primary);
410
+        margin-left: 10rpx;
411
+    }
412
+}
413
+
414
+.split-content {
415
+    padding: 10rpx 0;
416
+}
417
+
418
+.split-item {
419
+    display: flex;
420
+    justify-content: space-between;
421
+    align-items: center;
422
+    padding: 15rpx 0;
423
+    border-bottom: 1rpx solid map-get($colors, border);
424
+
425
+    &:last-child {
426
+        border-bottom: none;
427
+    }
428
+}
429
+
430
+.split-label {
431
+    @include font-styles($size: tiny, $weight: regular, $color: tertiary);
432
+}
433
+
434
+.split-value {
435
+    @include font-styles($size: small, $weight: regular, $color: secondary);
436
+}
437
+
438
+.add-button {
439
+    padding: 0;
440
+    width: 50rpx;
441
+    height: 50rpx;
442
+    display: flex;
443
+    align-items: center;
444
+    justify-content: center;
445
+}
446
+
447
+/* 分成信息表格样式 */
448
+.split-table {
449
+    width: 100%;
450
+    margin-top: 20rpx;
451
+    background-color: #fff;
452
+    border-radius: 8rpx;
453
+    overflow: hidden;
454
+}
455
+
456
+.split-table-header {
457
+    background-color: #f5f7fa;
458
+    padding: 15rpx 0;
459
+    border-bottom: 1rpx solid #e4e7ed;
460
+}
461
+
462
+.split-table-row {
463
+    padding: 15rpx 0;
464
+    border-bottom: 1rpx solid #e4e7ed;
465
+    align-items: center;
466
+
467
+    &:last-child {
468
+        border-bottom: none;
469
+    }
470
+}
471
+
472
+.header-text {
473
+    @include font-styles($size: tiny, $weight: regular, $color: tertiary);
474
+    text-align: center;
475
+    display: block;
476
+}
477
+
478
+.table-cell {
479
+    display: flex;
480
+    align-items: center;
481
+    justify-content: center;
482
+    padding: 0 10rpx;
483
+    box-sizing: border-box;
484
+}
485
+
486
+.action-column {
487
+    display: flex;
488
+    align-items: center;
489
+    justify-content: center;
490
+}
491
+
492
+/* 自定义下拉框样式 - 隐藏原生箭头 */
493
+.custom-select {
494
+    width: 100%;
495
+    height: 50rpx;
496
+    border-radius: 0;
497
+    border: 1rpx solid #e5e7eb;
498
+    padding: 0 25rpx 0 12rpx;
499
+    /* 增加右侧内边距,为自定义箭头留出空间 */
500
+    @include font-styles($size: tiny, $weight: regular, $color: secondary);
501
+    background-color: #fff;
502
+    /* 确保隐藏所有浏览器的原生箭头 */
503
+    appearance: none !important;
504
+    -webkit-appearance: none !important;
505
+    -moz-appearance: none !important;
506
+    -o-appearance: none !important;
507
+    cursor: pointer;
508
+    /* 使用自定义SVG箭头 */
509
+    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23909399' d='M6 8l-4-4h8z'/%3E%3C/svg%3E");
510
+    background-repeat: no-repeat;
511
+    background-position: right 8rpx center;
512
+    background-size: 12rpx 12rpx;
513
+    box-sizing: border-box;
514
+    position: relative;
515
+
516
+    /* 防止箭头在焦点状态下显示 */
517
+    &:focus {
518
+        outline: none;
519
+        border-color: #409eff;
520
+        box-shadow: 0 0 0 2rpx rgba(64, 158, 255, 0.2);
521
+    }
522
+
523
+    /* 针对IE/Edge浏览器的特殊处理 */
524
+    &::-ms-expand {
525
+        display: none !important;
526
+    }
527
+
528
+    /* 针对某些旧版浏览器的额外处理 */
529
+    &::-webkit-select-arrow {
530
+        display: none !important;
531
+    }
532
+
533
+    /* 添加伪元素覆盖可能残留的箭头 */
534
+    &::after {
535
+        content: '';
536
+        position: absolute;
537
+        right: 8rpx;
538
+        top: 50%;
539
+        transform: translateY(-50%);
540
+        width: 12rpx;
541
+        height: 12rpx;
542
+        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23909399' d='M6 8l-4-4h8z'/%3E%3C/svg%3E");
543
+        background-repeat: no-repeat;
544
+        background-size: 100% 100%;
545
+        pointer-events: none;
546
+        z-index: 1;
547
+    }
548
+}
549
+
550
+/* 百分比输入框样式 */
551
+.percentage-input {
552
+    text-align: center;
553
+    background-color: #f9f9f9;
554
+    color: #606266;
555
+}
556
+
557
+/* 账户类型标签样式 */
558
+.account-type {
559
+    padding: 4rpx 16rpx;
560
+    border-radius: 12rpx;
561
+    font-size: 24rpx;
562
+    font-weight: 500;
563
+    color: #fff;
564
+    text-align: center;
565
+}
566
+
567
+.account-type.frontend {
568
+    background-color: #409eff;
569
+}
570
+
571
+.account-type.backend {
572
+    background-color: #909399;
573
+}
574
+
575
+/* 调整表格布局,使其更紧凑 */
576
+.split-table {
577
+    width: 100%;
578
+    margin-top: 10rpx;
579
+}
580
+
581
+.split-table-header,
582
+.split-table-row {
583
+    padding: 10rpx 0;
584
+}
585
+
586
+.table-cell {
587
+    padding: 0 5rpx;
588
+}
589
+
590
+/* 调整输入框样式 */
591
+.percentage-input {
592
+    width: 80%;
593
+    height: 50rpx;
594
+    font-size: 28rpx;
595
+}
596
+
597
+/* 归属公司单选框样式 */
598
+.radio-wrapper {
599
+    cursor: pointer;
600
+    display: flex;
601
+    align-items: center;
602
+    justify-content: center;
603
+}
604
+
605
+.radio-circle {
606
+    width: 32rpx;
607
+    height: 32rpx;
608
+    border-radius: 50%;
609
+    border: 2rpx solid #dcdfe6;
610
+    display: flex;
611
+    align-items: center;
612
+    justify-content: center;
613
+    transition: all 0.3s ease;
614
+}
615
+
616
+.radio-circle.active {
617
+    border-color: #67c23a;
618
+    background-color: #67c23a;
619
+}
620
+
621
+/* 响应式布局调整 */
622
+@media screen and (max-width: 750rpx) {
623
+    .split-table {
624
+        overflow-x: auto;
625
+    }
626
+
627
+    .custom-select {
628
+        width: 100%;
629
+    }
630
+
631
+    .account-type {
632
+        padding: 2rpx 10rpx;
633
+        font-size: 22rpx;
634
+    }
635
+}
636
+
637
+@media screen and (min-width: 751rpx) {
638
+    .table-cell {
639
+        padding: 0 10rpx;
640
+    }
641
+}
642
+</style>

+ 129 - 2
pages/orderDetailNew/components/pageThree.vue

@@ -78,6 +78,49 @@
78 78
                 </view>
79 79
             </view>
80 80
         </view>
81
+        <u-button @click="handleNextClick" type="primary" size="middle" style="border-radius: 20rpx;">下一步</u-button>
82
+
83
+        <u-modal :show="unpaidModelShow" :title="'未收评级'" :showConfirmButton="false">
84
+            <view class="modal-content">
85
+                <u-rate v-model="unpaidRating" :count="5" :size="50" active-color="#ff9500"></u-rate>
86
+                <u-button type="primary" size="large" @click="confirmUnpaid" style="margin-top: 40rpx;">确认未收</u-button>
87
+            </view>
88
+        </u-modal>
89
+
90
+        <u-modal :show="followUpModelShow" :title="'填写跟进细节'" :showConfirmButton="false">
91
+            <view class="modal-content">
92
+                <u--textarea v-model="followUpNotes" placeholder="请输入情况" confirm-type="done"
93
+                    style="width: 100%; margin-bottom: 30rpx;"></u--textarea>
94
+                <u-button type="primary" size="large" @click="confirmFollowUp">确认</u-button>
95
+            </view>
96
+        </u-modal>
97
+
98
+        <u-modal :show="payNowModelShow" :title="'确认支付信息'" :showConfirmButton="false">
99
+            <view class="modal-content">
100
+                <!-- 支付金额显示 -->
101
+                <view class="payment-amount-display">¥0.00</view>
102
+
103
+                <!-- 支付信息区域 -->
104
+                <view class="payment-info-section">
105
+                    <view class="info-item">
106
+                        <text class="info-label">收款姓名:</text>
107
+                        <text class="info-value">{{ paymentInfo.accountHolder || '未填写' }}</text>
108
+                    </view>
109
+                    <view class="info-item">
110
+                        <text class="info-label">开户银行:</text>
111
+                        <text class="info-value">{{ paymentInfo.bankName || '未填写' }}</text>
112
+                    </view>
113
+                    <view class="info-item">
114
+                        <text class="info-label">银行卡号:</text>
115
+                        <text class="info-value">{{ paymentInfo.bankAccount || '未填写' }}</text>
116
+                    </view>
117
+                </view>
118
+
119
+                <!-- 确认转账按钮 -->
120
+                <u-button type="primary" size="large" @click="confirmTransfer"
121
+                    style="margin-top: 40rpx;">确认转账</u-button>
122
+            </view>
123
+        </u-modal>
81 124
     </view>
82 125
 </template>
83 126
 
@@ -96,6 +139,12 @@ export default {
96 139
     },
97 140
     data() {
98 141
         return {
142
+            unpaidModelShow: false,
143
+            followUpModelShow: false,
144
+            payNowModelShow: false,
145
+            unpaidRating: 0, // 未收评级
146
+            followUpNotes: '', // 跟进细节
147
+
99 148
             // 支付信息
100 149
             paymentInfo: {
101 150
                 accountHolder: '', // 开户人
@@ -227,11 +276,12 @@ export default {
227 276
 
228 277
         // 下一步按钮点击事件
229 278
         handleNextClick() {
279
+            console.log('page3点击了下一步按钮');
230 280
             this.$emit('handleNextClick', {
231 281
                 nowPage: 'formThree',
232 282
                 form: {
233
-                    detailImages: this.localDetailImages,
234
-                    paymentInfo: this.paymentInfo
283
+                    // detailImages: this.localDetailImages,
284
+                    // paymentInfo: this.paymentInfo
235 285
                 }
236 286
             });
237 287
         },
@@ -239,16 +289,40 @@ export default {
239 289
         // 未收按钮点击事件
240 290
         handleUnpaidClick() {
241 291
             console.log('点击了未收按钮');
292
+            this.unpaidModelShow = true;
242 293
         },
243 294
 
244 295
         // 待跟进按钮点击事件
245 296
         handleFollowUpClick() {
246 297
             console.log('点击了待跟进按钮');
298
+            this.followUpModelShow = true;
247 299
         },
248 300
 
249 301
         // 立即支付按钮点击事件
250 302
         handlePayNowClick() {
251 303
             console.log('点击了立即支付按钮');
304
+            this.payNowModelShow = true;
305
+        },
306
+
307
+        // 确认未收按钮点击事件
308
+        confirmUnpaid() {
309
+            console.log('确认未收,评分:', this.unpaidRating);
310
+            this.unpaidModelShow = false;
311
+            // 可以在这里添加提交评分的逻辑
312
+        },
313
+
314
+        // 确认跟进细节按钮点击事件
315
+        confirmFollowUp() {
316
+            console.log('确认跟进细节:', this.followUpNotes);
317
+            this.followUpModelShow = false;
318
+            // 可以在这里添加提交跟进细节的逻辑
319
+        },
320
+
321
+        // 确认转账按钮点击事件
322
+        confirmTransfer() {
323
+            console.log('确认转账');
324
+            this.payNowModelShow = false;
325
+            // 可以在这里添加转账确认的逻辑
252 326
         }
253 327
     }
254 328
 }
@@ -520,4 +594,57 @@ export default {
520 594
     font-weight: 500;
521 595
     color: inherit;
522 596
 }
597
+
598
+/* 模态框内容样式 */
599
+.modal-content {
600
+    width: 100%;
601
+    padding: 40rpx 20rpx;
602
+    display: flex;
603
+    flex-direction: column;
604
+    align-items: center;
605
+}
606
+
607
+/* 支付金额显示样式 */
608
+.payment-amount-display {
609
+    font-size: 64rpx;
610
+    font-weight: bold;
611
+    color: #108cff;
612
+    text-align: center;
613
+    margin-bottom: 40rpx;
614
+    width: 100%;
615
+}
616
+
617
+/* 支付信息区域样式 */
618
+.payment-info-section {
619
+    width: 100%;
620
+    background-color: #f5f7fa;
621
+    border: 2rpx solid #e5e7eb;
622
+    border-radius: 12rpx;
623
+    padding: 30rpx 20rpx;
624
+    margin-bottom: 40rpx;
625
+}
626
+
627
+/* 信息项样式 */
628
+.info-item {
629
+    display: flex;
630
+    margin-bottom: 20rpx;
631
+    align-items: center;
632
+    justify-content: space-between;
633
+}
634
+
635
+.info-item:last-child {
636
+    margin-bottom: 0;
637
+}
638
+
639
+.info-label {
640
+    font-size: 28rpx;
641
+    color: #666;
642
+    width: 200rpx;
643
+}
644
+
645
+.info-value {
646
+    font-size: 28rpx;
647
+    color: #333;
648
+
649
+}
523 650
 </style>