Parcourir la source

剥离receiptorder附件

Yannay il y a 2 mois
Parent
commit
70175ed982

+ 6 - 5
pages/orderDetailNew/components/orderDetailNewView.vue

@@ -2,11 +2,12 @@
2 2
     <view class="orderDetailNewView">
3 3
 
4 4
         <view class="page-item" v-show="activeIndex === 0">
5
-            <pageOne @handleNextClick="handleNextClick" :orderDetail="detail" :orderId="orderId" />
5
+            <pageOne @handleNextClick="handleNextClick" :orderDetail="detail" :orderId="orderId"
6
+                :currentReceipt="currentReceiptInner" />
6 7
         </view>
7 8
         <view class="page-item" v-show="activeIndex === 1">
8 9
             <pageTwo @handleNextClick="handleNextClick" :orderDetail="detail" :orderId="orderId"
9
-                :followUpList="followUpList" />
10
+                :currentReceipt="currentReceiptInner" :followUpList="followUpList" />
10 11
         </view>
11 12
         <view class="page-item" v-show="activeIndex === 2">
12 13
             <pageThree @handleNextClick="handleNextClick" :orderDetail="detail" @handleNeedSave="handleNeedSave"
@@ -113,7 +114,7 @@ export default {
113 114
             console.log("all page data:", this.allFroms[nowPage])
114 115
             // 当点击到第三页时,更新第三页的图片列表
115 116
             if (nowPage === 'formTwo') {
116
-                this.$refs.pageThreeComp.getList('2', '3');
117
+                this.$refs.pageThreeComp.getList('2', '3', this.currentReceiptInner.id);
117 118
             }
118 119
         },
119 120
         // 没有recepitid就新增
@@ -137,7 +138,7 @@ export default {
137 138
                 "updateTime": this.detail.updateTime,
138 139
                 // "remark": ,    //发单备注,先不传
139 140
                 "params": this.detail.params,     //看接口文档
140
-                "id": this.detail.receiptId,
141
+                "id": this.currentReceiptInner.id,
141 142
                 "sendFormId": this.orderId, //接单中心的id,就是接单中心列表的id(发单id)
142 143
                 "clueId": this.detail.clueId,
143 144
                 "item": this.detail.item,
@@ -208,7 +209,7 @@ export default {
208 209
                 "updateTime": this.detail.updateTime,
209 210
                 // "remark": ,    //发单备注,先不传
210 211
                 "params": this.detail.params,     //看接口文档
211
-                "id": this.detail.receiptId,
212
+                "id": this.currentReceiptInner.id,
212 213
                 "sendFormId": this.orderId, //接单中心的id,就是接单中心列表的id(发单id)
213 214
                 "clueId": this.detail.clueId,
214 215
                 "item": warehouseInfo.item || '',

+ 3 - 3
pages/orderDetailNew/components/pageFour.vue

@@ -291,7 +291,7 @@ export default {
291 291
                         remarks: data.receiptRemark?.split(';')[0] || '',//收单备注  截取备注第一部分
292 292
                     }
293 293
                     this.$nextTick(() => {
294
-                        this.getList()
294
+                        this.getShareList()
295 295
                     })
296 296
                 }
297 297
             },
@@ -436,7 +436,7 @@ export default {
436 436
         },
437 437
 
438 438
         //初始化分成比例
