gjy 3 роки тому
батько
коміт
8fa730e7d6

+ 24 - 0
pages.json

@@ -356,6 +356,30 @@
 				"navigationBarTitleText": "编辑质检信息"
 			}
 		},
+		{
+			"path": "pages/erpbusiness/out_quality_testing",
+			"style": {
+				"navigationBarTitleText": "质检信息"
+			}
+		},
+		{
+			"path": "pages/erpbusiness/add_quality_testing",
+			"style": {
+				"navigationBarTitleText": "质检信息"
+			}
+		},
+		{
+			"path": "pages/erpbusiness/examine_quality_testing",
+			"style": {
+				"navigationBarTitleText": "质检详情"
+			}
+		},
+		{
+			"path": "pages/erpbusiness/customer",
+			"style": {
+				"navigationBarTitleText": "选择客户"
+			}
+		},
 		{
 			"path": "pages/attestation/indexTwo",
 			"style": {

+ 564 - 0
pages/erpbusiness/add_quality_testing.vue

@@ -0,0 +1,564 @@
+<template>
+	<view>
+		<view class='wrap'>
+			<view class='title'>基本信息</view>
+			<view class="c-row b-b">
+				<view class="title">仓库</view>
+				<view class="con-list">
+					{{gridList.warehouseName}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">编号</view>
+				<view class="con-list">
+					{{gridList.qualityNo}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">客户</view>
+				<view class="con-list">
+					<view @click='gocustomer' v-if='gridList.customerName'>
+						{{gridList.customerName}}({{gridList.customerPhone}})
+					</view>
+					<view @click='gocustomer' v-else>
+						选择客户
+					</view>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">车牌号</view>
+				<view class="con-list">
+					<input v-model='gridList.carNumber' placeholder="请输入车牌号"
+						 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">扣重比</view>
+				<view class="con-list">
+					<input v-model='gridList.buckleWeightRatio' placeholder="请输入扣重比"
+						 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">购粮性质</view>
+				<view class="con-list">
+					<input v-model='gridList.natureOfGrainPurchase' placeholder="请输入购粮性质"
+						 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">仓位号</view>
+				<view class="con-list">
+					<view @click='show=true'>{{gridList.binNumber}}</view>
+					<u-picker :range="warehouseList" range-key="binNumber" @confirm='binNumberpicker($event)' v-model="show" mode="selector" >
+					</u-picker>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">囤位号</view>
+				<view class="con-list">
+					<input v-model='gridList.storageTagNo' placeholder="请输入囤位号"
+						 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">货名</view>
+				<view class="con-list">
+					{{gridList.goodsName}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">类型</view>
+				<view class="con-list">
+					{{gridList.type}}
+				</view>
+			</view>
+			<view class="c-row">
+				<view class="title">净重单价(元/公斤)</view>
+				<view class="con-list">
+					{{gridList.tidalGrainPrice}}
+				</view>
+			</view>
+		</view>
+		<view style='margin-bottom:100px;' class='wrap'>
+			<view class='title'>化验信息</view>
+
+			<view class="c-row b-b">
+				<view class="title">等级</view>
+				<view class="con-list">
+					<view @click='show1=true'>{{gridList.grade?gridList.grade:'请选择等级'}}</view>
+					<u-picker :range="gradeList" range-key="value" @confirm='gradepicker($event)' v-model="show1" mode="selector" >
+					</u-picker>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">水分(%)</view>
+				<view class="con-list">
+					<input v-model='gridList.waterContent' placeholder="请输入水分占比"
+					 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">容重(克/升)</view>
+				<view class="con-list">
+					<input v-model='gridList.bulkDensity' placeholder="请输入容重"
+					 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">不完善粒(%)</view>
+				<view class="con-list">
+					<input v-model='gridList.imperfectGrain' placeholder="请输入不完整粒占比"
+						 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">杂质(%)</view>
+				<view class="con-list">
+					<input v-model='gridList.impurity' placeholder="请输入杂质占比"
+					 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">霉变粒(%)</view>
+				<view class="con-list">
+					<input v-model='gridList.mildewGrain' placeholder="请输入霉变粒占比"
+					 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">热损伤(%)</view>
+				<view class="con-list">
+					<input v-model='gridList.jiaorenli' placeholder="请输入热损伤占比"
+					 name="input"></input>
+				</view>
+			</view>
+		</view>
+		<view class="footer">
+			<view @click='submit' 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,
+				id:0,
+				show:false,
+				selector:[],
+				show1:false,
+				inputContent: '',
+				coverTransform: 'translateY(0px)',
+				coverTransition: '0s',
+				moving: false,
+				footprintList: [],
+				searchKeyWord:'',
+				isVip: false,
+				userInfoTmp: [],
+				inputStatus: 'none',
+				carInfo: [],
+				gridCol: 4,
+				pageSize:10,
+				currentPage:1,
+				gridBorder: false,
+				headUrl:"../../static/img/myimg/YongHu@3x.png",
+				userphone:"",
+				username:"请更改昵称",
+				gridList: {},
+				managementType:'',
+				warehouseName: '',
+				warehouseList:[],
+				warehouseCount:'',
+				commonWarehouseNo:'',
+				showTran: true,
+				companyId: 1,
+				current: 4,
+				gradeList:[
+					{key:1,value:'一等品'},
+					{key:2,value:'二等品'},
+					{key:3,value:'三等品'},
+					{key:4,value:'等外'},
+				],
+				cangid:''
+			}
+		},
+		// #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'
+				})
+			}
+		},
+		// #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");
+				}
+			}
+		},
+		onLoad(options){
+			console.log(options)
+			this.commonWarehouseNo=options.commonWarehouseNo
+			this.warehouseCount=options.warehouseCount
+			 let number = '000' + this.warehouseCount
+			 number = number.substring(number.length - 4, number.length)
+			this.gridList.warehouseName=options.warehouseName
+			this.gridList.qualityNo='SGRK' + this.getdate() + this.commonWarehouseNo + number
+			this.purchasePriceList=uni.getStorageSync('purchasePriceList')
+			this.cangid=options.cangid
+			this.managementType=options.managementType
+		},
+		onShow() {
+			var that = this
+				this.$api.doRequest('get', '/identityAuthenticationInfo/identityAuthenticationInfoCustomer',{
+					compId:'',
+					authenticationStatusKey:7
+				}).then(res => {
+					if(res.data.data){
+						// let data = res.data.data
+						// that.gridList =data
+						that.$api.doRequest('get', '/warehouseBaseInfo/getWarehouse',{
+							id:this.cangid
+						}).then(res => {
+							that.warehouseList=res.data.data.warehousePositionInfoList
+						})
+					}
+				})
+		},
+		methods: {
+			gocustomer(){
+				uni.navigateTo({
+					url:'/pages/erpbusiness/customer'
+				})
+			},
+			getdate() {
+			        var date = new Date()
+			        var year = date.getFullYear() //获取完整的年份(4位)
+			        var mouth = date.getMonth() + 1 //获取当前月份(0-11,0代表1月)
+			        var datetime = date.getDate() //获取当前日(1-31)
+			        if (mouth < 10) {
+			          mouth = '0' + mouth
+			        }
+			        if (datetime < 10) {
+			          datetime = '0' + datetime
+			        }
+			        return year + mouth + datetime
+			      },
+			submit(){
+				var that = this
+				if (!this.gridList.qualityNo) {
+					this.$api.msg('编号不能为空')
+					return
+				}
+				if (!this.gridList.binNumber) {
+					this.$api.msg('仓位不能为空')
+					return
+				}
+				if (!this.gridList.customerName) {
+					this.$api.msg('客户不能为空')
+					return
+				}
+				if (!this.gridList.storageTagNo) {
+					this.$api.msg('囤位号不能为空')
+					return
+				}
+				if (this.gridList.storageTagNo.length > 10) {
+					this.$api.msg('囤位号不能为空')
+					return
+				}
+				if (!this.gridList.carNumber) {
+					this.$api.msg('车牌号不能为空')
+					return
+				}
+				if (this.gridList.carNumber.length > 7) {
+					this.$api.msg('车牌号输入错误')
+					return
+				}
+				if (!this.gridList.goodsName) {
+					this.$api.msg('货名不能为空')
+					return
+				}
+				if (this.gridList.buckleWeightRatio < 0 ||this.gridList.buckleWeightRatio > 2) {
+					this.$api.msg('扣重比输入错误')
+					return
+				}
+				if (
+					String(this.gridList.buckleWeightRatio).indexOf('.') != -1 &&
+					String(this.gridList.buckleWeightRatio).length -
+					(String(this.gridList.buckleWeightRatio).indexOf('.') + 1) > 2) 
+					{
+						this.$api.msg('扣重比输入错误')
+						return
+				}
+				if (!this.gridList.type) {
+					this.$api.msg('类型不能为空')
+					return
+				}
+				if (!this.gridList.natureOfGrainPurchase) {
+					this.$api.msg('购粮性质不能为空')
+					return
+				}
+				if (!this.gridList.grade) {
+					this.$api.msg('等级不能为空')
+					return
+				}
+				if (!this.gridList.impurity) {
+					this.$api.msg('杂质不能为空')
+					return
+				}
+				if (!this.gridList.waterContent) {
+					this.$api.msg('水分不能为空')
+					return
+				}
+				if (!this.gridList.mildewGrain) {
+					this.$api.msg('霉变粒不能为空')
+					return
+				}
+				if (!this.gridList.bulkDensity) {
+					this.$api.msg('容重不能为空')
+					return
+				}
+				if (!this.gridList.jiaorenli) {
+					this.$api.msg('热损伤不能为空')
+					return
+				}
+				if (!this.gridList.imperfectGrain) {
+					this.$api.msg('不完整粒不能为空')
+					return
+				}
+				uni.showModal({
+					content: "确定提交质检信息?",
+					showCancel: true,
+					confirmText: '提交',
+					success: function(res) {
+						if (res.confirm) {
+							that.$api.doRequest('post', '/qualityInspectionManagement/api/editQualityInspection',that.gridList).then(res => {
+								if(res.data.code==200){
+									that.$api.msg('编辑质检成功')
+									uni.navigateBack({
+									})
+								}
+							})
+						}
+					}
+				})
+			},
+			gradepicker(e){
+				console.log(e)
+				// this.$set(this.gradeList,'grade',this.gradeList[e[0]].value)
+				this.gridList.grade=this.gradeList[e[0]].value
+				this.gridList.gradeKey=this.gradeList[e[0]].key
+			},
+			binNumberpicker(e){
+				this.gridList.binNumber=this.warehouseList[e[0]].binNumber
+			},
+			del(item){
+				this.$api.doRequest('get', '/qualityInspectionManagement/api/deleteQualityInspection',{
+					id:item.id
+				}).then(res => {
+					if(res.data.code==200){
+						this.$api.msg('删除成功')
+					}else{
+						this.$api.msg('系统异常,请联系管理员')
+					}
+				})
+			},
+			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
+			},
+			myAccount() {
+				uni.navigateTo({
+					url: `/pageA/pages/contract`
+				})
+			},
+			/**
+			 * 统一跳转接口,拦截未登录路由
+			 * navigator标签现在默认没有转场动画,所以用view
+			 */
+			navTo(url) {
+				if (!this.hasLogin) {
+					url = '/pages/public/login';
+				}
+				uni.navigateTo({
+					url
+				})
+			},
+			mycarClick(carNo) {
+				this.modalName = null
+				uni.navigateTo({
+					url: `/pageB/car/mycar_detail?carNo=${carNo}`
+				})
+			},
+			scanCode() {
+				uni.scanCode({
+					success: function(res) {
+						uni.navigateTo({
+							url: res.result
+						})
+					}
+				})
+			},
+			hideModal(e) {
+				this.modalName = null
+			},
+		}
+	}
+</script>
+<style lang='scss' scoped>
+	page{
+		background:#F5F6FA;
+	}
+	.c-row {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-align: center;
+		-webkit-align-items: center;
+		align-items: center;
+		padding: 10rpx 30rpx;
+		position: relative;
+	
+		.title {
+			/* color: #9698A2; */
+		}
+	
+		.title-black {
+			color: #333;
+		}
+	}
+	
+	.con-list {
+		-webkit-box-flex: 1;
+		-webkit-flex: 1;
+		flex: 1;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: vertical;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: column;
+		flex-direction: column;
+		color: #303133;
+		line-height: 40rpx;
+		text-align: right;
+		padding-right: 20rpx;
+	}
+	.wrap{
+		padding-bottom:10px;
+		font-size:14px;
+		background:#fff;margin:10px;border-radius:10px;
+		input{
+			font-size:14px;
+		}
+		>.title{
+			padding:10px 16px;
+		}
+		.b-b:after{
+			border-bottom:1px solid #eee;
+		}
+	}
+	.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;
+		}
+	}
+</style>
+
+

