detail.js

//console.log($('#main').width());
var list_row = parseInt(($('#main').width()-30)/250)*4;
var item_tab_arr = {};
var app = new Vue({
    el: '#page',
    mixins: [baseMixin],
    data: {
        page_type : 'DETAIL',
        is_mobile: 0,
        promise: [],
        flag_show_container: true,
        flag_filter_shadow_div: false,
        flag_show_nav: false,
        flag_show_filter: true,
        flag_show_filter_set: false,
        flag_show_related_items: false,
        flag_related_items_add: false,
        flag_related_items_edit: false,
        flag_related_items_op_type: 1,// 1 add, 2 edit
        /*flag_show_photo: true,
        flag_show_list: false,
        flag_show_group: false,
        flag_show_item: true,*/
        flag_show_item_detail: false,
        flag_show_result: true, //search result
        flag_show_overview: false,
        flag_show_flow_detail: false,
        // flag_flow_detail_op_style: 1,
        flag_flow_detail_op_style: {},
        flag_add_new_element: false,
        flag_show_export_button: false,
        flag_show_main_tab: false,
        flag_show_comment_box: true,
        flag_show_edit_vendor: false, //assign vendor
        flag_show_flow_tree: false,
        flag_show_gallery: false,
        flag_create_items_element: false,    //鎵归噺鏂板item鐨刴odal
        flag_data_revision_element: false, //鎵归噺鏇存柊item鐨刴odal
        flag_flow_data_revision_element: false, //鎵归噺鏇存柊item鐨刦low鐨刴odal
        flag_copy_item_element: false, //coyp item 鐨刴odal
        flag_show_search_item_no: false, //蹇嵎鎼滅储item
        flag_show_data_correlation: false, //蹇嵎鎼滅储item
        flag_show_item_relate_list: false, //item correlation 鏄剧ずlist 杩樻槸鏄剧ず闆嗗悎鐨勮鎯�
        flag_show_add_related_item: false, //item correlation 鏄剧ず娣诲姞item
        confirm_correlation_role : false,       //item correlation 鏉冮檺
        flag_show_data_dimension : false,       //鏂板缁村害
        flag_add_flow_version_element : false,  //鏂板flow version
        flag_show_flow_version_element : false, //flow version 鍒楄〃

        //navigator
        nav: [],
        nav_icon_arr: [],

        main_tab_obj: null,
        main_tab: pim_config.main_tab,
        main_tab_max_len: 12,
        current_main_tab_index: -1,
        item_list: [],
        sub_category_list: [],
        //0 item, 1 group, 2 vendor item, 3 vendor group
        main_tab_type: -1,

        item_tab_obj: null,
        item_tab: pim_config.item_tab,
        item_tab_max_len: 12,
        current_item_tab_index: -1,

        //home page, item display type
        display_type: 'Gallery',

        //overview
        //current_item_info: {},
        //overview_attr: [],
        //overview_val: [],

        item_completion: 0,
        item_completion_list: [],

        current_op_index: 1,
        op_switch: 0,

        flowtree: [],

        autolist: [],

        //flow_detail
        flow_attr: [],
        flow_attr_val: [],
        flow_attr_val_cp: [],
        item_flow: [],

        //flow_data_v2
        flow_data: [],
        overview_flow_data: [],
        overview_vendor_flow_data: [],
        item_correlation: [],
        item_correlation_attribute_tree: [],
        item_value: [],
        item_value_cp: [],
        vendor_list: [],
        vendor_value: [],
        vendor_value_cp: [],
        current_item_vendor_id: 0,
        current_overview_item_vendor_id: -1,
        flag_overview_expand: 0,
        dimension_attributes: [],
        data_dimension: [],

        //related items
        related_items: {items: [{}], subject_str: '', group: {}, el_type:-1},
        item_id: 0,
        sample_or_item: '',
        sample_or_item_group: '',
        related_items_search_result: [],

        //search
        filter_data: {},
        main_post_filter_data: {
            view_by: 'Item',
            display_type: 'Gallery',
            page:1,
            total_page:1,
            list_row: 10,
            kw: '',
            top_category_id: 0,    //椤剁骇鍒嗙被id锛岀敤浜庡乏渚у鑸爮鐨勭瓫閫�
        },
        post_filter_data: {
            attr:{},
            collect:{val:0},    //鏀惰棌绛涢€�
        },
        list_sort: {},
        //with user set sort field order
        list_sort_order: [],

        //filter template
        filter_template_list: {
        },
        show_filter_template_flag: false,
        show_save_filter_flag: false,

        //add vendor
        new_vendor_info: {
            vendor_no: ''
        },
        vendor_selected: 0,
        vendor_selected_text: 'All Vendors',

        upload_cfg: {
            gateway: pim_api.URL_UPLOAD,
            key: 'file',
            showButton: false,
            allowRemove: false,
            allowRotate: false
        },

        //column set
        column_set_group_id:-1,
        column_set_kw:'',

        //excel set
        excel_set_group_id:-1,
        excel_set_kw:'',
        excel_tpl_type:'user',

        //comment
        // comment_sort:'desc',
        comment_category_show:false,
        comment_category_flow_id:-1,
        comment_list:{
            total_unread_num:0,
            data:{}
        },

        //add new element
        category_list: [],
        category_tree: {},
        new_element_type: 0,

        //gallery
        gallery_data: [],
        gallery_obj_index: 0,
        gallery_current_src: '',

        main_nav_swiper: null,
        item_nav_swiper: null,

        collect_item_num: 0,

        //鍒嗛〉
        page_config: {
            page: 0,
            total_page: 1,
            list_row: 20,
            prev: false,
            next: false,
            page_list: [
                1
            ]
        },

        //copy item
        copy_item_data: {
            'id' : 0,
            'no' : '',
        },

        // 鏄剧ず鐨刬tem data correlation
        current_item_correlations : [],
        current_item_correlation_items : [],
        current_item_correlation_attributes : [],
        current_item_correlation_id : 0,
        index : false,


        flag_discussion_show : false,   //discussion鏄剧ず
        discussions : [],               //discussion鍒楄〃
        flag_show_comment : false,      //discussion鍒楄〃杩樻槸comment鍒楄〃
        comment_tree : [],              //comment鍒楄〃
        discussion_sort : false,        //discussion鎺掑簭 false => asc, true => desc
        comment_sort : false,           //comment鎺掑簭 false => asc, true => desc
        current_discussion : {},        //褰撳墠閫変腑鐨刣iscussion
        flag_discussion_expand : false, //鏄惁灞曞紑
        discussion_data : {
            topic : '',
            comment : '',
            high_priority : false,
            upload_file : [],
            discussion_type : 0,
        },
        comment_data : {
            parent_id : 0,
            top_comment_id : 0,
            comment : '',
            high_priority : 0,
            upload_file : [],
        },
        //item images
        card_image_expand : 0,
        check_all_fields : false,
        image_fields : [],
        image_list : [],
        image_date_list : [],
        image_vendors : [],
        image_dimension_attributes : [],
        image_field_checkbox : [],
        image_vendor_checkbox : {},
        image_checkbox : [],
        max_image_date_rows : 6,

        flow_version_flow_index : 0,
        flow_version_vendor_item_id : 0,
        flow_version_vendor_item : {},
        flow_version_list : [],
        flow_version_index : -1,
        flow_version_value : {},
        flow_version_show_num : 6,
    },
    mounted: function () {
        let that = this;

        if(typeof is_mobile != 'undefined' && is_mobile==1) {
    		that.is_mobile = 1;
    	} else {
	    	if(/*$(window).width()<1320 || */navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)) {
	    		that.is_mobile = 1;
	    	} else {
	    		that.is_mobile = 0;
	    	}
        }

        $.ajaxSettings.async = false;
        that.auto_list();
        $.ajaxSettings.async = true;

        //鍒濆鍖杋tem璇︽儏椤电殑鏁版嵁
        that.init_item_detail();
        that.confirm_correlation_role = confirm_correlation_role == '1' ? true : false;
        //鍒濆鍖杁iscussion 2021 10 29 Discussion1鐗堝厛涓嶇敤锛屽睆钄界浉鍏虫搷浣�
        // that.flag_discussion_show = that.get_cookie('detail_flag_discussion_show') ? that.get_cookie('detail_flag_discussion_show') == 'true' ? true : false : false;
        // that.init_discussion(item_id);
    },
    updated: function () {
    },
    watch : {
        filter_data: {
            handler(newVal, oldVal){
                let that = this;
                $.each(newVal.user_filter, function(k, v) {
                    if (!that.post_filter_data.attr.hasOwnProperty(v)) {
                        if (['7', '8', '16', '17'].indexOf(that.autolist.attribute[v].type_id) != -1) {
                            that.$set(that.post_filter_data.attr, v, {
                                val :  [],
                                title :  []
                            })
                        } else {
                            that.$set(that.post_filter_data.attr, v, {
                                val :  '',
                                title :  ''
                            })
                        }
                    }
                })
            },
            deep:true //true 娣卞害鐩戝惉
        },
        // item images
        image_field_checkbox: {
            handler(newVal, oldVal){
                let that = this;
                that.$nextTick(function () {
                    $.each(that.image_date_list, function (k, image_date) {
                        let is_data_show = 0;
                        $.each(image_date.images, function (kk, image) {
                            let is_no_show = false;
                            $.each(that.image_vendor_checkbox, function (attr_id, v) {
                                is_no_show = is_no_show || (v.length > 0 && (v.indexOf(image.dimensions[attr_id]) == -1));
                            })
                            console.log(is_no_show);
                            image.is_show = !is_no_show && (that.image_field_checkbox.length == 0 || that.image_field_checkbox.indexOf(image.field) != -1)
                            is_data_show += (image.is_show ? 1 : 0);
                        })
                        image_date.is_show = is_data_show > 0 ? true : false;
                    })
                })
                that.image_checkbox = [];
            },
            deep:true //true 娣卞害鐩戝惉
        },
        image_vendor_checkbox: {
            handler(newVal, oldVal){
                let that = this;
                that.$nextTick(function () {
                    $.each(that.image_date_list, function (k, image_date) {
                        let is_data_show = 0;
                        $.each(image_date.images, function (kk, image) {
                            let is_no_show = false;
                            $.each(that.image_vendor_checkbox, function (attr_id, v) {
                                is_no_show = is_no_show || (v.length > 0 && (v.indexOf(image.dimensions[attr_id]) == -1));
                            })
                            image.is_show = !is_no_show && (that.image_field_checkbox.length == 0 || that.image_field_checkbox.indexOf(image.field) != -1)
                            is_data_show += (image.is_show ? 1 : 0);
                        })
                        image_date.is_show = is_data_show > 0 ? true : false;
                    })
                })
                that.image_checkbox = [];
            },
            deep:true //true 娣卞害鐩戝惉
        },
        check_all_fields : {
            handler(newVal, oldVal){
                let that = this;
                that.$nextTick(function () {
                    if (newVal) {
                        $.each(that.image_fields, function (k, v) {
                            if ($.inArray(v.key, that.image_field_checkbox) == -1) {
                                that.image_field_checkbox.push(v.key)
                            }
                        });
                    } else {
                        that.image_field_checkbox = [];
                    }
                    that.image_checkbox = [];
                })
            },
            deep:true //true 娣卞害鐩戝惉
        }
    },
    computed: {
        show_export_button: {
            get: function () {
                /*let is_filter = 0;
                $.each(this.post_filter_data, function(fk, fv) {
                    if(fk == 'attr') {
                        if(fv.length>0) {
                            is_filter = 1;
                            return;
                        }
                    } else {
                        if(fv.val.length>0) {
                            is_filter = 1;
                            return;
                        }
                    }
                });
                if(is_filter || this.main_post_filter_data.kw!='') {
                    this.flag_show_export_button = true;
                } else {
                    this.flag_show_export_button = false;
                }*/
                return this.flag_show_export_button;
            },
            set: function (v) {
                this.flag_show_export_button = v;
            }
        },
        cms_style: {
            get: function () {
                if (typeof this.item_flow.category != 'undefined' && this.item_flow.category.is_cms == 1) {
                    return {background : 'white'};
                }
                return {};
            }
        }
    },
    methods: {
        init_item_detail : function () {
            let that = this;
            that.comment_category_flow_id=-1;
            if(that.current_op_index==2){
                that.comment_category_show=true;
            }else{
                that.comment_category_show=false;
            }
            if(that.is_mobile) {
                that.comment_category_show = false;
            }

            that.main_tab_type = 0;
            //that.flag_show_item = false;
            that.flag_show_item_detail = true;
            that.flag_show_overview = true;
            that.flag_show_result = false;


            that.item_detail_show(0);  //鏄剧ずitem璇︽儏
            that.item_image(); //鏄剧ずitem images
            // that.get_complete();
            // that.get_complete_list();

            //鐢熸垚宸︿晶瀵艰埅鏍�
            let post_data = {
                subject_id: 'item|' + item_id,
            }
            ajax(pim_api.URL_ITEM_FLOWTREE, post_data).then(function (res) {
                that.flowtree = res.data;
                that.$nextTick(function () {
                    setTimeout(function () {
                        $($('.panel-l .menu-list li .d-firstNav')[0]).trigger('click');
                    }, 100);
                })
            }, function (res) {}).then(function (resolve) {

            }).catch(function () { console.log(e) });
        },
        get_complete: function (params) {
            let that = this;
            let post_data = {};
            post_data = {
                subject_id: that.main_tab_obj.get_current().id,
                vendor_id: that.vendor_selected
            };
            if(params) {
                post_data = $.extend(post_data, params);
            }
            ajax(pim_api.URL_ITEM_COMPLETION, post_data).then(function (res) {
                if(res.status == 1) {
                    that.item_completion = res.data.completion;
                    return new Promise(function (resolve, reject) {
                        resolve(that.item_completion);
                    });
                }
            }, function (res) {
            }).then(function (res) {
                if(document.querySelector('.operation span.chart')) {
                    new EasyPieChart(document.querySelector('.operation span.chart'), {
                        easing: 'easeOutElastic',
                        delay: 3000,
                        barColor: '#8ecef4',
                        trackColor: '#f1f1f1',
                        scaleColor: false,
                        lineWidth: 3,
                        trackWidth: 3,
                        lineCap: 'butt',
                        onStep: function (from, to, percent) {
                            this.el.children[0].innerHTML = Math.round(percent);
                        }
                    });
                }
            }, function () {});
        },
        get_complete_list: function () {
            let that = this;
            let current_main_tab = that.main_tab_obj.get_current();
            let post_data = {};
            post_data = {
                subject_id: current_main_tab.id,
                vendor_id: that.vendor_selected
            };
            ajax(pim_api.URL_ITEM_COMPLETION_LIST, post_data).then(function (res) {
                that.item_completion_list = res.data.complete_list;
                return new Promise(function (resolve, reject) {
                    resolve(that.item_completion_list);
                });
            }, function (res) {}).then(function (resolve) {
                that.get_comment_list();

                ajax(pim_api.URL_ITEM_FLOWTREE, post_data).then(function (res) {
                    that.flowtree = res.data;
                }, function (res) {}).then(function (resolve) {

                }).catch(function () { console.log(e) });
            });
        },
        firstNav_click: function () {
            let e = $(event.target).closest('.d-firstNav');
            event.stopPropagation();
            dropSwift(e, '.d-firstDrop');
            let p = e.parent();
            p.parent().find('.selected').removeClass('selected');
            p.addClass('selected');
            // 婊氬姩鍙充晶椤甸潰
            let child = $(event.target).closest('.row').data('child');
            let target = $(event.target).closest('.row').data('target');
            if (target) {
                if (target == '.card-overview') {
                    $('.panel-r .card').hide();
                    $('.panel-r .card-overview').show();
                } else {
                    $('.panel-r .card').show();
                    //$('.panel-r .card-overview').hide();
                }
                if (child == 0) {
                    scrollTo('.panel-r.slimscroll', target);
                }
            }
        },
        secondNav_click: function () {
            let e = $(event.target).closest('.d-secondNav');
            event.stopPropagation();
            dropSwift(e, '.d-secondDrop');
            let p = e.parent();
            p.parent().find('.cur').removeClass('cur');
            p.addClass('cur');
            // 婊氬姩鍙充晶椤甸潰
            let target = $(event.target).closest('.second-row').data('target');
            if (target) {
                scrollTo('.panel-r.slimscroll', target);
            }
        },
        item_detail_show: function (index = 0) {
            //鐩存帴鏄剧ず璇︽儏椤电殑鏁版嵁
            let that = this;
            let post_data = {
                item_id : item_id,
            }
            load = layer.load();

            that.item_flow = [];
            ajax(that.item_tab[index].url_content, post_data).then(function (res) {
                // NProgress.done();
                layer.close(load);
                if (res.status == 1) {
                    that.$set(that, 'flow_data', res.data.flow_data)
                    that.$set(that, 'overview_flow_data', res.data.overview_flow_data)
                    that.$set(that, 'overview_vendor_flow_data', res.data.overview_vendor_flow_data)
                    that.$set(that, 'item_correlation', res.data.item_correlation)
                    that.$set(that, 'item_correlation_attribute_tree', res.data.item_correlation_attribute_tree)
                    that.$set(that, 'item_value', res.data.item_value)
                    that.$set(that, 'vendor_list', res.data.vendor)
                    that.$set(that, 'vendor_value', res.data.vendor_value)
                    that.$set(that, 'item_flow', res.data.item)
                    that.$set(that, 'dimension_attributes', res.data.item.category.dimension_attributes)
                    that.format_field_val();
                    that.$nextTick(function () {
                        refresh_event();
                    })
                    return new Promise(function (resolve, reject) {
                        resolve(res.data);
                    });
                } else {
                    layer.msg(res.info);
                }

            }, function (res) {
                layer.close(load);
                layer.msg(res.info);
            }).then(function (res) {
                that.flag_show_overview = true;
                that.flag_show_flow_detail = false;
            }, function (res) {
            });
        },
        format_field_val: function () {
            let that = this;
            let item_value_tmp = {};
            let tmp = {};
            let val = {};
            let correlation_attr = {};
            if (that.vendor_list.length > 0 && that.current_item_vendor_id == 0) {
                that.current_item_vendor_id = that.vendor_list[0].id;
            }
            if (that.overview_flow_data.length > 0) {
                that.current_overview_item_vendor_id = 0;
            }
            if (that.vendor_list.length > 0 && that.overview_flow_data.length == 0 && that.overview_vendor_flow_data.length > 0 && that.current_overview_item_vendor_id == 0) {
                that.current_overview_item_vendor_id = that.vendor_list[0].id;
            }
            $.each(that.flow_data, function (ak, av) {
                if (!av.hasOwnProperty('flag_flow_detail_op_style')) {
                    that.$set(av, 'current_item_vendor_id', 0);
                    that.$set(av, 'flag_flow_comment_show', 0);
                    that.$set(av, 'flow_comment_sort', 'DESC');
                    that.$set(av, 'comments', {init : 0, list : [], total : 0});

                    //鐢ㄤ簬榛樿鏄剧ず
                    that.$set(av, 'flag_flow_detail_op_style', 1);
                    that.$set(av, 'flag_flow_detail_expand', 0);
                    that.$set(av, 'upload_cfg', {
                        gateway: pim_api.URL_UPLOAD,
                        key: 'file',
                        showButton: false,
                        allowRemove: false,
                        allowRotate: false
                    });
                    //鐢ㄤ簬flow 鏄剧ず
                    that.$set(av, 0, {});
                    that.$set(av[0], 'flag_flow_detail_op_style', 1);
                    that.$set(av[0], 'upload_cfg', {
                        gateway: pim_api.URL_UPLOAD,
                        key: 'file',
                        showButton: false,
                        allowRemove: false,
                        allowRotate: false
                    });
                    correlation_attr = that.item_correlation_attribute_tree[0] ? (that.item_correlation_attribute_tree[0][av.category_flow_id] ? that.item_correlation_attribute_tree[0][av.category_flow_id] : []) : [];
                    that.$set(av[0], 'correlation_attr', correlation_attr);
                    //鐢ㄦ埛vendor flow 鏄剧ず
                    $.each(that.vendor_list, function(index, vendor_item) {
                        that.$set(av, vendor_item.id, {});
                        that.$set(av[vendor_item.id], 'flag_flow_detail_op_style', 1);
                        that.$set(av[vendor_item.id], 'upload_cfg', {
                            gateway: pim_api.URL_UPLOAD,
                            key: 'file',
                            showButton: false,
                            allowRemove: false,
                            allowRotate: false
                        });
                        correlation_attr = that.item_correlation_attribute_tree[vendor_item.id] ? (that.item_correlation_attribute_tree[vendor_item.id][av.category_flow_id] ? that.item_correlation_attribute_tree[vendor_item.id][av.category_flow_id] : []) : [];
                        that.$set(av[vendor_item.id], 'correlation_attr', correlation_attr);
                    });
                }
                if (!tmp[av.category_flow_id] && tmp[av.category_flow_id] != {}) {
                    tmp[av.category_flow_id] = {}
                };
                $.each(av.groups, function (gk, gv) {
                    $.each(gv.attrs, function (akk, avv) {
                        //initial value for multi select value and dynamic multi select
                        if(avv.type_id == 20) {
                            $.each(avv.child_attr, function (elk, el) {
                                let el_val = '';
                                if($.inArray(el.type_id, ['8', '10', '16'])!=-1) { el_val = []; }
                                // tmp[av.category_flow_id][el.id] =  {
                                //     val: el_val,
                                //     type_id: el.type_id
                                // };
                            });
                            tmp[av.category_flow_id][avv.id] =  {
                                val: [],
                                type_id: avv.type_id,
                                set: []
                            };
                        } else {
                            let val = '';
                            if($.inArray(avv.type_id, ['8', '10', '16', '23'])!=-1) { val = []; }
                            tmp[av.category_flow_id][avv.id] = { val: val, type_id: avv.type_id };
                        }
                    });
                })
            });
            $.each(that.overview_flow_data, function (ak, av) {
                that.$set(av, 0, {});
                that.$set(av[0], 'flag_flow_detail_op_style', 1);
                that.$set(av[0], 'flag_flow_detail_expand', 0);
                that.$set(av[0], 'upload_cfg', {
                    gateway: pim_api.URL_UPLOAD,
                    key: 'file',
                    showButton: false,
                    allowRemove: false,
                    allowRotate: false
                });
                correlation_attr = that.item_correlation_attribute_tree[0] ? (that.item_correlation_attribute_tree[0][av.category_flow_id] ? that.item_correlation_attribute_tree[0][av.category_flow_id] : []) : [];
                that.$set(av[0], 'correlation_attr', correlation_attr);
            });

            $.each(that.overview_vendor_flow_data, function (ak, av) {
                //鐢ㄦ埛vendor flow 鏄剧ず
                $.each(that.vendor_list, function(index, vendor_item) {
                    that.$set(av, vendor_item.id, {});
                    that.$set(av[vendor_item.id], 'flag_flow_detail_op_style', 1);
                    that.$set(av[vendor_item.id], 'flag_flow_detail_expand', 0);
                    that.$set(av[vendor_item.id], 'upload_cfg', {
                        gateway: pim_api.URL_UPLOAD,
                        key: 'file',
                        showButton: false,
                        allowRemove: false,
                        allowRotate: false
                    });
                    correlation_attr = that.item_correlation_attribute_tree[vendor_item.id] ? (that.item_correlation_attribute_tree[vendor_item.id][av.category_flow_id] ? that.item_correlation_attribute_tree[vendor_item.id][av.category_flow_id] : []) : [];
                    that.$set(av[vendor_item.id], 'correlation_attr', correlation_attr);
                });
            });
            val = JSON.parse(JSON.stringify(tmp));
            $.each(tmp, function (cate_flow_id, item) {
                $.each(item, function (ak, av) {
                    if(typeof that.item_value[cate_flow_id] != 'undefined' && typeof that.item_value[cate_flow_id][ak] != 'undefined') {
                        val[cate_flow_id][ak] = that.item_value[cate_flow_id][ak];
                    }
                    if (that.item_correlation_attribute_tree[0] && that.item_correlation_attribute_tree[0][cate_flow_id] && that.item_correlation_attribute_tree[0][cate_flow_id][ak]) {
                        if (that.item_correlation_attribute_tree[0][cate_flow_id][ak].status == 0 && (!val[cate_flow_id][ak] || !val[cate_flow_id][ak].val || val[cate_flow_id][ak].val.length == 0)) {
                            if($.inArray(that.autolist.attribute[ak].type_id, ['8', '10', '16', '23'])!=-1 && that.item_correlation[that.item_correlation_attribute_tree[0][cate_flow_id][ak].item_correlation_id].value == '') {
                                that.item_correlation[that.item_correlation_attribute_tree[0][cate_flow_id][ak].item_correlation_id].value = [];
                            }
                            val[cate_flow_id][ak].val = that.item_correlation[that.item_correlation_attribute_tree[0][cate_flow_id][ak].item_correlation_id].value
                        }
                    }
                    if (av.type_id == 20) {
                        //set
                        if (val[cate_flow_id][ak].set != undefined) {
                            $.each(val[cate_flow_id][ak].set, function (set_line, set_arr) {
                                $.each(set_arr, function (set_k, set_v) {
                                    val[cate_flow_id][set_v.attr.id] = set_v;
                                });
                            })
                        } else {
                            val[cate_flow_id][ak].val = [];
                            val[cate_flow_id][ak].set = [];
                            val[cate_flow_id][ak].type_id = 20;
                        }
                    } else if (av.type_id == 24) {
                        val[cate_flow_id][ak].display_val = display_tinymce(val[cate_flow_id][ak].val);
                    }
                })
            });
            item_value_tmp[0] = val;
            $.each(that.vendor_list, function(index, vendor_item) {
                val = JSON.parse(JSON.stringify(tmp));
                $.each(tmp, function (cate_flow_id, item) {
                    $.each(item, function (ak, av) {
                        if(typeof that.vendor_value[vendor_item.id][cate_flow_id] != 'undefined' && typeof that.vendor_value[vendor_item.id][cate_flow_id][ak] != 'undefined') {
                            val[cate_flow_id][ak] = that.vendor_value[vendor_item.id][cate_flow_id][ak];
                        }
                        if (that.item_correlation_attribute_tree[vendor_item.id] && that.item_correlation_attribute_tree[vendor_item.id][cate_flow_id] && that.item_correlation_attribute_tree[vendor_item.id][cate_flow_id][ak]) {
                            if (that.item_correlation_attribute_tree[vendor_item.id][cate_flow_id][ak].status == 0 && (!val[cate_flow_id][ak] || !val[cate_flow_id][ak].val || val[cate_flow_id][ak].val.length == 0)) {
                                if($.inArray(that.autolist.attribute[ak].type_id, ['8', '10', '16', '23'])!=-1 && that.item_correlation[that.item_correlation_attribute_tree[vendor_item.id][cate_flow_id][ak].item_correlation_id].value == '') {
                                    that.item_correlation[that.item_correlation_attribute_tree[vendor_item.id][cate_flow_id][ak].item_correlation_id].value = [];
                                }
                                val[cate_flow_id][ak].val = that.item_correlation[that.item_correlation_attribute_tree[vendor_item.id][cate_flow_id][ak].item_correlation_id].value
                            }
                        }
                        if (av.type_id == 20) {
                            //set
                            if (val[cate_flow_id][ak].set != undefined) {
                                $.each(val[cate_flow_id][ak].set, function (set_line, set_arr) {
                                    $.each(set_arr, function (set_k, set_v) {
                                        val[cate_flow_id][set_v.attr.id] = set_v;
                                    });
                                })
                            } else {
                                val[cate_flow_id][ak].val = [];
                                val[cate_flow_id][ak].set = [];
                                val[cate_flow_id][ak].type_id = 20;
                            }
                        } else if (av.type_id == 24) {
                            val[cate_flow_id][ak].display_val = display_tinymce(val[cate_flow_id][ak].val);
                        }
                    })
                });
                item_value_tmp[vendor_item.id] = val;
            })
            that.item_value = item_value_tmp;
            $.extend(true, that.item_value_cp, that.item_value);
        },
        handle_operate: function () {
            let that = this;
            let e = $(event.target);
            let index = $(e).closest('li').index();
            if(that.is_mobile) {
                index = $(e).closest('span').index();
                if(index==0) {
                    that.flag_show_comment_box = false;
                    if(that.current_op_index==0) {
                        that.current_op_index = -1;
                        that.flag_show_flow_tree = false;
                    } else {
                        that.current_op_index = 0;
                        that.flag_show_flow_tree = true;
                    }
                } else if(index==1) {
                    that.flag_show_flow_tree = false;
                    if(that.current_op_index==1) {
                        that.current_op_index = -1;
                        that.flag_show_comment_box = false;
                    } else {
                        that.current_op_index = 1;
                        that.flag_show_comment_box = true;
                    }
                }
            } else {
                if(index==2 && that.current_op_index==2){
                    that.current_op_index = 1;
                }else{
                    that.current_op_index = index;
                }
                that.op_switch = 1;

                if(that.current_op_index==2){
                    that.comment_category_show=true;
                }else{
                    that.comment_category_show=false;
                }

                if(that.op_switch){
                    $('.overview-content .comment-box').removeClass('w1');
                }else{
                    $('.overview-content .comment-box').addClass('w1');
                }
            }
            //$.extend(true, that.flow_attr_val_cp, that.flow_attr_val);
            that.$nextTick(function () {
                that.init_multi_select();
            })
        },
        handle_switch: function () {
            let that = this;
            let e = $(event.target);

            that.op_switch = !that.op_switch;

            if(that.op_switch){
                $('.overview-content .comment-box').removeClass('w1');
            }else{
                $('.overview-content .comment-box').addClass('w1');
            }
        },
        load_item_flow: function () {
            return;
            let that = this;
            let e = $(event.target);
            if($(e).closest('li').attr('data-child_count') > 0) {
                return;
            }
            let data = {
                id: 'flow|'+e.attr('data-category_flow_id'),
                item_flow_id: e.attr('data-item_flow_id'),
                category_flow_id: e.attr('data-category_flow_id'),
                text: e.attr('data-text'),
                url_content: pim_api.URL_FLOW_DETAIL,
                remove: true,
                type: e.attr('data-type'),
            };
            let index = that.item_tab_obj.add(data);

            if(that.is_mobile) {
                that.init_more_nav_el('.tab-swiper2');
            }
            //that.item_tab_obj.remove_diff_type($(e).data('type'));
        },
        edit_flow_detail: function (flow_index, item_vendor_id) {
            let that = this;
            let e = $(event.target);
            if (that.flow_data[flow_index][item_vendor_id].flag_flow_detail_op_style == 2) {
                that.$set(that.flow_data[flow_index][item_vendor_id], 'flag_flow_detail_op_style', 1);
                that.$set(that.flow_data[flow_index][item_vendor_id].upload_cfg, 'showButton', false);
                that.$set(that.flow_data[flow_index][item_vendor_id].upload_cfg, 'allowRemove', false);
            } else {
                that.$set(that.flow_data[flow_index][item_vendor_id], 'flag_flow_detail_op_style', 2);
                that.$set(that.flow_data[flow_index][item_vendor_id].upload_cfg, 'showButton', true);
                that.$set(that.flow_data[flow_index][item_vendor_id].upload_cfg, 'allowRemove', true);
            }
            //$.extend(true, that.flow_attr_val_cp, that.flow_attr_val);
            that.$nextTick(function () {
                that.init_multi_select();
            })
        },
        save_flow_detail: function (flow_index, category_flow_id, item_vendor_id) {

            let that = this;
            let e = $(event.target);
            let item_value = {};
            item_value[item_vendor_id] = that.item_value[item_vendor_id][category_flow_id];
            if (item_vendor_id !=0) {
                //flow 閲岄潰鍙兘鏈塿endor瀛楁鍜岄潪vendor瀛楁
                item_value[0] = that.item_value[0][category_flow_id];
            }
            // let post_data = $(e).closest('form').serializeArray()+'&attr_info='+JSON.stringify(item_value);
            let form_data = $(e).closest('form').serializeArray();
            var post_data = {};
            $.each(form_data,function(i,v){
                post_data[v.name] = v.value;
            })
            post_data['attr_info'] = JSON.stringify(item_value);
            let layer_index = layer.load();

            ajax(pim_api.URL_SAVE_FLOW_DETAIL, post_data).then(function (res) {
                layer.close(layer_index);
                show_success_modal(function () {
                    that.item_detail_show(0);
                })
            }, function (res) {
                layer.close(layer_index);
                layer.msg(res.info);
            });
        },
        edit_overview_detail: function (type, item_vendor_id) {
            let that = this;
            if (type == 'item') {
                if (that.overview_flow_data[0][item_vendor_id].flag_flow_detail_op_style == 2) {
                    that.$set(that.overview_flow_data[0][item_vendor_id], 'flag_flow_detail_op_style', 1);
                    that.$set(that.overview_flow_data[0][item_vendor_id].upload_cfg, 'showButton', false);
                    that.$set(that.overview_flow_data[0][item_vendor_id].upload_cfg, 'allowRemove', false);
                } else {
                    that.$set(that.overview_flow_data[0][item_vendor_id], 'flag_flow_detail_op_style', 2);
                    that.$set(that.overview_flow_data[0][item_vendor_id].upload_cfg, 'showButton', true);
                    that.$set(that.overview_flow_data[0][item_vendor_id].upload_cfg, 'allowRemove', true);
                }
            } else {
                if (that.overview_vendor_flow_data[0][item_vendor_id].flag_flow_detail_op_style == 2) {
                    that.$set(that.overview_vendor_flow_data[0][item_vendor_id], 'flag_flow_detail_op_style', 1);
                    that.$set(that.overview_vendor_flow_data[0][item_vendor_id].upload_cfg, 'showButton', false);
                    that.$set(that.overview_vendor_flow_data[0][item_vendor_id].upload_cfg, 'allowRemove', false);
                } else {
                    that.$set(that.overview_vendor_flow_data[0][item_vendor_id], 'flag_flow_detail_op_style', 2);
                    that.$set(that.overview_vendor_flow_data[0][item_vendor_id].upload_cfg, 'showButton', true);
                    that.$set(that.overview_vendor_flow_data[0][item_vendor_id].upload_cfg, 'allowRemove', true);
                }
            }
            //$.extend(true, that.flow_attr_val_cp, that.flow_attr_val);
            that.$nextTick(function () {
                that.init_multi_select();
            })

            if(that.is_mobile) {
                refresh_event();
            }
        },
        save_overview_detail: function (type, item_vendor_id) {
            let that = this;
            let e = $(event.target);
            let item_value = {};

            if (type == 'item') {
                $.each(that.overview_flow_data, function (flow_index, flow_data) {
                    if (flow_data.can_edit == 1) {
                        item_value[flow_data.category_flow_id] = that.item_value[item_vendor_id][flow_data.category_flow_id]
                    }
                })
            } else {
                $.each(that.overview_vendor_flow_data, function (flow_index, flow_data) {
                    if (flow_data.can_edit == 1) {
                        item_value[flow_data.category_flow_id] = that.item_value[item_vendor_id][flow_data.category_flow_id]
                    }
                })
            }
            let form_data = $(e).closest('form').serializeArray();
            var post_data = {};
            $.each(form_data,function(i,v){
                post_data[v.name] = v.value;
            })

            post_data.attr_info = JSON.stringify(item_value);
            let layer_index = layer.load();

            ajax(pim_api.URL_SAVE_OVERVIEW_DETAIL, post_data).then(function (res) {
                layer.close(layer_index);
                show_success_modal(function () {
                    that.item_detail_show(0);
                })
            }, function (res) {
                layer.close(layer_index);
                layer.msg(res.info);
            });
        },
        remove_main_tab: function () {
            let that = this;
            let e = $(event.target);
            let index = $(e).closest('.tab_el').index();
            let eid = $(e).closest('.tab_el').attr('id');
            let current_index = that.main_tab_obj.current_index();

            that.main_tab_obj.remove(index);

            if(index == current_index) {
                that.current_main_tab_index = that.main_tab_obj.get_length()-1;
                that.main_tab_obj.set_current_index(that.main_tab_obj.get_length()-1);
                that.main_tab_obj.trigger(that.main_tab_obj.get_length()-1);
            } else if(index < current_index) {
                that.current_main_tab_index = current_index - 1;
                that.main_tab_obj.set_current_index(current_index-1);
            } else {
            }

            item_tab_arr[eid] = null;

            if(that.is_mobile) {
                that.init_more_nav_el('.tab-swiper');
            }
        },
        remove_item_tab: function () {
            let that = this;
            let e = $(event.target);
            let index = $(e).closest('.tab_el').index();
            let current_index = that.item_tab_obj.current_index();

            that.item_tab_obj.remove(index);

            if(index == current_index) {
                that.current_item_tab_index = that.item_tab_obj.get_length()-1;
                that.item_tab_obj.set_current_index(that.item_tab_obj.get_length()-1);
                that.item_tab_obj.trigger(that.item_tab_obj.get_length()-1);
            } else if(index < current_index) {
                that.current_item_tab_index = current_index - 1;
                that.item_tab_obj.set_current_index(current_index-1);
            } else {
            }

            if(that.is_mobile) {
                that.init_more_nav_el('.tab-swiper2');
            }
        },
        show_filter: function () {
            let that = this;

            that.flag_show_filter = true;
        },
        show_filter_choose: function (key) {
            let that = this;

            let e = $(event.target).closest('.filter-criteria-selector');
            let filter_attr = $('.choose-area,.match-area');
            let choose_group = $('.choose-area.filter-' + key); // 鍙充晶寮瑰嚭閫夋嫨鑿滃崟

            let match_group = e.find('.match-area');
            if (e.hasClass('cur')) {
                e.removeClass('cur');
                filter_attr.hide();
                match_group.prev().show();
            } else {
                $('.filter-criteria-selector.cur .match-area').prev().show();
                e.addClass('cur').siblings().removeClass('cur');
                filter_attr.hide();
                choose_group.show();
                match_group.show();
                match_group.prev().hide();
                e.find('.btn-choose')
                    .addClass('close-choose')
                    .one('click', function () {
                        e.removeClass('cur');
                    });
            }
        },
        set_filter_data: function (type, event) {
            let that = this;
            let e = $(event.target);

            if(type == 1) {
                that.main_post_filter_data.view_by = $(e).closest('.item').data('value');

                //table list
                $('tr.list_attr_val_full').hide();
                $('td.switch-btn').removeClass('cur selected');
                $('td.switch-btn .hollow-arrow').removeClass('up');

                if(that.is_mobile) {
                    that.flag_show_filter = false;
                }
            } else if(type == 2) {
                //鍒囨崲鍒楄〃瑙嗗浘
                $('#show_tab').hide();
                that.main_post_filter_data.display_type = $(e).closest('li').data('value');
                return;
            } else if(type == 3) {
                let ul = $(e).closest('.multiselect-menu').find('.filter_list');
                if(that.is_mobile) {
                    ul = $(e).closest('#filter-box').find('.filter_list');
                }
                that.flag_filter_shadow_div = false;

                var name = $(e).data('name');
                var title = [];
                var value = [];
                ul.find(':checkbox:checked').each(function(i,v){
                    //if($(this).val() == -1) return;
                    title.push($(this).data('title'));
                    value.push($(this).val());
                });
                that.$set(that.post_filter_data, name, {
                    'val': value,
                    'title': title
                });
                if(that.is_mobile) {
                    that.flag_show_filter = false;
                } else {
                    $(e).closest('.multiselect-menu').hide();
                }

            } else if(type == 4) {
                //鎼滅储
                // var kw = $(e).closest('div.search').find('input').val();
                // that.main_post_filter_data.kw = kw;

            } else if(type == 5) {  //attr select
                let ul = $(e).closest('.choose-area').find('.filter_list');
                var name = $(e).data('name');
                var value = [];
                var title = [];
                ul.find(':checkbox:checked').each(function(i,v){
                    value.push($(this).val());
                    title.push($(this).data('title'));
                });
                that.$set(that.post_filter_data['attr'], name, {
                    'val': value,
                    'title': title
                });
                $('.filter-criteria-selector.filter-selector-' + name).trigger('click');
                // $(e).closest('.choose-area').prev('.filter-criteria-selector').trigger('click');

            } else if(type == 6) {  //attr range
                let ul = $(e).closest('ul');
                that.$set(that.post_filter_data['attr'], ul.data('name'), {
                    'from': ul.find('.data_from').val(),
                    'to': ul.find('.data_to').val()
                });

                $(e).closest('.menu').hide();

            }else if(type == 7) {  //attr value
                let ul = $(e).closest('.match-area');
                var name = $(e).data('name');

                that.$set(that.post_filter_data['attr'], name, {
                    'val': ul.find('input.field').val(),
                    'condition': ul.find('.select-box dt').text()
                });
                // ev.stopPropagation();
                $(e).closest('.filter-criteria-selector').trigger('click');
            } else if(type == 8) {  //attr remove
                var name = $(e).data('name');
                that.$set(that.post_filter_data['attr'], name, null);
                that.filter_data.user_filter.removeByValue(name);
            } else if(type == 9) {
                //that.post_filter_data = {
                //    attr:{}
                //};
                let main_filter_key = [];
                $.each(that.filter_data.main_filter, function (fk, fv) {
                    main_filter_key.push(fv.name);
                });
                $.each(that.post_filter_data.attr, function (p , v) {
                    if(p == 'category_id' || main_filter_key.indexOf(p) != -1 || that.filter_data.default_filter.indexOf(p) != -1) {
                        that.$set(that.post_filter_data.attr, p, {
                            'title': [],
                            'val': [],
                        });
                    } else {
                        that.$delete(that.post_filter_data.attr, p);
                    }
                })
                if(typeof that.filter_data.user_filter != 'undefined') {
                    that.filter_data.user_filter = [];
                }

            } else if (type == 10) {
                //宸︿晶鑿滃崟閫夋嫨category => top_category_id
                that.main_post_filter_data.top_category_id = $(e).closest('li').attr('data-category-id');
            } else if (type == 11) {
                //绛涢€夋敹钘廼tem鍒楄〃
                that.post_filter_data.collect.val = 1 - that.post_filter_data.collect.val;
            } else if (type == 12) {
                //鍒犻櫎filter attr

            } else if (type == 13) {
                //宸︿晶鑿滃崟鍙栨秷閫夋嫨category
                that.main_post_filter_data.top_category_id = 0;
            }
            that.user_filter_set();
            that.page_config.page = 0;
            //娓呯┖鍒楄〃
            that.item_list = [];
            that.main_tab_obj.trigger(0);
        },
        set_filter_page:function(){
            let that = this;
            let index = that.main_tab_obj.current_index();
            that.main_tab_obj.trigger(index);
        },
        user_filter_set:function(){
            let that = this;
            ajax(pim_api.URL_FILTER_SET, {attr_id : that.filter_data.user_filter}).then(function (res) {
                if(res.status==1){
                    $('#filter_set_box').hide();
                    that.$nextTick(function () {
                        refresh_event();
                    });
                    that.flag_show_filter_set=false;
                }else{
                    layer.msg(res.info);
                }
            }, function(res) {

            });
        },
        hide_shadow_div: function () {
            let that = this;

            that.flag_shadow_div = false;
            that.flag_show_nav = false;
            that.flag_close_btn = false;
            that.flag_add_new_element = false;
            that.flag_create_items_element = false;
            that.flag_data_revision_element = false;
            that.flag_flow_data_revision_element = false;
            that.flag_copy_item_element = false;
            that.flag_show_multi_item_no = false;
            that.flag_show_multi_group_no = false;
            that.flag_show_data_dimension = false;
            that.flag_add_flow_version_element = false;
            that.flag_show_flow_version_element = false;

            if(that.is_mobile) {
                if(that.flag_related_items_add) {
                    that.flag_related_items_add = false;

                    that.flag_show_related_items = true;
                    that.flag_shadow_div = true;
                    that.flag_close_btn = true;

                    that.flag_show_container = false;
                } else {
                    that.flag_show_related_items = false;
                    that.flag_show_container = true;
                }
            } else {
                that.flag_show_container = true;
                that.flag_show_gallery = false;
            }

        },
        hide_filter_shadow_div: function () {
            let that = this;

            that.flag_filter_shadow_div = false;
            $('.multiselect-menu').hide()
            if(that.is_mobile) {

            } else {
                that.flag_show_container = true;

                that.flag_show_gallery = false;
            }

        },
        init_select_category_tree: function() {
            let that = this;
            ajax(pim_api.URL_GET_CATEGORY_TREE, {}).then(function (res) {
                that.$set(that.category_list, 'category', res.data);
                that.$set(that.category_list, 'sub_category', []);
            });
        },
        change_sub_category: function (category_id) {
            let that = this;
            if (that.category_list.category[`${category_id}`] !== undefined && that.category_list.category[`${category_id}`].sub !== undefined) {
                that.$set(that.category_list, 'sub_category', (that.category_list.category[`${category_id}`].sub));
            } else {
                that.$set(that.category_list, 'sub_category', []);
            }
            let sub_category = $(event.target).closest(".select-box").parent('li').next().find('.select-box');
            that.$nextTick(function () {
                refresh_event();
                reset_select(sub_category);
            });
        },
        close_all_tabs: function () {
            let that = this;
            that.item_tab_obj.remove_all();
        },
        close_right_tabs: function () {
            let that = this;
            that.item_tab_obj.remove_all_right();
        },
        quick_goto: function () {
            let that = this;
            let e = $(event.target);
            if($(e).data('type') == 1) {
                if(that.is_mobile) {
                    $(e).closest('.item').find('.photo img').click();
                } else {
                    $(e).closest('.item').find('.photo').click();
                }
                let count = setInterval(function () {
                    if(that.flag_show_item_detail) {
                        $('#vendor_list .hd .btn').click();
                        clearInterval(count);
                    }
                }, 100);
            } else if($(e).data('type') == 2) {
                if(that.is_mobile) {
                    $(e).closest('.item').find('.photo img').click();
                    let count = setInterval(function () {
                        if(that.flag_show_item_detail) {
                            $('#btn_show_related_items').click();
                            clearInterval(count);
                        }
                    }, 100);
                    let count2 = setInterval(function () {
                        let obj = $('.related-items').find('[data-item_id='+$(e).data('item_id')+']');
                        if(that.flag_show_related_items && obj[0]) {
                            obj.click();
                            clearInterval(count2);
                        }
                    }, 100);
                } else {
                    $(e).closest('.item').find('.photo').click();
                    let count = setInterval(function () {
                        let obj = $('.related-items').find('[data-item_id='+$(e).data('item_id')+']');
                        if(that.flag_show_related_items && obj[0]) {
                            obj.click();
                            clearInterval(count);
                        }
                    }, 100);
                }
            }
        },
        click_top_category: function () {
            let that = this;
            let e = $(event.target).closest('li');
            if (e.hasClass('selected')) {
                let category_id = e.attr('data-category-id');
                that.post_filter_data.attr.category_id = {val : [], title : []};
                that.set_filter_data(13, event);
                that.sub_category_list = {};
                $.each(that.autolist.sub_category, function(k, v) {
                    if (v.list != undefined) {
                        $.each(v.list, function(id, cate) {
                            if (cate != undefined && id != undefined) {
                                that.$set(that.sub_category_list, id, cate);
                            }
                        });
                    }
                })
            } else {
                let category_id = e.attr('data-category-id');
                that.post_filter_data.attr.category_id = {val : [], title : []};
                that.set_filter_data(10, event);
                that.sub_category_list = (that.autolist.sub_category[`${category_id}`] && that.autolist.sub_category[`${category_id}`]['list'] != undefined) ? that.autolist.sub_category[`${category_id}`]['list'] : [];
            }
            $('#sub_category_filter .group li').removeClass('selected');
            $('#sub_category_filter .group :checkbox').each(function () {
                $(this).prop('checked', false);
            })
            return;
        },
        change_import_file: function(event) {
            let that = this;
            let e = $(event.target);
            let files = event.target.files;
            let file_arr = files[0].name.split('.')
            e.parent().next().find('.name .pre').html(file_arr[0]);
            e.parent().next().find('.name .pos').html('.' + file_arr[1]);
            e.parent().next().find('.file-size').html(getfilesize(files[0].size) + "KB");
            e.parent().next().find('.rows').show();
        },
        del_import_file: function(event) {
            let e = $(event.target);
            e.closest('.rows').hide();
            e.closest('.popup-box').find('input[type=file]').val([]);
        },
        show_flow_data_revision_modal: function () {
            let that = this;

            that.flag_flow_data_revision_element = true;

            if(that.is_mobile) {
                that.flag_show_result = false;
                that.flag_show_main_tab = false;
            } else {
                that.flag_shadow_div = true;
                that.flag_close_btn = true;
            }
            $('#flow-data-revision').show();
        },
        flow_data_revision_import: function () {
            let that = this;
            let e = $('#flow-data-revision').find("input[type=file]")[0];
            let files = e.files;
            if (files.length < 1) {
                layer.msg('Please Input File!');
                return false;
            }
            var fd = new FormData();
            fd.append("import_file", files[0]);
            fd.append("item_id", that.item_flow.id);
            $.ajax({
                url: pim_api.URL_IMPORT_ITEM_FLOW_UPDATE,
                type:'POST',
                data:fd,
                processData:false,  //tell jQuery not to process the data
                contentType: false,  //tell jQuery not to set contentType
                dataType:'json',
                success:function (res) {
                    if (res.status == 1) {
                        that.flag_flow_data_revision_element = false;
                        show_success_modal(function () {
                            that.item_detail_show(0)
                        })
                    } else {
                        layer.msg(res.info);
                    }
                },
                error:function(){
                    layer.msg('system error');
                }
            })
        },
        download_flow_excel: function () {
            let that = this;
            let e = $(event.target);
            let data = $(e).closest('form').serialize();
            window.open(pim_api.URL_DOWNLOAD_FLOW_EXCEL + '?' + data, '_blank');
        },
        download_flow_zip: function () {
            let that = this;
            let e = $(event.target);
            let data = $(e).closest('form').serialize();
            window.open(pim_api.URL_DOWNLOAD_FLOW_ZIP + '?' + data, '_blank');
        },
        confirm_flow_status: function (flow_index, item_vendor_id) {
            let that = this;
            if (that.flow_data[flow_index].confirm_status[item_vendor_id].confirm_status == 1) {
                return;
            }
            let e = $(event.target);
            let post_data = $(e).closest('form').serialize();
            var layer_index = layer.load(1,{shade :0.3});
            ajax(pim_api.URL_CONFIRM_FLOW_STATUS, post_data).then(function (res) {
                // layer.msg(res.info);
                layer.close(layer_index);
                show_success_modal(function () {
                    that.$set(that.flow_data[flow_index].confirm_status[item_vendor_id], 'confirm_status', 1);
                })
            }, function (res) {
                layer.msg(res.info);
                layer.close(layer_index);
            });
        },
        handle_column_sort: function (key) {
            let that = this;
            let e = $(event.target).closest('.sort');
            e.children().removeClass('cur');
            if (that.list_sort.hasOwnProperty(key)) {
                let sort = that.list_sort[key].sort;
                switch (sort) {
                    case 'asc':
                        sort = 'desc';
                        e.children().eq(1).addClass('cur');
                        break;
                    case 'desc':
                        sort = '';
                        break;
                    default:
                        sort = 'asc';
                        e.children().eq(0).addClass('cur');
                        break;
                }
                that.$set(that.list_sort[key], 'sort', sort)
                let del_k = -1;
                $.each(that.list_sort_order, function (k, v) {
                    if (v.key == key) {
                        if(sort == '') {
                            del_k = k;
                        } else {
                            that.list_sort_order[k].sort = sort;
                        }
                    }
                })
                if (del_k != -1) {
                    that.list_sort_order.splice(del_k, 1);
                    that.$delete(that.list_sort, key);
                }
            } else {
                let sort = {
                    key : key,
                    sort: 'asc',
                };
                that.$set(that.list_sort, key, sort);
                that.list_sort_order.push(sort);
                e.children().eq(0).addClass('cur');
            }
            that.set_filter_data(-1, event)
            // this.main_tab_obj.init(0);

        },
        hidden_input: function() {
            let that = this;
            let e = $(event.target);
            e.closest(".select-box").prev().val(e.data('id'));
        },
        show_img_list_detail: function() {
            let that = this;
            let e = $(event.target);
            if (e.closest(".item").find('.details').is(":hidden")) {
                e.closest(".item").find('.details').show();
            } else {
                e.closest(".item").find('.details').hide();
            }
        },
        download_item_excel: function(id) {
            let that = this;
            let e = $(event.target);
            window.open(pim_api.URL_DOWNLOAD_ITEM_EXCEL + '?item_id=' + id, '_blank');
        },
        click_item_vendor_flow: function(item_vendor_id) {
            let that = this;
            let e = $(event.target);
            let old_scrollTop = document.querySelector('.panel-r.slimscroll').scrollTop;
            let old_offsetTop = e.closest('.card ')[0].offsetTop;
            that.current_item_vendor_id = item_vendor_id;
            that.$nextTick(function () {
                let offsetTop = e.closest('.card ')[0].offsetTop;
                scrollToOffset('.panel-r.slimscroll', old_scrollTop + offsetTop - old_offsetTop);
            })
            return;
        },
        click_overview_flow: function(item_vendor_id) {
            let that = this;
            that.current_overview_item_vendor_id = item_vendor_id;
            return;
        },
        fast_search_item: function() {
            let that = this;
            that.flag_show_search_item_no = !that.flag_show_search_item_no;
        },
        flow_expand: function(flow_index) {
            let that = this;
            that.$set(that.flow_data[flow_index], 'flag_flow_detail_expand', 1);
        },
        flow_contract: function(flow_index) {
            let that = this;
            that.$set(that.flow_data[flow_index], 'flag_flow_detail_expand', 0);
        },
        overview_expand: function(expand) {
            let that = this;
            that.flag_overview_expand = expand;
        },
        show_data_correlation: function() {
            let that = this;
            let post = {
                item_id : that.item_flow.id
            };
            ajax(pim_api.URL_GET_ITEM_CORRELATION, post).then(function (res) {
                that.current_item_correlations = res.data.correlations;
                that.current_item_correlation_items = res.data.items;
                that.current_item_correlation_id = 0;
                that.current_item_correlation_attributes = [];
                that.flag_show_item_relate_list = true;
                that.flag_show_data_correlation = true;
                that.flag_show_add_related_item = false;
            }, function (res) {
                layer.msg(res.info);
                return false;
            });
        },
        show_item_relate_list: function () {
            let that = this;
            that.flag_show_item_relate_list = true;
        },
        quit_data_correlation: function () {
            let that = this;
            that.flag_show_data_correlation = false;
        },
        select_data_correction: function(correlation_id) {
            let that = this;
            let e = $(event.target);
            that.current_item_correlation_id = correlation_id;
            that.current_item_correlation_attributes = that.current_item_correlations[correlation_id].items;
            that.flag_show_item_relate_list = false;
        },
        add_related_item: function() {
            let that = this;
            let e = $(event.target);
            that.flag_show_add_related_item = true;
        },
        del_item_correlation: function(item_id) {
            let that = this;
            let post = {
                item_aid : that.item_flow.id,
                item_bid : item_id,
            };
            if(!window.confirm('Are you sure to delete?')) {
                return false;
            }
            ajax(pim_api.URL_DEL_CORRELATION_ITEM, post).then(function (res) {
                that.show_data_correlation();
            }, function (res) {
                layer.msg(res.info);
            });
        },
        del_item_correlation_attribute: function(item_correlation_attribute_id, item_id, correlation_attr_index) {
            let that = this;
            let e = $(event.target);
            let post = {
                item_correlation_attribute_id : item_correlation_attribute_id
            };
            if(!window.confirm('Are you sure to delete?')) {
                return false;
            }
            ajax(pim_api.URL_DEL_ITEM_CORRELATION_ATTRIBUTE, post).then(function (res) {
                that.current_item_correlation_attributes[item_id].splice(correlation_attr_index, 1);
                // if (that.current_item_correlation_attributes[item_id].length == 0) {
                //     that.$delete(that.current_item_correlation_attributes, item_id);
                // }
            }, function (res) {
                layer.msg(res.info);
            });
        },
        download_item_relationship: function(item_id) {
            let that = this;
            window.open(pim_api.URL_DOWNLOAD_ITEM_RELATIONSHIP + '?item_id=' + item_id, '_blank');
        },
        filter_complete: function () {
            let that = this;
            let e = $(event.target);
            var val = e.val().toLowerCase();
            var obj = e.closest('.choose-area').find('.filters-column li');
            obj.hide();
            obj.each(function(i,v){
                if($(this).find('.txt').text()=='ALL' || $(this).find('.txt').text().toLowerCase().search(val)!=-1){
                    $(this).show();
                }
            });
        },
        collapsed_flow_menu: function () {
            let that = this;
            let e = $(event.target);
            let btn = e.closest('.details-content').find('.ctrl-btn');
            let menu = btn.next();
            if (btn.hasClass('close')) {
                btn.removeClass('close').addClass('open');
                menu.addClass('collapsed');
            } else {
                btn.removeClass('open').addClass('close');
                menu.removeClass('collapsed');
            }
        },
        show_vendor_val_list : function(item_id) {
            let that = this;
            let e = $(event.target);
            let vendor_item = $("[data-level=aa][item_id=" + item_id + "]");
            if (e.hasClass('down')) {
                e.removeClass('down').addClass('up');
                vendor_item.show();
            } else {
                e.removeClass('up').addClass('down');
                vendor_item.hide();
            }
        },
        push_to_pk : function(item_vendor_id) {
            let that = this
            let load = layer.load();
            let post = {
                item_vendor_id : item_vendor_id,
                item_id : that.item_flow.id
            }
            ajax(pim_api.URL_PUSH_TO_PK, post).then(function (res) {
                layer.close(load);
                layer.msg(res.info);
            }, function (res) {
                layer.close(load);
                layer.msg(res.info);
            });
        },
        pull_ad : function(category_flow_id) {
            let that = this
            let load = layer.load();
            let post = {
                category_flow_id : category_flow_id,
                item_id : that.item_flow.id
            }
            ajax(pim_api.URL_PULL_AD, post).then(function (res) {
                layer.close(load);
                layer.msg(res.info);
                that.item_detail_show();
            }, function (res) {
                layer.close(load);
                layer.msg(res.info);
            });
        },
        show_data_dimension : function() {
            let that = this;
            that.flag_show_data_dimension = true;
            let e = $(event.target);
            let p = new Promise(function (resolve, reject) {
                that.flag_show_data_dimension = true;
                that.flag_shadow_div = true;
                that.flag_close_btn = true;
                resolve();
            }).then(function (res) {
                // $('.shade-div').show();
                // $('.close-btn').show();
                $('#add-dimension .form-list input').val('');
            }, function (res) {
            });
        },
        save_item_dimension : function () {
            let that = this;
            let e = $(event.target).closest('button');
            let post_data = $('#add_item_dimension').formSerialize();
            let layer_index = layer.load(1,{shade :0.3});
            ajax(pim_api.URL_ADD_ITEM_VENDOR, post_data).then(function (res) {
                layer.close(layer_index);
                that.hide_shadow_div();
                show_success_modal(function () {
                    that.item_detail_show(0);  //鏄剧ずitem璇︽儏
                })
            }).catch(function (res) {
                layer.msg(res.info);
                layer.close(layer_index);
            });
        },
        del_item_vendor: function (item_vendor_id, e) {
            if(!window.confirm('Are you sure to delete?')) {
                return false;
            }
            let load = layer.load();
            let that = this;
            let post_data = {
                item_vendor_id: item_vendor_id
            };
            ajax(pim_api.URL_DEL_ITEM_VENDOR, post_data).then(function (res) {
                layer.close(load);
                layer.msg(res.info, {
                    time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
                }, function () {
                    window.location.reload();
                });
                return;
                that.$set(that, 'current_item_vendor_id', 0);
                that.item_detail_show(0);
            }).catch(function (res) {
                layer.close(load);
            });
        },
        show_discussion : function () {
            let that = this;
            that.flag_discussion_show = !that.flag_discussion_show;
            that.set_cookie('detail_flag_discussion_show', that.flag_discussion_show);
            if (that.flag_discussion_show) {
                //鍒濆discussion
                that.init_discussion();
            }
        },
        init_discussion: function(item_id) {
            let that = this;
            let data = {
                item_id : item_id ? item_id : that.item_flow.id,
                sort : that.discussion_sort ? 'ASC' : 'DESC'
            }
            ajax(pim_api.URL_GET_DISCUSSIONS, data).then(function (res) {
                that.discussions = res.data;
                let discussion_id = that.get_cookie('detail_discussion_id');
                that.$nextTick(function () {
                    if (discussion_id != null && discussion_id != 0) {
                        $('#discussion_' + discussion_id).click();
                    }
                })
            }).catch(function (res) {
                layer.msg(res.info);
            });
        },
        init_comment: function() {
            let that = this;
            that.reset_comment();
            let data = {
                discussion_id : that.current_discussion.id,
                sort : that.comment_sort ? 'ASC' : 'DESC'
            }
            ajax(pim_api.URL_GET_COMMENTS, data).then(function (res) {
                that.comment_tree = res.data;
            }).catch(function (res) {
                layer.msg(res.info);
            });
            that.set_cookie('detail_discussion_id', that.current_discussion.id);
            that.$nextTick(function () {
                $(".pic_group").fancybox();
            })
        },
        add_discussion: function() {
            let that = this;
            let data = {
                item_id : that.item_flow.id,
                item_no : that.item_flow.no,
            }
            $.extend(data, that.discussion_data);
            ajax(pim_api.URL_ADD_DISCUSSION, data).then(function (res) {
                that.reset_discussion();
                that.init_discussion();
            }).catch(function (res) {
                layer.msg(res.info);
            });
        },
        add_comment: function() {
            let that = this;
            let data = {
                discussion_id : that.current_discussion.id,
            }
            $.extend(data, that.comment_data);
            ajax(pim_api.URL_ADD_COMMENT, data).then(function (res) {
                that.init_comment();
            }).catch(function (res) {
                layer.msg(res.info);
            });
        },
        change_upload_file: function(type) {
            let that = this;
            let e = $(event.target);
            let files = event.target.files;
            $.each(files, function (k, file) {
                var fd = new FormData();
                fd.append("file", file);
                $.ajax({
                    url: pim_api.URL_UPLOAD,
                    type:'POST',
                    data:fd,
                    processData:false,  //tell jQuery not to process the data
                    contentType: false,  //tell jQuery not to set contentType
                    dataType:'json',
                    success:function (res) {
                        if (res.status == 1) {
                            res.data[0].file_name = res.data[0].name.split('.')[0]
                            res.data[0].read_size = getfilesize(res.data[0].size);
                            res.data[0].icon = get_icon(res.data[0].extension);
                            if (type == 'discussion') {
                                that.discussion_data.upload_file.push(res.data[0]);
                                that.discussion_data.comment += '\n' + get_db_file_str(res.data[0]);
                            } else {
                                that.comment_data.upload_file.push(res.data[0]);
                                that.comment_data.comment += '\n' + get_db_file_str(res.data[0]);
                            }
                        }
                    },
                    error:function(){
                    }
                })
            });
            //娓呯┖鏂囦欢
            e.val("");
        },
        remove_upload_file: function(k, file, type) {
            let that = this;
            let str = get_db_file_str(file);
            if (type == 'discussion') {
                that.discussion_data.upload_file.splice(k, 1);
                that.discussion_data.comment = that.discussion_data.comment.replace(str, '');
            } else {
                that.comment_data.upload_file.splice(k, 1);
                that.comment_data.comment = that.comment_data.comment.replace(str, '');
            }
        },
        del_comment: function (comment_id) {
            let that = this;
            layer.confirm('Are you sure to delete?',{title:'Msg', btn: ['Sure','Cancel']}, function(index){
                ajax(pim_api.URL_DEL_COMMENT, {comment_id : comment_id}).then(function (res) {
                    if(res.status==1){
                        layer.msg('Delete Success!');
                        that.init_comment();
                    }else{
                        layer.msg('Delete Failed!');
                    }
                }).catch(function (res) {
                    layer.msg(res.info);
                });
            });
        },
        reset_comment: function() {
            let that = this;
            that.comment_data.comment = '';
            that.comment_data.high_priority = false;
            that.comment_data.upload_file = [];
            that.comment_data.parent_id = 0;
            that.comment_data.top_comment_id = 0;
            that.set_cookie('detail_discussion_id', 0);
        },
        reset_discussion: function() {
            let that = this;
            that.discussion_data.topic = '';
            that.discussion_data.comment = '';
            that.discussion_data.high_priority = false;
            that.discussion_data.upload_file = [];
        },
        show_flow_comment: function(flow_index) {
            let that = this;
            if (that.flow_data[flow_index].flag_flow_comment_show == 0 && that.flow_data[flow_index].comments.init == 0) {
                that.init_flow_comment(flow_index);
            }
            that.$set(that.flow_data[flow_index], 'flag_flow_comment_show', that.flow_data[flow_index].flag_flow_comment_show == 1 ? 0 : 1);
        },
        build_flow_comment_data: function(category_flow_id, top_comment_id, parent_id) {
            let that = this;
            return {comment : '', high_priority : false, top_comment_id : top_comment_id, parent_id : parent_id, attachments : [], item_id : that.item_flow.id, type : 'item', category_flow_id : category_flow_id, at_uids : []}
        },
        init_flow_comment: function(flow_index) {
            let that = this;
            ajax(pim_api.URL_GET_FLOW_COMMENTS, {item_id : that.item_flow.id, type : 'item', category_flow_id : that.flow_data[flow_index].category_flow_id, sort : that.flow_data[flow_index].flow_comment_sort}).then(function (res) {
                if(!that.flow_data[flow_index].hasOwnProperty('comments')) {
                    that.$set(that.flow_data[flow_index], 'comments', {});
                }
                that.$set(that.flow_data[flow_index].comments, 'init', 1);
                that.$set(that.flow_data[flow_index].comments, 'list', res.data.comments);
                that.$set(that.flow_data[flow_index].comments, 'total', res.data.total);
                that.$set(that.flow_data[flow_index].comments, 'comment_data', that.build_flow_comment_data(that.flow_data[flow_index].category_flow_id, 0, 0));
                that.$nextTick(function () {
                    $(".pic_group_" + flow_index).fancybox();
                })
            }).catch(function (res) {
                layer.msg(res.info);
            });
        },
        change_flow_comment_file: function (flow_index, attachments) {
            let that = this;
            let e = $(event.target);
            let files = event.target.files;
            $.each(files, function (k, file) {
                var fd = new FormData();
                fd.append("file", file);
                $.ajax({
                    url: pim_api.URL_UPLOAD,
                    type:'POST',
                    data:fd,
                    processData:false,  //tell jQuery not to process the data
                    contentType: false,  //tell jQuery not to set contentType
                    dataType:'json',
                    success:function (res) {
                        if (res.status == 1) {
                            res.data[0].is_img = res.data[0].is_img ? 1 : 0;
                            res.data[0].file_name = res.data[0].name.split('.')[0]
                            res.data[0].file_size = getfilesize(res.data[0].size);
                            res.data[0].icon = get_icon(res.data[0].extension);

                            attachments.push(res.data[0]);
                        }
                    },
                    error:function(){
                    }
                })
            });
            //娓呯┖鏂囦欢
            e.val("");
        },
        remove_flow_comment_file: function (f_index, attachments) {
            attachments.splice(f_index, 1);
        },
        add_flow_comment: function (comment_data, flow_index) {
            let that = this;
            ajax(pim_api.URL_ADD_FLOW_COMMENT, comment_data).then(function (res) {
                show_success_modal(function () {
                    that.init_flow_comment(flow_index);
                })
            }).catch(function (res) {
                layer.msg(res.info);
            });
        },
        del_flow_comment: function(id, flow_index) {
            let that = this;
            layer.confirm('Are you sure to delete?',{title:'Msg', btn: ['Sure','Cancel']}, function(index){
                ajax(pim_api.URL_DEL_FLOW_COMMENT, {flow_comment_id : id}).then(function (res) {
                    if(res.status==1){
                        layer.msg('Delete Success!');
                        that.init_flow_comment(flow_index);
                    }else{
                        layer.msg('Delete Failed!');
                    }
                }).catch(function (res) {
                    layer.msg(res.info);
                });
            });
        },
        reply_flow_comment: function(flow_index, top_comment, top_comment_id, parent_id) {
            let that = this;
            if(!top_comment.hasOwnProperty('comment_data')) {
                that.$set(top_comment, 'comment_data', that.build_flow_comment_data(that.flow_data[flow_index].category_flow_id, top_comment_id, parent_id))
            }
            top_comment.flag_show_reply = top_comment.flag_show_reply == 1 ? 0 : 1;
        },
        update_flow_comment_txt: function() {
            let that = this;
            that.$nextTick(function () {
                if (event.target.scrollHeight > 40) {
                    event.target.style.height = event.target.scrollHeight + "px";
                }
            })

        },
        init_flow_comment_autocomplete: function (comment_data) {
            let that = this;
            $(event.target).devbridgeAutocomplete({
                lookup: that.autolist.user,
                minChars: 1,
                delimiter: "@",
                onSelect: function (suggestion) {
                    if(comment_data.at_uids.indexOf(suggestion.id) == -1) {
                        comment_data.at_uids.push(suggestion.id);
                    }
                },
                triggerSelectOnValidInput: false,
                showNoSuggestionNotice: false
                //noSuggestionNotice: 'Sorry, no matching results'
            });
        },
        flow_comment_sort_set: function (flow_index) {
            let that = this;
            that.flow_data[flow_index].flow_comment_sort = that.flow_data[flow_index].flow_comment_sort == 'ASC' ? 'DESC' : 'ASC';
            that.init_flow_comment(flow_index);
        },
        //item images
        item_image : function(){
            let that = this;
            let post_data = {
                item_id : item_id
            }
            //let load = layer.load();
            //鏄剧ずgroup image
            ajax(pim_api.URL_SAMPLE_IMAGE, post_data).then(function (res) {
                //layer.close(load);
                if (res.status == 1) {
                    that.$set(that, 'image_fields', res.data.fields);
                    that.$set(that, 'image_list', res.data.image_list);
                    that.$set(that, 'image_date_list', res.data.image_date_list);
                    that.$set(that, 'image_dimension_attributes', res.data.dimension_attributes);
                    $.each(res.data.dimension_attributes, function (k, v) {
                        that.$set(that.image_vendor_checkbox, v.attribute_id, []);
                    })
                    return new Promise(function (resolve, reject) {
                        resolve(res.data);
                    });
                }
            }, function (res) {
            }).then(function (res) {
            }, function (res) {
            });
        },
        download_image : function () {
            let that = this;
            if (that.image_checkbox.length <=0) {
                return;
            }
            window.open(pim_api.URL_DOWNLOAD_PHOTOS + '?group_no=' + that.item_flow.no + '&photos=' + that.image_checkbox.join(',') , '_blank');
        },
        download_image_in_pdf : function () {
            let that = this;
            if (that.image_checkbox.length <=0) {
                return;
            }
            window.open(pim_api.URL_DOWNLOAD_PHOTOS_IN_PDF + '?group_no=' + that.item_flow.no + '&photos=' + that.image_checkbox.join(',') , '_blank');
        },
        card_expand : function(key, val) {
            let that = this;
            that.$set(this, key, val)
        },
        show_flow_version : function (flow_index, vendor_item_id) {
            let that = this;
            that.flag_add_flow_version_element = true;
            that.flow_version_flow_index = flow_index;
            that.flow_version_vendor_item_id = vendor_item_id;
            let e = $(event.target);
            let p = new Promise(function (resolve, reject) {
                that.flag_add_flow_version_element = true;
                that.flag_shadow_div = true;
                that.flag_close_btn = true;
                resolve();
            }).then(function (res) {
                // $('.shade-div').show();
                // $('.close-btn').show();
            }, function (res) {
            });
        },
        save_flow_version : function () {
            let that = this;
            let post_data = {
                item_id : that.item_flow.id,
                item_vendor_id : that.flow_version_vendor_item_id,
                category_flow_id : that.flow_data[that.flow_version_flow_index].category_flow_id
            }
            let load = layer.load();
            //鏄剧ずgroup image
            ajax(pim_api.URL_ADD_FLOW_VERSION, post_data).then(function (res) {
                //layer.close(load);
                if (res.status == 1) {
                    layer.close(load);
                    that.hide_shadow_div();
                } else {
                    layer.msg(res.info)
                }
            }, function (res) {
            }).then(function (res) {
            }, function (res) {
            });
        },
        show_flow_version_list : function (flow_index, vendor_item_id) {
            let that = this
            that.flow_version_flow_index = flow_index;
            that.flow_version_vendor_item_id = vendor_item_id;
            let post_data = {
                item_id : that.item_flow.id,
                item_vendor_id : that.flow_version_vendor_item_id,
                category_flow_id : that.flow_data[that.flow_version_flow_index].category_flow_id
            }
            if (that.flow_version_vendor_item_id > 0) {
                $.each(that.vendor_list, function(k, item_vendor) {
                    if (item_vendor.id == that.flow_version_vendor_item_id) {
                        that.flow_version_vendor_item = item_vendor;
                    }
                })
            }
            ajax(pim_api.URL_GET_FLOW_VERSION, post_data).then(function (res) {
                //layer.close(load);
                if (res.status == 1) {
                    that.flow_version_show_num = 6;
                    that.flow_version_list = res.data;
                    that.flow_version_index = that.flow_version_list.length > 0 ? 0 : -1;
                    //鎶妚ersion涓殑value淇濆瓨鍒皏ersion_item_value(鏍煎紡鍜宨tem_value涓€鏍�)涓紝鏂逛究缁勪欢鍙栧€硷紝item_vendor_id 鍙� v_ + version_id
                    that.flow_version_field_format();
                    let p = new Promise(function (resolve, reject) {
                        that.flag_show_flow_version_element = true;
                        that.flag_shadow_div = true;
                        that.flag_close_btn = true;
                        resolve();
                    }).then(function (res) {
                        // $('.shade-div').show();
                        // $('.close-btn').show();
                    }, function (res) {
                    });
                } else {
                    layer.msg(res.info)
                }
            });
        },
        flow_version_field_format: function () {
            let that = this;
            let item_value_tmp = {};
            let tmp = {};
            let val = {};
            let av = that.flow_data[that.flow_version_flow_index];
            tmp[av.category_flow_id] = {};

            $.each(av.groups, function (gk, gv) {
                $.each(gv.attrs, function (akk, avv) {
                    //initial value for multi select value and dynamic multi select
                    if(avv.type_id == 20) {
                        $.each(avv.child_attr, function (elk, el) {
                            let el_val = '';
                            if($.inArray(el.type_id, ['8', '10', '16'])!=-1) { el_val = []; }
                            // tmp[av.category_flow_id][el.id] =  {
                            //     val: el_val,
                            //     type_id: el.type_id
                            // };
                        });
                        tmp[av.category_flow_id][avv.id] =  {
                            val: [],
                            type_id: avv.type_id,
                            set: []
                        };
                    } else {
                        let val = '';
                        if($.inArray(avv.type_id, ['8', '10', '16', '23'])!=-1) { val = []; }
                        tmp[av.category_flow_id][avv.id] = { val: val, type_id: avv.type_id };
                    }
                });
            })
            let flow_version_value = {};
            $.each(that.flow_version_list, function (index, flow_version) {
                flow_version.item_vendor_id = 'v_' + flow_version.id;
                av[flow_version.item_vendor_id] = {};
                that.$set(av[flow_version.item_vendor_id], 'upload_cfg', {
                    gateway: pim_api.URL_UPLOAD,
                    key: 'file',
                    showButton: false,
                    allowRemove: false,
                    allowRotate: false
                });
                val = JSON.parse(JSON.stringify(tmp));
                $.each(tmp, function (cate_flow_id, item) {
                    $.each(item, function (ak, av) {
                        if(typeof flow_version.value[ak] != 'undefined') {
                            val[cate_flow_id][ak] = flow_version.value[ak];
                        }
                        if (av.type_id == 20) {
                            //set
                            if (val[cate_flow_id][ak].set != undefined) {
                                $.each(val[cate_flow_id][ak].set, function (set_line, set_arr) {
                                    $.each(set_arr, function (set_k, set_v) {
                                        val[cate_flow_id][set_v.attr.id] = set_v;
                                    });
                                })
                            } else {
                                val[cate_flow_id][ak].val = [];
                                val[cate_flow_id][ak].set = [];
                                val[cate_flow_id][ak].type_id = 20;
                            }
                        } else if (av.type_id == 24) {
                            val[cate_flow_id][ak].display_val = display_tinymce(val[cate_flow_id][ak].val);
                        }
                    })
                });
                flow_version_value[flow_version.item_vendor_id] = val;
            })
            that.flow_version_value = flow_version_value;
            $.extend(true, that.item_value_cp, that.item_value);
        },
        set_flow_version_show_num : function() {
            let that = this;
            if (that.flow_version_show_num <= 6) {
                that.flow_version_show_num = 999;
            } else {
                that.flow_version_show_num = 6;
            }
        }
    }
});
//vue end
let init_editor = false;
let editor_save_timestamp = 0;
function refresh_event() {

    selectBox('.select-box', -1);
    selectBox('.filter-store-select-box', -1);
    if (init_editor == false && document.querySelector( '#editor' )) {
        //瀵屾枃鏈粍浠�

        tinymce.init({
            selector: '#editor',
            plugins : 'print preview searchreplace autolink image link  table charmap hr advlist lists wordcount imagetools indent2em code imagetools powerpaste autoresize', //鏁扮粍鏂瑰紡
            toolbar: 'forecolor backcolor bold italic underline strikethrough | formatselect fontselect fontsizeselect | indent2em alignleft aligncenter alignright alignjustify outdent indent | link bullist numlist image table codesample |code undo redo',
            images_upload_url: pim_api.URL_EDITOR_UPLOAD,
            powerpaste_word_import: 'propmt',// 鍙傛暟鍙互鏄痯ropmt, merge, clear锛屾晥鏋滆嚜琛屽垏鎹㈠姣�
            powerpaste_html_import: 'propmt',// propmt, merge, clear
            powerpaste_allow_local_images: true,
            paste_data_images: true,
            autoresize_on_init: true,
            setup: editor => {
                this.editor = editor;
                editor.on('change', () => {
                    let timestamp = new Date().getTime();

                    const content = editor.getContent();
                    let category_flow_id = $('#editor').data('category_flow_id');
                    let attr_id = $('#editor').data('attr_id');
                    let item_vendor_id = $('#editor').data('item_vendor_id');
                    Vue.set(app.item_value[item_vendor_id][category_flow_id][attr_id], 'val', content);
                    Vue.set(app.item_value[item_vendor_id][category_flow_id][attr_id], 'display_val', display_tinymce(content));
                    document.getElementById("myiframe").contentWindow.location.reload();
                    console.log(timestamp - editor_save_timestamp)
                    if (timestamp - editor_save_timestamp > 3000) {
                        //3绉掕嚜鍔╯ave涓€娆�
                        editor_save_timestamp = timestamp;
                        app.auto_save_attr_value(item_vendor_id, {id:attr_id, category_flow_id:category_flow_id});
                    }
                });
                window.editor = editor;
            }
        });
        init_editor = true;
    }
}