439
-        async getList() {
439
+        async getShareList() {
440 440
             const { rows, total } = await uni.$u.api.selectCommissionList({
441 441
                 pageSize: 9999,
442 442
                 pageNum: 1,
@@ -479,7 +479,7 @@ export default {
479 479
             try {
480 480
                 await uni.$u.api.deleteClueCommissionForm(id)
481 481
                 uni.$u.toast('删除成功')
482
-                this.getList()
482
+                this.getShareList()
483 483
             } catch (error) {
484 484
                 uni.$u.toast('删除失败,请稍后重试')
485 485
             }

+ 20 - 7
pages/orderDetailNew/components/pageOne.vue

@@ -19,7 +19,7 @@
19 19
                         <pic-comp :src="item.fileUrl"></pic-comp>
20 20
                         <view class="delete-btn" @click="deleteImage(item)">×</view>
21 21
                     </view>
22
-                    <view class="upload-btn" @click="uploadImage('truePic')">
22
+                    <view class="upload-btn" @click="uploadImage('truePic', currentReceipt.id)">
23 23
                         <u-icon name="plus" size="40" color="#999"></u-icon>
24 24
                     </view>
25 25
                 </view>
@@ -36,7 +36,7 @@
36 36
                         <pic-comp :src="item.fileUrl"></pic-comp>
37 37
                         <view class="delete-btn" @click="deleteImage(item)">×</view>
38 38
                     </view>
39
-                    <view class="upload-btn" @click="uploadImage('chatRecords')">
39
+                    <view class="upload-btn" @click="uploadImage('chatRecords', currentReceipt.id)">
40 40
                         <u-icon name="plus" size="40" color="#999"></u-icon>
41 41
                     </view>
42 42
                 </view>
@@ -101,7 +101,11 @@ export default {
101 101
         orderId: {
102 102
             type: String,
103 103
             default: '',
104
-        }
104
+        },
105
+        currentReceipt: {
106
+            type: Object,
107
+            default: () => { },
108
+        },
105 109
     },
106 110
     components: {
107 111
         picComp
@@ -119,12 +123,21 @@ export default {
119 123
         // 监听 props 变化,触发请求
120 124
         orderDetail: {
121 125
             handler(newVal) {
122
-                if (newVal) { // 确保 props 有值再执行
123
-                    this.getList('2', '1');
124
-                    this.getList('2', '2');
126
+                if (newVal) {
127
+                    console.log('orderDetail 变化了', newVal);
125 128
                 }
126 129
             }
127
-        }
130
+        },
131
+        currentReceipt: {
132
+            handler(newVal) {
133
+                console.log('currentReceipt 变化了', newVal);
134
+                if (newVal) {
135
+                    //刷新图片列表
136
+                    this.getList('2', '1', newVal.id);
137
+                    this.getList('2', '2', newVal.id);
138
+                }
139
+            }
140
+        },
128 141
     },
129 142
     methods: {
130 143
 

+ 32 - 14
pages/orderDetailNew/components/pageThree.vue

@@ -56,7 +56,7 @@
56 56
                         </view>
57 57
 
58 58
                         <!-- 上传按钮 -->
59
-                        <view class="detail-upload-btn" @click="uploadImage('detailImages')">
59
+                        <view class="detail-upload-btn" @click="uploadImage('detailImages', currentReceipt.id)">
60 60
                             <u-icon name="plus" size="40rpx" color="#999"></u-icon>
61 61
                         </view>
62 62
                     </view>
@@ -164,7 +164,6 @@ export default {
164 164
                     this.paymentInfo.bankAccount = newVal.bankCardNumber || ''
165 165
                     this.paymentInfo.idNumber = newVal.idCard || ''
166 166
                     this.paymentAmount = newVal.tableFee || '0.00'
167
-                    this.getList('2', '3');
168 167
                 }
169 168
             },
170 169
             deep: true,
@@ -174,6 +173,7 @@ export default {
174 173
                 if (newVal) {
175 174
                     console.log('这里是page3的', newVal.tableFee)
176 175
                     this.paymentAmount = newVal.tableFee || '0.00'
176
+                    this.getList('2', '3', newVal.id);
177 177
                 }
178 178
             },
179 179
             deep: true,
@@ -364,19 +364,7 @@ export default {
364 364
             });
365 365
         },
366 366
 
367
-        // 确认未收按钮点击事件
368
-        confirmUnpaid() {
369
-            console.log('确认未收,评分:', this.unpaidRating);
370
-            this.unpaidModelShow = false;
371
-            // 可以在这里添加提交评分的逻辑
372
-        },
373 367
 
374
-        // 确认跟进细节按钮点击事件
375
-        confirmFollowUp() {
376
-            console.log('确认跟进细节:', this.followUpNotes);
377
-            this.followUpModelShow = false;
378
-            // 可以在这里添加提交跟进细节的逻辑
379
-        },
380 368
 
381 369
         // 确认转账按钮点击事件
382 370
         confirmTransfer() {
@@ -396,6 +384,36 @@ export default {
396 384
                 }
397 385
             });
398 386
         },
387
+
388
+        // 确认未收按钮点击事件
389
+        async confirmUnpaid() {
390
+            console.log('确认未收,评分:', this.unpaidRating);
391
+            this.unpaidModelShow = false;
392
+            // 可以在这里添加提交评分的逻辑
393
+            // 未收的时候,提交一个跟进记录     未收评分_数字
394
+            const res = await uni.$u.api.addOrderFollow({
395
+                orderId: this.orderId,
396
+                content: `未收评分_${this.unpaidRating}`,
397
+            })
398
+            if (res.code == 200) {
399
+                uni.$u.toast('提交未收评级成功');
400
+            }
401
+        },
402
+
403
+        // 确认跟进细节按钮点击事件
404
+        async confirmFollowUp() {
405
+            console.log('确认跟进细节:', this.followUpNotes);
406
+            this.followUpModelShow = false;
407
+            // 可以在这里添加提交跟进细节的逻辑
408
+            // 未收的时候,提交一个跟进记录     待跟进_内容
409
+            const res = await uni.$u.api.addOrderFollow({
410
+                orderId: this.orderId,
411
+                content: `待跟进_${this.followUpNotes}`,
412
+            })
413
+            if (res.code == 200) {
414
+                uni.$u.toast('提交待跟进记录成功');
415
+            }
416
+        },
399 417
     }