+ 751 - 0
pages/erpbusiness/customer.vue

@@ -0,0 +1,751 @@
+<template>
+	<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 type="text" maxlength="20" :focus="true" 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>
+		<view class="content">
+			<view v-if='searchKeyWord.length==0'>近期客户</view>
+			<view v-if='searchKeyWord.length>0' class='searchwrap' v-for='item in gridList' @click='checkcustomer(item)'>
+			{{item.customerName}}({{item.customerPhone}})
+			</view>
+			<view class='wrap' v-else>{{item.customerName}}({{item.customerPhone}})</view>
+		</view>
+		
+		<view v-show="isContent">
+			<uni-load-more :status="loadStatus"></uni-load-more>
+		</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:'',
+				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:'',
+				warehouseName: '',
+				showTran: true,
+				companyId: 1,
+				current: 4,
+				warehouseCount:'',
+				commonWarehouseNo:'',
+				cangid:''
+				
+			}
+		},
+		onLoad() {
+			
+		},
+		// #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'
+				})
+			}
+		},
+		// #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");
+				}
+			}
+		},
+		onLoad(options){
+			this.managementType=options.managementType
+		},
+		onShow() {
+			this.gridList=[]
+			this.$api.doRequest('get', '/searchRecordsInfo/selectSearchRecordsInfo',{
+				compId:'',
+				authenticationStatusKey:7,
+			}).then(res => {
+				if(res.data.data){
+					this.gridList=res.data.data.records
+				}
+			})
+		},
+		methods: {
+			checkcustomer(item){
+				this.$api.doRequest('post', '/searchRecordsInfo/api/addInfo',{
+					commonId:this.userInfo.id,
+					searchContent:item.customerName,
+					functionType:3
+				}).then(res => {
+				})
+			},
+			emptysearch(){
+				this.searchKeyWord=''
+				this.gridList=[]
+				this.currentPage=1
+				this.getList()
+			},
+			doSearch(){
+				this.gridList=[]
+				this.currentPage=1
+				this.getList()
+			},
+			warehousechange(e){
+				this.warehouseName=this.selector[e[0]].warehouseName
+				this.cangid=this.selector[e[0]].id
+				this.warehouseCount = this.selector[e[0]].count
+				this.commonWarehouseNo=this.selector[e[0]].commonWarehouseNo
+				uni.setStorageSync('purchasePriceList',this.selector[e[0]].purchasePriceList)
+				this.getList()
+				console.log(e)
+			},
+			getList(){
+				var that = this
+				this.$api.doRequest('get', '/identityAuthenticationInfo/identityAuthenticationInfoCustomer',{
+					compId:'',
+					authenticationStatusKey:7,
+					searchKeyWord:this.searchKeyWord
+				}).then(res => {
+					if(res.data.data){
+						let data = res.data.data
+						//采购信息
+						if (data.length > 0) {
+								that.gridList = that.gridList.concat(data)
+						}else{
+							if(this.currentPage==1){
+								that.gridList=[]
+							}
+							this.isContent=true
+						}
+					}
+					// console.log(that.gridList)
+				})
+			},
+			edit(item){
+				uni.navigateTo({
+					url:'/pages/erpbusiness/edit_quality_testing?id='+item.id+'&managementType='+this.managementType+'&cangid='+this.cangid
+				})
+			},
+			add(){
+				uni.navigateTo({
+					url:'/pages/erpbusiness/add_quality_testing?managementType='+this.managementType+'&cangid='+this.cangid+'&warehouseCount='+this.warehouseCount+'&commonWarehouseNo='+this.commonWarehouseNo+'&warehouseName='+this.warehouseName
+				})
+			},
+			del(item){
+				this.$api.doRequest('post', '/qualityInspectionManagement/api/deleteQualityInspection',{
+					id:item.id
+				}).then(res => {
+					if(res.data.code==200){
+						this.$api.msg('删除成功')
+						this.gridList=[]
+						this.getList()
+					}else{
+						this.$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
+			},
+			myAccount() {
+				uni.navigateTo({
+					url: `/pageA/pages/contract`
+				})
+			},
+			/**
+			 * 统一跳转接口,拦截未登录路由
+			 * navigator标签现在默认没有转场动画,所以用view
+			 */
+			navTo(url) {
+				if (!this.hasLogin) {
+					url = '/pages/public/login';
+				}
+				uni.navigateTo({
+					url
+				})
+			},
+			mycarClick(carNo) {
+				this.modalName = null
+				uni.navigateTo({
+					url: `/pageB/car/mycar_detail?carNo=${carNo}`
+				})
+			},
+			scanCode() {
+				uni.scanCode({
+					success: function(res) {
+						uni.navigateTo({
+							url: res.result
+						})
+					}
+				})
+			},
+			hideModal(e) {
+				this.modalName = null
+			},
+		}
+	}
+</script>
+<style lang='scss' scoped>
+	page{
+		background:#F5F6FA;
+	}
+	.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;
+	}
+
+	.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;
+		}
+	}
+
+	.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;
+	}
+
+	.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;
+	}
+	.sign{
+		width: 40px;
+		height: 40px;
+		top: 4px;
+		margin-right: 6px;
+	}
+	.indexUp{
+		padding:0 20px;
+		align-items: center;
+	}
+	.wrap{
+		    background: #F5F6F9;
+		    margin: 5px 10px;
+		    border-radius: 20px;
+		    width: 42%;
+		    display: inline-block;
+		    padding: 10px;
+	}
+	.searchwrap{
+		border-top:1px solid #eee;padding:10px 20px;
+	}
+	.searchwrap:last-child{
+		border-bottom:1px solid #eee;
+	}
+	.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;
+		border-radius:0px 0px 16px 16px;
+	}
+	.content{
+		background:#fff;
+		height:85.5vh;
+	}
+	.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;
+		}
+	}
+</style>
+

