| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | 
							- <template>
 
- 	<view v-if="width" :style="'width:'+width+';'+(square?'height:'+width:'')" class="uni-grid-item">
 
- 		<view :class="{ 'uni-grid-item--border': showBorder,  'uni-grid-item--border-top': showBorder && index < column, 'uni-highlight': highlight }"
 
- 		 :style="{'border-right-color': borderColor ,'border-bottom-color': borderColor ,'border-top-color': borderColor }"
 
- 		 class="uni-grid-item__box" @click="_onClick">
 
- 			<slot />
 
- 		</view>
 
- 	</view>
 
- </template>
 
- <script>
 
- 	/**
 
- 	 * GridItem 宫格
 
- 	 * @description 宫格组件
 
- 	 * @tutorial https://ext.dcloud.net.cn/plugin?id=27
 
- 	 * @property {Number} index 子组件的唯一标识 ,点击gird会返回当前的标识
 
- 	 */
 
- 	export default {
 
- 		name: 'UniGridItem',
 
- 		inject: ['grid'],
 
- 		props: {
 
- 			index: {
 
- 				type: Number,
 
- 				default: 0
 
- 			}
 
- 		},
 
- 		data() {
 
- 			return {
 
- 				column: 0,
 
- 				showBorder: true,
 
- 				square: true,
 
- 				highlight: true,
 
- 				left: 0,
 
- 				top: 0,
 
- 				openNum: 2,
 
- 				width: 0,
 
- 				borderColor: '#e5e5e5'
 
- 			}
 
- 		},
 
- 		created() {
 
- 			this.column = this.grid.column
 
- 			this.showBorder = this.grid.showBorder
 
- 			this.square = this.grid.square
 
- 			this.highlight = this.grid.highlight
 
- 			this.top = this.hor === 0 ? this.grid.hor : this.hor
 
- 			this.left = this.ver === 0 ? this.grid.ver : this.ver
 
- 			this.borderColor = this.grid.borderColor
 
- 			this.grid.children.push(this)
 
- 			// this.grid.init()
 
- 			this.width = this.grid.width
 
- 		},
 
- 		beforeDestroy() {
 
- 			this.grid.children.forEach((item, index) => {
 
- 				if (item === this) {
 
- 					this.grid.children.splice(index, 1)
 
- 				}
 
- 			})
 
- 		},
 
- 		methods: {
 
- 			_onClick() {
 
- 				this.grid.change({
 
- 					detail: {
 
- 						index: this.index
 
- 					}
 
- 				})
 
- 			}
 
- 		}
 
- 	}
 
- </script>
 
- <style lang="scss" scoped>
 
- 	.uni-grid-item {
 
- 		/* #ifndef APP-NVUE */
 
- 		height: 100%;
 
- 		display: flex;
 
- 		/* #endif */
 
- 		/* #ifdef H5 */
 
- 		cursor: pointer;
 
- 		/* #endif */
 
- 	}
 
- 	.uni-grid-item__box {
 
- 		/* #ifndef APP-NVUE */
 
- 		display: flex;
 
- 		width: 100%;
 
- 		/* #endif */
 
- 		position: relative;
 
- 		flex: 1;
 
- 		flex-direction: column;
 
- 		// justify-content: center;
 
- 		// align-items: center;
 
- 	}
 
- 	.uni-grid-item--border {
 
- 		position: relative;
 
- 		/* #ifdef APP-NVUE */
 
- 		border-bottom-color: #D2D2D2;
 
- 		border-bottom-style: solid;
 
- 		border-bottom-width: 0.5px;
 
- 		border-right-color: #D2D2D2;
 
- 		border-right-style: solid;
 
- 		border-right-width: 0.5px;
 
- 		/* #endif */
 
- 		/* #ifndef APP-NVUE */
 
- 		z-index: 0;
 
- 		border-bottom: 1px #D2D2D2 solid;
 
- 		border-right: 1px #D2D2D2 solid;
 
- 		/* #endif */
 
- 	}
 
- 	.uni-grid-item--border-top {
 
- 		position: relative;
 
- 		/* #ifdef APP-NVUE */
 
- 		border-top-color: #D2D2D2;
 
- 		border-top-style: solid;
 
- 		border-top-width: 0.5px;
 
- 		/* #endif */
 
- 		/* #ifndef APP-NVUE */
 
- 		border-top: 1px #D2D2D2 solid;
 
- 		z-index: 0;
 
- 		/* #endif */
 
- 	}
 
- 	.uni-highlight:active {
 
- 		background-color: #f1f1f1;
 
- 	}
 
- </style>
 
 
  |