update: 待出库接口对接
This commit is contained in:
		
							parent
							
								
									c98484dc78
								
							
						
					
					
						commit
						2df6a8b456
					
				| 
						 | 
				
			
			@ -62,6 +62,7 @@
 | 
			
		|||
    "pinia": "2.0.33",
 | 
			
		||||
    "pinia-plugin-persistedstate": "^3.2.1",
 | 
			
		||||
    "postcss-pxtorem": "^6.0.0",
 | 
			
		||||
    "underscore": "^1.13.6",
 | 
			
		||||
    "unplugin-auto-import": "^0.17.3",
 | 
			
		||||
    "uview-plus": "^3.1.41",
 | 
			
		||||
    "vue": "^3.2.45",
 | 
			
		||||
| 
						 | 
				
			
			@ -74,6 +75,7 @@
 | 
			
		|||
    "@dcloudio/uni-stacktracey": "3.0.0-3081220230817001",
 | 
			
		||||
    "@dcloudio/vite-plugin-uni": "3.0.0-3081220230817001",
 | 
			
		||||
    "@types/node": "^20.11.22",
 | 
			
		||||
    "@types/underscore": "^1.11.15",
 | 
			
		||||
    "@types/wechat-miniprogram": "^3.4.7",
 | 
			
		||||
    "@uni-helper/uni-app-types": "^0.5.12",
 | 
			
		||||
    "@uni-helper/uni-ui-types": "^0.5.11",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -74,6 +74,9 @@ dependencies:
 | 
			
		|||
  postcss-pxtorem:
 | 
			
		||||
    specifier: ^6.0.0
 | 
			
		||||
    version: 6.1.0(postcss@8.4.35)
 | 
			
		||||
  underscore:
 | 
			
		||||
    specifier: ^1.13.6
 | 
			
		||||
    version: 1.13.6
 | 
			
		||||
  unplugin-auto-import:
 | 
			
		||||
    specifier: ^0.17.3
 | 
			
		||||
    version: 0.17.5
 | 
			
		||||
| 
						 | 
				
			
			@ -106,6 +109,9 @@ devDependencies:
 | 
			
		|||
  '@types/node':
 | 
			
		||||
    specifier: ^20.11.22
 | 
			
		||||
    version: 20.11.22
 | 
			
		||||
  '@types/underscore':
 | 
			
		||||
    specifier: ^1.11.15
 | 
			
		||||
    version: 1.11.15
 | 
			
		||||
  '@types/wechat-miniprogram':
 | 
			
		||||
    specifier: ^3.4.7
 | 
			
		||||
    version: 3.4.7
 | 
			
		||||
| 
						 | 
				
			
			@ -3095,6 +3101,10 @@ packages:
 | 
			
		|||
    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@types/underscore@1.11.15:
 | 
			
		||||
    resolution: {integrity: sha512-HP38xE+GuWGlbSRq9WrZkousaQ7dragtZCruBVMi0oX1migFZavZ3OROKHSkNp/9ouq82zrWtZpg18jFnVN96g==}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@types/wechat-miniprogram@3.4.7:
 | 
			
		||||
    resolution: {integrity: sha512-X6SVOOaTPQN24lYBSV5jLuWyIedx8DGJnT0VUBnoNzJruhxotCL28ecGb7AO5JfXOXtHqSS5+CnJ70NxFxmisA==}
 | 
			
		||||
    dev: true
 | 
			
		||||
| 
						 | 
				
			
			@ -6784,6 +6794,10 @@ packages:
 | 
			
		|||
    resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==}
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /underscore@1.13.6:
 | 
			
		||||
    resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==}
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /undici-types@5.26.5:
 | 
			
		||||
    resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
## 获取接口字段
 | 
			
		||||