+ 10 - 34
pages/erpbusiness/edit_quality_testing.vue

@@ -81,7 +81,7 @@
 			<view class="c-row b-b">
 				<view class="title">等级</view>
 				<view class="con-list">
-					<view @click='show1=true'>{{gridList.grade}}</view>
+					<view @click='show1=true'>{{gridList.grade?gridList.grade:'请选择等级'}}</view>
 					<u-picker :range="gradeList" range-key="value" @confirm='gradepicker($event)' v-model="show1" mode="selector" >
 					</u-picker>
 				</view>
@@ -117,7 +117,7 @@
 			<view class="c-row b-b">
 				<view class="title">霉变粒(%)</view>
 				<view class="con-list">
-					<input v-model='gridList.impurity' placeholder="请输入霉变粒占比"
+					<input v-model='gridList.mildewGrain' placeholder="请输入霉变粒占比"
 					 name="input"></input>
 				</view>
 			</view>
@@ -128,13 +128,6 @@
 					 name="input"></input>
 				</view>
 			</view>
-			<view class="c-row b-b">
-				<view class="title">不完善粒(%)<=</view>
-				<view class="con-list">
-					<input v-model='gridList.imperfectGrain' placeholder="请输入不完整粒占比"
-					 name="input"></input>
-				</view>
-			</view>
 		</view>
 		<view class="footer">
 			<view @click='submit' class="button">提交</view>
