feat(components): 添加搜索弹窗组件并优化弹窗插件

添加了新的 search-popup 组件,包含完整的搜索和筛选功能,
支持扫码、输入搜索、自定义插槽等特性。同时优化了 popup-plugin
组件的代码结构,移除了调试日志并改进了模板格式。
This commit is contained in:
zhengw
2026-01-09 15:26:10 +08:00
parent 779ea81406
commit 0c4b2a886c
6 changed files with 163 additions and 11 deletions

View File

@@ -0,0 +1,79 @@
Component({
options: { multipleSlots: true },
/**
* 组件的属性列表
*/
properties: {
useFooterSlot: {
type: Boolean,
},
dataKey: {
type: String,
},
placeholder: {
type: String,
},
value: null,
hideMore: {
type: Boolean,
},
hideInput: {
type: Boolean,
},
customStyle: {
type: String,
value: "",
},
useInputSlot: {
type: Boolean,
},
},
/**
* 组件的初始数据
*/
data: {
show: false,
},
/**
* 组件的方法列表
*/
methods: {
showSearch() {
this.setData({ show: true });
this.triggerEvent("showChange", true);
},
close() {
this.setData({ show: false });
this.triggerEvent("showChange", false);
},
ok() {
this.setData({ show: false });
this.triggerEvent("showChange", false);
this.triggerEvent("ok");
},
change(e: any) {
this.triggerEvent("change", e.detail);
},
scanCode() {
const _this = this;
wx.scanCode({
onlyFromCamera: true,
scanType: ["qrCode"],
success: (res) => {
const qrcode = res.result || "";
_this.triggerEvent("change", { value: qrcode });
_this.triggerEvent("ok");
},
});
},
search() {
this.triggerEvent("ok");
},
clear() {
this.triggerEvent("change", { value: "" });
this.triggerEvent("ok");
},
},
});