const _Http = getApp().globalData.http;
Page({
    data: {
        params: {}, //请求体
        result: [], //返回结果
        radio: false, //是否为单选
        idname: "sa_customersid", //idkey
        showName: "enterprisename", //表单用 显示名称
        filtratelist: [],
    },
    openFiltrate() {
        this.setData({
            showFiltrate: true
        })
    },
    handleFilter(e) {
        e.detail.condition = this.data.params.content.where.condition;
        this.data.params.content.where = e.detail;
        this.getList(true);
    },
    onLoad(options) {
        getApp().globalData.Language.getLanguagePackage(this, '选择客户');
        if (options.params) {
            let params = JSON.parse(options.params);
            if (!params.content.pageNumber || !params.content.pageTotal) {
                params.content.pageNumber = 1;
                params.content.pageTotal = 1;
            }
            this.setData({
                params
            });
        }
        getApp().globalData.Language.getLanguagePackage(this,options.title || '');
        this.setData({
            radio: options.radio ? true : false,
            idname: options.idname || this.data.idname,
            showName: options.showName || this.data.showName,
        });
        this.getList()

        _Http.basic({
            "classname": "sysmanage.develop.optiontype.optiontype",
            "method": "optiontypeselect",
            "content": {
                "nochace": true,
                "pageNumber": 1,
                "pageSize": 1000,
                "typename": "customertypemx",
                "parameter": {
                    "siteid": wx.getStorageSync('userMsg').siteid
                }
            }
        }).then(res => {
            console.log("医院类型", res)
            if (res.code == '1') {
                this.data.filtratelist.unshift({
                    label: "项目类型",
                    index: null,
                    showName: "value", //显示字段
                    valueKey: "type", //返回Key
                    selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
                    value: "", //选中值
                    list: res.data
                })
                this.setData({
                    filtratelist: this.data.filtratelist
                })
            }
        })
    },
    getList(init = false) {
        //init 用于初始化分页
        if (init.detail != undefined) init = init.detail;
        let params = this.data.params;
        if (init) params.content.pageNumber = 1;
        if (params.content.pageNumber > params.content.pageTotal) return;
        _Http.basic(params).then(res => {
            console.log("选择客户列表", res)
            this.selectComponent('#ListBox').RefreshToComplete();
            if (res.code != '1') return wx.showToast({
                title: res.data,
                icon: "none"
            })
            this.setData({
                'params.content.pageNumber': res.pageNumber + 1,
                'params.content.pageTotal': res.pageTotal,
                'params.content.total': res.total,
                list: res.pageNumber == 1 ? res.data : this.data.list.concat(res.data)
            })
        })
    },
    /* 选中 */
    changeResult(e) {
        let {
            id
        } = e.currentTarget.dataset, result = this.data.result;
        if (this.data.radio) {
            result = [id];
        } else {
            result.some(v => v == id) ? result = result.filter(v => v != id) : result.push(id)
        }
        this.setData({
            result
        });
        if (this.data.radio) this.submit();
    },
    /* 提交 */
    submit() {
        let result = this.data.result,
            obj = this.data.radio ? {
                id: result,
                item: this.data.list.find(value => value[this.data.idname] == result),
                value: [this.data.list.find(value => value[this.data.idname] == result)[this.data.showName], result]
            } : {
                result,
                list: result.map(v => this.data.list.find(value => value[this.data.idname] == v)),
                value: [result.map(v => {
                    let data = this.data.list.find(value => value[this.data.idname] == v);
                    return data ? data[this.data.showName] : ""
                }), result]
            }
        getApp().globalData.handleSelect && getApp().globalData.handleSelect(obj)
    },
    /* 开始搜索 */
    startSearch({
        detail
    }) {
        let condition = this.data.content ? this.data.content.where.condition : this.data.params.content.where.condition;
        if (detail == condition) return;
        this.setData({
            'content.where.condition': detail,
            'params.content.where.condition': detail
        });
        this.getList(true);
    },
    /* 取消搜索 */
    onClear() {
        this.setData({
            'content.where.condition': "",
            'params.content.where.condition': ""
        });
        this.getList(true);
    },
    onUnload() { //回收数据
        getApp().globalData.handleSelect = null;
    }
})