400 418
 }
401 419
 </script>

+ 14 - 5
pages/orderDetailNew/components/pageTwo.vue

@@ -114,7 +114,7 @@
114 114
                             <pic-comp :src="item.fileUrl"></pic-comp>
115 115
                             <view class="detail-delete-btn" @click="deleteImage(item)">×</view>
116 116
                         </view>
117
-                        <view class="detail-upload-btn" @click="uploadImage('detailImages')">
117
+                        <view class="detail-upload-btn" @click="uploadImage('detailImages', currentReceipt.id)">
118 118
                             <u-icon name="plus" size="40rpx" color="#999"></u-icon>
119 119
                         </view>
120 120
                     </view>
@@ -144,14 +144,16 @@ export default {
144 144
             type: Array,
145 145
             default: () => [],
146 146
         },
147
+        currentReceipt: {
148
+            type: Object,
149
+            default: () => { },
150
+        },
147 151
 
148 152
     },
149 153
     watch: {
150 154
         orderDetail: {
151 155
             handler(newVal) {
152 156
                 if (newVal) {
153
-                    this.approvedPrice = Number(newVal.itemPrice) || 0;
154
-                    this.getList('2', '3');
155 157
                 }
156 158
             },
157 159
             deep: true,
@@ -167,6 +169,15 @@ export default {
167 169
             },
168 170
             deep: true,
169 171
         },
172
+        currentReceipt: {
173
+            handler(newVal) {
174
+                if (newVal) {
175
+                    this.approvedPrice = Number(newVal.sellingPrice) || 0;
176
+                    this.getList('2', '3', newVal.id);
177
+                }
178
+            },
179
+            deep: true,
180
+        },
170 181
     },
