Component({
    properties: {
        list: Array,
        deleteItem: Function,
        changeQueue: Function, //修改队列
        disabled: Boolean
    },
    options: {
        addGlobalClass: true
    },
    methods: {
        onBlur(e) {
            let {
                index,
                name
            } = e.currentTarget.dataset,
                detail = (e.detail.value - 0).toFixed(2),
                item = this.data.list[index];
            switch (name) {
                case "discountrate":
                    if (detail >= 100) {
                        item[name] = 100.00
                    } else if (detail <= 0) {
                        item[name] = 1.00
                    } else {
                        item[name] = detail;
                    }
                    //改变折扣 重新计算现价
                    item.price = (item.marketprice * (item.discountrate / 100) - 0).toFixed(2);
                    break;
                case "price":
                    if (detail >= item.marketprice) {
                        item.price = item.marketprice
                        item.discountrate = 100.00;
                    } else if (detail <= 0) {
                        item.discountrate = 1.00;
                        item.price = (item.marketprice * (item.discountrate / 100) - 0).toFixed(2);
                    } else {
                        item.price = detail;
                        item.discountrate = this.getPercent(item.price, item.marketprice).toFixed(2);
                    }
                    //改变现价 重新计算总价和折扣

                    break;
            }
            this.setData({
                [`list[${index}]`]: item
            })
            let obj = {};
            ["sa_contract_itemsid", "itemid", "price", "discountrate", "qty"].forEach(v => obj[v] = item[v]);
            obj.discountrate = (obj.discountrate / 100).toFixed(4);
            this.triggerEvent("changeQueue", obj)
        },
        /* 计算百分比 */
        getPercent(num, total) {
            num = parseFloat(num);
            total = parseFloat(total);
            if (isNaN(num) || isNaN(total)) {
                return "-";
            }
            return total <= 0 ? "0%" : Math.round((num / total) * 10000) / 100;
        },
        deleteProduct(e) {
            const {
                sa_contract_itemsid,
                itemname
            } = e.currentTarget.dataset.item,
                that = this;
            wx.showModal({
                title: '提示',
                content: `是否确认删除“${itemname}”?`,
                complete: ({
                    confirm
                }) => {
                    if (confirm) that.triggerEvent("deleteItem", [sa_contract_itemsid]);
                }
            })
        },
    }
})