| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 | 
							- <template>
 
- 	<view
 
- 		:style="'width:' + width + ';' + (square ? 'height:' + width : '')"
 
- 		class="uni-grid-item 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>
 
 
  |