function reset_select(select)
{
    let dt = select.children("dt");
    dt.html('Please Select');
    select.prev().val(0);
}

$(function () {
    $('.js_select2').select2();
    $('#category').on('change',function(){
        $('#sub_category').empty();
        var cate = $(this).val();
        if(cate_tree[cate]){
            $.each(cate_tree[cate]['sub'],function(i,v){
                $('#sub_category').append('<option value="'+v.id+'">'+v.title+'</option>');
            })
        }
    });

    $('.cancel_btn').click(function(){
        layer.closeAll();
    });

    function empty_main() {
        $('#main').find('#item_info_box').remove();
        $('#main').find('.tab-content').remove();
    }

    $('#main').on('click', '.actions-btn', function () {
        let $menu = $(this).closest('.item').find('.menu');
        if ($menu.is(':hidden')) {
            $menu.show();
        } else {
            $menu.hide();
        }
        return ;
    });
    $('#main').on('click', '.tabs .remove-btn', function () {
        //var index = $(this).cloest('li').index();
        $(this).closest('.tabs').find('li:first').click();
        $(this).closest('li').remove();
    });

    $('#main').on('click', '.show_detail_edit', function () {
        var url = "/CheckList/Pim/Index/detail?id="+$(this).data('id')+"&item_flow_id="+$(this).data('item_flow_id');
        window.open(url,'_blank');
    });

    $('#main').on('click', '.flow_toggle', function () {
        var ch_obj = $(this).closest('.p_nav').next('.c_nav');

        if(ch_obj.is(':visible')) {
            $(this).removeClass('icon-minus').addClass('icon-add');
            ch_obj.slideUp('fast');
        } else {
            $(this).removeClass('icon-add').addClass('icon-minus');
            ch_obj.slideToggle();
        }
    });

    function init_ui() {
        $('.js_select2:visible').select2();
        $('.js_datetime_ui:visible').each(function(){
            laydate.render({
                elem: this,
                trigger: 'click',
                type: 'datetime',
                lang: 'en'
            });
        });
        $('.js_date_ui:visible').each(function(){
            laydate.render({
                elem: this,
                trigger: 'click',
                lang: 'en'
            });
        });
    };

    //鍥炲埌椤堕儴
    $(document).on('click','.btn-top', function () {
        $('.overview-content .panel-l').animate({
            scrollTop: 0
        }, 400);
    });

    $(document).on('focus','.comment .textarea',function(){
        $('.comment-box .inner').addClass('active');
    });
    $(document).on('blur','.comment .textarea',function(){
        $('.comment-box .inner').removeClass('active');
    });

    //寮瑰嚭妗�
    // $('.btn-column').on('click', function () {
    //     $('.fullpage').addClass('active');
    // });
    $('.fullpage .cancel').on('click', function () {
        $('.fullpage').removeClass('active');
    });
    $(".cancel-btn").on('click',function(){
        app.hide_shadow_div();
    });
    // $(document).on('click',function(e){
    //     let target = $(e.target);
    //     if(target.closest(".pop-btn").length != 0 || target.closest(".popup-box").length != 0) return;
    //     app.hide_shadow_div();
    // })

    //鍒楄〃椤电殑鎼滅储鎸夐挳锛屽湪鐐瑰嚮鍏朵粬鍦版柟鐨勬椂鍊欐敹璧锋潵
    document.addEventListener('click',function(ev){
        if (ev.target.parentElement.classList.contains('item-search') || ev.target.classList.contains('btn-add') || ev.target.parentElement.classList.contains('btn-add')) {
            return;
        }
        app.flag_show_search_item_no = false;
    });

    //璇︽儏椤电殑related鐐瑰嚮灏忕澶翠箣澶栫殑鍦版柟鏀惰捣涓嬫媺閫夐」
    document.addEventListener('click',function(ev){
        if ((ev.target.parentElement.classList.contains('switch-btn') && ev.target.classList.contains('icon-triangle')) || ev.target.parentElement.classList.contains('drop-box')) {
            return;
        }
        $('.r-items .switch-btn').next().hide();
        $('.upload-file .switch-btn').next().hide();
    });

    //flow card 婊氬姩鏃惰仈鍔ㄥ乏渚у鑸爮
    $('.panel-r.slimscroll').on('scroll',function(ev){
        let $this = $(this);
        let card = '';
        $this.find(".card").each(function(index){
            let rect = ($(this)[0].getBoundingClientRect());
            if( rect.top < 160 && rect.top > 0){
                card = $(this).data('card');
            }
        });
        if (card.length != 0) {
            //宸﹁竟瀵艰埅鏍忛€変腑card
            let e = $('.panel-l .menu-list [data-target=".card-' + card +'"]');
            if (e.hasClass('d-firstNav')) {
                //褰撳墠鑿滃崟鍜宑ard鏄悓涓€涓垯涓嶆搷浣�
                let current_card = e.parent().parent().find('.selected .d-firstNav').data('card');
                if (current_card == card) {
                    return;
                }
                //涓€绾ц彍鍗曪紝鐩存帴淇敼
                dropSwift(e, '.d-firstDrop');
                let p = e.parent();
                p.parent().find('.selected').removeClass('selected');
                p.addClass('selected');
            } else {
                // 鍒ゆ柇褰撳墠涓€绾ф槸鍚︽湁鐐瑰嚮
                if (!e.parent().parent().parent().hasClass('selected')) {
                    //閫変腑鐨勬槸鍏朵粬涓€绾э紝闇€瑕佸師鏈墦寮€鐨勪竴绾у拰涓嬫媺鑿滃崟锛屾墦寮€鏂扮殑涓€绾у拰涓嬫媺鑿滃崟
                    if (e.parent().parent().parent().parent().find('.selected').length > 0) {
                        dropSwift(e.parent().parent().parent().parent().find('.selected .d-firstNav'), '.d-firstDrop');
                        e.parent().parent().parent().parent().find('.selected').removeClass('selected');
                    }
                    dropSwift(e.parent().parent().prev(), '.d-firstDrop');
                    e.parent().parent().parent().addClass('selected');
                }
                e.parent().parent().parent().find('.d-firstDrop .cur').removeClass('cur');
                e.parent().parent().find('.cur').removeClass('cur');
                e.parent().addClass('cur');
            }
        }
    });

    $('.comment-txt').on('input', function () {
        this.style.height = '40px';
        this.style.height = this.scrollHeight + "px";
        console.log(123);
    });

    $('.panel-r').scroll(function(ev){
        $('.autocomplete-suggestions').css('display','none');
    });

});

