123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- const getHeight = require("../../utils/GetRheRemainingHeight");
- Component({
- properties: {
- list: {
- type: Array,
- value: [{
- label: "筛选1",
- index: null,
- showName: "name", //显示字段
- valueKey: "name", //返回Key
- selectKey: "id", //传参 代表选着字段 不传参返回整个选择对象
- value: "", //选中值
- list: [{
- name: "a1",
- id: 0
- }, {
- name: "a2",
- id: 1
- }]
- }]
- },
- show: {
- type: Boolean
- },
- handle: {
- type: Function
- }, //按钮回调函数
- dateRange: { //是否开启日期范围筛选
- type: Boolean,
- value: true
- },
- zIndex: {
- type: String,
- value: 99999,
- },
- interrupt: {
- type: Function
- }
- },
- data: {
- startdate: "", //开始时间
- enddate: "", //结束时间
- },
- lifetimes: {
- ready() {
- getHeight.getHeight('.head', this).then(res => this.setData({
- listHeight: res - 80
- }));
- }
- },
- methods: {
- /* 选择 */
- onSelect(e) {
- const {
- item, //被选项
- index, //列表下标
- i //被选项下标
- } = e.currentTarget.dataset;
- if (this.data.list[index].index == i) {
- this.setData({
- [`list[${index}].value`]: "",
- [`list[${index}].index`]: null
- });
- } else {
- this.setData({
- [`list[${index}].value`]: this.data.list[index].selectKey ? item[this.data.list[index].selectKey] : item,
- [`list[${index}].index`]: i
- });
- }
- if (this.data.list[index].interrupt) this.triggerEvent("interrupt", {
- item,
- index,
- name: this.data.list[index].selectKey,
- list: this.data.list
- })
- },
- /* 点击按钮 */
- onClick(e) {
- const {
- name
- } = e.target.dataset;
- if (name == 'reset') {
- this.setData({
- list: this.data.list.map(v => {
- v.value = "";
- v.index = null;
- return v;
- })
- })
- this.setData({
- startdate: '',
- enddate: ''
- })
- let MultilevelClass = this.selectComponent("#MultilevelClass");
- if (MultilevelClass) MultilevelClass.clearChild()
- this.triggerEvent("handle", {})
- } else if (name == 'confirm') {
- let obj = {};
- this.data.list.forEach(v => {
- if (v.type == 'multilevelClass') {
- obj[v.valueKey] = getApp().globalData.temporaryId;
- delete(getApp().globalData.temporaryId);
- } else {
- obj[v.valueKey] = v.value;
- }
- });
- if (this.data.dateRange) {
- obj.startdate = this.data.startdate;
- obj.enddate = this.data.enddate;
- };
- this.triggerEvent("handle", obj);
- }
- this.onClose();
- },
- /* 筛选日期范围 */
- changeDate(e) {
- const name = e.currentTarget.dataset.name,
- value = e.detail.value;
- this.setData({
- [name]: value
- })
- },
- onClose() {
- this.setData({
- show: false
- })
- }
- }
- })
|