@@ -197,10 +190,6 @@
 				cangid:''
 			}
 		},
-		
-		onLoad() {
-			
-		},
 		// #ifndef MP
 		onNavigationBarButtonTap(e) {
 			const index = e.index;
@@ -232,9 +221,9 @@
 			}
 		},
 		onLoad(options){
-			console.log(options)
 			this.id=options.id
 			this.cangid=options.cangid
+			this.managementType=options.managementType
 		},
 		onShow() {
 			var that = this
@@ -336,15 +325,17 @@
 					return
 				}
 				uni.showModal({
-					content: "是否确定通过审核?",
+					content: "确定提交质检信息?",
 					showCancel: true,
 					confirmText: '提交',
 					success: function(res) {
 						if (res.confirm) {
-							that.$api.doRequest('post', '/qualityInspectionManagement/api/editQualityInspection',{
-								id:this.id
-							}).then(res => {
-								
+							that.$api.doRequest('post', '/qualityInspectionManagement/api/editQualityInspection',that.gridList).then(res => {
+								if(res.data.code==200){
+									that.$api.msg('编辑质检成功')
+									uni.navigateBack({
+									})
+								}
 							})
 						}
 					}
@@ -370,21 +361,6 @@
 					}
 				})
 			},
-			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({

+ 440 - 0
pages/erpbusiness/examine_quality_testing.vue

@@ -0,0 +1,440 @@
+<template>
+	<view>
+		<view class='wrap'>
+			<view class='title'>基本信息</view>
+			<view class="c-row b-b">
+				<view class="title">仓库</view>
+				<view class="con-list">
+					{{gridList.warehouseName}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">编号</view>
+				<view class="con-list">
+					{{gridList.qualityNo}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">客户</view>
+				<view class="con-list">
+					{{gridList.customerName}}({{gridList.customerPhone}})
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">车牌号</view>
+				<view class="con-list">
+					{{gridList.carNumber}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">扣重比</view>
+				<view class="con-list">
+					{{gridList.buckleWeightRatio}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">购粮性质</view>
+				<view class="con-list">
+					{{gridList.natureOfGrainPurchase}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">仓位号</view>
+				<view class="con-list">
+					{{gridList.binNumber}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">囤位号</view>
+				<view class="con-list">
+					{{gridList.storageTagNo}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">货名</view>
+				<view class="con-list">
+					{{gridList.goodsName}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">类型</view>
+				<view class="con-list">
+					{{gridList.type}}
+				</view>
+			</view>
+			<view class="c-row">
+				<view class="title">净重单价(元/公斤)</view>
+				<view class="con-list">
+					{{gridList.tidalGrainPrice}}
+				</view>
+			</view>
+		</view>
+		<view style='margin-bottom:100px;' class='wrap'>
+			<view class='title'>化验信息</view>
+
+			<view class="c-row b-b">
+				<view class="title">等级</view>
+				<view class="con-list">
+					{{gridList.grade}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">水分(%)</view>
+				<view class="con-list">
+					{{gridList.waterContent}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">容重(克/升)</view>
+				<view class="con-list">
+					{{gridList.bulkDensity}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">不完善粒(%)</view>
+				<view class="con-list">
+					{{gridList.imperfectGrain}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">杂质(%)</view>
+				<view class="con-list">
+					{{gridList.impurity}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">霉变粒(%)</view>
+				<view class="con-list">
+					{{gridList.impurity}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">热损伤(%)</view>
+				<view class="con-list">
+					{{gridList.jiaorenli}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">不完善粒(%)<=</view>
+				<view class="con-list">
+					{{gridList.imperfectGrain}}
+				</view>
+			</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,
+				id:0,
+				show:false,
+				selector:[],
+				show1:false,
+				inputContent: '',
+				coverTransform: 'translateY(0px)',
+				coverTransition: '0s',
+				moving: false,
+				footprintList: [],
+				searchKeyWord:'',
+				isVip: false,
+				userInfoTmp: [],
+				inputStatus: 'none',
+				carInfo: [],
+				gridCol: 4,
+				pageSize:10,
+				currentPage:1,
+				gridBorder: false,
+				headUrl:"../../static/img/myimg/YongHu@3x.png",
+				userphone:"",
+				username:"请更改昵称",
+				gridList: {},
+				managementType:'',
+				warehouseName: '',
+				warehouseList:[],
+				showTran: true,
+				companyId: 1,
+				current: 4,
+				gradeList:[
+					{key:1,value:'一等品'},
+					{key:2,value:'二等品'},
+					{key:3,value:'三等品'},
+					{key:4,value:'等外'},
+				],
+				cangid:''
+			}
+		},
+		
+		onLoad() {
+			
+		},
+		// #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'
+				})
+			}
+		},
+		// #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");
+				}
+			}
+		},
+		onLoad(options){
+			console.log(options)
+			this.id=options.id
+			this.cangid=options.cangid
+		},
+		onShow() {
+			var that = this
+				this.$api.doRequest('get', '/qualityInspectionManagement/api/getQualityInspection',{
+					id:this.id
+				}).then(res => {
+					if(res.data.data){
+						let data = res.data.data
+						that.gridList =data
+						that.$api.doRequest('get', '/warehouseBaseInfo/getWarehouse',{
+							id:this.cangid
+						}).then(res => {
+							that.warehouseList=res.data.data.warehousePositionInfoList
+						})
+					}
+				})
+		},
+		methods: {
+			gradepicker(e){
+				console.log(e)
+				// this.$set(this.gradeList,'grade',this.gradeList[e[0]].value)
+				this.gridList.grade=this.gradeList[e[0]].value
+				this.gridList.gradeKey=this.gradeList[e[0]].key
+			},
+			binNumberpicker(e){
+				this.gridList.binNumber=this.warehouseList[e[0]].binNumber
+			},
+			del(item){
+				this.$api.doRequest('get', '/qualityInspectionManagement/api/deleteQualityInspection',{
+					id:item.id
+				}).then(res => {
+					if(res.data.code==200){
+						this.$api.msg('删除成功')
+					}else{
+						this.$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
+			},
+			myAccount() {
+				uni.navigateTo({
+					url: `/pageA/pages/contract`
+				})
+			},
+			/**
+			 * 统一跳转接口,拦截未登录路由
+			 * navigator标签现在默认没有转场动画,所以用view
+			 */
+			navTo(url) {
+				if (!this.hasLogin) {
+					url = '/pages/public/login';
+				}
+				uni.navigateTo({
+					url
+				})
+			},
+			mycarClick(carNo) {
+				this.modalName = null
+				uni.navigateTo({
+					url: `/pageB/car/mycar_detail?carNo=${carNo}`
+				})
+			},
+			scanCode() {
+				uni.scanCode({
+					success: function(res) {
+						uni.navigateTo({
+							url: res.result
+						})
+					}
+				})
+			},
+			hideModal(e) {
+				this.modalName = null
+			},
+		}
+	}
+</script>
+<style lang='scss' scoped>
+	page{
+		background:#F5F6FA;
+	}
+	.c-row {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-align: center;
+		-webkit-align-items: center;
+		align-items: center;
+		padding: 10rpx 30rpx;
+		position: relative;
+	
+		.title {
+			/* color: #9698A2; */
+		}
+	
+		.title-black {
+			color: #333;
+		}
+	}
+	
+	.con-list {
+		-webkit-box-flex: 1;
+		-webkit-flex: 1;
+		flex: 1;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: vertical;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: column;
+		flex-direction: column;
+		color: #303133;
+		line-height: 40rpx;
+		text-align: right;
+		padding-right: 20rpx;
+	}
+	.wrap{
+		padding-bottom:10px;
+		font-size:14px;
+		background:#fff;margin:10px;border-radius:10px;
+		input{
+			font-size:14px;
+		}
+		>.title{
+			padding:10px 16px;
+		}
+		.b-b:after{
+			border-bottom:1px solid #eee;
+		}
+	}
+	.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;
+		}
+	}
+</style>
+
+

+ 490 - 0
pages/erpbusiness/out_quality_testing.vue

@@ -0,0 +1,490 @@
+<template>
+	<view>
+		<view class='wrap'>
+			<view class='title'>基本信息</view>
+			<view class="c-row b-b">
+				<view class="title">仓库</view>
+				<view class="con-list">
+					{{gridList.warehouseName}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">合同编号</view>
+				<view class="con-list">
+					{{gridList.contractNo}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">货名</view>
+				<view class="con-list">
+					{{gridList.goodsName}}
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">车牌号</view>
+				<view class="con-list">
+					<input v-model='gridList.carNumber' placeholder="请输入车牌号"
+						 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">仓位号</view>
+				<view class="con-list">
+					<view @click='show=true'>{{gridList.binNumber}}</view>
+					<u-picker :range="warehouseList" range-key="binNumber" @confirm='binNumberpicker($event)' v-model="show" mode="selector" >
+					</u-picker>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">囤位号</view>
+				<view class="con-list">
+					<input v-model='gridList.storageTagNo' placeholder="请输入囤位号"
+						 name="input"></input>
+				</view>
+			</view>
+		</view>
+		<view style='margin-bottom:100px;' class='wrap'>
+			<view class='title'>化验信息</view>
+
+			<view class="c-row b-b">
+				<view class="title">等级</view>
+				<view class="con-list">
+					<view @click='show1=true'>{{gridList.grade?gridList.grade:'请选择等级'}}</view>
+					<u-picker :range="gradeList" range-key="value" @confirm='gradepicker($event)' v-model="show1" mode="selector" >
+					</u-picker>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">水分(%)</view>
+				<view class="con-list">
+					<input v-model='gridList.waterContent' placeholder="请输入水分占比"
+					 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">容重(克/升)</view>
+				<view class="con-list">
+					<input v-model='gridList.bulkDensity' placeholder="请输入容重"
+					 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">不完善粒(%)</view>
+				<view class="con-list">
+					<input v-model='gridList.imperfectGrain' placeholder="请输入不完整粒占比"
+						 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">杂质(%)</view>
+				<view class="con-list">
+					<input v-model='gridList.impurity' placeholder="请输入杂质占比"
+					 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">霉变粒(%)</view>
+				<view class="con-list">
+					<input v-model='gridList.mildewGrain' placeholder="请输入霉变粒占比"
+					 name="input"></input>
+				</view>
+			</view>
+			<view class="c-row b-b">
+				<view class="title">热损伤(%)</view>
+				<view class="con-list">
+					<input v-model='gridList.jiaorenli' placeholder="请输入热损伤占比"
+					 name="input"></input>
+				</view>
+			</view>
+		</view>
+		<view class="footer">
+			<view @click='submit' 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,
+				id:0,
+				show:false,
+				selector:[],
+				show1:false,
+				inputContent: '',
+				coverTransform: 'translateY(0px)',
+				coverTransition: '0s',
+				moving: false,
+				footprintList: [],
+				searchKeyWord:'',
+				isVip: false,
+				userInfoTmp: [],
+				inputStatus: 'none',
+				carInfo: [],
+				gridCol: 4,
+				pageSize:10,
+				currentPage:1,
+				gridBorder: false,
+				headUrl:"../../static/img/myimg/YongHu@3x.png",
+				userphone:"",
+				username:"请更改昵称",
+				gridList: {},
+				managementType:'',
+				warehouseName: '',
+				warehouseList:[],
+				showTran: true,
+				companyId: 1,
+				current: 4,
+				gradeList:[
+					{key:1,value:'一等品'},
+					{key:2,value:'二等品'},
+					{key:3,value:'三等品'},
+					{key:4,value:'等外'},
+				],
+				cangid:''
+			}
+		},
+		// #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'
+				})
+			}
+		},
+		// #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");
+				}
+			}
+		},
+		onLoad(options){
+			this.id=options.id
+			this.cangid=options.cangid
+			this.managementType=options.managementType
+		},
+		onShow() {
+			var that = this
+				this.$api.doRequest('get', '/qualityInspectionManagement/api/getQualityInspection',{
+					id:this.id
+				}).then(res => {
+					if(res.data.data){
+						let data = res.data.data
+						that.gridList =data
+						that.$api.doRequest('get', '/warehouseBaseInfo/getWarehouse',{
+							id:this.cangid
+						}).then(res => {
+							that.warehouseList=res.data.data.warehousePositionInfoList
+						})
+					}
+				})
+		},
+		methods: {
+			submit(){
+				var that = this
+				if (!this.gridList.contractNo) {
+					this.$api.msg('编号不能为空')
+					return
+				}
+				if (!this.gridList.binNumber) {
+					this.$api.msg('仓位不能为空')
+					return
+				}
+				if (!this.gridList.storageTagNo) {
+					this.$api.msg('囤位号不能为空')
+					return
+				}
+				if (this.gridList.storageTagNo.length > 10) {
+					this.$api.msg('囤位号不超过10个字符!')
+					return
+				}
+				if (!this.gridList.carNumber) {
+					this.$api.msg('车牌号不能为空')
+					return
+				}
+				if (this.gridList.carNumber.length > 7) {
+					this.$api.msg('车牌号输入错误')
+					return
+				}
+				if (!this.gridList.goodsName) {
+					this.$api.msg('货名不能为空')
+					return
+				}
+				if (!this.gridList.grade) {
+					this.$api.msg('等级不能为空')
+					return
+				}
+				if (!this.gridList.impurity) {
+					this.$api.msg('杂质不能为空')
+					return
+				}
+				if (!this.gridList.waterContent) {
+					this.$api.msg('水分不能为空')
+					return
+				}
+				if (!this.gridList.mildewGrain) {
+					this.$api.msg('霉变粒不能为空')
+					return
+				}
+				if (!this.gridList.bulkDensity) {
+					this.$api.msg('容重不能为空')
+					return
+				}
+				if (!this.gridList.jiaorenli) {
+					this.$api.msg('热损伤不能为空')
+					return
+				}
+				if (!this.gridList.imperfectGrain) {
+					this.$api.msg('不完整粒不能为空')
+					return
+				}
+				uni.showModal({
+					content: "确定提交质检信息?",
+					showCancel: true,
+					confirmText: '提交',
+					success: function(res) {
+						if (res.confirm) {
+							that.$api.doRequest('post', '/qualityInspectionManagement/api/addQualityInspectionOut',that.gridList).then(res => {
+								if(res.data.code==200){
+									that.$api.msg('提交成功')
+									uni.navigateBack({
+									})
+								}
+							})
+						}
+					}
+				})
+			},
+			gradepicker(e){
+				console.log(e)
+				// this.$set(this.gradeList,'grade',this.gradeList[e[0]].value)
+				this.gridList.grade=this.gradeList[e[0]].value
+				this.gridList.gradeKey=this.gradeList[e[0]].key
+			},
+			binNumberpicker(e){
+				this.gridList.binNumber=this.warehouseList[e[0]].binNumber
+			},
+			del(item){
+				this.$api.doRequest('get', '/qualityInspectionManagement/api/deleteQualityInspection',{
+					id:item.id
+				}).then(res => {
+					if(res.data.code==200){
+						this.$api.msg('删除成功')
+					}else{
+						this.$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
+			},
+			myAccount() {
+				uni.navigateTo({
+					url: `/pageA/pages/contract`
+				})
+			},
+			/**
+			 * 统一跳转接口,拦截未登录路由
+			 * navigator标签现在默认没有转场动画,所以用view
+			 */
+			navTo(url) {
+				if (!this.hasLogin) {
+					url = '/pages/public/login';
+				}
+				uni.navigateTo({
+					url
+				})
+			},
+			mycarClick(carNo) {
+				this.modalName = null
+				uni.navigateTo({
+					url: `/pageB/car/mycar_detail?carNo=${carNo}`
+				})
+			},
+			scanCode() {
+				uni.scanCode({
+					success: function(res) {
+						uni.navigateTo({
+							url: res.result
+						})
+					}
+				})
+			},
+			hideModal(e) {
+				this.modalName = null
+			},
+		}
+	}
+</script>
+<style lang='scss' scoped>
+	page{
+		background:#F5F6FA;
+	}
+	.c-row {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-align: center;
+		-webkit-align-items: center;
+		align-items: center;
+		padding: 10rpx 30rpx;
+		position: relative;
+	
+		.title {
+			/* color: #9698A2; */
+		}
+	
+		.title-black {
+			color: #333;
+		}
+	}
+	
+	.con-list {
+		-webkit-box-flex: 1;
+		-webkit-flex: 1;
+		flex: 1;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: vertical;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: column;
+		flex-direction: column;
+		color: #303133;
+		line-height: 40rpx;
+		text-align: right;
+		padding-right: 20rpx;
+	}
+	.wrap{
+		padding-bottom:10px;
+		font-size:14px;
+		background:#fff;margin:10px;border-radius:10px;
+		input{
+			font-size:14px;
+		}
+		>.title{
+			padding:10px 16px;
+		}
+		.b-b:after{
+			border-bottom:1px solid #eee;
+		}
+	}
+	.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;
+		}
+	}
+</style>
+
+

+ 59 - 32
pages/erpbusiness/quality_testing.vue

@@ -18,8 +18,8 @@
 				<u-picker @confirm="warehousechange" range-key='warehouseName' mode="selector" v-model="show"  :range="selector"></u-picker>
 			</view>
 		</view>
-		
-		<view class='wrap' v-for='item in gridList'>
+		<view class="content">
+			<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>
@@ -44,14 +44,19 @@
 				<view>{{item.goodsName}}({{item.waterContent}}水)</view>
 			</view>
 			<view class='flex buttons'>
-				<view v-if='item.status=="已质检"&&managementType==1' @click='del(item)' class='button'>删除</view>
-				<view v-if='item.status!="已称皮重"&&managementType==1' @click='edit(item)' class='button'>编辑</view>
-				<view v-if='item.status=="已称毛重"&&managementType==3' class='button'>质检</view>
+				<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>
+		
 		<view v-show="isContent">
 			<uni-load-more :status="loadStatus"></uni-load-more>
 		</view>
+		<view class="footer">
+			<view @click='add' class="button">新增</view>
+		</view>
 	</view>
 </template>
 <script>
@@ -73,6 +78,7 @@
 				mycarStyle: '',
 				feild: undefined,
 				params:{},
+				selector:[],
 				isContent:false,
 				loadStatus:'noMore',
 				inputContent: '',
@@ -99,6 +105,8 @@
 				showTran: true,
 				companyId: 1,
 				current: 4,
+				warehouseCount:'',
+				commonWarehouseNo:'',
 				cangid:''
 				
 			}