//uploads files
function remove_upload_file(obj){
    $(obj).closest('.js_upload_col').remove();

    window.event? window.event.cancelBubble = true : event.stopPropagation();
    return false;
}
function do_upload_file(obj,upload_type){
    var oParent = $('#flow_comment_box');
    var files_obj = obj.files;

    var files_count = $(files_obj).length;
    var is_upload = 0;

    oParent.find('.js_upload_input').attr('disabled',true);
    oParent.find('.loading').show();

    $(files_obj).each(function(index,file){
        var fd = new FormData();
        fd.append("upload_file", file);
        $.ajax({
            url: pim_config.api+'/uploadFile',
            type:'POST',
            data:fd,
            processData:false,  //tell jQuery not to process the data
            contentType: false,  //tell jQuery not to set contentType
            dataType:'json',
            success:function (res) {
                if (res.status == 1) {
                    var data_val = ' extension="'+res.data.extension+'" url="'+res.data.url+'" file_name="'+res.data.file_name+'" type="'+res.data.type+'"';
                    data_val += ' icon="'+res.data.icon+'"';
                    data_val += ' file_size="'+res.data.file_size+'"';
                    if(res.data.type.search(/^image/i)!=-1){
                        html = '<div class="edit-item pic js_upload_col" '+data_val+'>'
                        +'<img src="/CheckList/'+res.data.url+'" >'
                        +'<span class="btn-remove" onclick="remove_upload_file(this);"><i></i></span>'
                        +'</div>';
                        oParent.find(".flow_comment_file").append(html);
                    }else{
                        html = '<div class="edit-item file file js_upload_col" '+data_val+' onclick="window.open(\'/CheckList/Home/DownLoad/index?path='+res.data.url+'|'+res.data.file_name+'\',\'_blank\')">'
                        +'<i class="icon '+res.data.icon+'"></i>'
                        +'<div class="rows">'
                        +'<div class="file-name">'
                        +'<a href="javascript:;">'
                        +'<span class="pre" title="'+res.data.file_name+'">'
                        +res.data.file_name
                        +'</span>'
                        +'<span class="pos">'+res.data.extension+'</span>'
                        +'</a>'
                        +'<div class="file-size">'+(res.data.file_size/1024/1024).toFixed(2)+'Mb</div>'
                        +'</div>'
                        +'<span class="icon-download"></span>'
                        +'</div>'
                        +'<span class="btn-remove" onclick="remove_upload_file(this);"><i></i></span></div>';

                        oParent.find(".flow_comment_file").append(html);
                    }
                }

                is_upload++;
                if(is_upload==files_count){
                    oParent.find('.js_upload_input').attr('disabled',false);
                    oParent.find('.loading').hide();
                }

            },
            error:function(){
                is_upload++;
                if(is_upload==files_count){
                    oParent.find('.js_upload_input').attr('disabled',false);
                    oParent.find('.loading').hide();
                }
            }

        })
    });

    if(is_upload==files_count){
        oParent.find('.js_upload_input').attr('disabled',false);
        oParent.find('.loading').hide();
    }
    $(obj).val('');
}