171 182
     components: {
172 183
         picComp
@@ -278,7 +289,6 @@ export default {
278 289
                 const data = `师傅拍图技巧;${photoTips};${urls}`;
279 290
                 console.log('urls9999999', data)
280 291
 
281
-                // 调用接口上传
282 292
                 await uni.$u.api.addOrderFollow({
283 293
                     orderId: this.orderId,
284 294
                     content: data,
@@ -291,7 +301,6 @@ export default {
291 301
 
292 302
 
293 303
                 const data = `到达客户面对面;${face2faceNotes};${urls}`;
294
-                // 调用接口上传
295 304
 
296 305
                 await uni.$u.api.addOrderFollow({
297 306
                     orderId: this.orderId,

+ 18 - 9
pages/orderDetailNew/index.vue

@@ -19,9 +19,9 @@
19 19
             </template>
20 20
         </u-navbar>
21 21
 
22
-        <u-sticky bgColor="#fff">
23
-            <u-tabs keyName="brand" :list="receiptList" @click="clickReceipt"></u-tabs>
24
-        </u-sticky>
22
+
23
+        <u-tabs keyName="brand" :list="receiptList" @click="clickReceipt"></u-tabs>
24
+
25 25
 
26 26
         <orderDetailNewView :detail="receiptDetail" :topInfo="topInfo" :orderId="orderId"
27 27
             :currentReceipt="currentReceipt" />
@@ -60,9 +60,9 @@ export default {
60 60
     data() {
61 61
         return {
62 62
             topInfo: {
63
-                brand: 'Hermes',
64
-                model: 'Birkin 30',
65
-                price: '125,000'
63
+                brand: '',
64
+                model: '',
65
+                price: ''
66 66
             },
67 67
             modalVisible: false,
68 68
             currentEditField: '',
@@ -89,7 +89,7 @@ export default {
89 89
                 brand: '',
90 90
             },
91 91
             brandColumns: [
92
-                ['中国', '美国', '日本']
92
+                []
93 93
             ],
94 94
             //当前选择的品牌
95 95
             currentAddBrand: {}
@@ -183,10 +183,17 @@ export default {
183 183
             if (res.code === 200) {
184 184
                 this.receiptList = res.data || [];
185 185
             }
186
+
187
+            // this.currentReceipt = this.receiptList[0] || {};
188
+            this.clickReceipt(this.receiptList[0])
186 189
         },
187 190
         clickReceipt(item) {
188 191
             // console.log('点击了', item);
189 192
             this.currentReceipt = item;
193
+            console.log(item)
194
+            this.topInfo.brand = item.brand || '暂无';
195
+            this.topInfo.model = item.model || '暂无';
196
+            this.topInfo.price = item.sellingPrice || '暂无';
190 197
         },
191 198
         async handleAddOneConfirm() {
192 199
             console.log('确认添加', this.currentAddBrand)
@@ -195,9 +202,11 @@ export default {
195 202
             await uni.$u.api.addReceiptForm({
196 203
                 brand: this.currentAddBrand.dictValue,
197 204
                 sendFormId: this.orderId,
198
-
199 205
             })
200
-
206
+            //刷新收单列表
207
+            this.getReceiptList();
208
+            //关闭模态窗
209
+            this.addOneModelShow = false
201 210
         }
202 211
     }
203 212
 }

+ 23 - 19
pages/orderDetailNew/mixin/imgUploadAndDownLoad.js

@@ -25,21 +25,22 @@ export default {
25 25
                             })
26 26
                         }
27 27
                         // 删除成功后刷新列表
28
-                        this.getList('2', '1');
29
-                        this.getList('2', '2');
30
-                        this.getList('2', '3');
28
+                        this.getList('2', '1', this.currentReceipt.id);
29
+                        this.getList('2', '2', this.currentReceipt.id);
30
+                        this.getList('2', '3', this.currentReceipt.id);
31 31
                     }
32 32
                 }
33 33
             })
34 34
         },
35 35
         //获取文件列表
36
-        async getList(type, orderFileType) {
37
-            console.log('获取文件列表', type, orderFileType)
38
-
36
+        async getList(type, orderFileType, receiptID) {
37
+            console.log('获取文件列表', type, receiptID)
38
+            // console.log('当前的订单id', this.orderDetail.id)
39
+            // console.log('当前的收单id', this.currentReceipt.id)
39 40
             try {
40 41
                 const params = {
41 42
                     clueId: this.orderDetail.clueId,
42
-                    sourceId: this.orderId,
43
+                    sourceId: this.currentReceipt.id,//默认先用receiptID查,如果没有返回情况下用orderID查
43 44
                     type,
44 45
                     orderFileType,
45 46
                     isDuplicate: '1',//先传1
@@ -48,11 +49,11 @@ export default {
48 49
                 }
49 50
                 const response = await uni.$u.api.selectClueFileByDto(params)
50 51
                 if (orderFileType == '1') {
51
-                    this.trueUploadList = response.rows || []
52
+                    this.trueUploadList = response.rows.filter(item => item.sourceId == receiptID) || []
52 53
                 } else if (orderFileType == '2') {
53
-                    this.chatRecordsUploadList = response.rows || []
54
+                    this.chatRecordsUploadList = response.rows.filter(item => item.sourceId == receiptID) || []
54 55
                 } else if (orderFileType == '3') {
55
-                    this.detailImages = response.rows || []
56
+                    this.detailImages = response.rows.filter(item => item.sourceId == receiptID) || []
56 57
                 }
57 58
             } catch (error) {
58 59
                 uni.$u.toast(`获取列表失败:${error.message}`)
@@ -61,7 +62,8 @@ export default {
61 62
             }
62 63
         },
63 64
         // 选择图片
64
-        uploadImage(type) {
65
+        uploadImage(type, receiptID) {
66
+            console.log('当前上传的receiptID是', receiptID)
65 67
             uni.chooseImage({
66 68
                 count: 9, // 最多选择9张
67 69
                 sizeType: ['compressed'], // 压缩图片
@@ -69,7 +71,7 @@ export default {
69 71
                 success: (res) => {
70 72
                     const tempFilePaths = res.tempFilePaths
71 73
                     console.log('上传的图片路径:11', tempFilePaths)
72
-                    this.uploadToServer(tempFilePaths, type)
74
+                    this.uploadToServer(tempFilePaths, type, receiptID)
73 75
                 },
74 76
                 fail: (err) => {
75 77
                     console.error('选择图片失败:', err)
@@ -77,7 +79,7 @@ export default {
77 79
             })
78 80
         },
79 81
         // 上传到服务器
80
-        async uploadToServer(filePaths, type) {
82
+        async uploadToServer(filePaths, type, receiptID) {
81 83
             // 实际的上传逻辑
82 84
             try {
83 85
                 //实物图的话就是1,聊天记录的话就是2,高清细节图的话就是3
@@ -85,11 +87,11 @@ export default {
85 87
                 console.log('当前上传的图片类型是', p)
86 88
                 const res = await Promise.all(filePaths.map(filePath => this.uploadFile(filePath, p)));
87 89
 
88
-                this.bindOrder(p);
90
+                this.bindOrder(p, receiptID);
89 91
 
90
-                this.getList('2', '1');
91
-                this.getList('2', '2');
92
-                this.getList('2', '3');
92
+                this.getList('2', '1', this.currentReceipt.id);
93
+                this.getList('2', '2', this.currentReceipt.id);
94
+                this.getList('2', '3', this.currentReceipt.id);
93 95
 
94 96
 
95 97
             } catch (error) {
@@ -124,11 +126,13 @@ export default {
124 126
             }
125 127
         },
126 128
         //绑定订单
127
-        async bindOrder(orderFileType) {
129
+        async bindOrder(orderFileType, receiptID) {
130
+            console.log('当前的收单id', receiptID)
128 131
             const res = await uni.$u.api.saveClueFile({
129 132
                 clueId: this.orderDetail.clueId,//线索id
130 133
                 list: this.bindList,
131
-                sourceId: this.orderId,//订单id,sendformid
134
+                // sourceId: this.orderId,//订单id,sendformid,之前是绑定在orderId上面,现在要修改绑定到receiptID上面
135
+                sourceId: receiptID,//receiptId,绑定的收单id
132 136
                 type: '2',
133 137
                 orderFileType: orderFileType
134 138
             });

+ 4 - 4
pages/pagereceivecenter/pagereceivecenter.vue

@@ -168,13 +168,13 @@ export default {
168 168
                         @click.stop="toOrderDetail(item)">
169 169
                         <view class="bandAndPrice">
170 170
                             <view class="bandName">{{ item.itemBrand || '暂无品牌' }}</view>
171
-                            <view class="price">¥{{ item.priceRange }}</view>
171
+                            <view class="price">¥{{ item.priceRange || '?' }}</view>
172 172
                         </view>
173 173
 
174 174
                         <view class="mainLind">
175
-                            <view class="mainLindImg">
176
-                                <image :src="'/static/acceptOrder/orderCardPic.jpg'" alt="" />
177
-                            </view>
175
+                            <!-- <view class="mainLindImg">
176
+                                <image :src="'/static/acceptOrder/orderCardPic.jpg'" v-if="item.src" />
177
+                            </view> -->
178 178
                             <view class="mainLindInfo">
179 179
                                 <view class="itemName">{{ item.item || '暂无项目' }}</view>
180 180
                                 <view>发单人:{{ item.createNickName || '未知' }}</view>