<template>
	<view class="modal-box">
		<u-popup v-model="isShow"  @close="isShow=false" mode="right" length="85%" >
			<u-form :model="form" ref="uForm" label-width="200" class="form-content">
				<u-form-item label="产品编码"><u-input v-model.trim="form.productCode" placeholder="请输入产品编码" input-align="right" /></u-form-item>
				<u-form-item label="产品名称"><u-input v-model.trim="form.productName" placeholder="请输入产品名称" input-align="right" /></u-form-item>
				<u-form-item label="上线状态" class="form-item">
					<u-input v-model="onlineFalgName" @click="onlineFalgModal=true" clearable @clear="clearOnlineFlag" type="select" placeholder="请选择上线状态" input-align="right" />
				</u-form-item>
				<u-form-item label="通用产品编码"><u-input v-model.trim="form.productCommonCode" placeholder="请输入通用产品编码" input-align="right" /></u-form-item>
				<u-form-item label="通用产品名称"><u-input v-model.trim="form.productCommonName" placeholder="请输入通用产品名称" input-align="right" /></u-form-item>
			</u-form>
			<view class="form-footer-btn">
				<u-button class="handle-btn" shape="circle" size="medium" hover-class="none" @click="handleClean">重置</u-button>
				<u-button class="handle-btn" shape="circle" size="medium" hover-class="none" :custom-style="customBtnStyle" @click="handleSearch">查询</u-button>
			</view>
		</u-popup>
		<!-- 选择上线 -->
		<u-picker v-model="onlineFalgModal" @confirm="onlineFalgChange" :range="onlineFlagList" range-key="dispName" mode="selector"></u-picker>
	</view>
</template>

<script>
	import productBrand from '@/pages/common/productBrand.vue'
	import productType from '@/pages/common/productType.vue'
	import { dealerProductTypeList } from '@/api/dealerProductType'
	export default{
		components: { productBrand, productType },
		props:{
			showModal:{
				type: Boolean,
				default: false
			}
		},
		data(){
			return{
				form: {
					productCode:'',
					productName:'',
					productCommonCode:'',
					productCommonName:'',
					onlineFalg:undefined
				},
				customBtnStyle: {  //  自定义按钮样式
					borderColor: this.$config('primaryColor'),
					backgroundColor: this.$config('primaryColor'),
					color: '#fff'
				},
				nowData: {
					data: [],
					indArr: [],
					nowInd: 0
				},
				isShow:this.showModal,
				onlineFalgModal: false,
				onlineFalgName: '',
				onlineFlagList: []
			}
		},
		methods:{
			// 表单清空
			handleClean(){
				this.form.productCode = ''
				this.form.productName = ''
				this.form.productCommonCode = ''
				this.form.productCommonName = ''
				this.clearOnlineFlag()
				setTimeout(()=>{
					this.handleSearch()
				},300)
			},
			handleSearch(){
				let data = JSON.parse(JSON.stringify(this.form))
				this.$emit('refresh', data)
				this.isShow=false
			},
			clearOnlineFlag(){
				this.onlineFalgName = ''
				this.form.onlineFalg = undefined
			},
			// 上线 change
			onlineFalgChange(ind){
				this.form.onlineFalg = this.onlineFlagList[ind].code || undefined
				this.onlineFalgName = this.onlineFlagList[ind].dispName || ''
			},
			getStateList(){ //获取上线
				this.onlineFlagList = this.$store.state.vuex_onlineFlagList
				if(this.form.onlineFalg){
					const b = this.onlineFlagList.find(item => item.code == this.form.onlineFalg)
					this.onlineFalgName = b ? b.dispName : ''
				}
			}
		},
		watch:{
			//  父页面传过来的弹框状态
			showModal (newValue, oldValue) {
				this.isShow = newValue
			},
			//  重定义的弹框状态
			isShow (newValue, oldValue) {
				if (!newValue) {
					this.$emit('close')
				}else{
					this.getStateList()
				}
			}
		}
	}
</script>

<style lang="scss">
	.modal-box{
		width: 100%;
		.search-title {
			text-align: center;
			padding: 30upx 22upx;
			color: #333;
			border-bottom: 1px solid #eee;
		}
		.form-content{
			display: block;
			padding: 0 20upx;
			box-sizing: content-box;
		}
		.u-form-item{
			padding: 20upx 10upx;
		}
		.form-footer-btn{
			margin: 60upx 30upx 30upx;
			display: flex;
			justify-content: space-between;
		}
		.form-footer-btn {
			display: flex;
			padding: 20upx;
			margin-top: 200upx;
			.handle-btn {
				font-size: 28upx;
				margin: 0 30upx;
				width: 100%;
				flex: 1;
			}
		}
	}
</style>
