增加新模块

This commit is contained in:
何江明
2025-03-20 08:46:07 +08:00
parent 15014e22aa
commit 2ae62b59ed
1729 changed files with 94700 additions and 4232 deletions
@@ -0,0 +1,42 @@
"use strict";
const Input = {
// index 组件
input: {
value: "",
type: "text",
fixed: false,
disabled: false,
disabledColor: "#f5f7fa",
clearable: false,
password: false,
maxlength: 140,
placeholder: null,
placeholderClass: "input-placeholder",
placeholderStyle: "color: #c0c4cc",
showWordLimit: false,
confirmType: "done",
confirmHold: false,
holdKeyboard: false,
focus: false,
autoBlur: false,
disableDefaultPadding: false,
cursor: -1,
cursorSpacing: 30,
selectionStart: -1,
selectionEnd: -1,
adjustPosition: true,
inputAlign: "left",
fontSize: "15px",
color: "#303133",
prefixIcon: "",
prefixIconStyle: "",
suffixIcon: "",
suffixIconStyle: "",
border: "surround",
readonly: false,
shape: "square",
formatter: null
}
};
exports.Input = Input;
//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/uview-plus/components/u-input/input.js.map
@@ -0,0 +1,191 @@
"use strict";
const uni_modules_uviewPlus_libs_vue = require("../../libs/vue.js");
const uni_modules_uviewPlus_libs_config_props = require("../../libs/config/props.js");
const props = uni_modules_uviewPlus_libs_vue.defineMixin({
props: {
// 绑定的值
modelValue: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.value
},
// number-数字输入键盘,app-vue下可以输入浮点数,app-nvue和小程序平台下只能输入整数
// idcard-身份证输入键盘,微信、支付宝、百度、QQ小程序
// digit-带小数点的数字键盘,App的nvue页面、微信、支付宝、百度、头条、QQ小程序
// text-文本输入键盘
type: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.type
},
// 如果 textarea 是在一个 position:fixed 的区域,需要显示指定属性 fixed 为 true,
// 兼容性:微信小程序、百度小程序、字节跳动小程序、QQ小程序
fixed: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.fixed
},
// 是否禁用输入框
disabled: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.disabled
},
// 禁用状态时的背景色
disabledColor: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.disabledColor
},
// 是否显示清除控件
clearable: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.clearable
},
// 是否密码类型
password: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.password
},
// 最大输入长度,设置为 -1 的时候不限制最大长度
maxlength: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.maxlength
},
// 输入框为空时的占位符
placeholder: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.placeholder
},
// 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/
placeholderClass: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.placeholderClass
},
// 指定placeholder的样式
placeholderStyle: {
type: [String, Object],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.placeholderStyle
},
// 是否显示输入字数统计,只在 type ="text"或type ="textarea"时有效
showWordLimit: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.showWordLimit
},
// 设置右下角按钮的文字,有效值:send|search|next|go|done,兼容性详见uni-app文档
// https://uniapp.dcloud.io/component/input
// https://uniapp.dcloud.io/component/textarea
confirmType: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.confirmType
},
// 点击键盘右下角按钮时是否保持键盘不收起,H5无效
confirmHold: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.confirmHold
},
// focus时,点击页面的时候不收起键盘,微信小程序有效
holdKeyboard: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.holdKeyboard
},
// 自动获取焦点
// 在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点
focus: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.focus
},
// 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效
autoBlur: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.autoBlur
},
// 是否去掉 iOS 下的默认内边距,仅微信小程序,且type=textarea时有效
disableDefaultPadding: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.disableDefaultPadding
},
// 指定focus时光标的位置
cursor: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.cursor
},
// 输入框聚焦时底部与键盘的距离
cursorSpacing: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.cursorSpacing
},
// 光标起始位置,自动聚集时有效,需与selection-end搭配使用
selectionStart: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.selectionStart
},
// 光标结束位置,自动聚集时有效,需与selection-start搭配使用
selectionEnd: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.selectionEnd
},
// 键盘弹起时,是否自动上推页面
adjustPosition: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.adjustPosition
},
// 输入框内容对齐方式,可选值为:left|center|right
inputAlign: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.inputAlign
},
// 输入框字体的大小
fontSize: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.fontSize
},
// 输入框字体颜色
color: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.color
},
// 输入框前置图标
prefixIcon: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.prefixIcon
},
// 前置图标样式,对象或字符串
prefixIconStyle: {
type: [String, Object],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.prefixIconStyle
},
// 输入框后置图标
suffixIcon: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.suffixIcon
},
// 后置图标样式,对象或字符串
suffixIconStyle: {
type: [String, Object],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.suffixIconStyle
},
// 边框类型,surround-四周边框,bottom-底部边框,none-无边框
border: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.border
},
// 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会
readonly: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.readonly
},
// 输入框形状,circle-圆形,square-方形
shape: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.shape
},
// 用于处理或者过滤输入框内容的方法
formatter: {
type: [Function, null],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.input.formatter
},
// 是否忽略组件内对文本合成系统事件的处理
ignoreCompositionEvent: {
type: Boolean,
default: true
}
}
});
exports.props = props;
//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/uview-plus/components/u-input/props.js.map
@@ -0,0 +1,246 @@
"use strict";
const common_vendor = require("../../../../common/vendor.js");
const uni_modules_uviewPlus_components_uInput_props = require("./props.js");
const uni_modules_uviewPlus_libs_mixin_mpMixin = require("../../libs/mixin/mpMixin.js");
const uni_modules_uviewPlus_libs_mixin_mixin = require("../../libs/mixin/mixin.js");
const uni_modules_uviewPlus_libs_function_index = require("../../libs/function/index.js");
const _sfc_main = {
name: "u-input",
mixins: [uni_modules_uviewPlus_libs_mixin_mpMixin.mpMixin, uni_modules_uviewPlus_libs_mixin_mixin.mixin, uni_modules_uviewPlus_components_uInput_props.props],
data() {
return {
// 清除操作
clearInput: false,
// 输入框的值
innerValue: "",
// 是否处于获得焦点状态
focused: false,
// value是否第一次变化,在watch中,由于加入immediate属性,会在第一次触发,此时不应该认为value发生了变化
firstChange: true,
// value绑定值的变化是由内部还是外部引起的
changeFromInner: false,
// 过滤处理方法
innerFormatter: (value) => value
};
},
created() {
if (this.formatter) {
this.innerFormatter = this.formatter;
}
},
watch: {
modelValue: {
immediate: true,
handler(newVal, oldVal) {
if (this.changeFromInner || this.innerValue === newVal) {
this.changeFromInner = false;
return;
}
this.innerValue = newVal;
if (this.firstChange === false && this.changeFromInner === false) {
this.valueChange(this.innerValue, true);
} else {
if (!this.firstChange)
uni_modules_uviewPlus_libs_function_index.formValidate(this, "change");
}
this.firstChange = false;
this.changeFromInner = false;
}
}
},
computed: {
// 是否显示清除控件
isShowClear() {
const { clearable, readonly, focused, innerValue } = this;
return !!clearable && !readonly && !!focused && innerValue !== "";
},
// 组件的类名
inputClass() {
let classes = [], { border, disabled, shape } = this;
border === "surround" && (classes = classes.concat(["u-border", "u-input--radius"]));
classes.push(`u-input--${shape}`);
border === "bottom" && (classes = classes.concat([
"u-border-bottom",
"u-input--no-radius"
]));
return classes.join(" ");
},
// 组件的样式
wrapperStyle() {
const style = {};
if (this.disabled) {
style.backgroundColor = this.disabledColor;
}
if (this.border === "none") {
style.padding = "0";
} else {
style.paddingTop = "6px";
style.paddingBottom = "6px";
style.paddingLeft = "9px";
style.paddingRight = "9px";
}
return uni_modules_uviewPlus_libs_function_index.deepMerge(style, uni_modules_uviewPlus_libs_function_index.addStyle(this.customStyle));
},
// 输入框的样式
inputStyle() {
const style = {
color: this.color,
fontSize: uni_modules_uviewPlus_libs_function_index.addUnit(this.fontSize),
textAlign: this.inputAlign
};
return style;
}
},
emits: ["update:modelValue", "focus", "blur", "change", "confirm", "clear", "keyboardheightchange", "nicknamereview"],
methods: {
// 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用
setFormatter(e) {
this.innerFormatter = e;
},
// 当键盘输入时,触发input事件
onInput(e) {
let { value = "" } = e.detail || {};
this.innerValue = value;
this.$nextTick(() => {
let formatValue = this.innerFormatter(value);
this.innerValue = formatValue;
this.valueChange(formatValue);
});
},
// 输入框失去焦点时触发
onBlur(event) {
this.$emit("blur", event.detail.value);
uni_modules_uviewPlus_libs_function_index.sleep(150).then(() => {
this.focused = false;
});
uni_modules_uviewPlus_libs_function_index.formValidate(this, "blur");
},
// 输入框聚焦时触发
onFocus(event) {
this.focused = true;
this.$emit("focus");
},
doFocus() {
this.$refs["input-native"].focus();
},
doBlur() {
this.$refs["input-native"].blur();
},
// 点击完成按钮时触发
onConfirm(event) {
this.$emit("confirm", this.innerValue);
},
// 键盘高度发生变化的时候触发此事件
// 兼容性:微信小程序2.7.0+、App 3.1.0+
onkeyboardheightchange(event) {
this.$emit("keyboardheightchange", event);
},
onnicknamereview(event) {
this.$emit("nicknamereview", event);
},
// 内容发生变化,进行处理
valueChange(value, isOut = false) {
if (this.clearInput) {
this.innerValue = "";
this.clearInput = false;
}
this.$nextTick(() => {
if (!isOut || this.clearInput) {
this.changeFromInner = true;
this.$emit("change", value);
this.$emit("update:modelValue", value);
}
uni_modules_uviewPlus_libs_function_index.formValidate(this, "change");
});
},
// 点击清除控件
onClear() {
this.clearInput = true;
this.innerValue = "";
this.$nextTick(() => {
this.valueChange("");
this.$emit("clear");
});
},
/**
* 在安卓nvue上,事件无法冒泡
* 在某些时间,我们希望监听u-from-item的点击事件,此时会导致点击u-form-item内的u-input后
* 无法触发u-form-item的点击事件,这里通过手动调用u-form-item的方法进行触发
*/
clickHandler() {
if (this.disabled || this.readonly) {
common_vendor.index.hideKeyboard();
}
}
}
};
if (!Array) {
const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon");
_easycom_u_icon2();
}
const _easycom_u_icon = () => "../u-icon/u-icon.js";
if (!Math) {
_easycom_u_icon();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: _ctx.prefixIcon || _ctx.$slots.prefix
}, _ctx.prefixIcon || _ctx.$slots.prefix ? {
b: common_vendor.p({
name: _ctx.prefixIcon,
size: "18",
customStyle: _ctx.prefixIconStyle
})
} : {}, {
c: common_vendor.s($options.inputStyle),
d: _ctx.type,
e: _ctx.focus,
f: _ctx.cursor,
g: $data.innerValue,
h: _ctx.autoBlur,
i: _ctx.disabled || _ctx.readonly,
j: _ctx.maxlength,
k: _ctx.placeholder,
l: _ctx.placeholderStyle,
m: _ctx.placeholderClass,
n: _ctx.confirmType,
o: _ctx.confirmHold,
p: _ctx.holdKeyboard,
q: _ctx.cursorSpacing,
r: _ctx.adjustPosition,
s: _ctx.selectionEnd,
t: _ctx.selectionStart,
v: _ctx.password || _ctx.type === "password" || false,
w: _ctx.ignoreCompositionEvent,
x: common_vendor.o((...args) => $options.onInput && $options.onInput(...args)),
y: common_vendor.o((...args) => $options.onBlur && $options.onBlur(...args)),
z: common_vendor.o((...args) => $options.onFocus && $options.onFocus(...args)),
A: common_vendor.o((...args) => $options.onConfirm && $options.onConfirm(...args)),
B: common_vendor.o((...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args)),
C: common_vendor.o((...args) => $options.onnicknamereview && $options.onnicknamereview(...args)),
D: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)),
E: $options.isShowClear
}, $options.isShowClear ? {
F: common_vendor.p({
name: "close",
size: "11",
color: "#ffffff",
customStyle: "line-height: 12px"
}),
G: common_vendor.o((...args) => $options.onClear && $options.onClear(...args))
} : {}, {
H: _ctx.suffixIcon || _ctx.$slots.suffix
}, _ctx.suffixIcon || _ctx.$slots.suffix ? {
I: common_vendor.p({
name: _ctx.suffixIcon,
size: "18",
customStyle: _ctx.suffixIconStyle
})
} : {}, {
J: common_vendor.n($options.inputClass),
K: common_vendor.s($options.wrapperStyle)
});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-df79975b"]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/uview-plus/components/u-input/u-input.js.map
@@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"u-icon": "../u-icon/u-icon"
}
}
@@ -0,0 +1 @@
<view class="{{['u-input', 'data-v-df79975b', J]}}" style="{{K}}"><view class="u-input__content data-v-df79975b"><view wx:if="{{a}}" class="u-input__content__prefix-icon data-v-df79975b"><block wx:if="{{$slots.prefix}}"><slot name="prefix"></slot></block><block wx:else><u-icon wx:if="{{b}}" class="data-v-df79975b" u-i="df79975b-0" bind:__l="__l" u-p="{{b}}"></u-icon></block></view><view class="u-input__content__field-wrapper data-v-df79975b" bindtap="{{D}}"><block wx:if="{{r0}}"><input ref="input-native" class="u-input__content__field-wrapper__field data-v-df79975b" style="{{c}}" type="{{d}}" focus="{{e}}" cursor="{{f}}" value="{{g}}" auto-blur="{{h}}" disabled="{{i}}" maxlength="{{j}}" placeholder="{{k}}" placeholder-style="{{l}}" placeholder-class="{{m}}" confirm-type="{{n}}" confirm-hold="{{o}}" hold-keyboard="{{p}}" cursor-spacing="{{q}}" adjust-position="{{r}}" selection-end="{{s}}" selection-start="{{t}}" password="{{v}}" ignoreCompositionEvent="{{w}}" bindinput="{{x}}" bindblur="{{y}}" bindfocus="{{z}}" bindconfirm="{{A}}" bindkeyboardheightchange="{{B}}" bindnicknamereview="{{C}}"/></block></view><view wx:if="{{E}}" class="u-input__content__clear data-v-df79975b" bindtap="{{G}}"><u-icon wx:if="{{F}}" class="data-v-df79975b" u-i="df79975b-1" bind:__l="__l" u-p="{{F}}"></u-icon></view><view wx:if="{{H}}" class="u-input__content__subfix-icon data-v-df79975b"><block wx:if="{{$slots.suffix}}"><slot name="suffix"></slot></block><block wx:else><u-icon wx:if="{{I}}" class="data-v-df79975b" u-i="df79975b-2" bind:__l="__l" u-p="{{I}}"></u-icon></block></view></view></view>
@@ -0,0 +1,104 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/* uni.scss */
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
.u-empty.data-v-df79975b,
.u-empty__wrap.data-v-df79975b,
.u-tabs.data-v-df79975b,
.u-tabs__wrapper.data-v-df79975b,
.u-tabs__wrapper__scroll-view-wrapper.data-v-df79975b,
.u-tabs__wrapper__scroll-view.data-v-df79975b,
.u-tabs__wrapper__nav.data-v-df79975b,
.u-tabs__wrapper__nav__line.data-v-df79975b,
.up-empty.data-v-df79975b,
.up-empty__wrap.data-v-df79975b,
.up-tabs.data-v-df79975b,
.up-tabs__wrapper.data-v-df79975b,
.up-tabs__wrapper__scroll-view-wrapper.data-v-df79975b,
.up-tabs__wrapper__scroll-view.data-v-df79975b,
.up-tabs__wrapper__nav.data-v-df79975b,
.up-tabs__wrapper__nav__line.data-v-df79975b {
display: flex;
flex-direction: column;
flex-shrink: 0;
flex-grow: 0;
flex-basis: auto;
align-items: stretch;
align-content: flex-start;
}
.u-input.data-v-df79975b {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
flex: 1;
}
.u-input--radius.data-v-df79975b, .u-input--square.data-v-df79975b {
border-radius: 4px;
}
.u-input--no-radius.data-v-df79975b {
border-radius: 0;
}
.u-input--circle.data-v-df79975b {
border-radius: 100px;
}
.u-input__content.data-v-df79975b {
flex: 1;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.u-input__content__field-wrapper.data-v-df79975b {
position: relative;
display: flex;
flex-direction: row;
margin: 0;
flex: 1;
}
.u-input__content__field-wrapper__field.data-v-df79975b {
line-height: 26px;
text-align: left;
color: #303133;
height: 24px;
font-size: 15px;
flex: 1;
}
.u-input__content__clear.data-v-df79975b {
width: 20px;
height: 20px;
border-radius: 100px;
background-color: #c6c7cb;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
transform: scale(0.82);
margin-left: 4px;
}
.u-input__content__subfix-icon.data-v-df79975b {
margin-left: 4px;
}
.u-input__content__prefix-icon.data-v-df79975b {
margin-right: 4px;
}