//related show items
function show_drop_box(obj, parent = '.r-items') {
    let drop_box = $(obj).closest(parent).find('.drop-box');
    if (drop_box.is(':hidden')) {
        drop_box.show();
    } else {
        drop_box.hide();
    }
}

//excel set
function excel_select_clear(){
    $('#excel_list li').prependTo($('#excel_selection'));
    $('#excel_tpl_list li').removeClass('selected');
    excel_table_head();
}
function excel_table_head(){
    $('#tabReport .excel_table_head th:not([type="normal"])').remove();
    $('#tabReport .excel_table_body td:not([type="normal"])').remove();
    $('#excel_list li').each(function () {
        $('#tabReport .excel_table_head').append('<th>' + $(this).attr('data-title') + '</th>');
        $('#tabReport .excel_table_body').append('<td>-</td>');
    });
}
function post_form(URL, PARAMTERS) {
    //鍒涘缓form琛ㄥ崟
    var temp_form = document.createElement("form");
    temp_form.action = URL;
    temp_form.target = "_blank";
    temp_form.method = "post";
    temp_form.style.display = "none";
    //娣诲姞鍙傛暟
    var opt = document.createElement("textarea");
    opt.name = 'param';
    opt.value = JSON.stringify(PARAMTERS);
    temp_form.appendChild(opt);
    document.body.appendChild(temp_form);
    //鎻愪氦鏁版嵁
    temp_form.submit();
}