```
 | 
			
		||||
let c = a.data[22].requestBody.jsonSchema.properties
 | 
			
		||||
for (let i = 0; i < Object.keys(c).length; i++) {
 | 
			
		||||
  console.log(Object.keys(c)[i], + ':',c[Object.keys(c)[i]].type + '; //' + c[Object.keys(c)[i]].description )
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
| 
						 | 
				
			
			@ -8,8 +8,8 @@
 | 
			
		|||
    </view>
 | 
			
		||||
    <template #confirmButton>
 | 
			
		||||
      <view class="btn-box">
 | 
			
		||||
        <text class="cancel" @click="handleClose(false)">取消</text>
 | 
			
		||||
        <text class="ok" @click="handleClose(false)">{{ okText }}</text>
 | 
			
		||||
        <text class="cancel" @click="handleClose('cancel')">取消</text>
 | 
			
		||||
        <text class="ok" @click="handleClose('ok')">{{ okText }}</text>
 | 
			
		||||
      </view>
 | 
			
		||||
    </template>
 | 
			
		||||
  </u-modal>
 | 
			
		||||
| 
						 | 
				
			
			@ -30,9 +30,13 @@ const props = withDefaults(
 | 
			
		|||
    show: false
 | 
			
		||||
  }
 | 
			
		||||
);
 | 
			
		||||
const emit = defineEmits(["handleModal"]);
 | 
			
		||||
const handleClose = () => {
 | 
			
		||||
const emit = defineEmits(["handleModal", "handleOk"]);
 | 
			
		||||
const handleClose = (v: string) => {
 | 
			
		||||
  emit("handleModal", false);
 | 
			
		||||
  if (v === 'ok') {
 | 
			
		||||
    // 走确认操作
 | 
			
		||||
    emit("handleOk");
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,8 @@
 | 
			
		|||
// 不同的环境变量配置
 | 
			
		||||
const development = {
 | 
			
		||||
  // VITE_APP_BASE_URL: 'http://47.100.31.83:8081', 
 | 
			
		||||
  VITE_APP_BASE_URL: 'http://47.100.31.83:8081', 
 | 
			
		||||
  
 | 
			
		||||
  appid: '', 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,7 +62,10 @@
 | 
			
		|||
    "setting": {
 | 
			
		||||
      "urlCheck": false
 | 
			
		||||
    },
 | 
			
		||||
    "usingComponents": true
 | 
			
		||||
    "usingComponents": true,
 | 
			
		||||
    "optimization": {
 | 
			
		||||
      "subPackages": true //是否启用分包优化
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "mp-alipay": {
 | 
			
		||||
    "usingComponents": true
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										104
									
								
								src/pages.json
								
								
								
								
							
							
						
						
									
										104
									
								
								src/pages.json
								
								
								
								
							| 
						 | 
				
			
			@ -33,30 +33,6 @@
 | 
			
		|||
    //     "navigationBarTitleText": "工作台"
 | 
			
		||||
    //   }
 | 
			
		||||
    // },
 | 
			
		||||
    {
 | 
			
		||||
      "path": "pages/index/pricing",
 | 
			
		||||
      "style": {
 | 
			
		||||
        "navigationBarTitleText": "待定价"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "path": "pages/index/tareing",
 | 
			
		||||
      "style": {
 | 
			
		||||
        "navigationBarTitleText": "待过皮重"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "path": "pages/index/payReview",
 | 
			
		||||
      "style": {
 | 
			
		||||
        "navigationBarTitleText": "付款审核"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "path": "pages/index/shipmenting",
 | 
			
		||||
      "style": {
 | 
			
		||||
        "navigationBarTitleText": "待出货"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "path": "pages/index/grossWeight",
 | 
			
		||||
      "style": {
 | 
			
		||||
| 
						 | 
				
			
			@ -69,12 +45,6 @@
 | 
			
		|||
        "navigationBarTitleText": "出货结算"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "path": "pages/review/index",
 | 
			
		||||
      "style": {
 | 
			
		||||
        "navigationBarTitleText": "去审核"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "path": "pages/index/settlement",
 | 
			
		||||
      "style": {
 | 
			
		||||
| 
						 | 
				
			
			@ -167,12 +137,6 @@
 | 
			
		|||
        "navigationBarTitleText": "客户对账"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "path": "pages/scenePhoto/index",
 | 
			
		||||
      "style": {
 | 
			
		||||
        "navigationBarTitleText": "现场照片"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "path": "pages/statistics/supplier/billDetail",
 | 
			
		||||
      "style": {
 | 
			
		||||
| 
						 | 
				
			
			@ -244,9 +208,75 @@
 | 
			
		|||
      "style": {
 | 
			
		||||
        "navigationBarTitleText": "客户管理"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    }
 | 
			
		||||
    //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
 | 
			
		||||
  ],
 | 
			
		||||
  "subPackages": [
 | 
			
		||||
    {
 | 
			
		||||
      "root": "pagesReceive",
 | 
			
		||||
      "pages": [
 | 
			
		||||
        {
 | 
			
		||||
          "path": "pricing",
 | 
			
		||||
          "style": {
 | 
			
		||||
            "navigationBarTitleText": "待定价"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "path": "tareing",
 | 
			
		||||
          "style": {
 | 
			
		||||
            "navigationBarTitleText": "待过皮重"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "path": "payReview",
 | 
			
		||||
          "style": {
 | 
			
		||||
            "navigationBarTitleText": "付款审核"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "path": "form/pricingForm",
 | 
			
		||||
          "style": {
 | 
			
		||||
            "navigationBarTitleText": "定价详情"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "path": "review/index",
 | 
			
		||||
          "style": {
 | 
			
		||||
            "navigationBarTitleText": "去审核"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }, 
 | 
			
		||||
    {
 | 
			
		||||
      "root": "pagesShipment",
 | 
			
		||||
      "pages": [
 | 
			
		||||
        {
 | 
			
		||||
          "path": "shipmenting",
 | 
			
		||||
          "style": {
 | 
			
		||||
            "navigationBarTitleText": "待出货"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "path": "form/shipmentForm",
 | 
			
		||||
          "style": {
 | 
			
		||||
            "navigationBarTitleText": "待出货编辑"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
      
 | 
			
		||||
    },{
 | 
			
		||||
      "root": "pagesScenePhoto",
 | 
			
		||||
      "pages": [
 | 
			
		||||
        {
 | 
			
		||||
          "path": "index",
 | 
			
		||||
          "style": {
 | 
			
		||||
            "navigationBarTitleText": "现场照片"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
      
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "globalStyle": {
 | 
			
		||||
    "navigationBarTextStyle": "black",
 | 
			
		||||
    "navigationBarTitleText": "智能回收",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -105,7 +105,7 @@ const gridList1 = reactive([
 | 
			
		|||
]);
 | 
			
		||||
const handleScenePhoto = () => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pages/scenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
    url: "/pagesScenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,7 +114,7 @@ const gridList1 = reactive([
 | 
			
		|||
]);
 | 
			
		||||
const handleScenePhoto = () => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pages/scenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
    url: "/pagesScenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -154,7 +154,7 @@ const gridList1 = reactive([
 | 
			
		|||
]);
 | 
			
		||||
const handleScenePhoto = () => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pages/scenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
    url: "/pagesScenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -145,7 +145,7 @@ const gridList1 = reactive([
 | 
			
		|||
]);
 | 
			
		||||
const handleScenePhoto = () => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pages/scenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
    url: "/pagesScenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,6 @@
 | 
			
		|||
      <view>
 | 
			
		||||
        <view>
 | 
			
		||||
          <text class="address">上海奉贤两网融合</text>
 | 
			
		||||
          <text class="type">(大磅)</text>
 | 
			
		||||
        </view>
 | 
			
		||||
        <view>
 | 
			
		||||
          <text class="number">收货单号:SHD20230901132333</text>
 | 
			
		||||
| 
						 | 
				
			
			@ -14,7 +13,7 @@
 | 
			
		|||
        </view>
 | 
			
		||||
      </view>
 | 
			
		||||
      <view>
 | 
			
		||||
        <text class="btn">现场照片</text>
 | 
			
		||||
        <text class="btn" @click="handleScenePhoto">现场照片</text>
 | 
			
		||||
      </view>
 | 
			
		||||
    </view>
 | 
			
		||||
    <view>
 | 
			
		||||
| 
						 | 
				
			
			@ -33,7 +32,13 @@
 | 
			
		|||
    </view>
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup lang="ts"></script>
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
const handleScenePhoto = () => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pagesScenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.card-box {
 | 
			
		||||
  padding: 38rpx 50rpx;
 | 
			
		||||
| 
						 | 
				
			
			@ -43,44 +48,40 @@
 | 
			
		|||
  margin-top: 35rpx;
 | 
			
		||||
  font-family: Source Han Sans CN;
 | 
			
		||||
  font-weight: 400;
 | 
			
		||||
  font-size: 24rpx;
 | 
			
		||||
  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 30rpx;
 | 
			
		||||
      padding: 10rpx 25rpx;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      font-size: 24rpx;
 | 
			
		||||
      color: #00dcee;
 | 
			
		||||
      line-height: 41rpx;
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .address {
 | 
			
		||||
    margin-right: 30rpx;
 | 
			
		||||
  }
 | 
			
		||||
  .type,
 | 
			
		||||
  .desc {
 | 
			
		||||
    font-size: 21rpx;
 | 
			
		||||
    font-size: 24rpx;
 | 
			
		||||
    color: #999999;
 | 
			
		||||
  }
 | 
			
		||||
  .desc {
 | 
			
		||||
    margin-top: 30rpx;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
  }
 | 
			
		||||
  .name {
 | 
			
		||||
    font-size: 32rpx;
 | 
			
		||||
    font-size: 28rpx;
 | 
			
		||||
    color: #000000;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
  }
 | 
			
		||||
  .flex-box {
 | 
			
		||||
    font-weight: 400;
 | 
			
		||||
    font-size: 32rpx;
 | 
			
		||||
    font-size: 28rpx;
 | 
			
		||||
    color: #000000;
 | 
			
		||||
    line-height: 41rpx;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -212,7 +212,7 @@ const receiveList = reactive([
 | 
			
		|||
    num: 0,
 | 
			
		||||
    fn: () => {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/index/pricing", // 要跳转到的页面路径
 | 
			
		||||
        url: "/pagesReceive/pricing", // 要跳转到的页面路径
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			@ -221,7 +221,7 @@ const receiveList = reactive([
 | 
			
		|||
    num: 0,
 | 
			
		||||
    fn: () => {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/index/tareing", // 要跳转到的页面路径
 | 
			
		||||
        url: "/pagesReceive/tareing", // 要跳转到的页面路径
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			@ -230,7 +230,7 @@ const receiveList = reactive([
 | 
			
		|||
    num: 0,
 | 
			
		||||
    fn: () => {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/index/payReview", // 要跳转到的页面路径
 | 
			
		||||
        url: "/pagesReceive/payReview?scaleStatus=2", // 要跳转到的页面路径
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			@ -239,7 +239,7 @@ const receiveList = reactive([
 | 
			
		|||
    num: 0,
 | 
			
		||||
    fn: () => {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/index/payReview", // 要跳转到的页面路径
 | 
			
		||||
        url: "/pagesReceive/payReview?scaleStatus=3", // 要跳转到的页面路径
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			@ -247,16 +247,16 @@ const receiveList = reactive([
 | 
			
		|||
const shipmentList = reactive([
 | 
			
		||||
  {
 | 
			
		||||
    title: "待出货",
 | 
			
		||||
    num: 999,
 | 
			
		||||
    num: 0,
 | 
			
		||||
    fn: () => {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/index/shipmenting", // 要跳转到的页面路径
 | 
			
		||||
        url: "/pagesShipment/shipmenting", // 要跳转到的页面路径
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    title: "待过毛重",
 | 
			
		||||
    num: 999,
 | 
			
		||||
    num: 0,
 | 
			
		||||
    fn: () => {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/index/grossWeight", // 要跳转到的页面路径
 | 
			
		||||
| 
						 | 
				
			
			@ -265,19 +265,19 @@ const shipmentList = reactive([
 | 
			
		|||
  },
 | 
			
		||||
  {
 | 
			
		||||
    title: "出货结算",
 | 
			
		||||
    num: 999,
 | 
			
		||||
    num: 0,
 | 
			
		||||
    fn: () => {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/index/payReview", // 要跳转到的页面路径
 | 
			
		||||
        url: "/pagesReceive/payReview", // 要跳转到的页面路径
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    title: "待结算",
 | 
			
		||||
    num: 999,
 | 
			
		||||
    num: 0,
 | 
			
		||||
    fn: () => {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/index/payReview", // 要跳转到的页面路径
 | 
			
		||||
        url: "/pagesReceive/payReview", // 要跳转到的页面路径
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			@ -465,7 +465,7 @@ onMounted(() => {
 | 
			
		|||
    border-radius: 13rpx;
 | 
			
		||||
    position: relative;
 | 
			
		||||
    .title {
 | 
			
		||||
      font-size: 27rpx;
 | 
			
		||||
      font-size: 28rpx;
 | 
			
		||||
      font-family: Source Han Sans CN;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      color: #000000;
 | 
			
		||||
| 
						 | 
				
			
			@ -516,7 +516,7 @@ onMounted(() => {
 | 
			
		|||
          /* #endif */
 | 
			
		||||
        }
 | 
			
		||||
        .desc {
 | 
			
		||||
          font-size: 24rpx;
 | 
			
		||||
          font-size: 26rpx;
 | 
			
		||||
          font-family: Source Han Sans CN;
 | 
			
		||||
          font-weight: 400;
 | 
			
		||||
          color: #000000;
 | 
			
		||||
| 
						 | 
				
			
			@ -537,7 +537,7 @@ onMounted(() => {
 | 
			
		|||
      padding-bottom: 0rpx;
 | 
			
		||||
      .name {
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        font-size: 27rpx;
 | 
			
		||||
        font-size: 28rpx;
 | 
			
		||||
        font-family: Source Han Sans CN;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
        color: #000000;
 | 
			
		||||
| 
						 | 
				
			
			@ -546,7 +546,7 @@ onMounted(() => {
 | 
			
		|||
      .grid-text {
 | 
			
		||||
        margin-top: 17rpx;
 | 
			
		||||
        margin-bottom: 20rpx;
 | 
			
		||||
        font-size: 24rpx;
 | 
			
		||||
        font-size: 26rpx;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,128 +0,0 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view class="card-box">
 | 
			
		||||
    <view class="top-flex-box">
 | 
			
		||||
      <view>
 | 
			
		||||
        <view>
 | 
			
		||||
          <text class="address">上海奉贤两网融合</text>
 | 
			
		||||
          <text class="type">(大磅)</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>
 | 
			
		||||
      <text>单价:未定价</text>
 | 
			
		||||
    </view>
 | 
			
		||||
    <view class="btn-box">
 | 
			
		||||
      <u-button
 | 
			
		||||
        text="点击作废"
 | 
			
		||||
        color="#E8E8E8"
 | 
			
		||||
        :customStyle="{ color: '#999' }"
 | 
			
		||||
        @click="handleModal(true)"
 | 
			
		||||
      ></u-button>
 | 
			
		||||
      <u-button type="primary" text="点击定价"></u-button>
 | 
			
		||||
    </view>
 | 
			
		||||
  </view>
 | 
			
		||||
 | 
			
		||||
  <SmallModal :title="'确认作废吗?'" :content="'确认作废后,该订单不能恢复!'" :okText="'确认作废'" :isMain="true" :show="isShowCancelModal" @handleModal="(v:boolean) => {handleModal(v)}"/>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { ReceiveApi } from "@/services/index";
 | 
			
		||||
import SmallModal from '@/components/Modal/smallModal.vue'
 | 
			
		||||
const pageList = reactive({
 | 
			
		||||
  total: 0,
 | 
			
		||||
  list: [],
 | 
			
		||||
  pageNum: 1,
 | 
			
		||||
  pageSize: 10,
 | 
			
		||||
});
 | 
			
		||||
const isShowCancelModal = ref(false)
 | 
			
		||||
const handleModal = (v: boolean) => {
 | 
			
		||||
  isShowCancelModal.value = v
 | 
			
		||||
}
 | 
			
		||||
const handleScenePhoto = () => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pages/scenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ReceiveApi.getOrderPage({ pageNumber: 1, pageSize: 10 }).then((res) => {
 | 
			
		||||
  if (res.code === 200) {
 | 
			
		||||
    (pageList as any).list = res.data.list;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
</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: 24rpx;
 | 
			
		||||
  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;
 | 
			
		||||
  }
 | 
			
		||||
  .type,
 | 
			
		||||
  .desc {
 | 
			
		||||
    font-size: 21rpx;
 | 
			
		||||
    color: #999999;
 | 
			
		||||
  }
 | 
			
		||||
  .desc {
 | 
			
		||||
    margin-top: 30rpx;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
  }
 | 
			
		||||
  .name {
 | 
			
		||||
    font-size: 32rpx;
 | 
			
		||||
    color: #000000;
 | 
			
		||||
  }
 | 
			
		||||
  .flex-box {
 | 
			
		||||
    font-weight: 400;
 | 
			
		||||
    font-size: 32rpx;
 | 
			
		||||
    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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,99 +0,0 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view class="card-box">
 | 
			
		||||
    <view class="top-flex-box">
 | 
			
		||||
      <view>
 | 
			
		||||
        <view>
 | 
			
		||||
          <text class="address">上海奉贤两网融合</text>
 | 
			
		||||
          <text class="type">(大磅)</text>
 | 
			
		||||
        </view>
 | 
			
		||||
        <view>
 | 
			
		||||
          <text class="number">收货单号:SHD20230901132333</text>
 | 
			
		||||
        </view>
 | 
			
		||||
        <view>
 | 
			
		||||
          <text class="name">陡其成</text>
 | 
			
		||||
        </view>
 | 
			
		||||
      </view>
 | 
			
		||||
      <view>
 | 
			
		||||
        <text class="btn">现场照片</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"></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: 24rpx;
 | 
			
		||||
  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;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .address {
 | 
			
		||||
    margin-right: 30rpx;
 | 
			
		||||
  }
 | 
			
		||||
  .type,
 | 
			
		||||
  .desc {
 | 
			
		||||
    font-size: 21rpx;
 | 
			
		||||
    color: #999999;
 | 
			
		||||
  }
 | 
			
		||||
  .desc {
 | 
			
		||||
    margin-top: 30rpx;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
  }
 | 
			
		||||
  .name {
 | 
			
		||||
    font-size: 32rpx;
 | 
			
		||||
    color: #000000;
 | 
			
		||||
  }
 | 
			
		||||
  .flex-box {
 | 
			
		||||
    font-weight: 400;
 | 
			
		||||
    font-size: 32rpx;
 | 
			
		||||
    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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,100 +0,0 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view class="card-box">
 | 
			
		||||
    <view class="top-flex-box">
 | 
			
		||||
      <view>
 | 
			
		||||
        <view>
 | 
			
		||||
          <text class="address">上海奉贤两网融合</text>
 | 
			
		||||
          <text class="type">(大磅)</text>
 | 
			
		||||
        </view>
 | 
			
		||||
        <view>
 | 
			
		||||
          <text class="number">收货单号:SHD20230901132333</text>
 | 
			
		||||
        </view>
 | 
			
		||||
        <view>
 | 
			
		||||
          <text class="name">陡其成</text>
 | 
			
		||||
        </view>
 | 
			
		||||
      </view>
 | 
			
		||||
      <view>
 | 
			
		||||
        <text class="btn">现场照片</text>
 | 
			
		||||
      </view>
 | 
			
		||||
    </view>
 | 
			
		||||
    <view>
 | 
			
		||||
      <text class="desc">毛重时间:2023-09-01 13:23:33</text>
 | 
			
		||||
    </view>
 | 
			
		||||
    <view class="flex-box">
 | 
			
		||||
      <text>毛重:2510kg</text>
 | 
			
		||||
      <text>单价:5元/kg</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"></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: 24rpx;
 | 
			
		||||
  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;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .address {
 | 
			
		||||
    margin-right: 30rpx;
 | 
			
		||||
  }
 | 
			
		||||
  .type,
 | 
			
		||||
  .desc {
 | 
			
		||||
    font-size: 21rpx;
 | 
			
		||||
    color: #999999;
 | 
			
		||||
  }
 | 
			
		||||
  .desc {
 | 
			
		||||
    margin-top: 30rpx;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
  }
 | 
			
		||||
  .name {
 | 
			
		||||
    font-size: 32rpx;
 | 
			
		||||
    color: #000000;
 | 
			
		||||
  }
 | 
			
		||||
  .flex-box {
 | 
			
		||||
    font-weight: 400;
 | 
			
		||||
    font-size: 32rpx;
 | 
			
		||||
    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>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,95 +0,0 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view class="c-login-container">
 | 
			
		||||
    <view>
 | 
			
		||||
 | 
			
		||||
      <u-form labelPosition="left" :model="model1" :rules="rules" ref="loginForm" :labelWidth="0">
 | 
			
		||||
        <u-form-item prop="userInfo.name" ref="item1">
 | 
			
		||||
          <u-input
 | 
			
		||||
            v-model="model1.userInfo.name"
 | 
			
		||||
            placeholder="请输入手机号"
 | 
			
		||||
            :shape="'circle'"
 | 
			
		||||
          ></u-input>
 | 
			
		||||
        </u-form-item>
 | 
			
		||||
        <u-form-item prop="userInfo.name" ref="item1">
 | 
			
		||||
          <u-input
 | 
			
		||||
            v-model="model1.userInfo.name"
 | 
			
		||||
            placeholder="请输入验证码"
 | 
			
		||||
            :shape="'circle'"
 | 
			
		||||
          >
 | 
			
		||||
            <template #suffix>
 | 
			
		||||
              <text>获取验证码</text>
 | 
			
		||||
            </template>
 | 
			
		||||
          </u-input>
 | 
			
		||||
        </u-form-item>
 | 
			
		||||
        <u-form-item prop="userInfo.name" ref="item1">
 | 
			
		||||
          <u-input
 | 
			
		||||
            v-model="model1.userInfo.name"
 | 
			
		||||
            placeholder="请设置密码"
 | 
			
		||||
            :shape="'circle'"
 | 
			
		||||
            :type="'password'"
 | 
			
		||||
          ></u-input>
 | 
			
		||||
        </u-form-item>
 | 
			
		||||
        <u-form-item>
 | 
			
		||||
          <view class="c-flex-space-between">
 | 
			
		||||
            <u-checkbox-group
 | 
			
		||||
              v-model="checkboxValue1"
 | 
			
		||||
              placement="column"
 | 
			
		||||
              @change="checkboxChange"
 | 
			
		||||
            >
 | 
			
		||||
              <u-checkbox
 | 
			
		||||
                :customStyle="{ fontSize: '8px' }"
 | 
			
		||||
                :key="'1'"
 | 
			
		||||
                :label="'记住密码'"
 | 
			
		||||
                :name="'记住密码'"
 | 
			
		||||
              />
 | 
			
		||||
            </u-checkbox-group>
 | 
			
		||||
            <text class="f-s-15 l-h-28">无法收到验证码</text>
 | 
			
		||||
          </view>
 | 
			
		||||
        </u-form-item>
 | 
			
		||||
      </u-form>
 | 
			
		||||
      <u-button @click="submit">立即登录</u-button>
 | 
			
		||||
    </view>
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
const loginForm = ref(null);
 | 
			
		||||
const checkboxValue1 = ref([]);
 | 
			
		||||
const model1 = ref({
 | 
			
		||||
  userInfo: {
 | 
			
		||||
    name: "",
 | 
			
		||||
    sex: "",
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
const rules = ref({
 | 
			
		||||
  "userInfo.name": {
 | 
			
		||||
    type: "string",
 | 
			
		||||
    required: true,
 | 
			
		||||
    message: "请填写姓名",
 | 
			
		||||
    trigger: ["blur", "change"],
 | 
			
		||||
  },
 | 
			
		||||
  "userInfo.sex": {
 | 
			
		||||
    type: "string",
 | 
			
		||||
    max: 1,
 | 
			
		||||
    required: true,
 | 
			
		||||
    message: "请选择男或女",
 | 
			
		||||
    trigger: ["blur", "change"],
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const checkboxChange = (n: any) => {
 | 
			
		||||
  console.log("change", n);
 | 
			
		||||
};
 | 
			
		||||
const submit = () => {
 | 
			
		||||
  (loginForm.value as any).validate();
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.c-flex-space-between {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  justify-content: space-between;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			@ -163,9 +163,6 @@ const submit = () => {
 | 
			
		|||
      });
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pages/index/index", // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
const handleForgetPwd = () => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,257 +0,0 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view class="c-card">
 | 
			
		||||
    <view class="box" v-for="item in 1" :key="item">
 | 
			
		||||
      <view class="base">
 | 
			
		||||
        <view>
 | 
			
		||||
          <view class="supplier"> 上海奉贤两网融合(大磅) </view>
 | 
			
		||||
        </view>
 | 
			
		||||
      </view>
 | 
			
		||||
      <view class="flex-box1">
 | 
			
		||||
        <view class="type">轻二</view>
 | 
			
		||||
        <view class="btn">
 | 
			
		||||
          <view
 | 
			
		||||
            ><u-tag
 | 
			
		||||
              text="现场照片"
 | 
			
		||||
              plain
 | 
			
		||||
              shape="circle"
 | 
			
		||||
              :bgColor="'rgba(237, 254, 255, 1)'"
 | 
			
		||||
            ></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'"
 | 
			
		||||
            ></u-tag
 | 
			
		||||
          ></view>
 | 
			
		||||
          <view
 | 
			
		||||
            ><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'"
 | 
			
		||||
            ></u-tag
 | 
			
		||||
          ></view>
 | 
			
		||||
        </view>
 | 
			
		||||
      </view>
 | 
			
		||||
      <view class="flex-box">
 | 
			
		||||
        <text>定价人:谭兵</text>
 | 
			
		||||
        <text>创建时间:2023-09-01 13:23:33</text>
 | 
			
		||||
      </view>
 | 
			
		||||
 | 
			
		||||
      <view class="more">
 | 
			
		||||
        <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>
 | 
			
		||||
    </view>
 | 
			
		||||
    <view class="op-btn">
 | 
			
		||||
      <view class="c-btn-review">
 | 
			
		||||
        <view> 审核暂不支付 </view>
 | 
			
		||||
        <view class="active"> 审核立即支付 </view>
 | 
			
		||||
      </view>
 | 
			
		||||
      <view>
 | 
			
		||||
        <u-button
 | 
			
		||||
          text="重新过皮"
 | 
			
		||||
          plain
 | 
			
		||||
          :customStyle="{
 | 
			
		||||
            color: 'rgba(0, 220, 238, 1)',
 | 
			
		||||
            border: '1px solid #00DCEE',
 | 
			
		||||
            'border-radius': '43rpx',
 | 
			
		||||
          }"
 | 
			
		||||
        ></u-button>
 | 
			
		||||
      </view>
 | 
			
		||||
      <view>
 | 
			
		||||
        <u-button
 | 
			
		||||
          text="打印"
 | 
			
		||||
          type="primary"
 | 
			
		||||
          :customStyle="{ 'border-radius': '43rpx' }"
 | 
			
		||||
        ></u-button>
 | 
			
		||||
      </view>
 | 
			
		||||
    </view>
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
const keyword = ref("");
 | 
			
		||||
const gridList1 = reactive([
 | 
			
		||||
  {
 | 
			
		||||
    name: "毛重",
 | 
			
		||||
    num: "4080.00",
 | 
			
		||||
    unit: "KG",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "皮重",
 | 
			
		||||
    num: "3450.00",
 | 
			
		||||
    unit: "KG",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "扣杂",
 | 
			
		||||
    num: "640.00",
 | 
			
		||||
    unit: "KG",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
  {},
 | 
			
		||||
  {
 | 
			
		||||
    name: "净重",
 | 
			
		||||
    num: "640.00",
 | 
			
		||||
    unit: "KG",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "单价",
 | 
			
		||||
    num: "2.48",
 | 
			
		||||
    unit: "元/千克",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "预估总价",
 | 
			
		||||
    num: "2.48",
 | 
			
		||||
    unit: "元",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "贷款总价",
 | 
			
		||||
    num: "2.48",
 | 
			
		||||
    unit: "元",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
]);
 | 
			
		||||
const handleScenePhoto = () => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pages/scenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
</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;
 | 
			
		||||
      .no {
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        font-size: 21rpx;
 | 
			
		||||
        color: #000000;
 | 
			
		||||
      }
 | 
			
		||||
      .supplier {
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        font-size: 24rpx;
 | 
			
		||||
        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: 27rpx;
 | 
			
		||||
      color: #000000;
 | 
			
		||||
      margin: 15rpx 0rpx;
 | 
			
		||||
      text {
 | 
			
		||||
        background-color: #ffaf75;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
        font-size: 16rpx;
 | 
			
		||||
        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: 27rpx;
 | 
			
		||||
        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: 24rpx;
 | 
			
		||||
    color: #000000;
 | 
			
		||||
    padding: 25rpx 0rpx 0rpx 0rpx;
 | 
			
		||||
    > view {
 | 
			
		||||
      line-height: 50rpx;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .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: 27rpx;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
      }
 | 
			
		||||
      .active {
 | 
			
		||||
        background: #00dcee;
 | 
			
		||||
        border-radius: 38rpx;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
        font-size: 27rpx;
 | 
			
		||||
        color: #ffffff;
 | 
			
		||||
        padding: 20rpx 30rpx;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    > view + view {
 | 
			
		||||
      margin-top: 30rpx;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,62 +0,0 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view class="layout">
 | 
			
		||||
    <view class="name">现场照片</view>
 | 
			
		||||
    <view class="time">2024-01-22 14:28:36</view>
 | 
			
		||||
    <up-row customStyle="flex-wrap: wrap">
 | 
			
		||||
      <up-col span="6" v-for="(item, index) in 10" :key="item">
 | 
			
		||||
        <view
 | 
			
		||||
          class="grid-item"
 | 
			
		||||
          :style="{
 | 
			
		||||
            marginLeft: index % 2 === 1 ? '10rpx' : '',
 | 
			
		||||
            marginRight: index % 2 === 0 ? '10rpx' : '',
 | 
			
		||||
            marginBottom: '10rpx'
 | 
			
		||||
          }"
 | 
			
		||||
        >
 | 
			
		||||
          <text class="tip">毛重过磅</text>
 | 
			
		||||
          <image src="/static/img/temp/car.png" mode="'heightFix'" />
 | 
			
		||||
        </view>
 | 
			
		||||
      </up-col>
 | 
			
		||||
    </up-row>
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup lang="ts"></script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.layout {
 | 
			
		||||
  margin: 22.44rpx 26.54rpx;
 | 
			
		||||
  padding: 33rpx 18rpx;
 | 
			
		||||
  background: #ffffff;
 | 
			
		||||
  box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12);
 | 
			
		||||
  border-radius: 13rpx;
 | 
			
		||||
  font-family: Source Han Sans CN;
 | 
			
		||||
  .name {
 | 
			
		||||
    font-weight: 400;
 | 
			
		||||
    font-size: 24rpx;
 | 
			
		||||
    color: #000000;
 | 
			
		||||
    line-height: 41rpx;
 | 
			
		||||
  }
 | 
			
		||||
  .time {
 | 
			
		||||
    font-weight: 400;
 | 
			
		||||
    font-size: 21rpx;
 | 
			
		||||
    color: #999999;
 | 
			
		||||
    line-height: 41rpx;
 | 
			
		||||
  }
 | 
			
		||||
  .grid-item {
 | 
			
		||||
    position: relative;
 | 
			
		||||
    image {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
    }
 | 
			
		||||
    .tip {
 | 
			
		||||
      background: rgba(0, 0, 0, 0.63);
 | 
			
		||||
      box-shadow: 0rpx 0rpx 6rpx 0rpx rgba(0, 0, 0, 0.09);
 | 
			
		||||
      border-radius: 0rpx 40rpx 40rpx 0rpx;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      font-size: 21rpx;
 | 
			
		||||
      color: #ffffff;
 | 
			
		||||
      padding: 10rpx 30rpx;
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      margin-top: 40rpx;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			@ -140,7 +140,7 @@ const gridList2 = reactive([
 | 
			
		|||
]);
 | 
			
		||||
const handleScenePhoto = () => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pages/scenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
    url: "/pagesScenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,7 +96,7 @@ const gridList1 = reactive([
 | 
			
		|||
]);
 | 
			
		||||
const handleScenePhoto = () => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pages/scenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
    url: "/pagesScenePhoto/index", // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,422 @@
 | 
			
		|||
<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]"
 | 
			
		||||
          :placeholder="`请输入${item.name}`"
 | 
			
		||||
        ></u-textarea>
 | 
			
		||||
        <u-input
 | 
			
		||||
          v-if="item.type === 'select' || item.type === 'input'"
 | 
			
		||||
          v-model="(model1.order as any)[item.key]"
 | 
			
		||||
          :placeholder="`请${item.type === 'select' ? '选择' : '输入'}${
 | 
			
		||||
            item.name
 | 
			
		||||
          }`"
 | 
			
		||||
          :clearable="true"
 | 
			
		||||
          :customStyle="{}"
 | 
			
		||||
          border="none"
 | 
			
		||||
        >
 | 
			
		||||
          <template #suffix>
 | 
			
		||||
            <text v-if="item.key === 'subtractNum'">
 | 
			
		||||
              {{ model1.order.buttonType === 0 ? item.unit : "%" }}
 | 
			
		||||
            </text>
 | 
			
		||||
            <text v-else>
 | 
			
		||||
              {{ item.unit }}
 | 
			
		||||
            </text>
 | 
			
		||||
          </template>
 | 
			
		||||
        </u-input>
 | 
			
		||||
        <!-- @afterRead="afterRead"
 | 
			
		||||
          @delete="deletePic" -->
 | 
			
		||||
        <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="filesRef"
 | 
			
		||||
        ></uni-file-picker>
 | 
			
		||||
 | 
			
		||||
        <u-radio-group
 | 
			
		||||
          v-if="item.type === 'radio'"
 | 
			
		||||
          v-model="(model1.order as any)[item.key]"
 | 
			
		||||
          placement="row"
 | 
			
		||||
        >
 | 
			
		||||
          <u-radio
 | 
			
		||||
            v-for="(c, index) in item.child"
 | 
			
		||||
            :key="index"
 | 
			
		||||
            activeColor="#00DCEE"
 | 
			
		||||
            :label="c.name"
 | 
			
		||||
            :name="c.id"
 | 
			
		||||
            :customStyle="{ marginRight: '10px' }"
 | 
			
		||||
          ></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>
 | 
			
		||||
    <block v-for="(item, index) in formAttrList" :key="index">
 | 
			
		||||
      <u-action-sheet
 | 
			
		||||
        v-if="item.type === 'select'"
 | 
			
		||||
        :actions="contrlModalParams[item.childKey].list"
 | 
			
		||||
        :title="contrlModalParams[item.childKey].title"
 | 
			
		||||
        :show="contrlModalParams[item.childKey].isShow"
 | 
			
		||||
        @select="(v: any) => handleSelect(item.childKey, v)"
 | 
			
		||||
        @close="contrlModalParams[item.childKey].isShow = false"
 | 
			
		||||
        :closeOnClickAction="true"
 | 
			
		||||
      ></u-action-sheet>
 | 
			
		||||
    </block>
 | 
			
		||||
  </view>
 | 
			
		||||
  <view class="btn-box">
 | 
			
		||||
    <u-button text="暂不定价"></u-button>
 | 
			
		||||
    <u-button type="primary" text="保存" @click="save()"></u-button>
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import type { ComType } from "@/types/global";
 | 
			
		||||
import {
 | 
			
		||||
  ProfileApi,
 | 
			
		||||
  ReceiveProductApi,
 | 
			
		||||
  ReceiveApi,
 | 
			
		||||
  PictureApi,
 | 
			
		||||
} from "@/services/index";
 | 
			
		||||
import _ from "underscore";
 | 
			
		||||
import { onLoad } from "@dcloudio/uni-app";
 | 
			
		||||
import { ImagesType, OrderType } from "@/utils/enum";
 | 
			
		||||
const model1 = reactive<{ order: Order }>({
 | 
			
		||||
  order: {
 | 
			
		||||
    id: 0,
 | 
			
		||||
    userName: "", // 供应商名称
 | 
			
		||||
    userId: "", // 供应商Id,
 | 
			
		||||
    carNumber: "",
 | 
			
		||||
    productId: "", // 产品Id,
 | 
			
		||||
    productName: "", // 产品名称
 | 
			
		||||
    price: "", // 单价
 | 
			
		||||
    buttonType: 0, // 0扣杂1扣点
 | 
			
		||||
    weighingMethod: 0, // 0:有皮重 1:零皮重
 | 
			
		||||
    multiCategory: 0, // 0:单品类 1:多品类
 | 
			
		||||
    fileList: [],
 | 
			
		||||
    scaleStatus: 1,
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
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<ComType>({
 | 
			
		||||
  isShowSplTime: false,
 | 
			
		||||
  spltime: "",
 | 
			
		||||
  userSelect: {
 | 
			
		||||
    isShow: false,
 | 
			
		||||
    title: "标题",
 | 
			
		||||
    list: [],
 | 
			
		||||
  },
 | 
			
		||||
  productSelect: {
 | 
			
		||||
    isShow: false,
 | 
			
		||||
    title: "标题",
 | 
			
		||||
    list: [],
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const formAttrList = reactive<ComType>([
 | 
			
		||||
  {
 | 
			
		||||
    name: "供应商",
 | 
			
		||||
    key: "userName",
 | 
			
		||||
    type: "select",
 | 
			
		||||
    unit: "",
 | 
			
		||||
    childKey: "userSelect",
 | 
			
		||||
    required: true,
 | 
			
		||||
    fn: () => {
 | 
			
		||||
      contrlModalParams.userSelect.isShow = true;
 | 
			
		||||
      contrlModalParams.userSelect.title = "供应商";
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "车牌号",
 | 
			
		||||
    key: "carNumber",
 | 
			
		||||
    type: "input",
 | 
			
		||||
    unit: "",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "收货产品",
 | 
			
		||||
    key: "productName",
 | 
			
		||||
    type: "select",
 | 
			
		||||
    unit: "",
 | 
			
		||||
    childKey: "productSelect",
 | 
			
		||||
    required: true,
 | 
			
		||||
    fn: () => {
 | 
			
		||||
      contrlModalParams.productSelect.isShow = true;
 | 
			
		||||
      contrlModalParams.productSelect.title = "收货产品";
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "单价",
 | 
			
		||||
    key: "price",
 | 
			
		||||
    type: "input",
 | 
			
		||||
    unit: "元/KG",
 | 
			
		||||
    required: true,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "毛重",
 | 
			
		||||
    key: "grossWeight",
 | 
			
		||||
    type: "input",
 | 
			
		||||
    unit: "KG",
 | 
			
		||||
    required: true,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "扣杂",
 | 
			
		||||
    key: "buttonType",
 | 
			
		||||
    type: "radio",
 | 
			
		||||
    child: [
 | 
			
		||||
      {
 | 
			
		||||
        id: 0,
 | 
			
		||||
        name: "按固定重量",
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        id: 1,
 | 
			
		||||
        name: "按百分比",
 | 
			
		||||
      },
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "杂质扣除",
 | 
			
		||||
    key: "subtractNum",
 | 
			
		||||
    type: "input",
 | 
			
		||||
    unit: "KG",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "称重方式",
 | 
			
		||||
    key: "weighingMethod",
 | 
			
		||||
    type: "radio",
 | 
			
		||||
    required: true,
 | 
			
		||||
    child: [
 | 
			
		||||
      {
 | 
			
		||||
        id: 0,
 | 
			
		||||
        name: "有皮重",
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        id: 1,
 | 
			
		||||
        name: "零皮重",
 | 
			
		||||
      },
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "多品类",
 | 
			
		||||
    key: "multiCategory",
 | 
			
		||||
    type: "radio",
 | 
			
		||||
    required: true,
 | 
			
		||||
    child: [
 | 
			
		||||
      {
 | 
			
		||||
        id: 0,
 | 
			
		||||
        name: "单品类",
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        id: 1,
 | 
			
		||||
        name: "多品类",
 | 
			
		||||
      },
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    name: "备注",
 | 
			
		||||
    key: "notes",
 | 
			
		||||
    type: "textarea",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "货品照片",
 | 
			
		||||
    key: "photo",
 | 
			
		||||
    type: "upload",
 | 
			
		||||
  },
 | 
			
		||||
]);
 | 
			
		||||
 | 
			
		||||
ProfileApi.getUserList({ userType: 2 }).then((res) => {
 | 
			
		||||
  if (res.code === 200) {
 | 
			
		||||
    contrlModalParams.userSelect.list = res.data;
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
ReceiveProductApi.getAllReProducts().then((res) => {
 | 
			
		||||
  if (res.code === 200) {
 | 
			
		||||
    contrlModalParams.productSelect.list = _.map(
 | 
			
		||||
      res.data as any,
 | 
			
		||||
      function (item: any) {
 | 
			
		||||
        return { name: item.reProductsName, ...item };
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
const handleSelect = (key: string, v: any) => {
 | 
			
		||||
  contrlModalParams[key].isShow = false;
 | 
			
		||||
  if (key === "userSelect") {
 | 
			
		||||
    model1.order.userName = v.name;
 | 
			
		||||
    model1.order.userId = v.id;
 | 
			
		||||
  } else if (key === "productSelect") {
 | 
			
		||||
    model1.order.productName = v.name;
 | 
			
		||||
    model1.order.productId = v.id;
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
onLoad((option) => {
 | 
			
		||||
  model1.order.id = parseInt((option as any).id);
 | 
			
		||||
  if (model1.order.id) {
 | 
			
		||||
    ReceiveApi.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) {
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
// const files = ref<FileObj[]>([]);
 | 
			
		||||
const filesRef = ref();
 | 
			
		||||
const handleUpload = () => {
 | 
			
		||||
  // console.log(event.tempFilePaths)
 | 
			
		||||
  const list = filesRef.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.Receive, // 入库单
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 点击保存 先执行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",
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  // 更新定价单
 | 
			
		||||
  /**
 | 
			
		||||
   * 0:有皮重 1:零皮重
 | 
			
		||||
   * 有皮重 scaleState = 1 带过皮
 | 
			
		||||
     零皮重 scaleState = 2 带审核
 | 
			
		||||
   */
 | 
			
		||||
  if (model1.order.weighingMethod === 0) {
 | 
			
		||||
    model1.order.scaleStatus = 1;
 | 
			
		||||
  } else if (model1.order.weighingMethod === 1) {
 | 
			
		||||
    model1.order.scaleStatus = 2;
 | 
			
		||||
  }
 | 
			
		||||
  //
 | 
			
		||||
  /**
 | 
			
		||||
   * buttonType
 | 
			
		||||
   * 0扣杂1扣点
 | 
			
		||||
   * buttonType===0 buckleMiscellaneous
 | 
			
		||||
   * buttonType===1 points
 | 
			
		||||
   *
 | 
			
		||||
   */
 | 
			
		||||
  if (model1.order.buttonType === 0) {
 | 
			
		||||
    model1.order.buckleMiscellaneous = model1.order.subtractNum;
 | 
			
		||||
  } else if (model1.order.buttonType === 1) {
 | 
			
		||||
    model1.order.points = model1.order.subtractNum;
 | 
			
		||||
  }
 | 
			
		||||
  ReceiveApi.updateOne({ ...model1.order }).then((res) => {
 | 
			
		||||
    if (res.code === 200) {
 | 
			
		||||
      // 定价后 若是零皮-》跳转到【付款审核】  有皮重->【待过皮重】
 | 
			
		||||
      uni.showToast({
 | 
			
		||||
        title: "定价成功",
 | 
			
		||||
        icon: "success",
 | 
			
		||||
      });
 | 
			
		||||
      // 0:有皮重 1:零皮重
 | 
			
		||||
      if (model1.order.weighingMethod === 0) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pagesReceive/tareing", // 要跳转到的页面路径
 | 
			
		||||
        });
 | 
			
		||||
      } else if (model1.order.weighingMethod === 1) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/index/payReview", // 要跳转到的页面路径
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
</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;
 | 
			
		||||
  }
 | 
			
		||||
  ::v-deep button + button {
 | 
			
		||||
    margin-left: 30rpx;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			@ -21,90 +21,147 @@
 | 
			
		|||
      <text
 | 
			
		||||
        v-for="(item, index) in tabList"
 | 
			
		||||
        :key="index"
 | 
			
		||||
        :class="{ active: currentTab === item.name }"
 | 
			
		||||
        :class="{ active: currentTab === item.key }"
 | 
			
		||||
        @click="handleTab(item)"
 | 
			
		||||
      >
 | 
			
		||||
        {{ item.name }}
 | 
			
		||||
      </text>
 | 
			
		||||
    </view>
 | 
			
		||||
 | 
			
		||||
    <block v-for="item in 10" :key="item">
 | 
			
		||||
    <block v-for="(item, index) in pageList.list" :key="index">
 | 
			
		||||
      <view class="c-layout">
 | 
			
		||||
        <view
 | 
			
		||||
          ><checkbox
 | 
			
		||||
            value="cb"
 | 
			
		||||
            :color="'#00D2E3'"
 | 
			
		||||
            :checked="true"
 | 
			
		||||
            :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">收货单号:SHD20230901132333</text>
 | 
			
		||||
                <text class="number">收货单号:{{ item.receiptNumber }}</text>
 | 
			
		||||
              </view>
 | 
			
		||||
              <view>
 | 
			
		||||
                <text class="name">陡其成</text>
 | 
			
		||||
                <text class="name">{{ item.userName }}</text>
 | 
			
		||||
              </view>
 | 
			
		||||
            </view>
 | 
			
		||||
          </view>
 | 
			
		||||
          <view class="bottom-flex-box">
 | 
			
		||||
            <view>
 | 
			
		||||
              <view>
 | 
			
		||||
                <text class="desc">过磅总净重:1870.00KG</text>
 | 
			
		||||
                <text class="desc"
 | 
			
		||||
                  >过磅总净重:{{ item.netWeight || 0 }}KG</text
 | 
			
		||||
                >
 | 
			
		||||
              </view>
 | 
			
		||||
              <view class="flex-box">
 | 
			
		||||
                <text>贷款金额:2510.00元</text>
 | 
			
		||||
                <text>货款金额:{{ item.totalPrice || 0 }}元</text>
 | 
			
		||||
              </view>
 | 
			
		||||
            </view>
 | 
			
		||||
            <view>
 | 
			
		||||
              <text class="btn">
 | 
			
		||||
                <text v-if="currentTab === '等待审核'" @click="handleReview"
 | 
			
		||||
                <text
 | 
			
		||||
                  v-if="currentTab === 2"
 | 
			
		||||
                  @click="handleReview(item.id as number, 2)"
 | 
			
		||||
                  >去审核</text
 | 
			
		||||
                >
 | 
			
		||||
                <text v-if="currentTab === '已审未付'">去支付</text>
 | 
			
		||||
                <text v-if="currentTab === '已审已付'">查看</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>
 | 
			
		||||
 | 
			
		||||
      <view class="line" v-show="item !== 10"> </view>
 | 
			
		||||
      <u-gap
 | 
			
		||||
        height="10"
 | 
			
		||||
        bgColor="#f8f8f8"
 | 
			
		||||
        v-if="index < pageList.list.length - 1"
 | 
			
		||||
      ></u-gap>
 | 
			
		||||
    </block>
 | 
			
		||||
  </view>
 | 
			
		||||
  <view class="btn-box">
 | 
			
		||||
  <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="批量审核"></u-button>
 | 
			
		||||
    <u-button type="primary" :text="`${currentTab === 2 ? '批量审核' : '批量支付'}`"></u-button>
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { ReceiveApi } 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("等待审核");
 | 
			
		||||
const currentTab = ref(2);
 | 
			
		||||
const handleTab = (item: any) => {
 | 
			
		||||
  currentTab.value = item.name;
 | 
			
		||||
  currentTab.value = item.key;
 | 
			
		||||
  getOrderList();
 | 
			
		||||
};
 | 
			
		||||
const handleReview = () => {
 | 
			
		||||
const handleReview = (id: number, scaleStatus: number) => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pages/review/index", // 要跳转到的页面路径
 | 
			
		||||
    url: "/pagesReceive/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 = () => {
 | 
			
		||||
  ReceiveApi.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 {
 | 
			
		||||
| 
						 | 
				
			
			@ -115,7 +172,7 @@ const handleReview = () => {
 | 
			
		|||
  margin: 0px auto;
 | 
			
		||||
  margin-top: 30rpx;
 | 
			
		||||
  font-weight: 400;
 | 
			
		||||
  font-size: 27rpx;
 | 
			
		||||
  font-size: 26rpx;
 | 
			
		||||
  color: #c1c1c1;
 | 
			
		||||
  > view {
 | 
			
		||||
    line-height: 60rpx;
 | 
			
		||||
| 
						 | 
				
			
			@ -131,7 +188,7 @@ const handleReview = () => {
 | 
			
		|||
  .c-tab {
 | 
			
		||||
    font-family: Source Han Sans CN;
 | 
			
		||||
    font-weight: 400;
 | 
			
		||||
    font-size: 27rpx;
 | 
			
		||||
    font-size: 26rpx;
 | 
			
		||||
    color: #999999;
 | 
			
		||||
    line-height: 41rpx;
 | 
			
		||||
    display: flex;
 | 
			
		||||
| 
						 | 
				
			
			@ -171,39 +228,29 @@ const handleReview = () => {
 | 
			
		|||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .line {
 | 
			
		||||
    height: 18rpx;
 | 
			
		||||
    background: #f8f8f8;
 | 
			
		||||
  }
 | 
			
		||||
  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: 24rpx;
 | 
			
		||||
  font-size: 26rpx;
 | 
			
		||||
  color: #000000;
 | 
			
		||||
  line-height: 41rpx;
 | 
			
		||||
 | 
			
		||||
  .address {
 | 
			
		||||
    margin-right: 30rpx;
 | 
			
		||||
  }
 | 
			
		||||
  .type,
 | 
			
		||||
  .desc {
 | 
			
		||||
    font-size: 21rpx;
 | 
			
		||||
    font-size: 24rpx;
 | 
			
		||||
    color: #999999;
 | 
			
		||||
  }
 | 
			
		||||
  .desc {
 | 
			
		||||
    margin-top: 30rpx;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
  }
 | 
			
		||||
  .name {
 | 
			
		||||
    font-size: 32rpx;
 | 
			
		||||
    font-size: 26rpx;
 | 
			
		||||
    color: #000000;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
  }
 | 
			
		||||
  .flex-box {
 | 
			
		||||
    font-weight: 400;
 | 
			
		||||
    font-size: 32rpx;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    color: #000000;
 | 
			
		||||
    line-height: 41rpx;
 | 
			
		||||
    display: flex;
 | 
			
		||||
| 
						 | 
				
			
			@ -218,7 +265,7 @@ const handleReview = () => {
 | 
			
		|||
  box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 56, 93, 0.12);
 | 
			
		||||
  border-radius: 13rpx 13rpx 0rpx 0rpx;
 | 
			
		||||
  padding: 25rpx 50rpx;
 | 
			
		||||
  position: sticky;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  bottom: 0rpx;
 | 
			
		||||
  width: calc(100vw - 100rpx);
 | 
			
		||||
  ::v-deep button {
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,166 @@
 | 
			
		|||
<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.receiptNumber }}</text>
 | 
			
		||||
        </view>
 | 
			
		||||
        <view>
 | 
			
		||||
          <text class="name">{{ item.userName }}</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.grossWeight }}kg</text>
 | 
			
		||||
      <text>单价:未定价</text>
 | 
			
		||||
    </view>
 | 
			
		||||
    <view class="btn-box">
 | 
			
		||||
      <u-button
 | 
			
		||||
        text="点击作废"
 | 
			
		||||
        color="#E8E8E8"
 | 
			
		||||
        :customStyle="{ color: '#999' }"
 | 
			
		||||
        @click="handleModal(true, (item.id as number))"
 | 
			
		||||
      ></u-button>
 | 
			
		||||
      <u-button
 | 
			
		||||
        type="primary"
 | 
			
		||||
        text="点击定价"
 | 
			
		||||
        @click="pricingDetail((item.id as number))"
 | 
			
		||||
      ></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 { ReceiveApi } from "@/services/index";
 | 
			
		||||
import SmallModal from "@/components/Modal/smallModal.vue";
 | 
			
		||||
 | 
			
		||||
interface PageResult<T> {
 | 
			
		||||
  total: number;
 | 
			
		||||
  list: T[];
 | 
			
		||||
  pageNum: number;
 | 
			
		||||
  pageSize: number;
 | 
			
		||||
}
 | 
			
		||||
const pageList: PageResult<Order> = 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=1&id=" + imagesId, // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
const pricingDetail = (id: number) => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pagesReceive/form/pricingForm?id=" + id, // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
const getOrderList = () => {
 | 
			
		||||
  ReceiveApi.getOrderPage({ pageNumber: 1, pageSize: 10, scaleStatus: 0 }).then((res) => {
 | 
			
		||||
    if (res.code === 200) {
 | 
			
		||||
      (pageList as any).list = res.data.list;
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
const handleOk = () => {
 | 
			
		||||
  console.log(deleteId.value);
 | 
			
		||||
  ReceiveApi.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,452 @@
 | 
			
		|||
<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 number)"
 | 
			
		||||
            ></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.createTime }}</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>
 | 
			
		||||
    </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 { ReceiveApi } 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: Order;
 | 
			
		||||
  [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: "buckleMiscellaneous",
 | 
			
		||||
    num: "",
 | 
			
		||||
    unit: "KG",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
  {},
 | 
			
		||||
  {
 | 
			
		||||
    name: "净重",
 | 
			
		||||
    enName: "netWeight",
 | 
			
		||||
    num: "",
 | 
			
		||||
    unit: "KG",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "单价",
 | 
			
		||||
    enName: "price",
 | 
			
		||||
    num: "",
 | 
			
		||||
    unit: "元/KG",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "预估总价",
 | 
			
		||||
    enName: "totalPrice",
 | 
			
		||||
    num: "",
 | 
			
		||||
    unit: "元",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "货款总价",
 | 
			
		||||
    enName: "balanceTotalPrice",
 | 
			
		||||
    num: "",
 | 
			
		||||
    unit: "元",
 | 
			
		||||
    isBefore: false,
 | 
			
		||||
  },
 | 
			
		||||
]);
 | 
			
		||||
const getIsShow = () => {
 | 
			
		||||
  return state.order.scaleStatus === 3 || state.order.scaleStatus === 4;
 | 
			
		||||
};
 | 
			
		||||
const handleScenePhoto = (imagesId: number) => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pagesScenePhoto/index?orderType=1&id=" + imagesId, // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 审核暂不支付 // 更新状态为3
 | 
			
		||||
const handleReviewNoPay = () => {
 | 
			
		||||
  ReceiveApi.updateOne({ ...state.order, scaleStatus: 3 }).then((res) => {
 | 
			
		||||
    if (res.code === 200) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pagesReceive/payReview?scaleStatus=3", // 要跳转到的页面路径
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 审核立即支付
 | 
			
		||||
const handleReviewPay = () => {
 | 
			
		||||
  contrlModalParams.paySelect.isShow = true;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const handleSelect = (key: string, v: any) => {
 | 
			
		||||
  contrlModalParams[key].isShow = false;
 | 
			
		||||
  if (key === "paySelect") {
 | 
			
		||||
    // 修改订单状态
 | 
			
		||||
    ReceiveApi.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: number) => {
 | 
			
		||||
  isShowCancelModal.value = v;
 | 
			
		||||
  deleteId.value = id;
 | 
			
		||||
};
 | 
			
		||||
const handleOk = () => {
 | 
			
		||||
  ReceiveApi.deleteOrder({ ids: [deleteId.value] }).then((res) => {
 | 
			
		||||
    if (res.code === 200) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pagesReceive/payReview?scaleStatus=2", // 要跳转到的页面路径
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
const handleUpdateOrder = () => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pagesReceive/form/pricingForm?id=" + state.order.id, // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
onLoad((option) => {
 | 
			
		||||
  state.order.id = parseInt((option as any).id);
 | 
			
		||||
  state.scaleStatus = parseInt((option as any).scaleStatus);
 | 
			
		||||
  if (state.order.id) {
 | 
			
		||||
    ReceiveApi.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,166 @@
 | 
			
		|||
<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.receiptNumber }}</text>
 | 
			
		||||
        </view>
 | 
			
		||||
        <view>
 | 
			
		||||
          <text class="name">{{ item.userName }}</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.grossWeight }}KG</text>
 | 
			
		||||
      <text>单价:{{ item.price }} 元/KG</text>
 | 
			
		||||
    </view>
 | 
			
		||||
    <view class="btn-box">
 | 
			
		||||
      <u-button
 | 
			
		||||
        text="点击作废"
 | 
			
		||||
        color="#E8E8E8"
 | 
			
		||||
        :customStyle="{ color: '#999' }"
 | 
			
		||||
        @click="handleModal(true, (item.id as number))"
 | 
			
		||||
      ></u-button>
 | 
			
		||||
      <u-button
 | 
			
		||||
        type="primary"
 | 
			
		||||
        text="点击编辑"
 | 
			
		||||
        @click="pricingDetail((item.id as number))"
 | 
			
		||||
      ></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 { ReceiveApi } from "@/services/index";
 | 
			
		||||
import SmallModal from "@/components/Modal/smallModal.vue";
 | 
			
		||||
 | 
			
		||||
interface PageResult<T> {
 | 
			
		||||
  total: number;
 | 
			
		||||
  list: T[];
 | 
			
		||||
  pageNum: number;
 | 
			
		||||
  pageSize: number;
 | 
			
		||||
}
 | 
			
		||||
const pageList: PageResult<Order> = 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=1&id=" + imagesId, // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
const pricingDetail = (id: number) => {
 | 
			
		||||
  uni.navigateTo({
 | 
			
		||||
    url: "/pagesReceive/form/pricingForm?id=" + id, // 要跳转到的页面路径
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
const getOrderList = () => {
 | 
			
		||||
  ReceiveApi.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);
 | 
			
		||||
  ReceiveApi.deleteOrder([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,92 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view class="layout">
 | 
			
		||||
    <view class="name">现场照片</view>
 | 
			
		||||
    <up-row customStyle="flex-wrap: wrap">
 | 
			
		||||
      <up-col span="6" v-for="(item, index) in list" :key="index">
 | 
			
		||||
        <view
 | 
			
		||||
          class="grid-item"
 | 
			
		||||
          :style="{
 | 
			
		||||
            marginLeft: index % 2 === 1 ? '10rpx' : '',
 | 
			
		||||
            marginRight: index % 2 === 0 ? '10rpx' : '',
 | 
			
		||||
            marginBottom: '10rpx',
 | 
			
		||||
          }"
 | 
			
		||||
        >
 | 
			
		||||
          <view class="time">{{ item.createTime }}</view>
 | 
			
		||||
          <text class="tip">{{ getType(item.imagesType) }}过磅</text>
 | 
			
		||||
          <image :src="item.url" :mode="'widthFix'" />
 | 
			
		||||
        </view>
 | 
			
		||||
      </up-col>
 | 
			
		||||
    </up-row>
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { onLoad } from "@dcloudio/uni-app";
 | 
			
		||||
import { PictureApi } from "@/services/index";
 | 
			
		||||
import {ImagesType} from '@/utils/enum'
 | 
			
		||||
let list: any = ref([]);
 | 
			
		||||
const getType = (v: number) => {
 | 
			
		||||
  if (v === ImagesType.Tare) {
 | 
			
		||||
    return "皮重";
 | 
			
		||||
  } else if (v === ImagesType.GROSSWEIGHT) {
 | 
			
		||||
    return "毛重";
 | 
			
		||||
  } else {
 | 
			
		||||
    return "其他";
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
onLoad((option: any) => {
 | 
			
		||||
  // option.id
 | 
			
		||||
  PictureApi.getAnnex({
 | 
			
		||||
    businessId: option.id,
 | 
			
		||||
    orderType: parseInt(option.orderType),
 | 
			
		||||
    imagesType: ImagesType.Tare,
 | 
			
		||||
  }).then((res) => {
 | 
			
		||||
    if (res.code === 200) {
 | 
			
		||||
      list.value = res.data;
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.layout {
 | 
			
		||||
  margin: 22.44rpx 26.54rpx;
 | 
			
		||||
  padding: 33rpx 18rpx;
 | 
			
		||||
  background: #ffffff;
 | 
			
		||||
  box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12);
 | 
			
		||||
  border-radius: 13rpx;
 | 
			
		||||
  font-family: Source Han Sans CN;
 | 
			
		||||
  .name {
 | 
			
		||||
    font-weight: 400;
 | 
			
		||||
    font-size: 30rpx;
 | 
			
		||||
    color: #000000;
 | 
			
		||||
    margin-bottom: 30rpx;
 | 
			
		||||
  }
 | 
			
		||||
  .grid-item {
 | 
			
		||||
    position: relative;
 | 
			
		||||
    image {
 | 
			
		||||
      width: 100% !important;
 | 
			
		||||
    }
 | 
			
		||||
    .time {
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      font-size: 24rpx;
 | 
			
		||||
      color: rgba(255, 255, 255, 1);
 | 
			
		||||
      mix-blend-mode: difference;
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      bottom: 30rpx;
 | 
			
		||||
      padding: 0rpx 20rpx;
 | 
			
		||||
    }
 | 
			
		||||
    .tip {
 | 
			
		||||
      background: rgba(0, 0, 0, 0.63);
 | 
			
		||||
      box-shadow: 0rpx 0rpx 6rpx 0rpx rgba(0, 0, 0, 0.09);
 | 
			
		||||
      border-radius: 0rpx 40rpx 40rpx 0rpx;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      font-size: 24rpx;
 | 
			
		||||
      color: #ffffff;
 | 
			
		||||
      padding: 10rpx 20rpx;
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      top: 30rpx;
 | 
			
		||||
      left: 9rpx;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@/types/status
 | 
			
		||||
| 
						 | 
				
			
			@ -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: "remark",
 | 
			
		||||
    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>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,166 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view class="card-box" v-for="(item, index) in pageList.list" :key="index">
 | 
			
		||||
    <view class="top-flex-box">
 | 
			
		||||
      <view>
 | 
			
		||||
        <view>
 | 
			
		||||
          {{ item.id }}
 | 
			
		||||
          <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.tareTime }}</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: 0 }).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,48 @@
 | 
			
		|||
// 存放路径: 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,3 +1,5 @@
 | 
			
		|||
export * as ProfileApi from './profile'
 | 
			
		||||
export * as ReceiveApi from './receive'
 | 
			
		||||
export * as ShipmentApi from './shipment'
 | 
			
		||||
export * as ShipmentApi from './shipment'
 | 
			
		||||
export * as PictureApi from './picture'
 | 
			
		||||
export * as ReceiveProductApi from './receiveProduct'
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,51 @@
 | 
			
		|||
import type { ImagesType } from "@/utils/enum";
 | 
			
		||||
import { http } from "@/utils/http";
 | 
			
		||||
 | 
			
		||||
// 资源存储接口
 | 
			
		||||
export const addAnnex = (data: any) => {
 | 
			
		||||
  return http({
 | 
			
		||||
    method: "POST",
 | 
			
		||||
    url: "/api/annex/addAnnex",
 | 
			
		||||
    data,
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// 获取图片资源
 | 
			
		||||
export const getAnnex = (data: {businessId: number, orderType: number, imagesType: ImagesType | any}) => {
 | 
			
		||||
  return http<Resource>({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
    url: "/api/annex/getAnnex",
 | 
			
		||||
    data
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 批量存储资源
 | 
			
		||||
export const addListAnnex = (data: any) => {
 | 
			
		||||
  return http({
 | 
			
		||||
    method: "POST",
 | 
			
		||||
    url: "/api/annex/addListAnnex",
 | 
			
		||||
    data,
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 多个上传
 | 
			
		||||
export const uploadList = (data: any) => {
 | 
			
		||||
  return http({
 | 
			
		||||
    method: "POST",
 | 
			
		||||
    header: {type: 'UPLOAD'},
 | 
			
		||||
    url: "/api/file/uploadList",
 | 
			
		||||
    data,
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 单个上传
 | 
			
		||||
export const upload = (data: any) => {
 | 
			
		||||
  return http({
 | 
			
		||||
    method: "POST",
 | 
			
		||||
    header: {type: 'UPLOAD'},
 | 
			
		||||
    url: "/api/file/upload",
 | 
			
		||||
    data,
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -94,3 +94,16 @@ export const addMenusRole = (data: {
 | 
			
		|||
    data,
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// 查询用户列表
 | 
			
		||||
export const getUserList = (data: {
 | 
			
		||||
  name?: string;
 | 
			
		||||
  userType?: number; // 1= 工作人员 2=采购商
 | 
			
		||||
}) => {
 | 
			
		||||
  return http({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
    url: "/api/user/getUserList",
 | 
			
		||||
    data,
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,55 +3,9 @@ import type { Result } from '@/types/global'
 | 
			
		|||
 | 
			
		||||
import { http } from "@/utils/http";
 | 
			
		||||
 | 
			
		||||
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 ReceiveOrderPage<T> {
 | 
			
		||||
  total: number,
 | 
			
		||||
  list: T,
 | 
			
		||||
  pageNum: number,
 | 
			
		||||
  pageSize: number
 | 
			
		||||
}
 | 
			
		||||
type ReceiveOrder = {
 | 
			
		||||
  id: number,
 | 
			
		||||
  deviceId: number, // 设备id
 | 
			
		||||
  deviceName: string, // 设备名称
 | 
			
		||||
  userId: number, // 用户id
 | 
			
		||||
  cardId: number, //库存卡id
 | 
			
		||||
  cardNumber: number, // 库存卡号
 | 
			
		||||
  userName: string, // 用户名称:关联用户表得到
 | 
			
		||||
  productId: number, // 品类id
 | 
			
		||||
  productName: string, // 品类名称:关联品类表得到
 | 
			
		||||
  imagesId: string,
 | 
			
		||||
  imageUrls: string,
 | 
			
		||||
  carNumber: string, // 车牌号
 | 
			
		||||
  receiptNumber: string, // 收货单号
 | 
			
		||||
  grossWeight: number, // 毛重
 | 
			
		||||
  tare: number, // 皮重
 | 
			
		||||
  grossTime: string, // 过毛日期
 | 
			
		||||
  tareTime: string, // 过皮日期
 | 
			
		||||
  netWeight: string, // 净重(净重=净重*(1-扣点)-扣杂)
 | 
			
		||||
  buttonType: string, // 扣杂状态:0扣杂1扣点
 | 
			
		||||
  points: string, // 扣点
 | 
			
		||||
  buckleMiscellaneous: string, //扣杂
 | 
			
		||||
  price: string, // 单价
 | 
			
		||||
  balanceTotalPrice: string, //结算总价
 | 
			
		||||
  totalPrice: string, //实际总价
 | 
			
		||||
  weighingMethod: string, //称重方式:0:有皮重 1:零皮重
 | 
			
		||||
  multiCategory: string, // 多品类:0:单品类 1:多品类
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 收库单分页查询
 | 
			
		||||
export const getOrderPage = (data: PageParams) => {
 | 
			
		||||
  return http<ReceiveOrderPage<ReceiveOrder>>({
 | 
			
		||||
  return http<OrderPage<Order>>({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
    url: "/api/orderIn/getOrderPage",
 | 
			
		||||
    data,
 | 
			
		||||
| 
						 | 
				
			
			@ -68,7 +22,7 @@ export const getList = () => {
 | 
			
		|||
 | 
			
		||||
//根据id获取收货单详情
 | 
			
		||||
export const getDetailById = (data: {id: number}) => {
 | 
			
		||||
  return http<Result>({
 | 
			
		||||
  return http<Order>({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
    url: "/api/orderIn/getOne",
 | 
			
		||||
    data
 | 
			
		||||
| 
						 | 
				
			
			@ -110,14 +64,7 @@ export const deleteOrder = (data: any) => {
 | 
			
		|||
};
 | 
			
		||||
// 统计首页的本月总收获以及总支出
 | 
			
		||||
// 收货类型
 | 
			
		||||
type ReceiveSummary = {
 | 
			
		||||
  totalReceipt: number, // 本月总出货
 | 
			
		||||
  totalExpenditure: number, // 本月总收入
 | 
			
		||||
  toBePriced: number, // 待收货
 | 
			
		||||
  toBeTare: number, // 待过皮重
 | 
			
		||||
  audit: number, // 付款审核
 | 
			
		||||
  toBePaid: number, // 待支付
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const countOrderByMonth = () => {
 | 
			
		||||
  return http<ReceiveSummary>({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
| 
						 | 
				
			
			@ -125,4 +72,15 @@ export const countOrderByMonth = () => {
 | 
			
		|||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// 更新定价详情
 | 
			
		||||
export const updateOne = (data: any) => {
 | 
			
		||||
  return http<Result>({
 | 
			
		||||
    method: "POST",
 | 
			
		||||
    url: "/api/orderIn/updateOne",
 | 
			
		||||
    data,
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
import { http } from "@/utils/http";
 | 
			
		||||
 | 
			
		||||
// 收货产品分页列表
 | 
			
		||||
export const getReceiveProduct = () => {
 | 
			
		||||
  return http({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
    url: "/api/reproducts/getPage"
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// 查询收货产品列表All
 | 
			
		||||
export const getAllReProducts = () => {
 | 
			
		||||
  return http({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
    url: "/api/reproducts/allReProducts"
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -9,6 +9,42 @@ type ShipmentSummary = {
 | 
			
		|||
  shipmentReview: number, // 出货结算
 | 
			
		||||
  toBeSettled: number, // 待结算
 | 
			
		||||
}
 | 
			
		||||
// 根据id查询出货单
 | 
			
		||||
export const getDetailById = (data: {id: number}) => {
 | 
			
		||||
  return http<Shipment>({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
    url: "/api/orderOut/getOne",
 | 
			
		||||
    data
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 根据条件查询出库单下拉列表
 | 
			
		||||
export const getList = () => {
 | 
			
		||||
  return http<Shipment>({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
    url: "/api/orderOut/getList"
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
type PageParams = {
 | 
			
		||||
  userId?: number; // 供应商id
 | 
			
		||||
  productId?: string; // 产品id
 | 
			
		||||
  cardId?: number;
 | 
			
		||||
  deviceId?:number;
 | 
			
		||||
  scaleStatus?: number; // 磅单状态:0:待出货1:待过毛2:待审核3:已审未付4:已审已付
 | 
			
		||||
  flag?: boolean; // true 皮重 false 毛重
 | 
			
		||||
  pageNumber: number;
 | 
			
		||||
  pageSize: number;
 | 
			
		||||
  startTime?: string; // 开始时间
 | 
			
		||||
  endTime?: string; // 结束时间
 | 
			
		||||
  
 | 
			
		||||
};
 | 
			
		||||
// 根据条件获取出库单,并且进行分页
 | 
			
		||||
export const getOrderPage = (data: PageParams) => {
 | 
			
		||||
  return http<OrderPage<Shipment>>({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
    url: "/api/orderOut/getOrderPage",
 | 
			
		||||
    data
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 统计首页的本月收入以及待出库
 | 
			
		||||
export const countOrderByMonth = () => {
 | 
			
		||||
  return http<ShipmentSummary>({
 | 
			
		||||
| 
						 | 
				
			
			@ -16,3 +52,46 @@ export const countOrderByMonth = () => {
 | 
			
		|||
    url: "/api/orderOut/countOrderByMonth"
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 出库分类统计
 | 
			
		||||
 | 
			
		||||
export const getOrderInReceipt = () => {
 | 
			
		||||
  return http<Shipment>({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
    url: "/api/orderOut/OrderInReceipt"
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 出货单排行榜
 | 
			
		||||
export const getOrderInRanking = () => {
 | 
			
		||||
  return http<Shipment>({
 | 
			
		||||
    method: "GET",
 | 
			
		||||
    url: "/api/orderOut/OrderInRanking"
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 单个或则批量作废
 | 
			
		||||
export const deleteOrder = (data: any) => {
 | 
			
		||||
  return http<Shipment>({
 | 
			
		||||
    method: "POST",
 | 
			
		||||
    url: "/api/orderOut/delete",
 | 
			
		||||
    data,
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 新增出货单
 | 
			
		||||
export const addOrderOut = (data: any) => {
 | 
			
		||||
  return http<Shipment>({
 | 
			
		||||
    method: "POST",
 | 
			
		||||
    url: "/api/orderOut/addOrderOut",
 | 
			
		||||
    data,
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
// 批量修改出货单
 | 
			
		||||
export const updateOrderIn = (data: any) => {
 | 
			
		||||
  return http<Shipment>({
 | 
			
		||||
    method: "POST",
 | 
			
		||||
    url: "/api/orderOut/updateOrderIn",
 | 
			
		||||
    data,
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,9 +7,11 @@ export const useMemberStore = defineStore(
 | 
			
		|||
  () => {
 | 
			
		||||
    // 会员信息
 | 
			
		||||
    const profile = ref({
 | 
			
		||||
      token: '',
 | 
			
		||||
      userInfo: {
 | 
			
		||||
        userName: "",
 | 
			
		||||
        factory_name: "",
 | 
			
		||||
       
 | 
			
		||||
      },
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,6 @@
 | 
			
		|||
declare var wx: any;
 | 
			
		||||
declare var $_: any;
 | 
			
		||||
 | 
			
		||||
export type PageResult<T> = {
 | 
			
		||||
  items: T[],
 | 
			
		||||
  counts: number,
 | 
			
		||||
| 
						 | 
				
			
			@ -17,4 +19,6 @@ export type Result = {
 | 
			
		|||
  data: T,
 | 
			
		||||
  message: string,
 | 
			
		||||
  time: string
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type ComType = {[attrName: string]: any }
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,112 @@
 | 
			
		|||
interface Order {
 | 
			
		||||
  id?: number;
 | 
			
		||||
  deviceId?: number; //设备id
 | 
			
		||||
  deviceName?: string; // 设备名称
 | 
			
		||||
  userId?: number | string; //供应商id
 | 
			
		||||
  cardId?: number; //库存卡id
 | 
			
		||||
  cardNumber?: string; //undefined
 | 
			
		||||
  userName?: string; //undefined
 | 
			
		||||
  productId?: number | string; //产品id
 | 
			
		||||
  productName?: string; //undefined
 | 
			
		||||
  imagesId?: number | undefined; //弃用
 | 
			
		||||
  imageUrls?: string; //弃用
 | 
			
		||||
  carNumber?: string; //车牌号
 | 
			
		||||
  receiptNumber?: string; //收货单号
 | 
			
		||||
  grossWeight?: number; //毛重
 | 
			
		||||
  tare?: string; //皮重
 | 
			
		||||
  grossTime?: string; //过毛日期
 | 
			
		||||
  tareTime?: string; //过皮日期
 | 
			
		||||
  netWeight?: string; //净重
 | 
			
		||||
  buttonType?: number; //扣杂状态:0扣杂1扣点
 | 
			
		||||
  points?: number; //扣点
 | 
			
		||||
  buckleMiscellaneous?: number; //扣杂
 | 
			
		||||
  price?: string; //单价
 | 
			
		||||
  balanceTotalPrice?: string; //结算总价 货款金额
 | 
			
		||||
  totalPrice?: string; //实际总价 预估价格
 | 
			
		||||
  weighingMethod?: number; //称重方式:0:有皮重 1:零皮重
 | 
			
		||||
  multiCategory?: number; //多品类:0:单品类 1:多品类
 | 
			
		||||
  notes?: string; //备注
 | 
			
		||||
  scaleStatus?: number; // 磅单状态:0:待定价1:待过皮2:待审核3:已审核待支付4:已支付
 | 
			
		||||
  paymentMethod?: string; //支付方式:0:未支付,1:现金支付,2:银行卡支付,3:线上支付(微信)4:支付宝
 | 
			
		||||
  updateTime?: string; //修改时间
 | 
			
		||||
  repairTime?: string; //补单时间
 | 
			
		||||
  createTime?: string; //创建时间
 | 
			
		||||
  updateUserId?: number; //修改人
 | 
			
		||||
  createUserId?: number; //创建人
 | 
			
		||||
  reviewerUserId?: string; //审核人
 | 
			
		||||
  reviewerUserName?: string; // 审核人名称
 | 
			
		||||
  pricingUserId?: string; //定价人
 | 
			
		||||
  pricingUserName?: string; //定价人名称
 | 
			
		||||
  fileList?: array;
 | 
			
		||||
  subtractNum?: number; // input 扣杂扣点参数
 | 
			
		||||
  isChecked?: boolean;
 | 
			
		||||
  [attrName: string]: any;
 | 
			
		||||
}
 | 
			
		||||
interface Shipment {
 | 
			
		||||
  id?: string;
 | 
			
		||||
  userId?: number; //供应商id
 | 
			
		||||
  productId?: number; //产品id
 | 
			
		||||
  cardId?: number; //库存卡id
 | 
			
		||||
  imagesId?: number; //图片表id
 | 
			
		||||
  deviceId?: number; //设备id
 | 
			
		||||
  carNumber?: string; //车牌号
 | 
			
		||||
  scaleStatus?: number; //出库单状态
 | 
			
		||||
  orderNumber?: string; //订单编号
 | 
			
		||||
  grossWeight?: number; //毛重
 | 
			
		||||
  grossTime?: string; //过毛时间
 | 
			
		||||
  tare?: number; //皮重
 | 
			
		||||
  tareTime?: string; //过皮时间
 | 
			
		||||
  netWeight?: string; //净重
 | 
			
		||||
  number?: number; //数量
 | 
			
		||||
  notes?: string; //备注
 | 
			
		||||
  settlementNotes?: string; //结算备注
 | 
			
		||||
  deliveryMethod?: string; //提货方式:0:送货1:自提
 | 
			
		||||
  phone?: string; //手机号
 | 
			
		||||
  box?: string; //箱号
 | 
			
		||||
  title?: string; //封号
 | 
			
		||||
  freight?: string; //运费
 | 
			
		||||
  incidentals?: string; //杂费
 | 
			
		||||
  pricingPerson?: string; //定价人
 | 
			
		||||
  reviewerId?: string; //审核人
 | 
			
		||||
  buttonType?: string; //扣点状态:默认0:扣杂1扣点
 | 
			
		||||
  points?: string; //扣点
 | 
			
		||||
  buckleMiscellaneous?: string; //扣杂
 | 
			
		||||
  unitPrice?: string; //结算单价
 | 
			
		||||
  estimatePrice?: string; //预估金额
 | 
			
		||||
  totalPrice?: string; //结算金额
 | 
			
		||||
  realIncome?: string; //实际收入
 | 
			
		||||
  errorPrice?: string; //误差金额
 | 
			
		||||
  repairTime?: string; //补单时间
 | 
			
		||||
  createTime?: string; //undefined
 | 
			
		||||
  createUserId?: string; //undefined
 | 
			
		||||
  updateUserId?: string; //undefined
 | 
			
		||||
  updateTime?: string; //undefined
 | 
			
		||||
  isDeleted?: string; //删除标识true删除,false未删除
 | 
			
		||||
  [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:已支付
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
interface Resource {
 | 
			
		||||
  businessId: number,
 | 
			
		||||
  orderType: number, // 1:入库单 2:出库单
 | 
			
		||||
  imagesType: number, // 0:普通资源1:皮重 2毛重
 | 
			
		||||
  url: string,
 | 
			
		||||
  urlName: string,
 | 
			
		||||
  urlSuffix: string, // 附件后缀
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
interface User {
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,55 @@
 | 
			
		|||
 | 
			
		||||
// 1收货2出货
 | 
			
		||||
export enum OrderType {
 | 
			
		||||
  Receive = 1,
 | 
			
		||||
  Shipment = 2,
 | 
			
		||||
}
 | 
			
		||||
// 扣杂状态:0扣杂1扣点
 | 
			
		||||
export enum ButtonType {
 | 
			
		||||
  BuckleMiscellaneous = 0,
 | 
			
		||||
  Points = 1,
 | 
			
		||||
}
 | 
			
		||||
// 称重方式:0:有皮重 1:零皮重
 | 
			
		||||
export enum WeighingMethod {
 | 
			
		||||
  Yes = 0,
 | 
			
		||||
  No = 1,
 | 
			
		||||
}
 | 
			
		||||
// 多品类:0:单品类 1:多品类
 | 
			
		||||
export enum MultiCategory {
 | 
			
		||||
  Single = 0,
 | 
			
		||||
  Multiple = 1,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 0:普通资源1:皮重 2毛重
 | 
			
		||||
export enum ImagesType {
 | 
			
		||||
  NORMARL = 0,
 | 
			
		||||
  Tare = 1,
 | 
			
		||||
  GROSSWEIGHT = 2,
 | 
			
		||||
}
 | 
			
		||||
//磅单状态:0:待定价1:待过皮2:待审核3:已审核待支付4:已支付
 | 
			
		||||
// 磅单状态:0:待出货1:待过毛2:待审核3:已审未付4:已审已付
 | 
			
		||||
export enum ScaleStatus {
 | 
			
		||||
  ToBePriced = 0,
 | 
			
		||||
  ToBeTare = 1,
 | 
			
		||||
  ToBeReview = 2,
 | 
			
		||||
  ToBePay = 2,
 | 
			
		||||
  Paid = 4,
 | 
			
		||||
  ToBeShipment = 0,
 | 
			
		||||
  ToBeGrossWeight = 1,
 | 
			
		||||
  ToBeShipmentReview = 2,
 | 
			
		||||
  ToBeShipmentPay = 3,
 | 
			
		||||
  ShipmentPaid = 4
 | 
			
		||||
}
 | 
			
		||||
// 支付方式:0:未支付,1:现金支付,2:银行卡支付,3:线上支付(微信)4:支付宝
 | 
			
		||||
export enum PaymentMethod {
 | 
			
		||||
  NoPay = 0,
 | 
			
		||||
  Cash = 1,
 | 
			
		||||
  BankCard = 2,
 | 
			
		||||
  WeChat = 2,
 | 
			
		||||
  Alipay = 4
 | 
			
		||||
}
 | 
			
		||||
//用户类型0:刷脸1:刷卡
 | 
			
		||||
export enum UserType {
 | 
			
		||||
  Face = 0,
 | 
			
		||||
  Card = 1,
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,17 +1,15 @@
 | 
			
		|||
import { useMemberStore } from "@/store/modules/member";
 | 
			
		||||
import ENV_CONFIG from "../config/env";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// 基础地址
 | 
			
		||||
let baseUrl = "";
 | 
			
		||||
// #ifdef H5
 | 
			
		||||
(process.env as any).config= ENV_CONFIG
 | 
			
		||||
(process.env as any).config = ENV_CONFIG;
 | 
			
		||||
// #endif
 | 
			
		||||
 | 
			
		||||
baseUrl = (process.env as any).config[(process.env as any).NODE_ENV]
 | 
			
		||||
  .VITE_APP_BASE_URL;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const store = useMemberStore();
 | 
			
		||||
 | 
			
		||||
const obj = {
 | 
			
		||||
| 
						 | 
				
			
			@ -54,40 +52,84 @@ interface Data<T> {
 | 
			
		|||
 */
 | 
			
		||||
export const http = <T>(options: UniApp.RequestOptions) => {
 | 
			
		||||
  return new Promise<Data<T>>((resolve, reject) => {
 | 
			
		||||
    uni.request({
 | 
			
		||||
      ...options,
 | 
			
		||||
      success(res) {
 | 
			
		||||
        if (res.statusCode >= 200 && res.statusCode < 300) {
 | 
			
		||||
          if (
 | 
			
		||||
            (res.data as any).code === 1001 ||
 | 
			
		||||
            (res.data as any).code === 1002
 | 
			
		||||
          ) {
 | 
			
		||||
    console.log(options);
 | 
			
		||||
    if ((options as any).header?.type === "UPLOAD") {
 | 
			
		||||
      uni.uploadFile({
 | 
			
		||||
        header: {
 | 
			
		||||
          "x-userToken": store.profile?.token,
 | 
			
		||||
          // #ifdef H5
 | 
			
		||||
          "Content-Type": "multipart/form-data",
 | 
			
		||||
          // #endif
 | 
			
		||||
        },
 | 
			
		||||
        url: baseUrl + options.url, //仅为示例,非真实的接口地址
 | 
			
		||||
        fileType: "image",
 | 
			
		||||
        // #ifdef H5
 | 
			
		||||
        files: (options as any).data.files,
 | 
			
		||||
        // #endif
 | 
			
		||||
        // #ifdef MP-WEIXIN
 | 
			
		||||
        filePath: (options as any).data.path,
 | 
			
		||||
        // #endif
 | 
			
		||||
        name: "file",
 | 
			
		||||
        formData: {
 | 
			
		||||
          file: (options as any).data.files,
 | 
			
		||||
        }, // HTTP 请求中其他额外的 form data
 | 
			
		||||
        success: (res) => {
 | 
			
		||||
          resolve(JSON.parse(res.data) as Data<T>);
 | 
			
		||||
        },
 | 
			
		||||
        fail(err) {
 | 
			
		||||
          console.log(err);
 | 
			
		||||
        },
 | 
			
		||||
      });
 | 
			
		||||
    } else {
 | 
			
		||||
      uni.request({
 | 
			
		||||
        ...options,
 | 
			
		||||
        dataType:'string',   //1.先将dataType设置为string
 | 
			
		||||
        success(res) {
 | 
			
		||||
          var json=(res.data as any).replace(/:s*([0-9]{15,})s*(,?)/g, ': "$1" $2')
 | 
			
		||||
          //2.根据后端返回的数据调用一次或者两次replace替换
 | 
			
		||||
          var json1=json.replace(/:s*([0-9]{15,})s*(,?)/g, ': "$1" $2')
 | 
			
		||||
          //3.手动转换回json数据即可
 | 
			
		||||
					let res1 = JSON.parse(json1);
 | 
			
		||||
          console.log(res1)
 | 
			
		||||
          if (res.statusCode >= 200 && res.statusCode < 300) {
 | 
			
		||||
            if (
 | 
			
		||||
              (res1 as any).code === 1001 ||
 | 
			
		||||
              (res1 as any).code === 1002
 | 
			
		||||
            ) {
 | 
			
		||||
              uni.showToast({
 | 
			
		||||
                icon: "none",
 | 
			
		||||
                title: (res1 as Data<T>).message || "请求失败",
 | 
			
		||||
              });
 | 
			
		||||
              store.clearProfile();
 | 
			
		||||
              uni.navigateTo({
 | 
			
		||||
                url: "/pages/login/index",
 | 
			
		||||
              });
 | 
			
		||||
              return;
 | 
			
		||||
            }
 | 
			
		||||
            if ((res1 as any).code === 10001) {
 | 
			
		||||
              uni.showToast({
 | 
			
		||||
                icon: "none",
 | 
			
		||||
                title: (res1 as Data<T>).message || "请求失败",
 | 
			
		||||
              });
 | 
			
		||||
              return 
 | 
			
		||||
            }
 | 
			
		||||
            resolve(res1 as Data<T>);
 | 
			
		||||
          } else {
 | 
			
		||||
            uni.showToast({
 | 
			
		||||
              icon: "none",
 | 
			
		||||
              title: (res.data as Data<T>).message || "请求失败",
 | 
			
		||||
              title: (res1 as any).msg || "请求失败",
 | 
			
		||||
            });
 | 
			
		||||
            store.clearProfile();
 | 
			
		||||
            // uni.navigateTo({
 | 
			
		||||
            //   url: "/pages/login/index",
 | 
			
		||||
            // });
 | 
			
		||||
            return;
 | 
			
		||||
            reject(res1);
 | 
			
		||||
          }
 | 
			
		||||
          resolve(res.data as Data<T>);
 | 
			
		||||
        } else {
 | 
			
		||||
        },
 | 
			
		||||
        fail(err) {
 | 
			
		||||
          uni.showToast({
 | 
			
		||||
            icon: "none",
 | 
			
		||||
            title: (res.data as Data<T>).msg || "请求失败",
 | 
			
		||||
            title: "网络错误,请检查网络",
 | 
			
		||||
          });
 | 
			
		||||
          reject(res);
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      fail(err) {
 | 
			
		||||
        uni.showToast({
 | 
			
		||||
          icon: "none",
 | 
			
		||||
          title: "网络错误,请检查网络",
 | 
			
		||||
        });
 | 
			
		||||
        reject(err);
 | 
			
		||||
      },
 | 
			
		||||
    });
 | 
			
		||||
          reject(err);
 | 
			
		||||
        },
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue