| 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>
 |