function dateFormat(fmt, date) {
    let ret;
    const opt = {
        "Y+": date.getFullYear().toString(),        // 骞�
        "m+": (date.getMonth() + 1).toString(),     // 鏈�
        "d+": date.getDate().toString(),            // 鏃�
        "H+": date.getHours().toString(),           // 鏃�
        "M+": date.getMinutes().toString(),         // 鍒�
        "S+": date.getSeconds().toString()          // 绉�
        // 鏈夊叾浠栨牸寮忓寲瀛楃闇€姹傚彲浠ョ户缁坊鍔狅紝蹇呴』杞寲鎴愬瓧绗︿覆
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}

function resetFilter() {
    $(document).on('change','.multiselect-menu .filter_list :checkbox, #filter-box .filter_list :checkbox',function(){
        if($(this).val()==-1){
            if($(this).is(':checked')){
                $(this).closest('.filter_list').find(':checkbox').prop('checked',true);
            }else{
                $(this).closest('.filter_list').find(':checkbox').prop('checked',false);
            }
        }else{
            if(!$(this).is(':checked') && $(this).closest('.filter_list').find(':checkbox[value="-1"]').is(':checked')){
                $(this).closest('.filter_list').find(':checkbox[value="-1"]').prop('checked',false);
            }
            if($(this).is(':checked')
                && !$(this).closest('.filter_list').find(':checkbox[value="-1"]').is(':checked')
                && $(this).closest('.filter_list').find(':checkbox[value!="-1"]:checked').length==$(this).closest('.filter_list').find(':checkbox[value!="-1"]').length){
                $(this).closest('.filter_list').find(':checkbox[value="-1"]').prop('checked',true);
            }
        }
        //console.log(app.post_filter_data.office_id.val);
    });
}

function setIframeHeight(iframe) {
    if (iframe) {
        var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
        if (iframeWin.document.body) {
            iframe.height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight;
            if ($('#editor_ifr').height() != 'undefined' && iframe.height == 0) {
                //浠巈dit鐘舵€佸垏鎹㈠埌棰勮鐘舵€侊紝闇€瑕佹寜瀵屾枃鏈紪杈戝櫒鐨勯珮搴︾粰iframe鏇存柊楂樺害
                iframe.height = $('#editor_ifr').height();
            }
        }
    }
}

  

posted @ 2023-08-22 10:37  热心市民~菜先生  阅读(10)  评论(0编辑  收藏  举报