Commit 4fe39562 authored by tangfh's avatar tangfh

组件/插件库

parents
Pipeline #308 canceled with stages
node_modules/
.project
unpackage/
.DS_Store
\ No newline at end of file
{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
// launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
"version": "0.0",
"configurations": [{
"default" :
{
"launchtype" : "local"
},
"mp-weixin" :
{
"launchtype" : "local"
},
"type" : "uniCloud"
}
]
}
<script>
import ui from './common/ui.js'
export default {
onLaunch: function() {
console.log('App Launch')
ui.init()
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style>
/*每个页面公共css */
@import '/common/common.scss';
@import '/common/component.scss';
</style>
.flex-row {
display: flex;
flex-direction: row;
}
.flex-column {
display: flex;
flex-direction: column;
}
.row-center-h {
justify-content: center;
}
.row-center-v {
align-items: center;
}
.column-center-h {
align-items: center;
}
.column-center-v {
justify-content: center;
}
\ No newline at end of file
.c-tag-1 {
min-width: Hug (56px)px;
min-height: Hug (25px)px;
top: 11px;
left: 271px;
padding: 4px 10px 4px 10px;
border-radius: 0px 12px 0px 12px;
font-size: 12px;
line-height: Hug (25px)px;
}
.c-tag-1-0 {
background: #04BA53;
color: white;
}
.c-tag-1-1 {
background: #00abba;
color: white;
}
\ No newline at end of file
const statusBarUI = {
height: 0, //状态栏的高度
}
const navigationBarUI = {
height: 0, //导航栏的高度
}
const scrollViewUI = {
height1: 0, //只有导航栏时,scroll-view 的高度
}
function init() {
let systemInfo = uni.getSystemInfoSync()
// 导航栏高度固定为 44px,状态栏高度为 systemInfo.statusBarHeight
statusBarUI.height = systemInfo.statusBarHeight
navigationBarUI.height = statusBarUI.height + 44
scrollViewUI.height1 = systemInfo.screenHeight - navigationBarUI.height - systemInfo.safeAreaInsets.bottom
}
const uLoadingPageUI = {
empty: {
isShow: true,
iconSize: 220,
image: "/static/icon-empty.png",
loadingText: "暂无内容",
fontSize: 14,
},
loading: {
isShow: true,
iconSize: 28,
image: "",
loadingText: "加载中",
fontSize: 14,
}
}
export default {
uLoadingPageUI: uLoadingPageUI,
scrollViewUI: scrollViewUI,
init: init,
}
\ No newline at end of file
const CONST = {
cMultiTextUI: {
hint: "",
prefix: "",
value: "",
valueInput: "",
maxlength: 11,
isShowFlag: false,
second: 60,
focus: false,
start: false,
disabled: false,
isShowInput: false,
isShowSendCode: true,
isShowCountdown: false,
iconRight: "",
isShowIconRight: false,
inputDisable: true,
isShowBottomLine: false,
clickActive: false,
confirmType: "done",
}
}
export default {
CONST,
}
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title></title>
<!--preload-links-->
<!--app-context-->
</head>
<body>
<div id="app"><!--app-html--></div>
<script type="module" src="/main.js"></script>
</body>
</html>
import App from './App'
import ui from './common/ui.js'
// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
Vue.prototype.$ui = ui
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
// #endif
// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
// #endif
\ No newline at end of file
{
"name" : "fashion-ui",
"appid" : "__UNI__950A8F4",
"description" : "时尚插件库",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App特有相关 */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
/* 模块配置 */
"modules" : {},
/* 应用发布信息 */
"distribute" : {
/* android打包配置 */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios打包配置 */
"ios" : {},
/* SDK配置 */
"sdkConfigs" : {}
}
},
/* 快应用特有相关 */
"quickapp" : {},
/* 小程序特有相关 */
"mp-weixin" : {
"appid" : "",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true
},
"uniStatistics" : {
"enable" : false
},
"vueVersion" : "3"
}
{
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "fashion-ui"
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "fashion-ui",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
},
"uniIdRouter": {}
}
<template>
<view class="content">
<f-image-01></f-image-01>
<f-text-01 :ui="uiAddBtn"></f-text-01>
<view style="display: block; width: 100%;">
<f-item :item="itemMock">
<template v-slot:content>
<view class="flex-row row-center-h" style="padding-top: 32rpx;">
hello
</view>
</template>
</f-item>
</view>
<view style="display: block; width: 100%;">
<c-multi-text-01 :ui="cMultiText01Ui" @click="onCMultiText01Click"></c-multi-text-01>
</view>
</view>
</template>
<script>
import constant from '@/common/utils/constant.js'
const cTextColorBlue = "#4AA7F7"
export default {
data() {
return {
title: 'fashion-ui',
uiAddBtn: {
style: {
marginRight: "32rpx",
},
uiIcon: {
value: "/static/icon-add.png",
},
uiTxt: {
value: "新增",
style: {
color: cTextColorBlue
}
}
},
itemMock: {
ui: {
topUI: {
style: {
topBgStyle: {
background: "linear-gradient(90deg, #E6F3FF 0%, #FFFFFF 100%)",
},
topIconStyle: {
width: "60rpx",
height: "60rpx",
},
titleStyle: {
color: cTextColorBlue,
}
},
isShowIcon: true,
title: "西巷",
statusAlias: "已发布",
}
}
},
cMultiText01Ui: {}
}
},
onLoad() {
let ui = JSON.parse(JSON.stringify(constant.CONST.cMultiTextUI));
ui.prefix = '面积'
ui.value = '56'
ui.iconRight = "/static/icon-dropdown.png"
ui.isShowIconRight = true
ui.clickActive = true
this.cMultiText01Ui = ui
},
methods: {
onCMultiText01Click() {
console.log("click");
}
}
}
</script>
<style>
page {
background: rgb(208 208 208);
}
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
</style>
\ No newline at end of file
uni.addInterceptor({
returnValue (res) {
if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
return res;
}
return new Promise((resolve, reject) => {
res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
});
},
});
\ No newline at end of file
/**
* 以下是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;
/* 文字基本颜色 */
$uni-text-color: #333;//基本色
$uni-text-color-inverse: #fff;//反色
$uni-text-color-grey: #999;//辅助灰色,如加载更多的提示信息
$uni-text-color-placeholder: #808080;
$uni-text-color-disable: #c0c0c0;
$c-text-color-blue: #4AA7F7;
/* 背景颜色 */
$uni-bg-color:#ffffff;
$uni-bg-color-grey:#f8f8f8;
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
$c-bg-color-avatar: #f5f5f5;
$c-bg-color-active: #f5f5f5;
/* 边框颜色 */
$uni-border-color:#c8c7cc;
/* 尺寸变量 */
/* 文字尺寸 */
$uni-font-size-sm:12px;
$uni-font-size-base:14px;
$uni-font-size-lg:16px;
/* 图片尺寸 */
$uni-img-size-sm:20px;
$uni-img-size-base:26px;
$uni-img-size-lg:40px;
/* Border Radius */
$uni-border-radius-sm: 2px;
$uni-border-radius-base: 3px;
$uni-border-radius-lg: 6px;
$uni-border-radius-circle: 50%;
$c-border-radius-block: 32rpx;
/* 水平间距 */
$uni-spacing-row-sm: 5px;
$uni-spacing-row-base: 10px;
$uni-spacing-row-lg: 15px;
/* 垂直间距 */
$uni-spacing-col-sm: 4px;
$uni-spacing-col-base: 8px;
$uni-spacing-col-lg: 12px;
/* 通用间距 */
$c-spacing-edge: 32rpx;
$c-spacing-edge-2: 24rpx;
/* 透明度 */
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
/* 文章场景相关 */
$uni-color-title: #2C405A; // 文章标题颜色
$uni-font-size-title:20px;
$uni-color-subtitle: #555555; // 二级标题颜色
$uni-font-size-subtitle:26px;
$uni-color-paragraph: #3F536E; // 文章段落颜色
$uni-font-size-paragraph:15px;
\ No newline at end of file
## 1.0.1(2024-05-28)
1.0.1
## 1.0.0(2024-05-28)
1.0.0
<template>
<!-- 表单显示/输入 -->
<view class="com-multi-text flex-column" @click="onClick" :class="{'active': ui.clickActive}"
:style="[ui.style ? ui.style : {}]">
<view class="com-multi-text-v-middle flex-row row-center-v">
<view class="com-multi-text-v-left flex-row row-center-v">
<text class="com-multi-text-v-left-t-left">{{ ui.prefix }}</text>
<text class="com-multi-text-v-left-t-left2" v-if="ui.isShowFlag">*</text>
<image class="com-multi-text-v-left-i-icon" @click="onPrefixIcon1Click"
:src="ui.prefixIcon1" v-if="ui.prefixIcon1Show"></image>
</view>
<view class="com-multi-text-v-right flex-row row-center-v">
<input class="com-multi-text-v-right-c-text" placeholder-class="placeholder-class"
:placeholder="ui.hint" :type="ui.inputType" :maxlength="ui.maxlength" :disabled="ui.inputDisable"
:value="ui.value" @input="onInputChanage" :confirm-type="ui.confirmType" />
</view>
<image class="i-right" :src="ui.iconRight" v-if="ui.isShowIconRight"></image>
</view>
<view class="com-multi-text-line-h" v-if="ui.isShowBottomLine"></view>
</view>
</template>
<script>
import constant from '@/common/utils/constant.js'
export default {
name: "c-multi-text-01",
data() {
return {
inputValue: "",
};
},
props: {
ui: {
type: Object,
default: constant.CONST.cMultiTextUI
}
},
created() {},
methods: {
onInputChanage(event) {
let value = event.detail.value;
this.inputValue = value;
this.$emit("input", value)
},
getInputValue() {
return this.inputValue;
},
onClick() {
this.$emit("click")
},
onPrefixIcon1Click() {
this.$emit("onPrefixIcon1Click")
}
}
}
</script>
<style lang="scss" scoped>
.com-multi-text:active {
background-color: #f2f4f5;
border-radius: 16rpx;
}
.com-multi-text {
width: auto;
height: 96rpx;
background-color: #F5F8FA;
font-size: $uni-font-size-base;
margin-left: 32rpx;
margin-right: 32rpx;
border-radius: 16rpx;
}
.com-multi-text-v-middle {
height: 100%;
margin-left: 32rpx;
margin-right: 32rpx;
}
.com-multi-text-v-left {
height: 100%;
}
.com-multi-text-v-left-t-left {
flex-shrink: 0;
margin-right: 16rpx;
}
.com-multi-text-v-left-t-left2 {
color: #F24C26;
padding-top: 10rpx;
}
.com-multi-text-v-left-i-icon {
width: 32rpx;
height: 32rpx;
margin-right: 16rpx;
}
.com-multi-text-v-right {
height: 100%;
flex-grow: 1;
justify-content: flex-end;
}
.com-multi-text-v-right-c-text {
line-height: 100%;
width: 100%;
font-size: $uni-font-size-base;
text-align: right;
}
.com-multi-text-line-h {
margin-left: 32rpx;
width: 100%;
height: 1rpx;
background-color: #EBEBEB;
}
.i-right {
width: 32rpx;
height: 32rpx;
margin-left: 8rpx;
}
</style>
\ No newline at end of file
{
"id": "c-multi-text-01",
"displayName": "c-multi-text-01",
"version": "1.0.1",
"description": "c-multi-text-01",
"keywords": [
"c-multi-text-01"
],
"repository": "",
"engines": {
"HBuilderX": "^3.1.0"
},
"dcloudext": {
"type": "component-vue",
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "无",
"data": "插件不采集任何数据",
"permissions": "无"
},
"npmurl": ""
},
"uni_modules": {
"dependencies": [],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y",
"alipay": "y"
},
"client": {
"Vue": {
"vue2": "y",
"vue3": "y"
},
"App": {
"app-vue": "u",
"app-nvue": "u",
"app-uvue": "u"
},
"H5-mobile": {
"Safari": "u",
"Android Browser": "u",
"微信浏览器(Android)": "u",
"QQ浏览器(Android)": "u"
},
"H5-pc": {
"Chrome": "u",
"IE": "u",
"Edge": "u",
"Firefox": "u",
"Safari": "u"
},
"小程序": {
"微信": "y",
"阿里": "u",
"百度": "u",
"字节跳动": "u",
"QQ": "u",
"钉钉": "u",
"快手": "u",
"飞书": "u",
"京东": "u"
},
"快应用": {
"华为": "u",
"联盟": "u"
}
}
}
}
}
\ No newline at end of file
# c-multi-text-01
\ No newline at end of file
## 1.0.1(2024-05-28)
1.0.1
## 1.0.0(2024-05-28)
1.0.0
<template>
<image class="f-image-01" :src="src" :style="[style]" mode="aspectFill" @click="onAvatarClick" @error="onLoadError">
</image>
</template>
<script>
const AVATAR_DEFAULT = "/static/ic_avatar_default.png"
export default {
name: "f-image-01",
data() {
return {
src: this.avatar,
style: this.imageStyle,
};
},
props: {
avatar: {
type: String,
default: ""
},
imageStyle: {
type: Object,
default: {}
}
},
watch: {
avatar(newVal, oldVal) {
this.src = newVal ? newVal : "url";
},
imageStyle(newVal, oldVal) {
this.style = newVal;
}
},
created() {},
methods: {
onAvatarClick() {
this.$emit("onAvatarClick")
},
onLoadError(res) {
console.log("onLoadError", res);
this.src = AVATAR_DEFAULT
}
}
}
</script>
<style lang="scss">
.f-image-01 {
width: 112rpx;
height: 112rpx;
border-radius: 112rpx;
margin-right: 16rpx;
background-repeat: no-repeat;
background-size: 112rpx 112rpx;
background-color: $c-bg-color-avatar;
z-index: 666;
flex-shrink: 0;
}
</style>
\ No newline at end of file
{
"id": "f-image-01",
"displayName": "f-image-01",
"version": "1.0.1",
"description": "f-image-01",
"keywords": [
"f-image-01"
],
"repository": "",
"engines": {
"HBuilderX": "^3.1.0"
},
"dcloudext": {
"type": "component-vue",
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "无",
"data": "插件不采集任何数据",
"permissions": "无"
},
"npmurl": ""
},
"uni_modules": {
"dependencies": [],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y",
"alipay": "y"
},
"client": {
"Vue": {
"vue2": "y",
"vue3": "y"
},
"App": {
"app-vue": "u",
"app-nvue": "u",
"app-uvue": "u"
},
"H5-mobile": {
"Safari": "u",
"Android Browser": "u",
"微信浏览器(Android)": "u",
"QQ浏览器(Android)": "u"
},
"H5-pc": {
"Chrome": "u",
"IE": "u",
"Edge": "u",
"Firefox": "u",
"Safari": "u"
},
"小程序": {
"微信": "y",
"阿里": "u",
"百度": "u",
"字节跳动": "u",
"QQ": "u",
"钉钉": "u",
"快手": "u",
"飞书": "u",
"京东": "u"
},
"快应用": {
"华为": "u",
"联盟": "u"
}
}
}
}
}
\ No newline at end of file
# f-image-01
\ No newline at end of file
## 1.0.4(2024-05-28)
1.0.4
## 1.0.3(2024-05-28)
1.0.3
## 1.0.2(2024-05-28)
1.0.2
## 1.0.1(2024-05-28)
1.0.1
## 1.0.0(2024-05-28)
1.0.0
<template>
<view class="f-item-top flex-row row-center-v" :style="[ui.style.topBgStyle]" @click="onClick">
<f-image-01 class="i-icon" mode="aspectFill" :avatar="ui.pic"
v-if="ui.isShowIcon" :imageStyle="ui.style.topIconStyle"></f-image-01>
<!-- <text class="t-title">{{ ui.title }}</text> -->
<rich-text class="t-title text-normal" :nodes="ui.title" :style="[ui.style.titleStyle]"></rich-text>
<text class="c-tag-1 c-tag-1-0" :class="{'c-tag-1-1': ui.clazz && ui.clazz.status}" :style="[ui.style.statusStyle]">{{ ui.statusAlias }}</text>
</view>
</template>
<script>
export default {
//通用item顶部组件
name: "f-item-top",
data() {
return {
};
},
props: {
ui: {
type: Object,
default: {
style: {
topBgStyle: {
background: "background: linear-gradient(90deg, #E6F3FF 0%, #FFFFFF 100%);",
},
statusStyle: {},
topIconStyle: {
width: "60rpx",
height: "60rpx",
}
},
isShowIcon: false,
pic: "",
title: "项目",
statusAlias: "状态",
},
}
},
beforeCreate() {
},
created() {
},
methods: {
onClick() {
this.$emit('', this.ui)
}
}
}
</script>
<style lang="scss" scoped>
.f-item-top {
height: 92rpx;
background-color: #FFEDEB;
border-radius: 32rpx 32rpx 0 0;
padding-left: 32rpx;
padding-right: 32rpx;
.i-icon {
width: 60rpx;
height: 60rpx;
border-radius: 60rpx;
margin-right: 16rpx;
background-color: $c-bg-color-avatar;
}
.t-title {
flex-grow: 1;
font-size: $uni-font-size-lg;
margin-right: 16rpx;
}
.t-status {
font-size: $uni-font-size-sm;
border-radius: 16rpx;
height: 60rpx;
line-height: 60rpx;
padding-left: 24rpx;
padding-right: 24rpx;
flex-shrink: 0;
}
}
</style>
\ No newline at end of file
{
"id": "f-item-top",
"displayName": "f-item-top",
"version": "1.0.4",
"description": "f-item-top",
"keywords": [
"f-item-top"
],
"repository": "",
"engines": {
"HBuilderX": "^3.1.0"
},
"dcloudext": {
"type": "component-vue",
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "无",
"data": "插件不采集任何数据",
"permissions": "无"
},
"npmurl": ""
},
"uni_modules": {
"dependencies": [],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y",
"alipay": "y"
},
"client": {
"Vue": {
"vue2": "y",
"vue3": "y"
},
"App": {
"app-vue": "u",
"app-nvue": "u",
"app-uvue": "u"
},
"H5-mobile": {
"Safari": "u",
"Android Browser": "u",
"微信浏览器(Android)": "u",
"QQ浏览器(Android)": "u"
},
"H5-pc": {
"Chrome": "u",
"IE": "u",
"Edge": "u",
"Firefox": "u",
"Safari": "u"
},
"小程序": {
"微信": "y",
"阿里": "u",
"百度": "u",
"字节跳动": "u",
"QQ": "u",
"钉钉": "u",
"快手": "u",
"飞书": "u",
"京东": "u"
},
"快应用": {
"华为": "u",
"联盟": "u"
}
}
}
}
}
\ No newline at end of file
# f-item-top
\ No newline at end of file
## 1.0.5(2024-05-28)
1.0.5
## 1.0.4(2024-05-28)
1.0.4
## 1.0.3(2024-05-28)
1.0.3
## 1.0.2(2024-05-28)
1.0.2
## 1.0.1(2024-05-28)
1.0.1
## 1.0.0(2024-05-28)
1.0.0
<template>
<view class="f-item flex-column" @click="onClick">
<f-item-top :ui="item.ui.topUI"></f-item-top>
<slot name="content"></slot>
</view>
</template>
<script>
export default {
name: "f-item",
data() {
return {
};
},
props: {
item: {
type: Object,
default: {
ui: {
topUI: {
pic: '',
style: {
topIconStyle: {}
}
}
}
},
}
},
beforeCreate() {
},
created() {
},
methods: {
onClick() {
this.$emit('click', this.ui)
}
}
}
</script>
<style lang="scss" scoped>
.f-item:active {
background-color: $c-bg-color-active;
border-radius: $c-border-radius-block;
}
.f-item {
min-height: 216rpx;
background-color: white;
border: 1rpx solid white;
border-radius: $c-border-radius-block;
margin-left: $c-spacing-edge;
margin-right: $c-spacing-edge;
margin-bottom: $c-spacing-edge-2;
}
</style>
\ No newline at end of file
{
"id": "f-item",
"displayName": "f-item",
"version": "1.0.5",
"description": "f-item",
"keywords": [
"f-item"
],
"repository": "",
"engines": {
"HBuilderX": "^3.1.0"
},
"dcloudext": {
"type": "component-vue",
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "无",
"data": "插件不采集任何数据",
"permissions": "无"
},
"npmurl": ""
},
"uni_modules": {
"dependencies": [],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y",
"alipay": "y"
},
"client": {
"Vue": {
"vue2": "y",
"vue3": "y"
},
"App": {
"app-vue": "u",
"app-nvue": "u",
"app-uvue": "u"
},
"H5-mobile": {
"Safari": "u",
"Android Browser": "u",
"微信浏览器(Android)": "u",
"QQ浏览器(Android)": "u"
},
"H5-pc": {
"Chrome": "u",
"IE": "u",
"Edge": "u",
"Firefox": "u",
"Safari": "u"
},
"小程序": {
"微信": "y",
"阿里": "u",
"百度": "u",
"字节跳动": "u",
"QQ": "u",
"钉钉": "u",
"快手": "u",
"飞书": "u",
"京东": "u"
},
"快应用": {
"华为": "u",
"联盟": "u"
}
}
}
}
}
\ No newline at end of file
# f-item
\ No newline at end of file
## 1.0.5(2024-05-28)
1.0.5
## 1.0.4(2024-05-28)
1.0.4
## 1.0.3(2024-05-28)
1.0.3
## 1.0.2(2024-05-28)
1.0.2
## 1.0.1(2024-05-28)
margin
## 1.0.0(2024-05-24)
1.0.0
<template>
<view class="flex-row row-center-v" :style="[ui.style]" @click.stop="" @click="onClick">
<image class="i-icon" :src="ui.uiIcon.value"></image>
<text class="t-txt" :style="[ui.uiTxt.style]">{{ ui.uiTxt.value }}</text>
</view>
</template>
<script>
export default {
name: "f-text01",
data() {
return {
};
},
props: {
ui: {
type: Object,
default: {
style: {
},
uiIcon: {
value: "",
},
uiTxt: {
value: "",
style: {
color: ""
}
},
},
required: true,
}
},
methods: {
onClick() {
this.$emit("click")
}
}
}
</script>
<style lang="scss">
.flex-row {
display: flex;
flex-direction: row;
}
.row-center-v {
align-items: center;
}
.i-icon {
width: 48rpx;
height: 48rpx;
margin-right: 4rpx;
}
.t-txt {
font-size: 16px;
line-height: 22.4px;
}
</style>
\ No newline at end of file
{
"id": "f-text-01",
"displayName": "f-text-01",
"version": "1.0.5",
"description": "f-text-01",
"keywords": [
"f-text-01"
],
"repository": "",
"engines": {
"HBuilderX": "^3.6.17"
},
"dcloudext": {
"type": "component-vue",
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "无",
"data": "插件不采集任何数据",
"permissions": "无"
},
"npmurl": ""
},
"uni_modules": {
"dependencies": [],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y",
"alipay": "y"
},
"client": {
"Vue": {
"vue2": "y",
"vue3": "y"
},
"App": {
"app-vue": "u",
"app-nvue": "u",
"app-uvue": "u"
},
"H5-mobile": {
"Safari": "u",
"Android Browser": "u",
"微信浏览器(Android)": "u",
"QQ浏览器(Android)": "u"
},
"H5-pc": {
"Chrome": "u",
"IE": "u",
"Edge": "u",
"Firefox": "u",
"Safari": "u"
},
"小程序": {
"微信": "u",
"阿里": "u",
"百度": "u",
"字节跳动": "u",
"QQ": "u",
"钉钉": "u",
"快手": "u",
"飞书": "u",
"京东": "u"
},
"快应用": {
"华为": "u",
"联盟": "u"
}
}
}
}
}
\ No newline at end of file
# f-text-01
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment