Selaa lähdekoodia

前端收购业务详情改动

gjy 3 vuotta sitten
vanhempi
commit
049d54daa2

+ 1 - 0
config/index.js

@@ -3,6 +3,7 @@ const dev = {
 	// baseUrl: 'http://localhost:8080/',
 	baseUrlNew: 'http://192.168.1.118:8090/',
 	// baseUrlNew: 'http://192.168.1.114:8090/',
+	// baseUrlNew: 'http://192.168.1.122:8090/',
 	// baseUrlNew: 'http://192.168.1.119:9100/',
 	// baseUrlNew: 'http://api1.eliangeyun.com/',
 	h5Appid: 'wxb66b599f7f61b46f',

+ 2 - 2
manifest.json

@@ -2,8 +2,8 @@
     "name" : "易粮易运",
     "appid" : "__UNI__7297DA2",
     "description" : "易粮易运——为天下粮食人服务的App",
-    "versionName" : "1.1.71",
-    "versionCode" : 1171,
+    "versionName" : "1.1.74",
+    "versionCode" : 1174,
     "transformPx" : false,
     /* SDK配置 */
     "quickapp" : {},

+ 4 - 0
pages/erp/exWarehousing/exWarehousing.vue

@@ -71,6 +71,10 @@
 				<view class="left">运费(元/吨)</view>
 				<input v-model='detailData.freight' class="right-bottom" placeholder="不可编辑,自动计算"></input>
 			</view>
+			<view class="row row-bottom">
+				<view class="left">出库单价(元/吨)</view>
+				<input v-model='detailData.cost' class="right-bottom" placeholder="输入出库单价"></input>
+			</view>
 			<view class="row">
 				<view class="left">品级</view>
 				<view @click='show3=true'>{{detailData.grade}}</view>

+ 4 - 0
pages/erp/improvedExWaehousing/improvedExWaehousingDetail.vue

@@ -65,6 +65,10 @@
 				<view class="left">运费(元/吨)</view>
 				<input v-model='detailData.freight' class="right-bottom" placeholder="输入运费"></input>
 			</view>
+			<view class="row row-bottom">
+				<view class="left">出库单价(元/吨)</view>
+				<input v-model='detailData.cost' class="right-bottom" placeholder="输入出库单价"></input>
+			</view>
 			<view class="row">
 				<view class="left">品级</view>
 				<view @click='show3=true'>{{detailData.grade}}</view>

+ 6 - 5
pages/erpbusiness/add_quality_testing.vue

@@ -38,12 +38,12 @@
 					{{gridList.contractNo?gridList.contractNo:'自动获取,不可编辑'}}
 				</view>
 			</view>
-			<view class="c-row ">
+			<!-- <view class="c-row ">
 				<view class="title">业务编号</view>
 				<view class="con-list">
 					{{gridList.qualityNo}}
 				</view>
-			</view>
+			</view> -->
 			<view v-if='typevalue==1' style=' align-items: flex-start;' class="c-row ">
 				<view class="title">提示</view>
 				<view class="con-list">
@@ -1018,10 +1018,11 @@
 				this.gridList.carNo = this.gridList.carNumber
 				this.gridList.baseId = this.cangid
 				this.gridList.warehouseId = this.cangid
-				if (!this.gridList.qualityNo) {
-					this.$api.msg('编号不能为空')
-					return
+				if (this.gridList.qualityNo) {
+					this.gridList.numberLetter = this.gridList.qualityNo.substring(0,4)
+					this.gridList.warehouseNo = this.gridList.qualityNo.substring(12,15)
 				}
+				delete this.gridList.qualityNo
 				if (!this.gridList.binNumber) {
 					this.$api.msg('仓位不能为空')
 					return

+ 3 - 2
pages/erpbusiness/edit_quality_testing.vue

@@ -129,8 +129,9 @@
 					<u-picker :range="warehouseList" range-key="binNumber" @confirm='binNumberpicker($event)'
 						v-model="show" mode="selector">
 					</u-picker>
-					<view v-if='flag!=1' @click='show=true'>{{gridList.binNumber}}</view>
-					<view v-else>{{gridList.binNumber}}</view>
+					<view  @click='show=true'>{{gridList.binNumber}}</view>
+					<!-- <view v-if='flag!=1' @click='show=true'>{{gridList.binNumber}}</view> -->
+					<!-- <view v-else>{{gridList.binNumber}}</view> -->
 				</view>
 			</view>
 			<view class="c-row ">

+ 1121 - 0
pages/erpbusiness/outbound_quality_testing.vue

@@ -0,0 +1,1121 @@
+<template>
+	<view class="center">
+		<view class='navbar' style='position:fixed;background:#fff;top:0;width:100%;z-index:3;'>
+			<view class="back-btn cuIcon-back" @click="navBack"></view>
+			<view class='header-content' v-if='managementType==3'>出库质检</view>
+			<view class='header-content' v-if='managementType==1'>入库质检</view>
+		</view>
+		<view class="header">
+			<view style='background:#fff;display:flex;' class="cu-bar search">
+				<view style='flex:6;' class="search-form round Medium">
+					<text style='color: #ccc;text-indent:6px;' class="cuIcon-search"></text>
+					<input v-if='managementType==1' type="text" maxlength="20" v-model="searchKeyWord"
+						@confirm="doSearch()" placeholder="输入编号、客户名、车牌号" confirm-type="search"></input>
+					<input v-if='managementType==3' type="text" maxlength="20" v-model="searchKeyWord"
+						@confirm="doSearch()" placeholder="输入合同编号、车牌号" confirm-type="search"></input>
+				</view>
+				<view @click='doSearch()' class="Regular" style="width:4%;flex:1;">搜索</view>
+				<u-icon @click='emptysearch' class="cuIcon" v-if='searchKeyWord.length>0' size="34"
+					name="close-circle-fill" color="#D6D9E0"></u-icon>
+				<!-- <text @click='emptysearch' v-if='searchKeyWord.length>0' class='tip_text cuIcon-roundclosefill'></text> -->
+			</view>
+			<view class='changewarehouse'>
+				<view @click='show=true'>{{warehouseName}}<text class='cuIcon-unfold'></text></view>
+				<u-picker @confirm="warehousechange" range-key='warehouseName' mode="selector" v-model="show"
+					:range="selector"></u-picker>
+			</view>
+		</view>
+		<view class="content">
+			<view style='background:#fff;' class="flex">
+				<view class='line' :class='statusType==""?"active":""' @click='clickstatus("")'>全部</view>
+				<view class='line' :class='statusType=="1"?"active":""' @click='clickstatus("1")'>待复检</view>
+				<view class='line' :class='statusType=="2"?"active":""' @click='clickstatus("2")'>待确认</view>
+			</view>
+			<view class="item-style" v-for='item in gridList' @click='examine(item)'>
+				<view class="row1">
+					<view class="row1-left">
+						<view class="left status3" v-if="item.confirm=='1'">确</view>
+						<view v-else>
+							<view class="left status1" v-if="item.status=='已质检'">检</view>
+							<view class="left status2" v-if="item.status=='已称皮重'">皮</view>
+							<view class="left status3" v-if="item.status=='已称毛重'">毛</view>
+							<view class="left status1" v-if="item.status=='已初检'">初</view>
+							<view class="left status2" v-if="item.status=='已复检'">复</view>
+							<view class="left status3" v-if="item.confirm=='1'">确</view>
+						</view>
+
+						<view>
+							<view class="top-title">
+								<view v-if='managementType==1'>{{item.qualityNo}}</view>
+								<view v-if='managementType==3'>{{item.contractNo}}</view>
+							</view>
+							<view class="bottom">{{item.updateDate}}</view>
+						</view>
+					</view>
+					<view class="right">{{item.customer}}</view>
+					<view class='right'>{{item.qualityInspector}} {{item.reInspector}}</view>
+				</view>
+				<view class="row2">
+					<view v-if='managementType==1'>{{item.customerName}}</view>
+					<view>{{item.carNumber}}</view>
+					<view>{{item.goodsName}}({{item.waterContent}}水)</view>
+				</view>
+				<view class="row3">
+					<view
+						v-if='getRoles("acquisitionQuality.delete")&&item.weighingManagement&&item.weighingManagement.status=="已质检"&&managementType==1'
+						@click.stop='del(item)' class='button'>删除</view>
+					<view v-if='getRoles("acquisitionQuality.initial")&&item.status=="已初检"&&managementType==1'
+						@click.stop='edit(item,0)' class='button'>初检</view>
+					<view
+						v-if='getRoles("acquisitionQuality.con")&&item.confirm!="1"&&item.status=="已复检"&&managementType==1'
+						@click.stop='edit(item,2)' class='button'>确认</view>
+					<view v-if='getRoles("acquisitionQuality.again")&&item.confirm!="1"&&managementType==1'
+						@click.stop='edit(item,1)' class='button'>复检</view>
+					<view v-if='getRoles("acquisitionQualityOut.edit")&&item.status=="已称毛重"&&managementType==3'
+						@click.stop='quality_testing(item)' class='button'>质检</view>
+				</view>
+			</view>
+			<!-- <view class='wrap' v-for='item in gridList' @click='examine(item)'>
+			<view class='flex justify-between'>
+				<view v-if='item.status=="已质检"'>
+					<view class='type type-zhi'>检</view>
+				</view>
+				<view v-if='item.status=="已称毛重"'>
+					<view class='type type-mao'>毛</view>
+				</view>
+				<view v-if='item.status=="已称皮重"'>
+					<view class='type type-pi'>皮</view>
+				</view>
+				<view>
+					<view  v-if='managementType==1' class='qualityNo'>{{item.qualityNo}}</view>
+					<view  v-if='managementType==3' class='qualityNo'>{{item.contractNo}}</view>
+					<view class='time'>{{item.updateDate}}</view>
+				</view>
+				<view v-if='item.status=="已质检"' class='qualityInspector'>{{item.qualityInspector}}</view>
+				<view v-else></view>
+			</view>
+			<view class="flex  justify-around customerinformation">
+				<view v-if='managementType==1'>{{item.customerName}}</view>
+				<view>{{item.carNumber}}</view>
+				<view>{{item.goodsName}}({{item.waterContent}}水)</view>
+			</view>
+			<view class='flex buttons'>
+				<view v-if='item.status=="已质检"&&managementType==1' @click.stop='del(item)' class='button'>删除</view>
+				<view v-if='item.status!="已称皮重"&&managementType==1' @click.stop='edit(item)' class='button'>编辑</view>
+				<view v-if='item.status=="已称毛重"&&managementType==3' @click.stop='quality_testing(item)' class='button'>质检</view>
+			</view>
+		</view> -->
+			<!-- <view class='flex buttons'>
+			<view v-if='item.status=="已质检"&&managementType==1' @click.stop='del(item)' class='button'>删除</view>
+			<view v-if='item.status!="已称皮重"&&managementType==1' @click.stop='edit(item)' class='button'>编辑</view>
+			<view v-if='item.status=="已称毛重"&&managementType==3' @click.stop='quality_testing(item)' class='button'>质检</view>
+		</view> -->
+		</view>
+
+		<view v-show="isContent">
+			<uni-load-more :status="loadStatus"></uni-load-more>
+		</view>
+		<view v-if='managementType==1' class="footer">
+			<view @click='add' v-if='getRoles("acquisitionQuality.add")' class="button">新增</view>
+		</view>
+	</view>
+</template>
+<script>
+	import dragButton from "@/components/drag-button/drag-button.vue";
+	import {
+		mapState
+	} from 'vuex';
+	let startY = 0,
+		moveY = 0,
+		pageAtTop = true;
+	export default {
+		components: {
+			dragButton
+		},
+		data() {
+			return {
+				inputShow: false,
+				modalName: '',
+				mycarStyle: '',
+				feild: undefined,
+				params: {},
+				selector: [],
+				isContent: false,
+				loadStatus: 'noMore',
+				inputContent: '',
+				coverTransform: 'translateY(0px)',
+				coverTransition: '0s',
+				moving: false,
+				footprintList: [],
+				searchKeyWord: '',
+				statusType:'',
+				isVip: false,
+				userInfoTmp: [],
+				inputStatus: 'none',
+				carInfo: [],
+				gridCol: 4,
+				show: false,
+				pageSize: 10,
+				currentPage: 1,
+				gridBorder: false,
+				headUrl: "../../static/img/myimg/YongHu@3x.png",
+				userphone: "",
+				username: "请更改昵称",
+				gridList: [],
+				managementType: 1,
+				warehouseName: '',
+				showTran: true,
+				companyId: 1,
+				current: 4,
+				warehouseCount: '',
+				warehouseTradeCount:'',
+				commonWarehouseNo: '',
+				cangid: '',
+				warehouse: {},
+
+			}
+		},
+		// #ifndef MP
+		onNavigationBarButtonTap(e) {
+			const index = e.index;
+			if (index === 0) {
+				this.navTo('/pages/set/set');
+			} else if (index === 1) {
+				// #ifdef APP-PLUS
+				const pages = getCurrentPages();
+				const page = pages[pages.length - 1];
+				const currentWebview = page.$getAppWebview();
+				currentWebview.hideTitleNViewButtonRedDot({
+					index
+				});
+				// #endif
+				uni.navigateTo({
+					url: '/pages/notice/notice'
+				})
+			}
+		},
+		onBackPress() {
+			uni.switchTab({
+				url: '/pages/user/user'
+			});
+			return true
+		},
+		// #endif
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+			// 手机号中间4位加*
+			starUserphone() {
+				let reg = /^(\d{3})\d{4}(\d{4})$/;
+				if (this.userphone) {
+					return this.userphone.replace(reg, "$1****$2");
+				}
+			}
+		},
+		onPullDownRefresh() {
+			this.currentPage = 1
+			this.gridList = []
+			this.getList(true)
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		},
+		onReachBottom() {
+			this.currentPage += 1
+			this.getList(false)
+			// this.getMoreNews()
+		},
+		onLoad(options) {
+			this.managementType = options.managementType
+		},
+		onShow() {
+			uni.setStorageSync('isClick', false)
+			uni.showLoading({
+				title: "正在加载"
+			})
+			this.pageSize = 10
+			this.currentPage = 1
+			var that = this
+			if (this.cangid) {
+				uni.setStorageSync("cangid", this.cangid)
+			} else {
+				this.cangid = uni.getStorageSync("cangid")
+			}
+			this.gridList = []
+			this.$api.doRequest('get', '/warehouseBaseInfo/selectWarehouseSelf', {
+				compId: '',
+				personCharge: this.userInfo.phone
+			}).then(res => {
+				if (res.data.data) {
+					let list = res.data.data
+					for (var i = 0; i < list.length; i++) {
+						if (that.cangid && that.cangid == list[i].id) {
+							that.warehouse = list[i]
+							that.warehouseName = list[i].warehouseName
+							that.warehouseCount = list[i].count
+							that.warehouseTradeCount = list[i].tradeCount
+							that.commonWarehouseNo = list[i].commonWarehouseNo
+							// uni.setStorageSync('purchasePriceList',list[i].purchasePriceList)
+							break
+						}
+					}
+					that.selector = res.data.data
+					if (that.selector.length > 0 && !that.cangid) {
+						that.warehouse = that.selector[0]
+						that.warehouseName = that.selector[0].warehouseName
+						that.warehouseCount = that.selector[0].count
+						that.warehouseTradeCount = that.selector[0].tradeCount
+						that.commonWarehouseNo = that.selector[0].commonWarehouseNo
+						that.cangid = that.selector[0].id
+						// uni.setStorageSync('purchasePriceList',that.selector[0].purchasePriceList)
+					}
+					this.getList(true)
+				}
+			})
+		},
+		methods: {
+			clickstatus(status){
+				this.statusType=status
+				this.getList(true)
+			},
+			//获取当前按钮权限
+			getRoles: function(role) {
+				let _roles = uni.getStorageSync('rolesList')
+				for (let i = 0; i < _roles.length; i++) {
+					if (_roles[i] == role) {
+						return true
+					}
+				}
+				return false
+			},
+			quality_testing(item) {
+				uni.navigateTo({
+					url: '/pages/erpbusiness/out_quality_testing?id=' + item.id + '&managementType=' + this
+						.managementType + '&cangid=' + this.cangid
+				})
+			},
+			examine(item) {
+				uni.navigateTo({
+					url: '/pages/erpbusiness/examine_quality_testing?id=' + item.id + '&managementType=' + this
+						.managementType + '&cangid=' + this.cangid + '&statusShow=' + item.status
+				})
+			},
+			emptysearch() {
+				this.searchKeyWord = ''
+				this.gridList = []
+				this.currentPage = 1
+				this.getList(true)
+			},
+			doSearch() {
+				this.gridList = []
+				this.currentPage = 1
+				this.getList(true)
+			},
+			warehousechange(e) {
+				this.warehouse = this.selector[0]
+				this.warehouseName = this.selector[e[0]].warehouseName
+				this.cangid = this.selector[e[0]].id
+				uni.setStorageSync("cangid", this.cangid)
+				this.warehouseCount = this.selector[e[0]].count
+				this.warehouseTradeCount = this.selector[e[0]].tradeCount
+				this.commonWarehouseNo = this.selector[e[0]].commonWarehouseNo
+				// uni.setStorageSync('purchasePriceList',this.selector[e[0]].purchasePriceList)
+				this.getList(true)
+				console.log(e)
+			},
+			getList(flag) {
+				var that = this
+				this.$api.doRequest('get', 'qualityInspectionManagement/selectQualityInspection', {
+						pageSize: this.pageSize,
+						currentPage: this.currentPage,
+						searchKeyWord: this.searchKeyWord,
+						searchType: this.searchType,
+						statusType:this.statusType,
+						managementType: this.managementType,
+						warehouseName: this.warehouseName,
+						compId: '',
+						// pcFlag:1
+					}).then(res => {
+						uni.hideLoading()
+						if (res.data.data) {
+							let data = res.data.data.records
+							//采购信息
+							if (data.length > 0) {
+								if (flag) {
+									that.gridList = data
+								} else {
+									that.gridList = that.gridList.concat(data)
+								}
+							} else {
+								if (this.currentPage == 1) {
+									that.gridList = []
+								}
+								this.isContent = true
+							}
+						}
+						// console.log(that.gridList)
+					})
+					.catch(res => {
+						uni.showToast({
+							title: '系统异常,请联系管理员',
+							icon: 'none',
+							duration: 2000
+						})
+						uni.hideLoading()
+					})
+			},
+			edit(item, status) {
+				uni.navigateTo({
+					url: '/pages/erpbusiness/edit_quality_testing?id=' + item.id + '&managementType=' + this
+						.managementType + '&cangid=' + this.cangid + '&flag=' + status+'&warehouseName='+this.warehouseName
+				})
+			},
+			add() {
+				uni.navigateTo({
+					url: '/pages/erpbusiness/add_quality_testing?managementType=' + this.managementType +
+						'&cangid=' + this.cangid + '&warehouseCount=' + this.warehouseCount +
+						'&commonWarehouseNo=' + this.commonWarehouseNo + '&warehouseName=' + this.warehouseName +
+						'&personCharge=' + this.warehouse.personCharge + '&personPhone=' + this.warehouse
+						.personPhone+'&warehouseTradeCount=' + this.warehouseTradeCount
+				})
+			},
+			del(item) {
+				var that = this
+				uni.showModal({
+					content: "是否删除该质检信息?",
+					showCancel: true,
+					confirmText: '删除',
+					success: function(res) {
+						if (res.confirm) {
+							that.$api.doRequest('post',
+								'/qualityInspectionManagement/api/deleteQualityInspection', {
+									id: item.id
+								}).then(res => {
+								if (res.data.code == 200) {
+									that.$api.msg('删除成功')
+									that.gridList = []
+									that.getList()
+								} else {
+									that.$api.msg('系统异常,请联系管理员')
+								}
+							})
+						}
+					}
+				})
+			},
+			fankui() {
+				uni.navigateTo({
+					url: `/pages/user/fankui`
+				})
+			},
+			zhibo() {
+				uni.navigateTo({
+					url: `/pageB/video/broadcast`
+				})
+			},
+			look() {
+				uni.navigateTo({
+					url: `/pageB/video/look`
+				})
+			},
+			contactUs() {
+				const that = this
+				uni.makePhoneCall({
+					// 手机号
+					phoneNumber: '18241771147',
+					// 成功回调
+					success: (res) => {},
+					// 失败回调
+					fail: (res) => {}
+				});
+			},
+			loadData() {
+				// const that = this
+				// if(uni.getStorageSync("PageCur")){
+				// 	that.PageCur = uni.getStorageSync("PageCur");
+				// }
+				// that.userInfoTmp = uni.getStorageSync("userInfo")
+				// uni.showLoading({
+				// 	title: '正在加载',
+				// 	mask:true
+				// })
+				// that.$api.request('integral', 'getIndexData', failres => {
+				// 	that.$api.msg(failres.errmsg)
+				// 	uni.hideLoading()
+				// }).then(res => {
+				// 	let data = res.data
+				// 	uni.setStorageSync("message", data.message);
+				// 	uni.setStorageSync("task", data.task);
+				// 	uni.setStorageSync("contract", data.contract);
+				// 	uni.setStorageSync('showTran', data.showTran);
+				// 	that.showTran = data.showTran
+				// 	that.gridList[4].tips = data.task
+				// 	that.gridList[2].tips = data.contract
+				// 	that.companyId = data.companyId
+				// 	uni.hideLoading()
+				// })
+			},
+
+			confirm() {
+				const that = this
+				if (!that.inputContent) {
+					that.$api.msg('输入不能为空')
+					return
+				}
+				let obj = {}
+				obj[that.feild] = that.inputContent
+				that.$api.request('user', 'syncUserInfo', obj).then(res => {
+					that.userInfo.nickname = that.inputContent
+					that.inputContent = ''
+					that.$store.commit('login', that.userInfo)
+				})
+			},
+			cancel() {
+				this.inputShow = false
+				this.inputStatus = 'none'
+				this.genderShow = false
+			},
+			navBack() {
+				uni.navigateBack();
+			},
+			/**
+			 * 统一跳转接口,拦截未登录路由
+			 * navigator标签现在默认没有转场动画,所以用view
+			 */
+			navTo(url) {
+				if (!this.hasLogin) {
+					url = '/pages/public/login';
+				}
+				uni.navigateTo({
+					url
+				})
+			},
+			scanCode() {
+				uni.scanCode({
+					success: function(res) {
+						uni.navigateTo({
+							url: res.result
+						})
+					}
+				})
+			},
+			hideModal(e) {
+				this.modalName = null
+			},
+		}
+	}
+</script>
+<style scoped lang='scss'>
+	page {
+		background: #F5F6FA;
+		margin-bottom: 160rpx;
+	}
+
+	.container {
+		padding-top: 85px;
+		padding-top: 35px;
+		background-color: #F5F6FA;
+		position: relative;
+		width: 100vw;
+		height: 100vh;
+		overflow: hidden;
+		background: url('~@/static/img/login/bg_slices/bg@3x.png');
+		background-size: 100% 100%;
+		margin: 0 auto;
+	}
+
+	.item-style {
+		background: white;
+		margin: 20rpx;
+		padding: 20rpx;
+
+		.row1 {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+
+			.row1-left {
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
+
+				.left {
+					margin-right: 20rpx;
+				}
+
+				.top-title {
+					font-size: 32rpx;
+					font-weight: 600;
+					color: #333333;
+				}
+
+				.bottom {
+					color: #878C9C;
+				}
+
+				.right {
+					font-size: 28rpx;
+					font-weight: 600;
+					color: #333333;
+				}
+
+			}
+		}
+
+		.row2 {
+			display: flex;
+			background: #F9F9FA;
+			border-radius: 10rpx;
+			padding: 10rpx 0;
+			justify-content: space-around;
+			margin: 20rpx;
+			color: #878C9C;
+			align-items: center;
+		}
+
+		.row3 {
+			display: flex;
+			margin-top: 30rpx;
+
+			.row3-item {
+				display: flex;
+				margin-right: 40rpx;
+
+				.left {
+					background: #22C572;
+					border-radius: 10rpx;
+					padding: 2rpx 10rpx;
+					box-sizing: border-box;
+					color: white;
+					font-size: 12px;
+					margin-right: 15rpx;
+				}
+			}
+		}
+
+		.row4 {
+			display: flex;
+			justify-content: flex-end;
+			margin-top: 10px;
+
+			.right {
+				border: 1px solid #CDCDCD;
+				border-radius: 45rpx;
+				padding: 10rpx 30rpx;
+				margin-left: 20rpx;
+			}
+		}
+
+	}
+
+	.cu-tag.badge {
+		right: 26rpx;
+	}
+
+	.path {
+		color: #007aff;
+		display: inline-block;
+		text-align: center;
+	}
+
+	.icon {
+		margin-right: 10rpx;
+	}
+
+	.portrait-box {
+		margin-top: 20rpx;
+	}
+
+	.qr-wrap {
+		margin-top: 20upx;
+		color: #fff;
+		font-size: 32rpx;
+	}
+
+	@keyframes move_wave {
+		0% {
+			transform: translateX(0) translateZ(0) scaleY(1)
+		}
+
+		50% {
+			transform: translateX(-25%) translateZ(0) scaleY(0.55)
+		}
+
+		100% {
+			transform: translateX(-50%) translateZ(0) scaleY(1)
+		}
+	}
+
+	.bg {
+		position: relative;
+		height: 300rpx;
+		/* background: linear-gradient(to bottom, #56ccf2, #2f80ed); */
+		/*background: linear-gradient(to bottom, #0be9fe, #4bb0fe); */
+		background: linear-gradient(to bottom, #d5f8ff, #56ccf2);
+
+	}
+
+	.bg_ware {
+		position: absolute;
+		left: 0;
+		bottom: -2rpx;
+		width: 100%;
+		mix-blend-mode: screen;
+		height: 224rpx;
+	}
+
+	%flex-center {
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+	}
+
+	%section {
+		display: flex;
+		justify-content: space-around;
+		align-content: center;
+		background: #fff;
+		border-radius: 10upx;
+	}
+
+	.cuIcon {
+		position: absolute;
+		right: 80px;
+	}
+
+	.grid-item-box {
+		flex: 1;
+		/* position: relative;
+ */
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		padding: 15px 0;
+	}
+
+	.image {
+		width: 80rpx;
+		height: 80rpx;
+	}
+
+	.text {
+		font-size: 26rpx;
+		margin-top: 10rpx;
+	}
+
+	.user-section {
+		height: 520upx;
+		padding: 100upx 30upx 0;
+		position: relative;
+
+		.bg {
+			position: absolute;
+			left: 0;
+			top: 0;
+			width: 100%;
+			height: 100%;
+			filter: blur(1px);
+			box-shadow: 0px 1px 8px #ccc;
+			/* background:linear-gradient(#0eb0c9,#126bae); */
+			/* opacity: .7; */
+		}
+	}
+
+	.cover-container {
+		padding: 1px 10px;
+		padding-bottom: 200upx;
+
+		/* background-color: #F5F6FA; */
+		/* 	border-radius: 20px; */
+		margin-top: 60upx;
+
+		.arc {
+			position: absolute;
+			left: 0;
+			top: -34upx;
+			width: 100%;
+			height: 36upx;
+		}
+	}
+	.status{
+		padding:3px 6px;
+	}
+	.tj-sction {
+		@extend %section;
+
+		.tj-item {
+			@extend %flex-center;
+			flex-direction: column;
+			height: 140upx;
+			font-size: $font-sm;
+			color: #75787d;
+		}
+
+		.num {
+			font-size: $font-lg;
+			color: $font-color-dark;
+			margin-bottom: 8upx;
+		}
+	}
+
+	.order-section {
+		@extend %section;
+		padding: 28upx 0;
+		margin-top: 20upx;
+
+		.order-item {
+			@extend %flex-center;
+			width: 120upx;
+			height: 120upx;
+			border-radius: 10upx;
+			font-size: $font-sm;
+			color: $font-color-dark;
+		}
+
+		.yticon {
+			font-size: 48upx;
+			margin-bottom: 18upx;
+			color: #fa436a;
+		}
+
+		.icon-shouhoutuikuan {
+			font-size: 44upx;
+		}
+	}
+
+	.history-section {
+		padding: 30upx 0 0;
+		margin-top: 20upx;
+		background: #fff;
+		border-radius: 10upx;
+
+		.sec-header {
+			display: flex;
+			align-items: center;
+			font-size: $font-base;
+			color: $font-color-dark;
+			line-height: 40upx;
+			margin-left: 30upx;
+
+			.yticon {
+				font-size: 44upx;
+				color: #5eba8f;
+				margin-right: 16upx;
+				line-height: 40upx;
+			}
+		}
+
+		.h-list {
+			white-space: nowrap;
+			padding: 30upx 30upx 0;
+
+			image {
+				display: inline-block;
+				width: 160upx;
+				height: 160upx;
+				margin-right: 20upx;
+				border-radius: 10upx;
+			}
+		}
+	}
+
+	.search-form {
+		background: #F5F6F9;
+	}
+.line {
+		display: inline-block;
+		padding: 5px;
+		position: relative;
+		font-size: 17px;
+		margin-right: 10rpx;
+	}
+
+	.line.active {
+		font-size: 38rpx;
+		font-weight: 900;
+	}
+
+	.line.active:after {
+		content: '';
+		display: block;
+		position: absolute;
+		width: 36rpx;
+		height: 6rpx;
+		left: 50%;
+		transform: translateX(-50%);
+		bottom: 0;
+		background: #22C572;
+		/* border-bottom: 1px solid #22C572; */
+	}
+	.search-box {
+		width: 100%;
+		background-color: rgb(242, 242, 242);
+		padding: 15upx 2.5%;
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.search-box .mSearch-input-box {
+		width: 100%;
+	}
+
+	.search-box .input-box {
+		width: 85%;
+		flex-shrink: 1;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.search-box .search-btn {
+		width: 15%;
+		margin: 0 0 0 2%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		flex-shrink: 0;
+		font-size: 28upx;
+		color: #fff;
+		background: linear-gradient(to right, #ff9801, #ff570a);
+		border-radius: 60upx;
+	}
+
+	.search-box .input-box>input {
+		width: 100%;
+		height: 60upx;
+		font-size: 32upx;
+		border: 0;
+		border-radius: 60upx;
+		-webkit-appearance: none;
+		-moz-appearance: none;
+		appearance: none;
+		padding: 0 3%;
+		margin: 0;
+		background-color: #ffffff;
+	}
+
+	.placeholder-class {
+		color: #9e9e9e;
+	}
+
+	.search-keyword {
+		width: 100%;
+		background-color: rgb(242, 242, 242);
+	}
+
+	.grid {
+		display: flex;
+		align-items: center;
+		flex-wrap: wrap;
+
+		/* border-top: 2upx solid rgba(172,172,172,.2); */
+		.grid-item-3 {
+			box-sizing: border-box;
+			width: calc(100% / 3);
+			border-bottom: 2upx solid rgba(172, 172, 172, .2);
+			border-right: 2upx solid rgba(172, 172, 172, .2);
+			text-align: center;
+			padding: 40upx 0;
+			position: relative;
+
+			/* view{
+				font-size: $font-sm;
+				margin-top: 16upx;
+				color: $font-color-dark;
+			} */
+			.grid_icon {
+				font-size: 48upx;
+				margin-bottom: 18upx;
+				color: #fa436a;
+			}
+
+			.tip_text {
+				display: block;
+				padding: 4upx 8upx;
+				text-align: center;
+				border-radius: 36upx;
+				font-size: 24upx;
+				background-color: #fa436a;
+				color: rgba(255, 255, 255, 1);
+				position: absolute;
+				right: 6upx;
+				top: 6upx;
+			}
+		}
+
+		.grid-item-3:nth-child(3n + 3),
+		.grid-item-4:nth-child(4n + 4) {
+			border-right: none;
+		}
+	}
+
+	.headPortrait {
+		width: 75px;
+		height: 75px;
+		border-radius: 40px;
+		border: 2px solid #ffffff;
+	}
+
+	.information {
+		font-size: 15px;
+		font-weight: 600;
+		height: 36px;
+	}
+
+	.cu-list>.cu-item:after {
+		border: none;
+	}
+
+	.back-btn {
+		position: fixed;
+		left: 40upx;
+		z-index: 9999;
+		padding-top: var(--status-bar-height);
+		top: 30upx;
+		font-size: 36upx;
+		color: $font-color-dark;
+	}
+
+	.navbar {
+		height: 50px;
+	}
+
+	.header-content {
+		position: fixed;
+		left: 50%;
+		transform: translateX(-50%);
+		z-index: 9999;
+		padding-top: var(--status-bar-height);
+		top: 30upx;
+		font-size: 36upx;
+		color: $font-color-dark;
+	}
+
+	.sign {
+		width: 40px;
+		height: 40px;
+		top: 4px;
+		margin-right: 6px;
+	}
+
+	.indexUp {
+		padding: 0 20px;
+		align-items: center;
+	}
+
+	.wrap {
+		background: #fff;
+		margin: 10px;
+		border-radius: 10px;
+		padding: 10px;
+
+	}
+
+	.qualityNo {
+		font-size: 16px;
+	}
+
+	.type {
+		font-size: 12px;
+		color: #fff;
+		padding: 3px 5px;
+		border-radius: 50%;
+		line-height: 16px;
+	}
+
+	.type-zhi {
+		background: #22C572;
+	}
+
+	.type-mao {
+		background: #3296FA;
+	}
+
+	.type-pi {
+		background: #FD714F;
+	}
+
+	.time {
+		font-size: 12px;
+		color: #878C9C;
+	}
+
+	.qualityInspector {
+		font-size: 14px;
+	}
+
+	.customerinformation {
+		background: #F9F9FA;
+		padding: 7px;
+		margin: 20px 0;
+		border-radius: 10px;
+		color: #9698A2;
+	}
+
+	.buttons {
+		flex-direction: row-reverse;
+	}
+
+	.button {
+		padding: 13rpx 30rpx;
+		border: 1px solid #CDCDCD;
+		border-radius: 15px;
+		margin: 0 10px;
+	}
+
+	.changewarehouse {
+		padding: 10px 20px;
+	}
+
+	.header {
+		background: #fff;
+		margin-top: 60px;
+		border-radius: 0px 0px 16px 16px;
+	}
+
+	.footer {
+		background: #fff;
+		position: fixed;
+		bottom: 0;
+		width: 100%;
+		padding: 20px 10px;
+		z-index: 10;
+
+		.button {
+			background: #22C572;
+			width: 90%;
+			margin: 0 auto;
+			padding: 10px;
+			color: #fff;
+			text-align: center;
+			border-radius: 30px;
+		}
+	}
+
+	.status1,
+	.status2,
+	.status3 {
+		padding: 8rpx 12rpx;
+		border-radius: 50%;
+		color: white;
+	}
+
+	.status1 {
+		background: #FD714F;
+	}
+
+	.status2 {
+		background: #22C572;
+	}
+
+	.status3 {
+		background: #3296FA;
+	}
+
+	.center {
+		padding-bottom: 150rpx;
+	}
+</style>