@@ -140,6 +148,7 @@
 			this.managementType=options.managementType
 		},
 		onShow() {
+			this.gridList=[]
 			this.$api.doRequest('get', '/warehouseBaseInfo/selectWarehouseSelf',{
 				compId:'',
 				personCharge:this.userInfo.phone
@@ -147,12 +156,25 @@
 				if(res.data.data){
 					this.warehouseName=res.data.data[0].warehouseName
 					this.cangid=res.data.data[0].id
+					this.warehouseCount = res.data.data[0].count
+					this.commonWarehouseNo=res.data.data[0].commonWarehouseNo
+					uni.setStorageSync('purchasePriceList',res.data.data[0].purchasePriceList)
 					this.selector=res.data.data
 					this.getList()
 				}
 			})
 		},
 		methods: {
+			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
+				})
+			},
 			emptysearch(){
 				this.searchKeyWord=''
 				this.gridList=[]
@@ -167,6 +189,9 @@
 			warehousechange(e){
 				this.warehouseName=this.selector[e[0]].warehouseName
 				this.cangid=this.selector[e[0]].id
+				this.warehouseCount = this.selector[e[0]].count
+				this.commonWarehouseNo=this.selector[e[0]].commonWarehouseNo
+				uni.setStorageSync('purchasePriceList',this.selector[e[0]].purchasePriceList)
 				this.getList()
 				console.log(e)
 			},
@@ -194,7 +219,7 @@
 							this.isContent=true
 						}
 					}
