|
@@ -4,30 +4,27 @@ Component({
|
|
|
},
|
|
|
properties: {
|
|
|
search: Boolean, //是否开启搜索
|
|
|
- list: {
|
|
|
- type: Array,
|
|
|
- value: [{
|
|
|
- label: "我负责的",
|
|
|
- icon: "icon-webxialaxuanxiangjiantou",
|
|
|
- color: "",
|
|
|
- width: ""
|
|
|
- }, {
|
|
|
- label: "筛选",
|
|
|
- icon: "icon-daoruxialajiantou",
|
|
|
- color: "",
|
|
|
- width: ""
|
|
|
- }, {
|
|
|
- label: "创建时间",
|
|
|
- icon: "icon-quxiao",
|
|
|
- color: "",
|
|
|
- width: ""
|
|
|
- }]
|
|
|
- }, //功能列表
|
|
|
- onSearch: Function,
|
|
|
- onClick: Function
|
|
|
+ list: Array, //功能列表
|
|
|
+ condition: String, //搜索内容
|
|
|
+ onClick: Function,
|
|
|
+ startUsing: Boolean, //启用搜索
|
|
|
+ onSearch: Function, //搜索回调
|
|
|
+ record: { //记录历史
|
|
|
+ type: Boolean,
|
|
|
+ value: true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ lifetimes: {
|
|
|
+ attached() {
|
|
|
+ if (wx.getStorageSync('SearchHistory')) this.setData({
|
|
|
+ history: wx.getStorageSync('SearchHistory')
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
data: {
|
|
|
-
|
|
|
+ condition: "",
|
|
|
+ history: [], //搜索历史
|
|
|
+ showHistory: false
|
|
|
},
|
|
|
methods: {
|
|
|
onClick(e) {
|
|
@@ -36,8 +33,98 @@ Component({
|
|
|
} = e.currentTarget.dataset;
|
|
|
this.triggerEvent("onClick", item)
|
|
|
},
|
|
|
- handleSearch() {
|
|
|
- this.triggerEvent("onSearch")
|
|
|
+ /* 开启关闭搜索 */
|
|
|
+ clickSearch() {
|
|
|
+ this.setData({
|
|
|
+ startUsing: !this.data.startUsing
|
|
|
+ });
|
|
|
+ setTimeout(this.setListHeight, 400)
|
|
|
+ },
|
|
|
+ /* 开始搜索 */
|
|
|
+ startSearch({
|
|
|
+ detail
|
|
|
+ }) {
|
|
|
+ if (this.data.condition == detail) return;
|
|
|
+ this.setData({
|
|
|
+ condition: detail
|
|
|
+ })
|
|
|
+ this.triggerEvent("onSearch", detail)
|
|
|
+ if (this.data.record || detail == '') {
|
|
|
+ let list = this.data.history;
|
|
|
+ if (list.findIndex(v => v == detail) == -1) {
|
|
|
+ list.push(detail)
|
|
|
+ this.setData({
|
|
|
+ history: list
|
|
|
+ });
|
|
|
+ wx.setStorageSync("SearchHistory", list)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /* 取消搜索 */
|
|
|
+ endSearch() {
|
|
|
+ this.setData({
|
|
|
+ condition: ""
|
|
|
+ })
|
|
|
+ this.triggerEvent("onSearch", "")
|
|
|
+ },
|
|
|
+ /* 删除搜索历史 */
|
|
|
+ deleteHistory(e) {
|
|
|
+ let that = this;
|
|
|
+ wx.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content: '是否删除所有搜索历史',
|
|
|
+ complete: ({
|
|
|
+ confirm
|
|
|
+ }) => {
|
|
|
+ if (confirm) {
|
|
|
+ wx.setStorageSync("SearchHistory", [])
|
|
|
+ that.setData({
|
|
|
+ history: []
|
|
|
+ });
|
|
|
+ this.setListHeight();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /* 快速搜索 */
|
|
|
+ clickTag(e) {
|
|
|
+ const {
|
|
|
+ name
|
|
|
+ } = e.currentTarget.dataset;
|
|
|
+ this.setData({
|
|
|
+ condition: name
|
|
|
+ });
|
|
|
+ this.triggerEvent("onSearch", name)
|
|
|
+ },
|
|
|
+ /* 单独删除 */
|
|
|
+ delteTag(e) {
|
|
|
+ const {
|
|
|
+ name
|
|
|
+ } = e.currentTarget.dataset;
|
|
|
+ this.setData({
|
|
|
+ history: this.data.history.filter(v => v != name)
|
|
|
+ });
|
|
|
+ wx.setStorageSync('SearchHistory', this.data.history);
|
|
|
+ this.setListHeight();
|
|
|
+ },
|
|
|
+ /* 设置列表高度 */
|
|
|
+ setListHeight() {
|
|
|
+ let pages = getCurrentPages();
|
|
|
+ if (pages[pages.length - 1].setListHeight) pages[pages.length - 1].setListHeight();
|
|
|
+ },
|
|
|
+ /* 搜索框焦点 */
|
|
|
+ onFocus() {
|
|
|
+ this.setData({
|
|
|
+ showHistory: true
|
|
|
+ });
|
|
|
+ setTimeout(this.setListHeight, 50);
|
|
|
+ },
|
|
|
+ /* 搜索框失焦 */
|
|
|
+ onBlur() {
|
|
|
+ this.setData({
|
|
|
+ showHistory: false
|
|
|
+ })
|
|
|
+ setTimeout(this.setListHeight, 50);
|
|
|
}
|
|
|
}
|
|
|
})
|