update: 待出货接口对接
|  | @ -12,7 +12,7 @@ | ||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
| const getDetail = () => { | const getDetail = () => { | ||||||
|   uni.navigateTo({ |   uni.navigateTo({ | ||||||
|     url: "/pages/statistics/customer/detail", // 要跳转到的页面路径 |     url: "/pagesStatistics/customer/detail", // 要跳转到的页面路径 | ||||||
|   }); |   }); | ||||||
| } | } | ||||||
| </script> | </script> | ||||||
|  | @ -25,7 +25,7 @@ const list = reactive([ | ||||||
| ]); | ]); | ||||||
| const getDetail = (item: any) => { | const getDetail = (item: any) => { | ||||||
|   uni.navigateTo({ |   uni.navigateTo({ | ||||||
|     url: "/pages/statistics/customer/billDetail", // 要跳转到的页面路径 |     url: "/pagesStatistics/customer/billDetail", // 要跳转到的页面路径 | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  | @ -31,7 +31,7 @@ | ||||||
| </template> | </template> | ||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
| 
 | 
 | ||||||
| import CEcharts from "../../components/Echarts/echarts.vue"; | import CEcharts from "@/components/Echarts/echarts.vue"; | ||||||
| import ProductTypeDialog from './components/ProductTypeDialog.vue' | import ProductTypeDialog from './components/ProductTypeDialog.vue' | ||||||
| const option = ref({ | const option = ref({ | ||||||
|   tooltip: { |   tooltip: { | ||||||
|  | @ -23,8 +23,8 @@ | ||||||
|   </Box> |   </Box> | ||||||
| </template> | </template> | ||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
| import Box from "../../components/Box/index.vue"; | import Box from "@/components/Box/index.vue"; | ||||||
| import Title from "../../components/Title/index.vue"; | import Title from "@/components/Title/index.vue"; | ||||||
| const list = reactive([ | const list = reactive([ | ||||||
|   { |   { | ||||||
|     title: "收货", |     title: "收货", | ||||||
|  | @ -36,7 +36,7 @@ const list = reactive([ | ||||||
|         title: "收货汇总", |         title: "收货汇总", | ||||||
|         fn: (item: any) => { |         fn: (item: any) => { | ||||||
|           uni.navigateTo({ |           uni.navigateTo({ | ||||||
|             url: "/pages/statistics/receivePanel", // 要跳转到的页面路径 |             url: "/pagesStatistics/receivePanel", // 要跳转到的页面路径 | ||||||
|           }) |           }) | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -47,7 +47,7 @@ const list = reactive([ | ||||||
|         title: "供应商排行", |         title: "供应商排行", | ||||||
|         fn: (item: any) => { |         fn: (item: any) => { | ||||||
|           uni.navigateTo({ |           uni.navigateTo({ | ||||||
|             url: "/pages/statistics/supplierRanking", // 要跳转到的页面路径 |             url: "/pagesStatistics/supplierRanking", // 要跳转到的页面路径 | ||||||
|           }) |           }) | ||||||
|         } |         } | ||||||
|          |          | ||||||
|  | @ -64,7 +64,7 @@ const list = reactive([ | ||||||
|         title: "出货汇总", |         title: "出货汇总", | ||||||
|         fn: (item: any) => { |         fn: (item: any) => { | ||||||
|           uni.navigateTo({ |           uni.navigateTo({ | ||||||
|             url: "/pages/statistics/shipmentPanel", // 要跳转到的页面路径 |             url: "/pagesStatistics/shipmentPanel", // 要跳转到的页面路径 | ||||||
|           }) |           }) | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -75,7 +75,7 @@ const list = reactive([ | ||||||
|         title: "客户排行", |         title: "客户排行", | ||||||
|         fn: (item: any) => { |         fn: (item: any) => { | ||||||
|           uni.navigateTo({ |           uni.navigateTo({ | ||||||
|             url: "/pages/statistics/customerRanking", // 要跳转到的页面路径 |             url: "/pagesStatistics/customerRanking", // 要跳转到的页面路径 | ||||||
|           }) |           }) | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -91,7 +91,7 @@ const list = reactive([ | ||||||
|         title: "经营概况", |         title: "经营概况", | ||||||
|         fn: (item: any) => { |         fn: (item: any) => { | ||||||
|           uni.navigateTo({ |           uni.navigateTo({ | ||||||
|             url: "/pages/statistics/businessOverview", // 要跳转到的页面路径 |             url: "/pagesStatistics/businessOverview", // 要跳转到的页面路径 | ||||||
|           }) |           }) | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -102,7 +102,7 @@ const list = reactive([ | ||||||
|         title: "供应商对账", |         title: "供应商对账", | ||||||
|         fn: (item: any) => { |         fn: (item: any) => { | ||||||
|           uni.navigateTo({ |           uni.navigateTo({ | ||||||
|             url: "/pages/statistics/supplierChecking", // 要跳转到的页面路径 |             url: "/pagesStatistics/supplierChecking", // 要跳转到的页面路径 | ||||||
|           }) |           }) | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -113,7 +113,7 @@ const list = reactive([ | ||||||
|         title: "客户对账", |         title: "客户对账", | ||||||
|         fn: (item: any) => { |         fn: (item: any) => { | ||||||
|           uni.navigateTo({ |           uni.navigateTo({ | ||||||
|             url: "/pages/statistics/customerChecking", // 要跳转到的页面路径 |             url: "/pagesStatistics/customerChecking", // 要跳转到的页面路径 | ||||||
|           }) |           }) | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -12,7 +12,7 @@ | ||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
| const getDetail = () => { | const getDetail = () => { | ||||||
|   uni.navigateTo({ |   uni.navigateTo({ | ||||||
|     url: "/pages/statistics/supplier/detail", // 要跳转到的页面路径 |     url: "/pagesStatistics/supplier/detail", // 要跳转到的页面路径 | ||||||
|   }); |   }); | ||||||
| } | } | ||||||
| </script> | </script> | ||||||
|  | @ -25,7 +25,7 @@ const list = reactive([ | ||||||
| ]); | ]); | ||||||
| const getDetail = (item: any) => { | const getDetail = (item: any) => { | ||||||
|   uni.navigateTo({ |   uni.navigateTo({ | ||||||
|     url: "/pages/statistics/supplier/billDetail", // 要跳转到的页面路径 |     url: "/pagesStatistics/supplier/billDetail", // 要跳转到的页面路径 | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  | @ -31,7 +31,7 @@ | ||||||
| </template> | </template> | ||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
| 
 | 
 | ||||||
| import CEcharts from "../../components/Echarts/echarts.vue"; | import CEcharts from "@/components/Echarts/echarts.vue"; | ||||||
| import ProductTypeDialog from './components/ProductTypeDialog.vue' | import ProductTypeDialog from './components/ProductTypeDialog.vue' | ||||||
| const option = ref({ | const option = ref({ | ||||||
|   tooltip: { |   tooltip: { | ||||||
							
								
								
									
										316
									
								
								src/pages.json
								
								
								
								
							
							
						
						|  | @ -19,13 +19,6 @@ | ||||||
|         "navigationBarTitleText": "工作台" |         "navigationBarTitleText": "工作台" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
| 
 |  | ||||||
|     { |  | ||||||
|       "path": "pages/launch/index", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     // { |     // { | ||||||
|     //   "path": "pages/index/index", |     //   "path": "pages/index/index", | ||||||
|     //   "style": { |     //   "style": { | ||||||
|  | @ -33,12 +26,6 @@ | ||||||
|     //     "navigationBarTitleText": "工作台" |     //     "navigationBarTitleText": "工作台" | ||||||
|     //   } |     //   } | ||||||
|     // }, |     // }, | ||||||
|     { |  | ||||||
|       "path": "pages/index/grossWeight", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "待过毛重" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |     { | ||||||
|       "path": "pages/index/shipmentSettlement", |       "path": "pages/index/shipmentSettlement", | ||||||
|       "style": { |       "style": { | ||||||
|  | @ -88,130 +75,21 @@ | ||||||
|         "navigationBarTitleText": "修改密码", |         "navigationBarTitleText": "修改密码", | ||||||
|         "navigationBarBackgroundColor": "#FFFFFF" |         "navigationBarBackgroundColor": "#FFFFFF" | ||||||
|       } |       } | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/index", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "数据统计" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/receivePanel", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "收货汇总" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/supplierRanking", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "供应商排行" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/shipmentPanel", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "出货汇总" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/customerRanking", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "客户排行" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/businessOverview", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "经营概况" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/supplierChecking", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "供应商对账" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/customerChecking", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "客户对账" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/supplier/billDetail", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "供应商账单详情" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/supplier/detail", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "供应商详情" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/customer/billDetail", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "客户账单详情" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/statistics/customer/detail", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "客户详情" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/app/receiveSpl", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "收货补单" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/app/shipmentSpl", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "出货补单" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/app/receiveDetail", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "收货明细" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/app/shipmentDetail", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "出货明细" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/app/receiveCl", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "收货作废" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/app/shipmentCl", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "出货作废" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/app/supplierMgt", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "供应商管理" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "path": "pages/app/customerMgt", |  | ||||||
|       "style": { |  | ||||||
|         "navigationBarTitleText": "客户管理" |  | ||||||
|       } |  | ||||||
|     } |     } | ||||||
|     //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages |     //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages | ||||||
|   ], |   ], | ||||||
|   "subPackages": [ |   "subPackages": [ | ||||||
|  |     { | ||||||
|  |       "root": "pagesLaunch", | ||||||
|  |       "pages": [ | ||||||
|  |         { | ||||||
|  |           "path": "index", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|       "root": "pagesReceive", |       "root": "pagesReceive", | ||||||
|       "pages": [ |       "pages": [ | ||||||
|  | @ -256,15 +134,39 @@ | ||||||
|             "navigationBarTitleText": "待出货" |             "navigationBarTitleText": "待出货" | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|  |         { | ||||||
|  |           "path": "grossWeight", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "待过毛重" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "shipmentSettlement", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "出货结算" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "review/index", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "结算审核" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|         { |         { | ||||||
|           "path": "form/shipmentForm", |           "path": "form/shipmentForm", | ||||||
|           "style": { |           "style": { | ||||||
|             "navigationBarTitleText": "待出货编辑" |             "navigationBarTitleText": "待出货编辑" | ||||||
|           } |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "form/settlementForm", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "结算信息" | ||||||
|  |           } | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|        |     }, | ||||||
|     },{ |     { | ||||||
|       "root": "pagesScenePhoto", |       "root": "pagesScenePhoto", | ||||||
|       "pages": [ |       "pages": [ | ||||||
|         { |         { | ||||||
|  | @ -274,8 +176,148 @@ | ||||||
|           } |           } | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|        |     }, | ||||||
|     } |     { | ||||||
|  |       "root": "pagesStatistics", | ||||||
|  |       "pages": [ | ||||||
|  |         { | ||||||
|  |           "path": "index", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "数据统计" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "receivePanel", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "收货汇总" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "supplierRanking", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "供应商排行" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "shipmentPanel", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "出货汇总" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "customerRanking", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "客户排行" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "businessOverview", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "经营概况" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "supplierChecking", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "供应商对账" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "customerChecking", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "客户对账" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "supplier/billDetail", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "供应商账单详情" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "supplier/detail", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "供应商详情" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "customer/billDetail", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "客户账单详情" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "customer/detail", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "客户详情" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "root": "pagesApp", | ||||||
|  |       "pages": [ | ||||||
|  |         { | ||||||
|  |           "path": "receiveSpl", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "收货补单" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "shipmentSpl", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "出货补单" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "receiveDetail", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "收货明细" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "shipmentDetail", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "出货明细" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "receiveCl", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "收货作废" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "shipmentCl", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "出货作废" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "supplierMgt", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "供应商管理" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "path": "customerMgt", | ||||||
|  |           "style": { | ||||||
|  |             "navigationBarTitleText": "客户管理" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     // { | ||||||
|  |     //   "root": "uni_modules", | ||||||
|  |     //   "pages": [ | ||||||
|  |     //     { | ||||||
|  |     //       "path": "lime-echart/components/l-echart/l-echart", | ||||||
|  |     //       "style": { | ||||||
|  |     //         "navigationBarTitleText": "echart" | ||||||
|  |     //       } | ||||||
|  |     //     } | ||||||
|  |     //   ] | ||||||
|  |     // } | ||||||
|   ], |   ], | ||||||
|   "globalStyle": { |   "globalStyle": { | ||||||
|     "navigationBarTextStyle": "black", |     "navigationBarTextStyle": "black", | ||||||
|  |  | ||||||
|  | @ -1,100 +0,0 @@ | ||||||
| <template> |  | ||||||
|   <view class="card-box"> |  | ||||||
|     <view class="top-flex-box"> |  | ||||||
|       <view> |  | ||||||
|         <view> |  | ||||||
|           <text class="address">上海奉贤两网融合</text> |  | ||||||
|         </view> |  | ||||||
|         <view> |  | ||||||
|           <text class="number">收货单号:SHD20230901132333</text> |  | ||||||
|         </view> |  | ||||||
|         <view> |  | ||||||
|           <text class="name">陡其成</text> |  | ||||||
|         </view> |  | ||||||
|       </view> |  | ||||||
|       <view> |  | ||||||
|         <text class="btn" @click="handleScenePhoto">现场照片</text> |  | ||||||
|       </view> |  | ||||||
|     </view> |  | ||||||
|     <view> |  | ||||||
|       <text class="desc">毛重时间:2023-09-01 13:23:33</text> |  | ||||||
|     </view> |  | ||||||
|     <view class="flex-box"> |  | ||||||
|       <text>皮重:2510kg</text> |  | ||||||
|     </view> |  | ||||||
|     <view class="btn-box"> |  | ||||||
|       <u-button |  | ||||||
|         text="点击作废" |  | ||||||
|         color="#E8E8E8" |  | ||||||
|         :customStyle="{ color: '#999' }" |  | ||||||
|       ></u-button> |  | ||||||
|       <u-button type="primary" text="点击编辑"></u-button> |  | ||||||
|     </view> |  | ||||||
|   </view> |  | ||||||
| </template> |  | ||||||
| <script setup lang="ts"> |  | ||||||
| const handleScenePhoto = () => { |  | ||||||
|   uni.navigateTo({ |  | ||||||
|     url: "/pagesScenePhoto/index", // 要跳转到的页面路径 |  | ||||||
|   }); |  | ||||||
| }; |  | ||||||
| </script> |  | ||||||
| <style lang="scss" scoped> |  | ||||||
| .card-box { |  | ||||||
|   padding: 38rpx 50rpx; |  | ||||||
|   box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12); |  | ||||||
|   border-radius: 13rpx; |  | ||||||
|   margin: 0rpx 25rpx; |  | ||||||
|   margin-top: 35rpx; |  | ||||||
|   font-family: Source Han Sans CN; |  | ||||||
|   font-weight: 400; |  | ||||||
|   font-size: 26rpx; |  | ||||||
|   color: #000000; |  | ||||||
|   line-height: 41rpx; |  | ||||||
|   .top-flex-box { |  | ||||||
|     display: flex; |  | ||||||
|     justify-content: space-between; |  | ||||||
|     align-items: center; |  | ||||||
|     line-height: 50rpx; |  | ||||||
|     .btn { |  | ||||||
|       border-radius: 24rpx; |  | ||||||
|       border: 1px solid #00dcee; |  | ||||||
|       padding: 10rpx 25rpx; |  | ||||||
|       font-weight: 500; |  | ||||||
|       font-size: 24rpx; |  | ||||||
|       color: #00dcee; |  | ||||||
|       line-height: 41rpx; |  | ||||||
|       display: inline-block; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|   .desc { |  | ||||||
|     font-size: 24rpx; |  | ||||||
|     color: #999999; |  | ||||||
|     margin-top: 30rpx; |  | ||||||
|     display: inline-block; |  | ||||||
|   } |  | ||||||
|   .name { |  | ||||||
|     font-size: 28rpx; |  | ||||||
|     color: #000000; |  | ||||||
|     font-weight: bold; |  | ||||||
|   } |  | ||||||
|   .flex-box { |  | ||||||
|     font-weight: 400; |  | ||||||
|     font-size: 28rpx; |  | ||||||
|     color: #000000; |  | ||||||
|     display: flex; |  | ||||||
|     align-items: center; |  | ||||||
|     justify-content: space-between; |  | ||||||
|   } |  | ||||||
|   .btn-box { |  | ||||||
|     margin-top: 60rpx; |  | ||||||
|     display: flex; |  | ||||||
|     ::v-deep button { |  | ||||||
|       border-radius: 43rpx; |  | ||||||
|     } |  | ||||||
|     ::v-deep button + button { |  | ||||||
|       margin-left: 50rpx; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| </style> |  | ||||||
|  | @ -259,7 +259,7 @@ const shipmentList = reactive([ | ||||||
|     num: 0, |     num: 0, | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pages/index/grossWeight", // 要跳转到的页面路径 |         url: "/pagesShipment/grossWeight", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -268,7 +268,7 @@ const shipmentList = reactive([ | ||||||
|     num: 0, |     num: 0, | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pagesReceive/payReview", // 要跳转到的页面路径 |         url: "/pagesShipment/shipmentSettlement?scaleStatus=2", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -277,7 +277,7 @@ const shipmentList = reactive([ | ||||||
|     num: 0, |     num: 0, | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pagesReceive/payReview", // 要跳转到的页面路径 |         url: "/pagesShipment/shipmentSettlement?scaleStatus=3", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -289,7 +289,7 @@ const appList = reactive([ | ||||||
|     title: "收货补单", |     title: "收货补单", | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pages/app/receiveSpl", // 要跳转到的页面路径 |         url: "/pagesApp/receiveSpl", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -298,7 +298,7 @@ const appList = reactive([ | ||||||
|     title: "出货补单", |     title: "出货补单", | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pages/app/shipmentSpl", // 要跳转到的页面路径 |         url: "/pagesApp/shipmentSpl", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -307,7 +307,7 @@ const appList = reactive([ | ||||||
|     title: "收货明细", |     title: "收货明细", | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pages/app/receiveDetail", // 要跳转到的页面路径 |         url: "/pagesApp/receiveDetail", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -316,7 +316,7 @@ const appList = reactive([ | ||||||
|     title: "出货明细", |     title: "出货明细", | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pages/app/shipmentDetail", // 要跳转到的页面路径 |         url: "/pagesApp/shipmentDetail", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -325,7 +325,7 @@ const appList = reactive([ | ||||||
|     title: "收货作废", |     title: "收货作废", | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pages/app/receiveCl", // 要跳转到的页面路径 |         url: "/pagesApp/receiveCl", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -334,7 +334,7 @@ const appList = reactive([ | ||||||
|     title: "出货作废", |     title: "出货作废", | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pages/app/shipmentCl", // 要跳转到的页面路径 |         url: "/pagesApp/shipmentCl", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -343,7 +343,7 @@ const appList = reactive([ | ||||||
|     title: "供应商管理", |     title: "供应商管理", | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pages/app/supplierMgt", // 要跳转到的页面路径 |         url: "/pagesApp/supplierMgt", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -352,7 +352,7 @@ const appList = reactive([ | ||||||
|     title: "客户管理", |     title: "客户管理", | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pages/app/customerMgt", // 要跳转到的页面路径 |         url: "/pagesApp/customerMgt", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -364,7 +364,7 @@ const tabMenuList = reactive([ | ||||||
|     title: "统计", |     title: "统计", | ||||||
|     fn: () => { |     fn: () => { | ||||||
|       uni.navigateTo({ |       uni.navigateTo({ | ||||||
|         url: "/pages/statistics/index", // 要跳转到的页面路径 |         url: "/pagesStatistics/index", // 要跳转到的页面路径 | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ | ||||||
|   > |   > | ||||||
|     <swiper-item v-for="(item, index) in list" :key="index"> |     <swiper-item v-for="(item, index) in list" :key="index"> | ||||||
|       <view class="image-box"> |       <view class="image-box"> | ||||||
|         <image :src="`/static/img/launch/${item.imgUrl}`"></image> |         <image :src="`./static/${item.imgUrl}`"></image> | ||||||
|         <view class="title"> |         <view class="title"> | ||||||
|           {{ item.title }} |           {{ item.title }} | ||||||
|         </view> |         </view> | ||||||
| Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 270 KiB | 
| Before Width: | Height: | Size: 237 KiB After Width: | Height: | Size: 237 KiB | 
| Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 277 KiB | 
| Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB | 
|  | @ -0,0 +1,318 @@ | ||||||
|  | <template> | ||||||
|  |   <view class="c-card"> | ||||||
|  |     <u-form | ||||||
|  |       labelPosition="left" | ||||||
|  |       :model="model1" | ||||||
|  |       :rules="rules" | ||||||
|  |       ref="form" | ||||||
|  |       :labelWidth="80" | ||||||
|  |       :labelStyle="{ padding: '0rpx 10rpx' }" | ||||||
|  |     > | ||||||
|  |       <u-form-item | ||||||
|  |         :prop="`order[${item.key}]`" | ||||||
|  |         :label="item.name" | ||||||
|  |         :required="item.required" | ||||||
|  |         v-for="(item, index) in formAttrList" | ||||||
|  |         :key="index" | ||||||
|  |         @click="item.fn" | ||||||
|  |       > | ||||||
|  |         <u-textarea | ||||||
|  |           v-if="item.type === 'textarea'" | ||||||
|  |           v-model="(model1.order as any)[(item.key as any)]" | ||||||
|  |           :placeholder="`请输入${item.name}`" | ||||||
|  |         ></u-textarea> | ||||||
|  |         <u-input | ||||||
|  |           v-if="item.type === 'select' || item.type === 'input'" | ||||||
|  |           v-model="(model1.order as any)[(item.key as any)]" | ||||||
|  |           :placeholder="`请${item.type === 'select' ? '选择' : '输入'}${ | ||||||
|  |             item.name | ||||||
|  |           }`" | ||||||
|  |           :clearable="true" | ||||||
|  |           :customStyle="{}" | ||||||
|  |           border="none" | ||||||
|  |         > | ||||||
|  |           <template #suffix> | ||||||
|  |             {{ item.unit }} | ||||||
|  |           </template> | ||||||
|  |         </u-input> | ||||||
|  |         <!-- @afterRead="afterRead" | ||||||
|  |           @delete="deletePic" --> | ||||||
|  |         <!-- <u-upload | ||||||
|  |           v-if="item.type === 'upload'" | ||||||
|  |           :fileList="[]" | ||||||
|  |           name="1" | ||||||
|  |           multiple | ||||||
|  |           :maxCount="10" | ||||||
|  |         ></u-upload> --> | ||||||
|  |         <uni-file-picker | ||||||
|  |           v-if="item.type === 'upload'" | ||||||
|  |           v-model="model1.order.fileList" | ||||||
|  |           limit="10" | ||||||
|  |           title="最多可上传10张图片" | ||||||
|  |           :auto-upload="false" | ||||||
|  |           fileMediatype="image" | ||||||
|  |           mode="grid" | ||||||
|  |           ref="filesShipmentRef" | ||||||
|  |         ></uni-file-picker> | ||||||
|  | 
 | ||||||
|  |         <u-radio-group | ||||||
|  |           v-if="item.type === 'radio'" | ||||||
|  |           v-model="(model1.order as any)[(item.key as any)]" | ||||||
|  |           placement="row" | ||||||
|  |         > | ||||||
|  |           <u-radio activeColor="#00DCEE" label="送货" :name="0"></u-radio> | ||||||
|  |               | ||||||
|  |           <u-radio activeColor="#00DCEE" label="自提" :name="1"></u-radio> | ||||||
|  |         </u-radio-group> | ||||||
|  |         <template #right v-if="item.type === 'select'"> | ||||||
|  |           <u-icon name="arrow-right"></u-icon> | ||||||
|  |         </template> | ||||||
|  |       </u-form-item> | ||||||
|  |     </u-form> | ||||||
|  |     <u-action-sheet | ||||||
|  |       :actions="contrlModalParams.select.selectList" | ||||||
|  |       :title="contrlModalParams.select.title" | ||||||
|  |       :show="contrlModalParams.select.isShow" | ||||||
|  |       @select="contrlModalParams.select.isShow = false" | ||||||
|  |       @close="contrlModalParams.select.isShow = false" | ||||||
|  |     ></u-action-sheet> | ||||||
|  |   </view> | ||||||
|  |   <view class="btn-box"> | ||||||
|  |     <u-button type="primary" text="保存" @click="save()"></u-button> | ||||||
|  |   </view> | ||||||
|  | </template> | ||||||
|  | <script setup lang="ts"> | ||||||
|  | import { PictureApi, ShipmentApi } from "@/services"; | ||||||
|  | import { ImagesType, OrderType, ScaleStatus } from "@/utils/enum"; | ||||||
|  | import { onLoad } from "@dcloudio/uni-app"; | ||||||
|  | const model1 = reactive<Shipment>({ | ||||||
|  |   order: { | ||||||
|  |     id: 0, | ||||||
|  |     splTime: "", | ||||||
|  |     takeType: 1, | ||||||
|  |     fileList: [], | ||||||
|  |   }, | ||||||
|  | }); | ||||||
|  | const rules = ref({ | ||||||
|  |   "userInfo.userName": { | ||||||
|  |     type: "string", | ||||||
|  |     required: true, | ||||||
|  |     message: "请输入手机号", | ||||||
|  |     trigger: ["blur", "change"], | ||||||
|  |   }, | ||||||
|  |   "userInfo.password": { | ||||||
|  |     type: "string", | ||||||
|  |     required: true, | ||||||
|  |     message: "请输入密码", | ||||||
|  |     trigger: ["blur", "change"], | ||||||
|  |   }, | ||||||
|  | }); | ||||||
|  | const contrlModalParams = reactive({ | ||||||
|  |   select: { | ||||||
|  |     isShow: false, | ||||||
|  |     title: "标题", | ||||||
|  |     selectList: [ | ||||||
|  |       { | ||||||
|  |         name: "选项一", | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         name: "选项二", | ||||||
|  |       }, | ||||||
|  |     ], | ||||||
|  |   }, | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | const formAttrList = reactive([ | ||||||
|  |   { | ||||||
|  |     name: "客户", | ||||||
|  |     key: "userId", | ||||||
|  |     type: "select", | ||||||
|  |     required: true, | ||||||
|  |     unit: "", | ||||||
|  |     fn: () => { | ||||||
|  |       contrlModalParams.select.isShow = true; | ||||||
|  |       contrlModalParams.select.title = "客户"; | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "出货产品", | ||||||
|  |     key: "productId", | ||||||
|  |     type: "select", | ||||||
|  |     required: true, | ||||||
|  |     unit: "", | ||||||
|  |     fn: () => { | ||||||
|  |       contrlModalParams.select.isShow = true; | ||||||
|  |       contrlModalParams.select.title = "出货产品"; | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "数量", | ||||||
|  |     key: "number", | ||||||
|  |     type: "input", | ||||||
|  |     required: true, | ||||||
|  |     unit: "件", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "毛重", | ||||||
|  |     key: "grossWeight", | ||||||
|  |     type: "input", | ||||||
|  |     required: true, | ||||||
|  |     unit: "KG", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "提货方式", | ||||||
|  |     key: "deliveryMethod", | ||||||
|  |     required: true, | ||||||
|  |     type: "radio", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "车辆信息", | ||||||
|  |     type: "text", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "车牌号", | ||||||
|  |     key: "carNumber", | ||||||
|  |     type: "input", | ||||||
|  |     unit: "", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "司机电话", | ||||||
|  |     key: "phone", | ||||||
|  |     type: "input", | ||||||
|  |     unit: "", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "集装箱", | ||||||
|  |     type: "text", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "箱号", | ||||||
|  |     key: "box", | ||||||
|  |     type: "input", | ||||||
|  |     unit: "", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "封号", | ||||||
|  |     key: "title", | ||||||
|  |     type: "input", | ||||||
|  |     unit: "", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "备注", | ||||||
|  |     key: "notes", | ||||||
|  |     type: "textarea", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "上传照片", | ||||||
|  |     key: "photo", | ||||||
|  |     type: "upload", | ||||||
|  |   }, | ||||||
|  | ]); | ||||||
|  | const filesShipmentRef = ref(); | ||||||
|  | const handleUpload = () => { | ||||||
|  |   // console.log(event.tempFilePaths) | ||||||
|  |   const list = filesShipmentRef.value[0].filesList; | ||||||
|  |   return list.map((item: any) => { | ||||||
|  |     return new Promise((resolve) => { | ||||||
|  |       PictureApi.upload({ | ||||||
|  |         files: item, | ||||||
|  |         path: item.path, | ||||||
|  |       }).then((res) => { | ||||||
|  |         if (res.code === 200) { | ||||||
|  |           resolve({ | ||||||
|  |             ...(res.data as any), | ||||||
|  |             businessId: model1.order.id, | ||||||
|  |             imagesType: ImagesType.NORMARL, // 普通资源 | ||||||
|  |             orderType: OrderType.Shipment, // 入库单 | ||||||
|  |           }); | ||||||
|  |         } | ||||||
|  |       }); | ||||||
|  |     }); | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 点击保存 先执行upload接口 | ||||||
|  |  * 上传成功后 保存图片资源 和更新订单数据 | ||||||
|  |  */ | ||||||
|  | const save = () => { | ||||||
|  |   Promise.all(handleUpload()).then((res) => { | ||||||
|  |     // 上传多个资源 | ||||||
|  |     if (res.length > 0) { | ||||||
|  |       PictureApi.addListAnnex({ annexPos: res }).then((res1) => { | ||||||
|  |         if (res1.code === 200) { | ||||||
|  |           uni.showToast({ | ||||||
|  |             title: "图片资源上传成功", | ||||||
|  |             icon: "success", | ||||||
|  |           }); | ||||||
|  |         } | ||||||
|  |       }); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   // 更新出货单 | ||||||
|  |   ShipmentApi.updateOrderIn({ | ||||||
|  |     orderOutPos: [ | ||||||
|  |       { ...model1.order, scaleStatus: ScaleStatus.ToBeGrossWeight }, | ||||||
|  |     ], | ||||||
|  |   }).then((res) => { | ||||||
|  |     if (res.code === 200) { | ||||||
|  |       uni.showToast({ | ||||||
|  |         title: "编辑成功", | ||||||
|  |         icon: "success", | ||||||
|  |       }); | ||||||
|  |       uni.navigateTo({ | ||||||
|  |         url: "/pagesShipment/grossWeight", // 要跳转到的页面路径 | ||||||
|  |       }); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | onLoad((option) => { | ||||||
|  |   model1.order.id = (option as any).id; | ||||||
|  |   if (model1.order.id) { | ||||||
|  |     ShipmentApi.getDetailById({ id: model1.order.id }).then((res) => { | ||||||
|  |       if (res.code === 200) { | ||||||
|  |         model1.order = res.data; | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |     PictureApi.getAnnex({ | ||||||
|  |       businessId: model1.order.id, | ||||||
|  |       orderType: 1, | ||||||
|  |       imagesType: ImagesType.NORMARL, | ||||||
|  |     }).then((res) => { | ||||||
|  |       if (res.code === 200) { | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  | }); | ||||||
|  | </script> | ||||||
|  | <style lang="scss" scoped> | ||||||
|  | .c-card { | ||||||
|  |   background: #ffffff; | ||||||
|  |   // box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12); | ||||||
|  |   border-radius: 13rpx; | ||||||
|  |   margin: 30rpx 25rpx; | ||||||
|  |   padding: 10rpx 20rpx; | ||||||
|  |   ::v-deep .u-form-item { | ||||||
|  |     height: auto; | ||||||
|  |   } | ||||||
|  |   ::v-deep .u-form-item + .u-form-item { | ||||||
|  |     border-top: 1rpx solid rgba(233, 233, 233, 0.76); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | .btn-box { | ||||||
|  |   margin-top: 60rpx; | ||||||
|  |   display: flex; | ||||||
|  |   background: #ffffff; | ||||||
|  |   box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 56, 93, 0.12); | ||||||
|  |   border-radius: 13rpx 13rpx 0rpx 0rpx; | ||||||
|  |   padding: 25rpx 50rpx; | ||||||
|  |   position: sticky; | ||||||
|  |   bottom: 0rpx; | ||||||
|  |   z-index: 999; | ||||||
|  |   ::v-deep button { | ||||||
|  |     border-radius: 43rpx; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </style> | ||||||
|  | @ -199,7 +199,7 @@ const formAttrList = reactive([ | ||||||
|   }, |   }, | ||||||
|   { |   { | ||||||
|     name: "备注", |     name: "备注", | ||||||
|     key: "remark", |     key: "notes", | ||||||
|     type: "textarea", |     type: "textarea", | ||||||
|   }, |   }, | ||||||
|   { |   { | ||||||
|  |  | ||||||
|  | @ -0,0 +1,165 @@ | ||||||
|  | <template> | ||||||
|  |   <view class="card-box" v-for="(item, index) in pageList.list" :key="index"> | ||||||
|  |     <view class="top-flex-box"> | ||||||
|  |       <view> | ||||||
|  |         <view> | ||||||
|  |           <text class="address">{{ item.deviceName || "-" }}</text> | ||||||
|  |         </view> | ||||||
|  |         <view> | ||||||
|  |           <text class="number">出货单号:{{ item.orderNumber }}</text> | ||||||
|  |         </view> | ||||||
|  |         <view> | ||||||
|  |           <text class="name">{{ item.cardId }}</text> | ||||||
|  |         </view> | ||||||
|  |       </view> | ||||||
|  |       <view> | ||||||
|  |         <text class="btn" @click="handleScenePhoto((item.imagesId as number))" | ||||||
|  |           >现场照片</text | ||||||
|  |         > | ||||||
|  |       </view> | ||||||
|  |     </view> | ||||||
|  |     <view> | ||||||
|  |       <text class="desc">过磅时间:{{ item.grossTime || '-' }}</text> | ||||||
|  |     </view> | ||||||
|  |     <view class="flex-box"> | ||||||
|  |       <text>皮重:{{ item.tare }}kg</text> | ||||||
|  |     </view> | ||||||
|  |     <view class="btn-box"> | ||||||
|  |       <u-button | ||||||
|  |         text="点击作废" | ||||||
|  |         color="#E8E8E8" | ||||||
|  |         :customStyle="{ color: '#999' }" | ||||||
|  |         @click="handleModal(true, (item.id as any))" | ||||||
|  |       ></u-button> | ||||||
|  |       <u-button | ||||||
|  |         type="primary" | ||||||
|  |         text="点击编辑" | ||||||
|  |         @click="pricingDetail((item.id as any))" | ||||||
|  |       ></u-button> | ||||||
|  |     </view> | ||||||
|  |   </view> | ||||||
|  | 
 | ||||||
|  |   <SmallModal | ||||||
|  |     :title="'确认作废吗?'" | ||||||
|  |     :content="'确认作废后,该订单不能恢复!'" | ||||||
|  |     :okText="'确认作废'" | ||||||
|  |     :isMain="true" | ||||||
|  |     :show="isShowCancelModal" | ||||||
|  |     @handleModal="(v:boolean) => {handleModal(v, deleteId)}" | ||||||
|  |     @handleOk="handleOk()" | ||||||
|  |   /> | ||||||
|  | </template> | ||||||
|  | <script setup lang="ts"> | ||||||
|  | import { ShipmentApi } from "@/services/index"; | ||||||
|  | import SmallModal from "@/components/Modal/smallModal.vue"; | ||||||
|  | 
 | ||||||
|  | interface PageResult<T> { | ||||||
|  |   total: number; | ||||||
|  |   list: T[]; | ||||||
|  |   pageNum: number; | ||||||
|  |   pageSize: number; | ||||||
|  | } | ||||||
|  | const pageList: PageResult<Shipment> = reactive({ | ||||||
|  |   total: 0, | ||||||
|  |   list: [], | ||||||
|  |   pageNum: 1, | ||||||
|  |   pageSize: 10, | ||||||
|  | }); | ||||||
|  | const isShowCancelModal = ref(false); | ||||||
|  | const deleteId = ref(0); | ||||||
|  | const handleModal = (v: boolean, id: number) => { | ||||||
|  |   isShowCancelModal.value = v; | ||||||
|  |   deleteId.value = id; | ||||||
|  | }; | ||||||
|  | const handleScenePhoto = (imagesId: number) => { | ||||||
|  |   uni.navigateTo({ | ||||||
|  |     url: "/pagesScenePhoto/index?orderType=2&id=" + imagesId, // 要跳转到的页面路径 | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | const pricingDetail = (id: string) => { | ||||||
|  |   uni.navigateTo({ | ||||||
|  |     url: "/pagesShipment/form/shipmentForm?id=" + id, // 要跳转到的页面路径 | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | const getOrderList = () => { | ||||||
|  |   ShipmentApi.getOrderPage({ pageNumber: 1, pageSize: 10, scaleStatus: 1 }).then((res) => { | ||||||
|  |     if (res.code === 200) { | ||||||
|  |       (pageList as any).list = res.data.list; | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | const handleOk = () => { | ||||||
|  |   console.log(deleteId.value); | ||||||
|  |   ShipmentApi.deleteOrder({ids:[deleteId.value]}).then((res) => { | ||||||
|  |     if (res.code === 200) { | ||||||
|  |       getOrderList(); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | onMounted(() => { | ||||||
|  |   getOrderList(); | ||||||
|  | }); | ||||||
|  | </script> | ||||||
|  | <style lang="scss" scoped> | ||||||
|  | .card-box { | ||||||
|  |   padding: 38rpx 50rpx; | ||||||
|  |   box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12); | ||||||
|  |   border-radius: 13rpx; | ||||||
|  |   margin: 0rpx 25rpx; | ||||||
|  |   margin-top: 35rpx; | ||||||
|  |   font-family: Source Han Sans CN; | ||||||
|  |   font-weight: 400; | ||||||
|  |   font-size: 26rpx; | ||||||
|  |   color: #000000; | ||||||
|  |   line-height: 41rpx; | ||||||
|  |   .top-flex-box { | ||||||
|  |     display: flex; | ||||||
|  |     justify-content: space-between; | ||||||
|  |     align-items: center; | ||||||
|  |     .btn { | ||||||
|  |       border-radius: 24rpx; | ||||||
|  |       border: 1px solid #00dcee; | ||||||
|  |       padding: 10rpx 30rpx; | ||||||
|  |       font-weight: 500; | ||||||
|  |       font-size: 24rpx; | ||||||
|  |       color: #00dcee; | ||||||
|  |       line-height: 41rpx; | ||||||
|  |       cursor: pointer; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   .address { | ||||||
|  |     margin-right: 30rpx; | ||||||
|  |   } | ||||||
|  |   .desc { | ||||||
|  |     font-size: 24rpx; | ||||||
|  |     color: #999999; | ||||||
|  |     margin-top: 30rpx; | ||||||
|  |     display: inline-block; | ||||||
|  |   } | ||||||
|  |   .name { | ||||||
|  |     font-size: 26rpx; | ||||||
|  |     color: #000000; | ||||||
|  |     font-weight: bold; | ||||||
|  |   } | ||||||
|  |   .flex-box { | ||||||
|  |     font-weight: 400; | ||||||
|  |     font-size: 26rpx; | ||||||
|  |     color: #000000; | ||||||
|  |     line-height: 41rpx; | ||||||
|  |     display: flex; | ||||||
|  |     align-items: center; | ||||||
|  |     justify-content: space-between; | ||||||
|  |   } | ||||||
|  |   .btn-box { | ||||||
|  |     margin-top: 60rpx; | ||||||
|  |     display: flex; | ||||||
|  |     ::v-deep button { | ||||||
|  |       border-radius: 43rpx; | ||||||
|  |     } | ||||||
|  |     ::v-deep button + button { | ||||||
|  |       margin-left: 50rpx; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </style> | ||||||
|  | @ -0,0 +1,514 @@ | ||||||
|  | <template> | ||||||
|  |   <view class="c-card"> | ||||||
|  |     <view class="box"> | ||||||
|  |       <view class="base"> | ||||||
|  |         <view> | ||||||
|  |           <view class="supplier"> {{ state.order.deviceName || "-" }} </view> | ||||||
|  |         </view> | ||||||
|  |       </view> | ||||||
|  |       <view class="flex-box1"> | ||||||
|  |         <view class="type">{{ state.order.productName || "" }}</view> | ||||||
|  |         <view class="btn"> | ||||||
|  |           <view | ||||||
|  |             ><u-tag | ||||||
|  |               text="现场照片" | ||||||
|  |               plain | ||||||
|  |               shape="circle" | ||||||
|  |               :bgColor="'rgba(237, 254, 255, 1)'" | ||||||
|  |               @click="handleScenePhoto(state.order.imagesId as number)" | ||||||
|  |             ></u-tag | ||||||
|  |           ></view> | ||||||
|  |           <view | ||||||
|  |             ><u-tag | ||||||
|  |               text="收货单作废" | ||||||
|  |               plain | ||||||
|  |               shape="circle" | ||||||
|  |               :borderColor="'rgba(255, 147, 68, 1) !important'" | ||||||
|  |               :bgColor="'rgba(255, 240, 229, 1)'" | ||||||
|  |               :color="'rgba(255, 157, 85, 1) !important'" | ||||||
|  |               @click="handleModal(true, state.order.id as string)" | ||||||
|  |             ></u-tag | ||||||
|  |           ></view> | ||||||
|  |           <!-- 待审核才会有编辑信息--> | ||||||
|  |           <view v-if="state.order.scaleStatus === 2" | ||||||
|  |             ><u-tag | ||||||
|  |               text="编辑信息" | ||||||
|  |               plain | ||||||
|  |               shape="circle" | ||||||
|  |               :borderColor="'rgba(0, 238, 78, 1) !important'" | ||||||
|  |               :bgColor="'rgba(227, 255, 236, 1)'" | ||||||
|  |               :color="'rgba(0, 238, 78, 1) !important'" | ||||||
|  |               @click="handleUpdateOrder" | ||||||
|  |             ></u-tag | ||||||
|  |           ></view> | ||||||
|  |         </view> | ||||||
|  |       </view> | ||||||
|  |       <!-- 出库 过磅时间对应过皮时间 --> | ||||||
|  |       <view class="flex-box" v-if="state.order.scaleStatus === 2"> | ||||||
|  |         <text>审核人:{{ state.order.pricingUserName || "-" }}</text> | ||||||
|  |         <text>过磅时间:{{ state.order.tareTime }}</text> | ||||||
|  |       </view> | ||||||
|  | 
 | ||||||
|  |       <!-- <view class="flex-box" v-if="getIsShow()" style="border: none"> | ||||||
|  |         <text>过磅时间:{{ state.order.grossTime || "-" }}</text> | ||||||
|  |       </view> | ||||||
|  |       <view class="flex-box" v-if="getIsShow()"> | ||||||
|  |         <text>定价人:{{ state.order.pricingUserName || "-" }}</text> | ||||||
|  |         <text>审核人:{{ state.order.reviewerUserName || "-" }}</text> | ||||||
|  |       </view> --> | ||||||
|  | 
 | ||||||
|  |       <view class="more"> | ||||||
|  |         <view v-if="getIsShow()"> 出货单号:SHD20230901132333 </view> | ||||||
|  |         <view v-if="getIsShow()"></view> | ||||||
|  |         <view v-for="(item, index) in gridList1" :key="index"> | ||||||
|  |           <text v-if="item.name">{{ item.name }}:</text | ||||||
|  |           ><text | ||||||
|  |             >{{ item.isBefore ? item.unit : "" }} | ||||||
|  |             {{ item.num }} | ||||||
|  |             {{ item.isBefore ? "" : item.unit }} | ||||||
|  |           </text> | ||||||
|  |         </view> | ||||||
|  |       </view> | ||||||
|  | 
 | ||||||
|  |       <!-- <u-gap height="10" bgColor="#F8F8F8"></u-gap> --> | ||||||
|  |       <view class="mt-30"> | ||||||
|  |         <u-line></u-line> | ||||||
|  |       </view> | ||||||
|  |       <view class="more"> | ||||||
|  |         <view v-for="(item, index) in gridList2" :key="index"> | ||||||
|  |           <text v-if="item.name">{{ item.name }}:</text | ||||||
|  |           ><text | ||||||
|  |             >{{ item.isBefore ? item.unit : "" }} | ||||||
|  |             {{ item.num }} | ||||||
|  |             {{ item.isBefore ? "" : item.unit }} | ||||||
|  |           </text> | ||||||
|  |         </view> | ||||||
|  |       </view> | ||||||
|  |     </view> | ||||||
|  |     <view class="op-btn"> | ||||||
|  |       <view class="c-btn-review" v-if="state.order.scaleStatus === 2"> | ||||||
|  |         <view @click="handleReviewNoPay"> 出货未结算 </view> | ||||||
|  |         <view class="active" @click="handleReviewPay"> 出货并结算 </view> | ||||||
|  |       </view> | ||||||
|  |       <view v-if="state.order.scaleStatus === 2"> | ||||||
|  |         <u-button | ||||||
|  |           text="重新过毛" | ||||||
|  |           plain | ||||||
|  |           :customStyle="{ | ||||||
|  |             color: 'rgba(0, 220, 238, 1)', | ||||||
|  |             border: '1px solid #00DCEE', | ||||||
|  |             'border-radius': '43rpx', | ||||||
|  |           }" | ||||||
|  |         ></u-button> | ||||||
|  |       </view> | ||||||
|  |       <view v-if="state.order.scaleStatus === 3"> | ||||||
|  |         <u-button | ||||||
|  |           text="确认支付" | ||||||
|  |           type="primary" | ||||||
|  |           :customStyle="{ 'border-radius': '43rpx' }" | ||||||
|  |           @click="handleReviewPay" | ||||||
|  |         ></u-button> | ||||||
|  |       </view> | ||||||
|  |       <view> | ||||||
|  |         <u-button | ||||||
|  |           text="打印" | ||||||
|  |           type="primary" | ||||||
|  |           :customStyle="{ 'border-radius': '43rpx' }" | ||||||
|  |         ></u-button> | ||||||
|  |       </view> | ||||||
|  |     </view> | ||||||
|  |   </view> | ||||||
|  |   <!-- 支付方式 --> | ||||||
|  |   <block v-for="(item, index) in state.sheetList" :key="index"> | ||||||
|  |     <u-action-sheet | ||||||
|  |       :actions="contrlModalParams[item.key].list" | ||||||
|  |       :title="contrlModalParams[item.key].title" | ||||||
|  |       :show="contrlModalParams[item.key].isShow" | ||||||
|  |       @select="(v: any) => handleSelect(item.key, v)" | ||||||
|  |       @close="contrlModalParams[item.key].isShow = false" | ||||||
|  |       :closeOnClickAction="true" | ||||||
|  |     ></u-action-sheet> | ||||||
|  |   </block> | ||||||
|  |   <SmallModal | ||||||
|  |     :title="'确认作废吗?'" | ||||||
|  |     :content="'确认作废后,该订单不能恢复!'" | ||||||
|  |     :okText="'确认作废'" | ||||||
|  |     :isMain="true" | ||||||
|  |     :show="isShowCancelModal" | ||||||
|  |     @handleModal="(v:boolean) => {handleModal(v, deleteId)}" | ||||||
|  |     @handleOk="handleOk()" | ||||||
|  |   /> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <script setup lang="ts"> | ||||||
|  | import { ShipmentApi } from "@/services/index"; | ||||||
|  | import { onLoad } from "@dcloudio/uni-app"; | ||||||
|  | const keyword = ref(""); | ||||||
|  | const contrlModalParams = reactive<{ [attrName: string]: any }>({ | ||||||
|  |   paySelect: { | ||||||
|  |     isShow: false, | ||||||
|  |     title: "请选择支付方式", | ||||||
|  |     // 1:现金支付,2:银行卡支付,3:线上支付(微信)4:支付宝 | ||||||
|  |     list: [ | ||||||
|  |       { | ||||||
|  |         name: "微信", | ||||||
|  |         key: 3, | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         name: "现金", | ||||||
|  |         key: 1, | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         name: "支付宝", | ||||||
|  |         key: 4, | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         name: "转账", | ||||||
|  |         key: 2, | ||||||
|  |       }, | ||||||
|  |     ], | ||||||
|  |   }, | ||||||
|  |   printSelect: { | ||||||
|  |     isShow: false, | ||||||
|  |     title: "请选择打印设备", | ||||||
|  |     list: [ | ||||||
|  |       { | ||||||
|  |         name: "打印设备1", | ||||||
|  |         key: 1, | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         name: "打印设备2", | ||||||
|  |         key: 2, | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         name: "打印设备3", | ||||||
|  |         key: 3, | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         name: "打印设备4", | ||||||
|  |         key: 4, | ||||||
|  |       }, | ||||||
|  |     ], | ||||||
|  |   }, | ||||||
|  | }); | ||||||
|  | const state = reactive<{ | ||||||
|  |   order: Shipment; | ||||||
|  |   [attrName: string]: any; | ||||||
|  | }>({ | ||||||
|  |   order: {}, | ||||||
|  |   sheetList: [ | ||||||
|  |     { | ||||||
|  |       key: "paySelect", | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       key: "printSelect", | ||||||
|  |     }, | ||||||
|  |   ], | ||||||
|  |   scaleStatus: 2, | ||||||
|  | }); | ||||||
|  | const gridList1 = reactive([ | ||||||
|  |   { | ||||||
|  |     name: "毛重", | ||||||
|  |     enName: "grossWeight", | ||||||
|  |     num: "", | ||||||
|  |     unit: "KG", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "皮重", | ||||||
|  |     enName: "tare", | ||||||
|  |     num: "", | ||||||
|  |     unit: "KG", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "净重", | ||||||
|  |     enName: "netWeight", | ||||||
|  |     num: "", | ||||||
|  |     unit: "KG", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  | ]); | ||||||
|  | const gridList2 = reactive([ | ||||||
|  |   { | ||||||
|  |     name: "客户名称", | ||||||
|  |     enName: "userName", | ||||||
|  |     num: "", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  |   {}, | ||||||
|  |   { | ||||||
|  |     name: "签收时间", | ||||||
|  |     enName: "signTime", | ||||||
|  |     num: "", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  |   {}, | ||||||
|  |   { | ||||||
|  |     name: "毛重", | ||||||
|  |     enName: "signGrossWeight", | ||||||
|  |     num: "", | ||||||
|  |     unit: "KG", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "皮重", | ||||||
|  |     enName: "signTare", | ||||||
|  |     num: "", | ||||||
|  |     unit: "KG", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "结算重量", | ||||||
|  |     enName: "signWeight", | ||||||
|  |     num: "", | ||||||
|  |     unit: "KG", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "单价", | ||||||
|  |     enName: "unitPrice", | ||||||
|  |     num: "", | ||||||
|  |     unit: "元/KG", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "预估总价", | ||||||
|  |     enName: "estimatePrice", | ||||||
|  |     num: "", | ||||||
|  |     unit: "元", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "结算金额", | ||||||
|  |     enName: "totalPrice", | ||||||
|  |     num: "", | ||||||
|  |     unit: "元", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "运费", | ||||||
|  |     enName: "freight", | ||||||
|  |     num: "", | ||||||
|  |     unit: "元", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "杂费", | ||||||
|  |     enName: "incidentals", | ||||||
|  |     num: "", | ||||||
|  |     unit: "元", | ||||||
|  |     isBefore: false, | ||||||
|  |   }, | ||||||
|  | ]); | ||||||
|  | const getIsShow = () => { | ||||||
|  |   return state.order.scaleStatus === 2 || state.order.scaleStatus === 4; | ||||||
|  | }; | ||||||
|  | const handleScenePhoto = (imagesId: number) => { | ||||||
|  |   uni.navigateTo({ | ||||||
|  |     url: "/pagesScenePhoto/index?orderType=1&id=" + imagesId, // 要跳转到的页面路径 | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | // 出货未结算 // 先填写结算信息后更新状态为3 | ||||||
|  | const handleReviewNoPay = () => { | ||||||
|  |   uni.navigateTo({ | ||||||
|  |     url: "/pagesShipment/form/settlementForm?id=" + state.order.id, // 要跳转到的页面路径 | ||||||
|  |   }); | ||||||
|  |   // ShipmentApi.updateOrderIn({ ...state.order, scaleStatus: 3 }).then((res) => { | ||||||
|  |   //   if (res.code === 200) { | ||||||
|  |   //     uni.navigateTo({ | ||||||
|  |   //       url: "/pagesShipment/shipmentSettlement?scaleStatus=3", // 要跳转到的页面路径 | ||||||
|  |   //     }); | ||||||
|  |   //   } | ||||||
|  |   // }); | ||||||
|  | }; | ||||||
|  | // 审核立即支付 | ||||||
|  | const handleReviewPay = () => { | ||||||
|  |   contrlModalParams.paySelect.isShow = true; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | const handleSelect = (key: string, v: any) => { | ||||||
|  |   contrlModalParams[key].isShow = false; | ||||||
|  |   if (key === "paySelect") { | ||||||
|  |     // 修改订单状态 | ||||||
|  |     // ShipmentApi.updateOne({ | ||||||
|  |     //   ...state.order, | ||||||
|  |     //   scaleStatus: 4, | ||||||
|  |     //   paymentMethod: v.key, | ||||||
|  |     // }).then((res) => { | ||||||
|  |     //   if (res.code === 200) { | ||||||
|  |     //     uni.showToast({ | ||||||
|  |     //       title: "支付成功", | ||||||
|  |     //       icon: "success", | ||||||
|  |     //     }); | ||||||
|  |     //     uni.navigateTo({ | ||||||
|  |     //       url: "/pagesReceive/payReview?scaleStatus=4", // 要跳转到的页面路径 | ||||||
|  |     //     }); | ||||||
|  |     //   } | ||||||
|  |     // }); | ||||||
|  |   } else if (key === "printSelect") { | ||||||
|  |     // 打印 | ||||||
|  |   } | ||||||
|  | }; | ||||||
|  | const isShowCancelModal = ref(false); | ||||||
|  | const deleteId = ref("0"); | ||||||
|  | // 打开确认作废对话框 | ||||||
|  | const handleModal = (v: boolean, id: string) => { | ||||||
|  |   isShowCancelModal.value = v; | ||||||
|  |   deleteId.value = id; | ||||||
|  | }; | ||||||
|  | const handleOk = () => { | ||||||
|  |   ShipmentApi.deleteOrder({ ids: [deleteId.value] }).then((res) => { | ||||||
|  |     if (res.code === 200) { | ||||||
|  |       uni.navigateTo({ | ||||||
|  |         url: "/pagesShipment/shipmentSettlement?scaleStatus=2", // 要跳转到的页面路径 | ||||||
|  |       }); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | const handleUpdateOrder = () => { | ||||||
|  |   uni.navigateTo({ | ||||||
|  |     url: "/pagesShipment/form/shipmentForm?id=" + state.order.id, // 要跳转到的页面路径 | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | onLoad((option) => { | ||||||
|  |   state.order.id = (option as any).id; | ||||||
|  |   state.scaleStatus = parseInt((option as any).scaleStatus); | ||||||
|  |   if (state.order.id) { | ||||||
|  |     ShipmentApi.getDetailById({ id: state.order.id }).then((res) => { | ||||||
|  |       if (res.code === 200) { | ||||||
|  |         state.order = res.data; | ||||||
|  |         // gridList1.map((item) => { | ||||||
|  |         //   if (item.name === "扣杂" || item.name === "扣点") { | ||||||
|  |         //     if (state.order.buttonType === 0) { | ||||||
|  |         //       item.name = "扣杂"; | ||||||
|  |         //       item.enName = "buckleMiscellaneous"; | ||||||
|  |         //       item.unit = "KG"; | ||||||
|  |         //     } else if (state.order.buttonType === 1) { | ||||||
|  |         //       item.name = "扣点"; | ||||||
|  |         //       item.enName = "points"; | ||||||
|  |         //       item.unit = "%"; | ||||||
|  |         //     } | ||||||
|  |         //   } | ||||||
|  |         //   item.num = state.order[item.enName as string]; | ||||||
|  |         // }); | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  | }); | ||||||
|  | </script> | ||||||
|  | <style lang="scss" scoped> | ||||||
|  | .c-card { | ||||||
|  |   margin: 30rpx 25rpx; | ||||||
|  |   .box { | ||||||
|  |     background: #ffffff; | ||||||
|  |     box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12); | ||||||
|  |     border-radius: 13rpx; | ||||||
|  |     padding: 30rpx; | ||||||
|  |     .base { | ||||||
|  |       display: flex; | ||||||
|  |       align-items: center; | ||||||
|  |       justify-content: space-between; | ||||||
|  |       font-weight: 400; | ||||||
|  |       font-size: 26rpx; | ||||||
|  |       color: #000000; | ||||||
|  |       .btn { | ||||||
|  |         border-radius: 24rpx; | ||||||
|  |         border: 1px solid #00dcee; | ||||||
|  |         padding: 10rpx 30rpx; | ||||||
|  |         font-weight: 500; | ||||||
|  |         font-size: 24rpx; | ||||||
|  |         color: #00dcee; | ||||||
|  |         line-height: 41rpx; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     .name { | ||||||
|  |       font-weight: 400; | ||||||
|  |       font-size: 26rpx; | ||||||
|  |       color: #000000; | ||||||
|  |       margin: 15rpx 0rpx; | ||||||
|  |       text { | ||||||
|  |         background-color: #ffaf75; | ||||||
|  |         font-weight: 500; | ||||||
|  |         font-size: 26rpx; | ||||||
|  |         color: #ffffff; | ||||||
|  |         padding: 5rpx 20rpx; | ||||||
|  |         margin-left: 20rpx; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .flex-box1 { | ||||||
|  |       display: flex; | ||||||
|  |       align-items: center; | ||||||
|  |       justify-content: space-between; | ||||||
|  |       margin: 20rpx 0rpx; | ||||||
|  |       .type { | ||||||
|  |         font-weight: 400; | ||||||
|  |         font-size: 26rpx; | ||||||
|  |         color: #ec0f3e; | ||||||
|  |       } | ||||||
|  |       .btn { | ||||||
|  |         display: flex; | ||||||
|  |         > view + view { | ||||||
|  |           margin-left: 10rpx; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     .flex-box { | ||||||
|  |       display: flex; | ||||||
|  |       align-items: center; | ||||||
|  |       justify-content: space-between; | ||||||
|  |       font-weight: 400; | ||||||
|  |       font-size: 24rpx; | ||||||
|  |       color: #999999; | ||||||
|  |       border-bottom: 1rpx solid rgba(233, 233, 233, 0.76); | ||||||
|  |       padding-bottom: 20rpx; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   .more { | ||||||
|  |     display: grid; | ||||||
|  |     grid-template-columns: repeat(2, 1fr); | ||||||
|  |     flex: 1; | ||||||
|  |     font-weight: 400; | ||||||
|  |     font-size: 26rpx; | ||||||
|  |     color: #000000; | ||||||
|  |     padding: 25rpx 0rpx 0rpx 0rpx; | ||||||
|  |     > view { | ||||||
|  |       line-height: 50rpx; | ||||||
|  |       width: max-content; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   .op-btn { | ||||||
|  |     width: 80%; | ||||||
|  |     margin: 0px auto; | ||||||
|  |     margin-top: 100rpx; | ||||||
|  |     .c-btn-review { | ||||||
|  |       display: flex; | ||||||
|  |       justify-content: space-between; | ||||||
|  |       align-items: center; | ||||||
|  |       background: #f5f5f5; | ||||||
|  |       border-radius: 38rpx; | ||||||
|  |       text-align: center; | ||||||
|  |       margin-bottom: 80rpx; | ||||||
|  |       > view { | ||||||
|  |         width: 50%; | ||||||
|  |         text-align: center; | ||||||
|  |         font-weight: 500; | ||||||
|  |         font-size: 26rpx; | ||||||
|  |         color: #999999; | ||||||
|  |       } | ||||||
|  |       .active { | ||||||
|  |         background: #00dcee; | ||||||
|  |         border-radius: 38rpx; | ||||||
|  |         font-weight: 500; | ||||||
|  |         font-size: 26rpx; | ||||||
|  |         color: #ffffff; | ||||||
|  |         padding: 20rpx 30rpx; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     > view + view { | ||||||
|  |       margin-top: 30rpx; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </style> | ||||||
|  | @ -0,0 +1,275 @@ | ||||||
|  | <template> | ||||||
|  |   <view class="search"> | ||||||
|  |     <view v-if="!isShowSearch" @click="isShowSearch = true"> | ||||||
|  |       <u-icon color="#C1C1C1" name="search"></u-icon | ||||||
|  |       ><text>请输入客户名称</text> | ||||||
|  |     </view> | ||||||
|  |     <u-search | ||||||
|  |       v-else | ||||||
|  |       placeholder="请输入客户名称" | ||||||
|  |       v-model="keyword" | ||||||
|  |       :focus="true" | ||||||
|  |       bgColor="#fff" | ||||||
|  |       :clearabled="true" | ||||||
|  |       :showAction="false" | ||||||
|  |       placeholderColor="#C1C1C1" | ||||||
|  |     ></u-search> | ||||||
|  |   </view> | ||||||
|  | 
 | ||||||
|  |   <view class="card-box"> | ||||||
|  |     <view class="c-tab"> | ||||||
|  |       <text | ||||||
|  |         v-for="(item, index) in tabList" | ||||||
|  |         :key="index" | ||||||
|  |         :class="{ active: currentTab === item.key }" | ||||||
|  |         @click="handleTab(item)" | ||||||
|  |       > | ||||||
|  |         {{ item.name }} | ||||||
|  |       </text> | ||||||
|  |     </view> | ||||||
|  | 
 | ||||||
|  |     <block v-for="(item, index) in pageList.list" :key="index"> | ||||||
|  |       <view class="c-layout"> | ||||||
|  |         <view | ||||||
|  |           ><checkbox | ||||||
|  |             value="cb" | ||||||
|  |             :color="'#00D2E3'" | ||||||
|  |             :checked="state.checkMap[(item.id as number)]" | ||||||
|  |             style="transform: scale(0.5)" | ||||||
|  |         /></view> | ||||||
|  |         <view class="inner-box"> | ||||||
|  |           <view class="top-flex-box"> | ||||||
|  |             <view> | ||||||
|  |               <view> | ||||||
|  |                 <text class="number">出货单号:{{ item.receiptNumber }}</text> | ||||||
|  |               </view> | ||||||
|  |               <view> | ||||||
|  |                 <text class="name">{{ item.userName }}</text> | ||||||
|  |               </view> | ||||||
|  |             </view> | ||||||
|  |           </view> | ||||||
|  |           <view class="bottom-flex-box"> | ||||||
|  |             <view> | ||||||
|  |               <view> | ||||||
|  |                 <text class="desc" | ||||||
|  |                   >过磅总净重:{{ item.netWeight || 0 }}KG</text | ||||||
|  |                 > | ||||||
|  |               </view> | ||||||
|  |             </view> | ||||||
|  |             <view> | ||||||
|  |               <text class="btn"> | ||||||
|  |                 <text | ||||||
|  |                   v-if="currentTab === 2" | ||||||
|  |                   @click="handleReview(item.id as number, 2)" | ||||||
|  |                   >出货结算</text | ||||||
|  |                 > | ||||||
|  |                 <text v-if="currentTab === 3" @click="handleReview(item.id as number, 3)">去结算</text> | ||||||
|  |                 <text v-if="currentTab === 4" @click="handleReview(item.id as number, 4)">查看</text> | ||||||
|  |               </text> | ||||||
|  |             </view> | ||||||
|  |           </view> | ||||||
|  |         </view> | ||||||
|  |       </view> | ||||||
|  |       <u-gap | ||||||
|  |         height="10" | ||||||
|  |         bgColor="#f8f8f8" | ||||||
|  |         v-if="index < pageList.list.length - 1" | ||||||
|  |       ></u-gap> | ||||||
|  |     </block> | ||||||
|  |   </view> | ||||||
|  |   <view class="btn-box" v-if="(currentTab === 2 || currentTab === 3) && pageList.list.length > 0"> | ||||||
|  |     <u-button | ||||||
|  |       text="全选/取消" | ||||||
|  |       color="#fff" | ||||||
|  |       :customStyle="{ color: '#00DCEE', border: '1px solid #00DCEE' }" | ||||||
|  |       @click="handleSelect" | ||||||
|  |     ></u-button> | ||||||
|  |     <u-button type="primary" :text="`${currentTab === 2 ? '批量审核' : '批量支付'}`"></u-button> | ||||||
|  |   </view> | ||||||
|  | </template> | ||||||
|  | <script setup lang="ts"> | ||||||
|  | import { ShipmentApi } from "@/services/index"; | ||||||
|  | import { onLoad } from "@dcloudio/uni-app"; | ||||||
|  | // scaleStatus | ||||||
|  | interface PageResult<T> { | ||||||
|  |   total: number; | ||||||
|  |   list: T[]; | ||||||
|  |   pageNum: number; | ||||||
|  |   pageSize: number; | ||||||
|  | } | ||||||
|  | const pageList: PageResult<Order> = reactive({ | ||||||
|  |   total: 0, | ||||||
|  |   list: [], | ||||||
|  |   pageNum: 1, | ||||||
|  |   pageSize: 10, | ||||||
|  | }); | ||||||
|  | const keyword = ref(); | ||||||
|  | const isShowSearch = ref(false); | ||||||
|  | const state = reactive<{ | ||||||
|  |   [attrName: string]: any; | ||||||
|  | }>({ | ||||||
|  |   checkMap: {}, | ||||||
|  |   isAll: false, | ||||||
|  | }); | ||||||
|  | const tabList = reactive([ | ||||||
|  |   { | ||||||
|  |     name: "待出货结算", | ||||||
|  |     key: 2, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "已出未结算", | ||||||
|  |     key: 3, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "已出已结算", | ||||||
|  |     key: 4, | ||||||
|  |   }, | ||||||
|  | ]); | ||||||
|  | const currentTab = ref(2); | ||||||
|  | const handleTab = (item: any) => { | ||||||
|  |   currentTab.value = item.key; | ||||||
|  |   getOrderList(); | ||||||
|  | }; | ||||||
|  | const handleReview = (id: number, scaleStatus: number) => { | ||||||
|  |   uni.navigateTo({ | ||||||
|  |     url: "/pagesShipment/review/index?id=" + id + `&scaleStatus=`+ scaleStatus, // 要跳转到的页面路径 | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | const handleSelect = () => { | ||||||
|  |   state.isAll = !state.isAll; | ||||||
|  |   Object.keys(state.checkMap).forEach((item) => { | ||||||
|  |     state.checkMap[item] = state.isAll; | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | const getOrderList = () => { | ||||||
|  |   ShipmentApi.getOrderPage({ pageNumber: 1, pageSize: 10, scaleStatus: currentTab.value }).then( | ||||||
|  |     (res) => { | ||||||
|  |       if (res.code === 200) { | ||||||
|  |         (pageList as any).list = res.data.list; | ||||||
|  |         (res.data.list as any).forEach((item: any) => { | ||||||
|  |           state.checkMap[parseInt(item.id)] = false; | ||||||
|  |         }); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   ); | ||||||
|  | }; | ||||||
|  | onMounted(() => { | ||||||
|  |   getOrderList(); | ||||||
|  | }); | ||||||
|  | onLoad((option) => { | ||||||
|  |   currentTab.value = parseInt((option as any).scaleStatus); | ||||||
|  | }) | ||||||
|  | </script> | ||||||
|  | <style lang="scss" scoped> | ||||||
|  | .search { | ||||||
|  |   box-shadow: 0rpx 3rpx 16rpx 5rpx rgba(0, 0, 0, 0.2); | ||||||
|  |   border-radius: 28rpx; | ||||||
|  |   background: rgba(255, 255, 255, 0.86); | ||||||
|  |   width: 80%; | ||||||
|  |   margin: 0px auto; | ||||||
|  |   margin-top: 30rpx; | ||||||
|  |   font-weight: 400; | ||||||
|  |   font-size: 26rpx; | ||||||
|  |   color: #c1c1c1; | ||||||
|  |   > view { | ||||||
|  |     line-height: 60rpx; | ||||||
|  |     text-align: center; | ||||||
|  |     display: flex; | ||||||
|  |     justify-content: center; | ||||||
|  |   } | ||||||
|  |   text { | ||||||
|  |     margin-left: 15rpx; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | .card-box { | ||||||
|  |   .c-tab { | ||||||
|  |     font-family: Source Han Sans CN; | ||||||
|  |     font-weight: 400; | ||||||
|  |     font-size: 26rpx; | ||||||
|  |     color: #999999; | ||||||
|  |     line-height: 41rpx; | ||||||
|  |     display: flex; | ||||||
|  |     align-items: center; | ||||||
|  |     justify-content: space-around; | ||||||
|  |     border-bottom: 1rpx solid rgba(233, 233, 233, 0.76); | ||||||
|  |     text { | ||||||
|  |       padding: 16rpx; | ||||||
|  |     } | ||||||
|  |     .active { | ||||||
|  |       color: $u-primary; | ||||||
|  |       border-bottom: 5rpx solid $u-primary; | ||||||
|  |       border-radius: 5rpx; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   .c-layout { | ||||||
|  |     display: flex; | ||||||
|  |     justify-content: space-between; | ||||||
|  |     padding: 30rpx 25rpx 30rpx 0rpx; | ||||||
|  |   } | ||||||
|  |   .inner-box { | ||||||
|  |     width: 100%; | ||||||
|  |     // padding: 40rpx 40rpx; | ||||||
|  |     .bottom-flex-box { | ||||||
|  |       display: flex; | ||||||
|  |       justify-content: space-between; | ||||||
|  |       align-items: center; | ||||||
|  |       .btn { | ||||||
|  |         border-radius: 24rpx; | ||||||
|  |         border: 1px solid #00dcee; | ||||||
|  |         padding: 10rpx 30rpx; | ||||||
|  |         font-weight: 500; | ||||||
|  |         font-size: 24rpx; | ||||||
|  |         color: #00dcee; | ||||||
|  |         line-height: 41rpx; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12); | ||||||
|  |   border-radius: 13rpx; | ||||||
|  |   margin: 0rpx 25rpx; | ||||||
|  |   margin-top: 35rpx; | ||||||
|  |   font-family: Source Han Sans CN; | ||||||
|  |   font-weight: 400; | ||||||
|  |   font-size: 26rpx; | ||||||
|  |   color: #000000; | ||||||
|  |   line-height: 41rpx; | ||||||
|  | 
 | ||||||
|  |   .desc { | ||||||
|  |     font-size: 24rpx; | ||||||
|  |     color: #999999; | ||||||
|  |     margin-top: 30rpx; | ||||||
|  |     display: inline-block; | ||||||
|  |   } | ||||||
|  |   .name { | ||||||
|  |     font-size: 26rpx; | ||||||
|  |     color: #000000; | ||||||
|  |     font-weight: bold; | ||||||
|  |   } | ||||||
|  |   .flex-box { | ||||||
|  |     font-weight: bold; | ||||||
|  |     color: #000000; | ||||||
|  |     line-height: 41rpx; | ||||||
|  |     display: flex; | ||||||
|  |     align-items: center; | ||||||
|  |     justify-content: space-between; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | .btn-box { | ||||||
|  |   margin-top: 60rpx; | ||||||
|  |   display: flex; | ||||||
|  |   background: #ffffff; | ||||||
|  |   box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 56, 93, 0.12); | ||||||
|  |   border-radius: 13rpx 13rpx 0rpx 0rpx; | ||||||
|  |   padding: 25rpx 50rpx; | ||||||
|  |   position: absolute; | ||||||
|  |   bottom: 0rpx; | ||||||
|  |   width: calc(100vw - 100rpx); | ||||||
|  |   ::v-deep button { | ||||||
|  |     border-radius: 43rpx; | ||||||
|  |   } | ||||||
|  |   ::v-deep button + button { | ||||||
|  |     margin-left: 50rpx; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </style> | ||||||
|  | @ -3,7 +3,6 @@ | ||||||
|     <view class="top-flex-box"> |     <view class="top-flex-box"> | ||||||
|       <view> |       <view> | ||||||
|         <view> |         <view> | ||||||
|           {{ item.id }} |  | ||||||
|           <text class="address">{{ item.deviceName || "-" }}</text> |           <text class="address">{{ item.deviceName || "-" }}</text> | ||||||
|         </view> |         </view> | ||||||
|         <view> |         <view> | ||||||
|  |  | ||||||
|  | @ -1,48 +0,0 @@ | ||||||
| // 存放路径: src/services/home.ts
 |  | ||||||
| 
 |  | ||||||
| import { http } from '@/utils/http' |  | ||||||
| 
 |  | ||||||
| /** |  | ||||||
|  * 首页-广告区域-小程序 |  | ||||||
|  * @param distributionSite 广告区域展示位置(投放位置 投放位置,1为首页,2为分类商品页) 默认是1 |  | ||||||
|  */ |  | ||||||
| export const getHomeBannerAPI = (distributionSite = 1) => { |  | ||||||
|   return http({ |  | ||||||
|     method: 'GET', |  | ||||||
|     url: '/home/banner', |  | ||||||
|     data: { |  | ||||||
|       distributionSite, |  | ||||||
|     }, |  | ||||||
|   }) |  | ||||||
| } |  | ||||||
| // services/home.ts
 |  | ||||||
| /** |  | ||||||
|  * 首页-前台分类-小程序 |  | ||||||
|  */ |  | ||||||
| export const getHomeCategoryAPI = () => { |  | ||||||
|   return http({ |  | ||||||
|     method: 'GET', |  | ||||||
|     url: '/home/category/mutli', |  | ||||||
|   }) |  | ||||||
| } |  | ||||||
| // services/home.ts
 |  | ||||||
| /** |  | ||||||
|  * 首页-热门推荐-小程序 |  | ||||||
|  */ |  | ||||||
| export const getHomeHotAPI = () => { |  | ||||||
|   return http({ |  | ||||||
|     method: 'GET', |  | ||||||
|     url: '/home/hot/mutli', |  | ||||||
|   }) |  | ||||||
| } |  | ||||||
| // src/services/home.ts
 |  | ||||||
| /** |  | ||||||
|  * 猜你喜欢-小程序 |  | ||||||
|  */ |  | ||||||
| export const getHomeGoodsGuessLikeAPI = (data: any) => { |  | ||||||
|   return http({ |  | ||||||
|     method: 'GET', |  | ||||||
|     url: '/home/goods/guessLike', |  | ||||||
|     data, |  | ||||||
|   }) |  | ||||||
| } |  | ||||||
|  | @ -1,48 +0,0 @@ | ||||||
| // 存放路径: src/services/home.ts
 |  | ||||||
| 
 |  | ||||||
| import { http } from '@/utils/http' |  | ||||||
| 
 |  | ||||||
| /** |  | ||||||
|  * 首页-广告区域-小程序 |  | ||||||
|  * @param distributionSite 广告区域展示位置(投放位置 投放位置,1为首页,2为分类商品页) 默认是1 |  | ||||||
|  */ |  | ||||||
| export const getHomeBannerAPI = (distributionSite = 1) => { |  | ||||||
|   return http({ |  | ||||||
|     method: 'GET', |  | ||||||
|     url: '/home/banner', |  | ||||||
|     data: { |  | ||||||
|       distributionSite, |  | ||||||
|     }, |  | ||||||
|   }) |  | ||||||
| } |  | ||||||
| // services/home.ts
 |  | ||||||
| /** |  | ||||||
|  * 首页-前台分类-小程序 |  | ||||||
|  */ |  | ||||||
| export const getHomeCategoryAPI = () => { |  | ||||||
|   return http({ |  | ||||||
|     method: 'GET', |  | ||||||
|     url: '/home/category/mutli', |  | ||||||
|   }) |  | ||||||
| } |  | ||||||
| // services/home.ts
 |  | ||||||
| /** |  | ||||||
|  * 首页-热门推荐-小程序 |  | ||||||
|  */ |  | ||||||
| export const getHomeHotAPI = () => { |  | ||||||
|   return http({ |  | ||||||
|     method: 'GET', |  | ||||||
|     url: '/home/hot/mutli', |  | ||||||
|   }) |  | ||||||
| } |  | ||||||
| // src/services/home.ts
 |  | ||||||
| /** |  | ||||||
|  * 猜你喜欢-小程序 |  | ||||||
|  */ |  | ||||||
| export const getHomeGoodsGuessLikeAPI = (data: any) => { |  | ||||||
|   return http({ |  | ||||||
|     method: 'GET', |  | ||||||
|     url: '/home/goods/guessLike', |  | ||||||
|     data, |  | ||||||
|   }) |  | ||||||
| } |  | ||||||
|  | @ -0,0 +1,46 @@ | ||||||
|  | import { http } from '@/utils/http' | ||||||
|  | 
 | ||||||
|  | // 设备信息新增
 | ||||||
|  | export const addDevice = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/device/addDevice', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | // 设备信息修改
 | ||||||
|  | export const editDevice = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/device/edit', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 设备信息逻辑删除
 | ||||||
|  | export const deleteDevice = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/device/deleteDevice', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | // 设备信息根据id查询
 | ||||||
|  | export const selectDeviceId = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/device/selectDeviceId', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 设备信息根据id查询
 | ||||||
|  | export const getDeviceList = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/device/getDeviceList', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,181 @@ | ||||||
|  | import { http } from '@/utils/http' | ||||||
|  | 
 | ||||||
|  | // 收货分类新增
 | ||||||
|  | export const getStockCardList = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/recategory/addReCategory', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 收货分类逻辑删除
 | ||||||
|  | export const deleteReceiveCategory = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/recategory/deleteCategory', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 收货根据分类id查询
 | ||||||
|  | export const selectReCyById = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'GET', | ||||||
|  |     url: '/api/recategory/selectReCyById', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | //收货分类分页查询
 | ||||||
|  | export const getPage = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'GET', | ||||||
|  |     url: '/api/recategory/getPage', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 收货分类修改信息
 | ||||||
|  | export const editReceiveCategory = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/recategory/edit', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 收货产品新增
 | ||||||
|  | export const addReProducts = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/reproducts/addReProducts', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 收货产品编辑
 | ||||||
|  | export const EditReceiveProduct = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/reproducts/edit', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 收货产品逻辑删除
 | ||||||
|  | export const deleteReceiveProduct = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/reproducts/deleteCategory', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 收货产品根据产品id查询
 | ||||||
|  | export const getReceiveProductById = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/reproducts/selectReCyById', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 收货产品分页查询
 | ||||||
|  | export const getReceiveProductListByPage = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'GET', | ||||||
|  |     url: '/api/reproducts/getPage', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 收货产品查询所有
 | ||||||
|  | export const getReceiveProductList = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'GET', | ||||||
|  |     url: '/api/reproducts/allReProducts', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 出货分类新增
 | ||||||
|  | export const addShmCategory = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/shmcategory/addShmCategory', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 出货分类树显示
 | ||||||
|  | export const getShipmentCategory = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'GET', | ||||||
|  |     url: '/api/shmcategory/getChinaList', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 出货分类根据id查询
 | ||||||
|  | export const getShipmentCategoryById = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/shmcategory/selectShCyById', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 出货分类根据id逻辑删除
 | ||||||
|  | export const deleteById = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/shmcategory/deleteShmCategory', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 出货分类根据id编辑
 | ||||||
|  | export const editShipmentCategory = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/shmcategory/edit', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 出货产品根据id查询
 | ||||||
|  | export const getShipmentProductById = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/shmproducts/selectRePsById', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 出货产品新增
 | ||||||
|  | export const addShipmentProduct = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/shmproducts/addShmProducts', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 出货产品分页查询
 | ||||||
|  | export const getShipmentProductByPage = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'GET', | ||||||
|  |     url: '/api/shmproducts/getPage', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 出货产品查询所有
 | ||||||
|  | export const getShipmentProductList = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'GET', | ||||||
|  |     url: '/api/shmproducts/allShmProducts', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | @ -3,3 +3,6 @@ export * as ReceiveApi from './receive' | ||||||
| export * as ShipmentApi from './shipment' | export * as ShipmentApi from './shipment' | ||||||
| export * as PictureApi from './picture' | export * as PictureApi from './picture' | ||||||
| export * as ReceiveProductApi from './receiveProduct' | export * as ReceiveProductApi from './receiveProduct' | ||||||
|  | export * as DeviceApi from './device' | ||||||
|  | export * as StockCardApi from './stockCard' | ||||||
|  | export * as GoodsApi from './goods' | ||||||
|  | @ -39,6 +39,16 @@ export const sendMsg = (data: { phone: string }) => { | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | // 修改密码
 | ||||||
|  | export const updateUserPwd = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: "POST", | ||||||
|  |     url: "/api/user/updateUserPwd", | ||||||
|  |     data | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| // 创建角色
 | // 创建角色
 | ||||||
| export const addRole = (data: { roleCode: string; roleName: string }) => { | export const addRole = (data: { roleCode: string; roleName: string }) => { | ||||||
|   return http({ |   return http({ | ||||||
|  | @ -61,13 +71,14 @@ export const updateRole = (data: { | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // 发送验证码
 | // 查询角色列表
 | ||||||
| export const getRoleList = () => { | export const getRoleList = () => { | ||||||
|   return http({ |   return http({ | ||||||
|     method: "GET", |     method: "GET", | ||||||
|     url: "/api/role/getRoleList", |     url: "/api/role/getRoleList", | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
|  | 
 | ||||||
| // 验证角色是否重复 1=code 2=名称 3=全部
 | // 验证角色是否重复 1=code 2=名称 3=全部
 | ||||||
| export const verifyRole = (data: { | export const verifyRole = (data: { | ||||||
|   roleCode: string; |   roleCode: string; | ||||||
|  | @ -95,7 +106,95 @@ export const addMenusRole = (data: { | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | // 查询角色菜单权限
 | ||||||
|  | export const getMenusRole = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: "GET", | ||||||
|  |     url: "/api/role/getMenusRole", | ||||||
|  |     data | ||||||
|  |   }); | ||||||
|  | }; | ||||||
| 
 | 
 | ||||||
|  | // 查询分页菜单
 | ||||||
|  | export const getMenuByPage = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: "GET", | ||||||
|  |     url: "/api/menus/getPage", | ||||||
|  |     data | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // 创建菜单
 | ||||||
|  | export const addMenus = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: "POST", | ||||||
|  |     url: "/api/menus/addMenus", | ||||||
|  |     data | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // 查询菜单List
 | ||||||
|  | export const getMenuList = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: "GET", | ||||||
|  |     url: "/api/menus/getList", | ||||||
|  |     data | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // 修改菜单
 | ||||||
|  | export const updateMenus = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: "POST", | ||||||
|  |     url: "/api/menus/updateMenus", | ||||||
|  |     data | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // 查询省市区
 | ||||||
|  | export const getProvinceList = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: "GET", | ||||||
|  |     url: "/api/user/getChinaList", | ||||||
|  |     data | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // 添加用户
 | ||||||
|  | export const addUser = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: "POST", | ||||||
|  |     url: "/api/user/addUser", | ||||||
|  |     data | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // 查询用户分页
 | ||||||
|  | export const getUserListByPage = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: "GET", | ||||||
|  |     url: "/api/user/getUserPage", | ||||||
|  |     data | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // 获取用户信息
 | ||||||
|  | export const getUserInfo = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: "GET", | ||||||
|  |     url: "/api/user/getUserInfo", | ||||||
|  |     data | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // 添加用户角色关系
 | ||||||
|  | export const addUserRole = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: "POST", | ||||||
|  |     url: "/api/user/addUserRole", | ||||||
|  |     data | ||||||
|  |   }); | ||||||
|  | }; | ||||||
| // 查询用户列表
 | // 查询用户列表
 | ||||||
| export const getUserList = (data: { | export const getUserList = (data: { | ||||||
|   name?: string; |   name?: string; | ||||||
|  |  | ||||||
|  | @ -81,6 +81,25 @@ export const updateOne = (data: any) => { | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | // 收货汇总
 | ||||||
|  | export const OrderInReceipt = () => { | ||||||
|  |   return http({ | ||||||
|  |     method: "GET", | ||||||
|  |     url: "/api/orderIn/OrderInReceipt" | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // 收货单排行榜
 | ||||||
|  | export const OrderInRanking = () => { | ||||||
|  |   return http({ | ||||||
|  |     method: "GET", | ||||||
|  |     url: "/api/orderIn/OrderInRanking" | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ type ShipmentSummary = { | ||||||
|   toBeSettled: number, // 待结算
 |   toBeSettled: number, // 待结算
 | ||||||
| } | } | ||||||
| // 根据id查询出货单
 | // 根据id查询出货单
 | ||||||
| export const getDetailById = (data: {id: number}) => { | export const getDetailById = (data: {id: string}) => { | ||||||
|   return http<Shipment>({ |   return http<Shipment>({ | ||||||
|     method: "GET", |     method: "GET", | ||||||
|     url: "/api/orderOut/getOne", |     url: "/api/orderOut/getOne", | ||||||
|  |  | ||||||
|  | @ -0,0 +1,26 @@ | ||||||
|  | import { http } from '@/utils/http' | ||||||
|  | 
 | ||||||
|  | // 库存卡查询分页
 | ||||||
|  | export const getStockCardList = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'GET', | ||||||
|  |     url: '/api/card/getStockCardList', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | // 添加库存卡
 | ||||||
|  | export const addStockCard = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/card/addStockCard', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | // 修改库存卡
 | ||||||
|  | export const updateStockCard = (data: any) => { | ||||||
|  |   return http({ | ||||||
|  |     method: 'POST', | ||||||
|  |     url: '/api/card/updateStockCard', | ||||||
|  |     data, | ||||||
|  |   }) | ||||||
|  | } | ||||||
| Before Width: | Height: | Size: 544 KiB | 
|  | @ -28,3 +28,6 @@ body { | ||||||
| .l-h-28 { | .l-h-28 { | ||||||
|   line-height: 28px; |   line-height: 28px; | ||||||
| } | } | ||||||
|  | .mt-30 { | ||||||
|  |   margin-top: 30rpx; | ||||||
|  | } | ||||||
|  | @ -42,6 +42,33 @@ interface Order { | ||||||
|   isChecked?: boolean; |   isChecked?: boolean; | ||||||
|   [attrName: string]: any; |   [attrName: string]: any; | ||||||
| } | } | ||||||
|  | // 分页结构
 | ||||||
|  | interface OrderPage<T> { | ||||||
|  |   total: number; | ||||||
|  |   list: T; | ||||||
|  |   pageNum: number; | ||||||
|  |   pageSize: number; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface ReceiveSummary { | ||||||
|  |   totalReceipt: number; // 本月总出货
 | ||||||
|  |   totalExpenditure: number; // 本月总收入
 | ||||||
|  |   toBePriced: number; // 待收货
 | ||||||
|  |   toBeTare: number; // 待过皮重
 | ||||||
|  |   audit: number; // 付款审核
 | ||||||
|  |   toBePaid: number; // 待支付
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type PageParams = { | ||||||
|  |   pageNumber: number; | ||||||
|  |   pageSize: number; | ||||||
|  |   pricingUserId?: string; // 定价人
 | ||||||
|  |   userId?: string; // 供应商id
 | ||||||
|  |   productId?: string; // 产品id
 | ||||||
|  |   repairFlag?: boolean; // 是否为补单,true 是未补单,false是补单
 | ||||||
|  |   scaleStatus?: number; // 磅单状态:0:待定价1:待过皮2:待审核3:已审核待支付4:已支付
 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| interface Shipment { | interface Shipment { | ||||||
|   id?: string; |   id?: string; | ||||||
|   userId?: number; //供应商id
 |   userId?: number; //供应商id
 | ||||||
|  | @ -84,29 +111,28 @@ interface Shipment { | ||||||
|   isDeleted?: string; //删除标识true删除,false未删除
 |   isDeleted?: string; //删除标识true删除,false未删除
 | ||||||
|   [attrName: string]: any; |   [attrName: string]: any; | ||||||
| } | } | ||||||
| // 分页结构
 | 
 | ||||||
| interface OrderPage<T> { | // 出货单排行
 | ||||||
|   total: number; | interface ShipmentRank { | ||||||
|   list: T; |   userId: number; | ||||||
|   pageNum: number; |   userName: string; | ||||||
|   pageSize: number; |   productId: number; | ||||||
|  |   productName: string; // 产品名称
 | ||||||
|  |   totalAmount: number; // 总收货量
 | ||||||
|  |   totalPayment: number; //总应付总额
 | ||||||
|  |   totalOrderNumber: number; // 收货单数量
 | ||||||
|  |   averagePrice: number; // 均价
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| interface ReceiveSummary { | // 出库分类
 | ||||||
|   totalReceipt: number; // 本月总出货
 | interface ShipmentTypeCount { | ||||||
|   totalExpenditure: number; // 本月总收入
 |   totalAmount: number; // 收货汇总:审核过收货总量
 | ||||||
|   toBePriced: number; // 待收货
 |   totalPayShipment: number; // 已支付的出货总量
 | ||||||
|   toBeTare: number; // 待过皮重
 |   totalUnPayShipment: number; // 未支付的出货总量
 | ||||||
|   audit: number; // 付款审核
 |   totalCollection: number; // 总收款
 | ||||||
|   toBePaid: number; // 待支付
 |   totalPayCollection: number; // 已经收到的收款
 | ||||||
|  |   totalUnPayCollection: number; // 未收到的收款
 | ||||||
|  |   totalReceipt: number; // 收货单数量已审核的
 | ||||||
|  |   averagePrice: number; // 平均单价
 | ||||||
|  |   rankings: ShipmentRank[]; // 出货产品汇总
 | ||||||
| } | } | ||||||
| 
 |  | ||||||
| type PageParams = { |  | ||||||
|   pageNumber: number; |  | ||||||
|   pageSize: number; |  | ||||||
|   pricingUserId?: string; // 定价人
 |  | ||||||
|   userId?: string; // 供应商id
 |  | ||||||
|   productId?: string; // 产品id
 |  | ||||||
|   repairFlag?: boolean; // 是否为补单,true 是未补单,false是补单
 |  | ||||||
|   scaleStatus?: number; // 磅单状态:0:待定价1:待过皮2:待审核3:已审核待支付4:已支付
 |  | ||||||
| }; |  | ||||||
|  |  | ||||||
|  | @ -53,3 +53,9 @@ export enum UserType { | ||||||
|   Face = 0, |   Face = 0, | ||||||
|   Card = 1, |   Card = 1, | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // 提货方式:0:送货1:自提
 | ||||||
|  | export enum DeliveryMethod { | ||||||
|  |   Deliver = 0, | ||||||
|  |   SelfPickup = 1 | ||||||
|  | } | ||||||
 admin
						admin