-					console.log(that.gridList)
+					// console.log(that.gridList)
 				})
 			},
 			edit(item){
@@ -202,12 +227,19 @@
 					url:'/pages/erpbusiness/edit_quality_testing?id='+item.id+'&managementType='+this.managementType+'&cangid='+this.cangid
 				})
 			},
+			add(){
+				uni.navigateTo({
+					url:'/pages/erpbusiness/add_quality_testing?managementType='+this.managementType+'&cangid='+this.cangid+'&warehouseCount='+this.warehouseCount+'&commonWarehouseNo='+this.commonWarehouseNo+'&warehouseName='+this.warehouseName
+				})
+			},
 			del(item){
-				this.$api.doRequest('get', '/qualityInspectionManagement/api/deleteQualityInspection',{
+				this.$api.doRequest('post', '/qualityInspectionManagement/api/deleteQualityInspection',{
 					id:item.id
 				}).then(res => {
 					if(res.data.code==200){
 						this.$api.msg('删除成功')
+						this.gridList=[]
+						this.getList()
 					}else{
 						this.$api.msg('系统异常,请联系管理员')
 					}
@@ -553,31 +585,6 @@
 		background: #F5F6F9;
 	}
 
-	.line {
-		display: inline-block;
-		padding: 5px;
-		position: relative;
-		font-size: 17px;
-	}
-
-	.line.active {
-		font-size: 19px;
-		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);
@@ -759,5 +766,25 @@
 		background:#fff;
 		border-radius:0px 0px 16px 16px;
 	}
+	.content{
+		margin-bottom:100px;
+	}
+	.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;
+		}
+	}
 </style>