zhangyanpeng
2024-08-04 d0fab39db8c50fb72d7311b0d4c80e475af47c76
module/md/page/product/page/batch_number.html
@@ -2,7 +2,7 @@
<html>
   <head>
      <meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache">
      <title>产品检验报告</title>
      <title>资料库</title>
      
      <script type="text/javascript">
         var pageVue = null;
@@ -14,57 +14,91 @@
         };
         
         function initVue() {
            new TreeVue({
            pageVue = new TabTableVue({
               el: "#vbody",
               data: {
                  // dataname: "md_prod_library",
                  dataname: "md_prod_category",
                  title: "产品检验报告",
                  tree_title: "产品类型",
                  title: "资料库",
                  dataname: "sys_dossier",
                  treeTxtFormatter: "{name}",
                  isTreeReadonly: true,
                  isTreeReadonly: false,
                  dataRequest: [
                     {
                        isClientMode: false,
                        name: "md_prod_category",
                        //url: "root/front/getOneDictionary",
                        //paramsobj: { code: "OrgType", },
                        isnotoption: false, //true:不是选项
                        code:"id",//是下拉选项时设置
                        label:"name",//是下拉选项时设置
                     },
                  ],
                  type_treedata: [],
                  defaultProps: {value: "name", label: "name"},
                  filterObjBydefault: {},
                  
                  dataname_p: "md_prod_library_detail",
                  pagesize_p: 10,
                  pagenum_p: 1,
                  total_p: 0,
                  tableData_p: [],
                  tableFields_p: [],
                  isRefresh_p: true,
                  tableHeight_p: 100,
                  tablefieldClick: {},
                  setSelectedRowId: null,
                  //filter
                  filterObj: {},
                  filterAttr: {
                     columnnumber: 3,
                     labelwidth: "100px",
                     labelposition: "right",
                     size: "medium",
                     border: "3px solid #c6c6c600"
                  },
                  filterFields: [],
                  filterfieldClick: {},
                  currentnodekey: "",
                  authorize_category_ids: "1<>1",
                  //Tab项设置
                  tabs: [
                     {code: "Open", name: "生效", dataname: "sys_dossier", orderby: "update_time", filterTxt: "state_code = 'Open'",},
                     {code: "Close", name: "作废", dataname: "sys_dossier", orderby: "update_time desc", filterTxt: "state_code = 'Cancel'",},
                     // {code: "Overdue", name: "逾期", dataname: "sys_dossier", orderby: "update_time desc", filterTxt: "date_to < NOW()", },
                     {code: "All", name: "全部", dataname: "sys_dossier", orderby: "update_time desc", filterTxt: "1=1",},
                  ],
                  tabsobj: {},
                  cbuttons_r: {},
                  ctabs_r: {},
                  report_url: {isshow: "T", field: "report_url", name: "模板设计", width: "100"},
                  clickChildNode: false,
                  currentnodekey: "",
                  nodeName: "",
                  maxlevel: 3,
               },
               created() {
               },
               
               mounted() {
                  var me = this;
                  if (window.top.tab.selected.option.page_id) {
                     // this.page_id = window.top.tab.selected.option.page_id;
                     getPageByPageId(window.top.tab.selected.option.page_id, function(result){
                        me.activeTabName="Open";
                        me.cbuttons_r = result.buttons_r;
                        //预加载数据
                        if (me.dataRequest.length) {
                           var result = {};
                           me.loadRequestData(me.dataRequest, result, function(data) {
                              me.dataRequestObj = data;
                              //预加载数据后给哪些字段设置options或formatterjson
                              let addNode = clone(data.md_prod_category);
                              // addNode.map( n => {
                              //    me.$set(n, "ishnodeadd", true);
                              // })
                              let md_prod_category_ = ArrayToTree(clone(addNode), "name", "parent_id");
                              me.type_treedata = clone(md_prod_category_);
                              me.initTabsPage(function() {
                                 // me.initData();
                                 if(me.type_treedata[0]) {
                                    const leafNode = me.findLeafNode(me.type_treedata[0]);
                                    let objInit = {
                                       data: leafNode,
                                       node: {},
                                       el: {},
                                    };
                                    me.currentnodekey = leafNode.id;
                                    // this.filterObjBydefault.category_id = leafNode.id;
                                    me.onNodeClick(objInit);
                                 }
                              });
                           });
                        }
                        else {
                           //获取数据
                           me.initTabsPage(function() {
                              me.initData();
                           });
                        }
                        
                        //获取数据
                        me.initData();
                        me.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
                           hideLoading();
                        });
@@ -73,82 +107,60 @@
               },
               
               methods:{
                  onhandleClick() {
                     this.selectTabObj = this.tabspageobj[this.activeTabName];
                     this.selectTabObj.filterObjBydefault = this.filterObjBydefault;
                     this.initData();
                  },
                  initData() {
                     var me = this;
                     this.onQuery(function(result, callback) {//查询后的回调,用于获取字段的
                        let initTreeData_ = ArrayToTree(clone(me.initTreeData), "name", "parent_id");
                        me.treeData = initTreeData_;
                     me.tableButtonClick();
                     this.doQueryByTab(function(result, callback) {//查询后的回调,用于获取字段的
                        if (result.meta && result.meta[me.selectTabObj.dataname] && result.meta[me.selectTabObj.dataname].fields) {
                           var metas = clone(result.meta[me.selectTabObj.dataname].fields);
                           var filterFields_ = [];
                           var tableFields_ = [];
                           // tableFields_.push(me.report_url);
                           metas.map(f=>{
                              f.isshow = "T";
                              if (f.isfilter) {
                                 filterFields_.push(clone(f));
                              }
                              else {
                                 var filter_f = clone(f);
                                 filter_f.isshow = "F";
                                 filterFields_.push(filter_f);
                              }
                              tableFields_.push(clone(f));
                           })
                           if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
                              // me.selectTabObj.filterFields = clone(me.default_filterFields);
                              // me.selectTabObj.tableFields = clone(me.default_tableFields);
                              me.selectTabObj.filterFields = clone(filterFields_);
                              me.selectTabObj.tableFields = clone(tableFields_);
                              //字段数组转字段obj,目的为了筛选时获取字段属性
                              me.fieldsToFieldsObj();
                              //设置字段事件
                              me.tableFieldClick();
                           }
                        }
                        
                        if (callback) {
                           callback();
                        }
                        me.getTableMeta();
                        //待完善
                        // if(me.treeData[0].children[0].children[0]) {
                        //    let objInit = {
                        //       data: clone(me.treeData[0].children[0].children[0]),
                        //       node: {},
                        //       el: {},
                        //    };
                        //    me.onNodeClick(objInit);
                        // }
                        //Brooke
                        // console.log(me.treeData);
                        // if(me.treeData[0]) {
                        //    let objInit = me.findNodeInit(me.treeData[0]);
                        //    console.log(objInit);
                        // }
                        //GPT3.5
                        // const deepestNode = me.findDeepestNode(me.treeData[0]);
                        // console.log(deepestNode);
                        if(me.treeData[0]) {
                           const leafNode = me.findLeafNode(me.treeData[0]);
                           let objInit = {
                              data: leafNode,
                              node: {},
                              el: {},
                           };
                           me.currentnodekey = leafNode.id;
                           me.onNodeClick(objInit);
                        }
                     });
                  },
                  //Brooke
                  // findNodeInit(arr) {
                  //    var me = this;
                  //    if(!arr.children || arr.children.length === 0) {
                  //       return arr;
                  //    } else {
                  //       let child = arr.children[0];
                  //       const nodeInit = findNodeInit(child);
                  //       if(nodeInit) {
                  //          return nodeInit;
                  //       } esle
                  //    }
                  // },
                  //GPT3.5
                  // findDeepestNode(node) {
                  //    if (!node.children || node.children.length === 0) {
                  //       return node;
                  //    }
                  //    let deepestChild = node.children[0];
                  //    for (let i = 1; i < node.children.length; i++) {
                  //       const child = node.children[i];
                  //       const deepestGrandchild = this.findDeepestNode(child);
                  //       if (deepestGrandchild.depth > deepestChild.depth) {
                  //       deepestChild = deepestGrandchild;
                  //       }
                  //    }
                  //    return deepestChild;
                  // },
                  //找到第一级树的最深层子节点
                  findLeafNode(node) {
                     if (!node.children || node.children.length === 0) {
                        return node;
@@ -162,23 +174,157 @@
                     }
                     return null;
                  },
                  //找到所有的子节点
                  findAllLeafNode(node) {
                     // if (!node.children || node.children.length === 0) {
                     //    return node;
                     // }
                     // for (let i = 0; i < node.children.length; i++) {
                     //    const child = node.children[i];
                     //    const leafNode = this.findLeafNode(child);
                     //    if (leafNode) {
                     //       return leafNode;
                     //    }
                     // }
                     // return null;
                  },
                  
                  onAddNode(obj) {
                     var data = obj.data, node = obj.node;
                  // 设置表格工具栏按键事件
                  tableButtonClick() {
                     var me = this;
                     var tablebuttonClick = {};
                     tablebuttonClick.Open = [
                        {
                           isbuttonshow: true,type:"primary",
                           code: "add",isselected: false,classname: "",
                           onclick: function(obj) {
                              me.onAddData('add')
                           }
                        },
                        {
                           isbuttonshow: true,type: "danger",
                           code: "repeal",isselected: true,classname: "",
                           disabled: function(selectRowList) {
                              var bo_ = true;
                              if (selectRowList[0] && selectRowList[0].state_code == 'Open') {
                                 bo_ = false;
                              }
                              return bo_
                           },
                           onclick: function(obj) {
                              me.cancelConfirm()
                           }
                        }
                     ]
                     tablebuttonClick.All = [
                        {
                           // name: "详情", // type: "primary", // icon: "el-icon-edit",
                           isbuttonshow: true,
                           code: "formdetail", isselected: true, classname: "",
                           onclick: function(obj) {
                              // obj.selectedList
                              me.openCustomerUser('browse', obj.selectedList[0]);
                           }
                        },
                     ]
                     if (tablebuttonClick[this.activeTabName]) {
                        this.selectTabObj.tablebuttonClick = tablebuttonClick[this.activeTabName];
                     }
                     else {
                        this.selectTabObj.tablebuttonClick = []
                     }
                  },
                  tableFieldClick() {
                     var me = this;
                     var tablefieldClick = {};
                     //表格字段事件设置
                     tablefieldClick = {
                        name: {//字段事件设置
                           val: {//有值时的点击事件
                              notclick_val: "",//不可点击的值,1、是数组["11","22"];2、以“;”分隔的字符串"111;222"
                              notclick_bindfield: [],//当该字段值等于指定字段值时不可点击["filterfield": "111"]
                              onclick: function(obj) {//数据值点击事件
                                 me.onShowData(obj);
                              },
                           },
                        },
                        template_attachment: {//字段事件设置
                           val: {//有值时的点击事件
                              notclick_val: "",//不可点击的值,1、是数组["11","22"];2、以“;”分隔的字符串"111;222"
                              notclick_bindfield: [],//当该字段值等于指定字段值时不可点击["filterfield": "111"]
                              onclick: function(obj) {//数据值点击事件
                                 //打开
                                 me.showFileImgByFileId(obj, "template_attachment", "template_attachment_id");
                              },
                           },
                        },
                     };
                     this.selectTabObj.tablefieldClick = tablefieldClick;
                  },
                  //附件预览
                  showFileImgByFileId(obj, filenamefield, fileidfield) {
                     let me = this;
                     var file_name = obj.row[filenamefield];
                     var file_id = obj.row[fileidfield];
                     if(file_id) {
                        var fileid = file_id;
                        let fileName = clone(file_name);
                        let index1 = fileName.lastIndexOf(".");
                        let index2 = fileName.length;
                        let suffix = fileName.substring(index1, index2).toLowerCase(); //后缀名
                        if (suffix == ".png" || suffix == ".jpg" || suffix == ".pdf") {
                           var row = {
                              fileid: fileid,
                              filename: fileName,
                              dataname: "sys_dossier"
                           }
                           var config = {
                              totab: false,
                              width: "1000px",
                              height: 800,
                              icon: "icon-product",
                              text: "附件预览",
                              id: "pdf_" + fileid,
                              url: "module/tool/page/popup_file_pdf.html",
                              data: row,
                              delta: {},
                              callback: function(obj, callback) {
                                 if (callback) {
                                    callback();
                                 }
                              }
                           };
                           this.doPopupByPublic(config);
                        }
                        else {//只可下载,不可预览
                           // handleDownloadUrl(fileid,false);
                           handleDownload(fileid, "sys_dossier");
                        }
                     }
                  },
                  //模板详情
                  onShowData(obj) {
                     var me = this;
                     var config = {
                        totab: false, //true: 以Tab导航的方式打开
                        width: "500px",
                        height: "300px",
                        totab: false,
                        icon: "icon-product",
                        text: "产品类型信息",
                        id: "product_type_edit",//totab: true时需设置,用于判断是否已打开此页面
                        url: "module/md/page/product/page/product_type_edit.html",
                        data: {},
                        delta: {},
                        sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
                        text: "资料详情",
                        id: "agreement_mould_edit" + obj.row.id,//totab: true时需设置,用于判断是否已打开此页面
                        // url: "module/agreement/page/agreement_mould_edit.html",
                        url: "module/md/page/product/page/batch_number_edit.html",
                        data: obj.row,
                        delta: {},//备案版本,
                        sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse",
                        callback: function(obj, callback) {
                           me.type_treedata = obj.options
                           me.onQuery();
                           if (callback) {
                              callback();
                           }
@@ -187,13 +333,155 @@
                     me.doPopupByPublic(config);
                  },
                  
                  //新增模板
                  onAddData(config) {
                     var me = this;
                     var type = "";
                     var delta_ = {
                        nodeKey: this.filterObjBydefault.category_id,
                     }
                     if (this.nodeName) {
                        type = this.nodeName;
                     }
                     var config = {
                        totab: false,
                        icon: "icon-product",
                        text: "资料信息" + " - " + type,
                        id: "agreement_mould_edit",//totab: true时需设置,用于判断是否已打开此页面
                        // url: "module/agreement/page/agreement_mould_edit.html",
                        url: "module/md/page/product/page/batch_number_edit.html",
                        data: {},
                        delta: delta_,
                        sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
                        callback: function(obj, callback) {
                           me.onQuery();
                           if (callback) {
                              callback();
                           }
                        }
                     };
                     me.doPopupByPublic(config);
                  },
                  //作废模板确认
                  cancelConfirm() {
                     let me = this;
                     data = me.selectTabObj.selectedrow;
                     Root.confirm('确定作废-' + data.name + '-吗?', '作废提示', {
                       confirmButtonText: '确定',
                       cancelButtonText: '取消',
                       type: 'warning'
                     }).then(() => {
                        me.doCloseApproval();
                     }).catch(() => {
                        Root.message({
                           type: 'info',
                           message: '已取消作废'
                        });
                     });
                  },
                  //作废模板
                  doCloseApproval() {
                     var me = this;
                     let param = {
                        dataname: me.dataname,
                        data: {
                           "sys_dossier" :{
                              id: me.selectTabObj.selectedrow.id,
                              state_code: "Cancel",
                              state_name: "作废",
                           }
                        },
                     }
                     Server.call("root/data/saveEntity", param, function(result) {
                        console.log(result);
                        Root.message({
                           type: 'success',
                           message: '已作废'
                        });
                        me.onQuery();
                     });
                  },
                  //点击节点
                  onNodeClick(obj) {
                     var data = obj.data, node = obj.node, el = obj.el;
                     var val = data.id;
                     console.log(obj);
                     if (data.parent_id) {
                        this.clickChildNode = true;
                        this.nodeName = data.name;
                     } else {
                        this.clickChildNode = false;
                     }
                     //old
                     if (data.children && data.children.length) {
                        // val = "";
                        data.children.map(r=>{
                           if (val == "") {
                              val = r.id;
                           }
                           else {
                              val += "','" + r.id;
                           }
                        })
                     }
                     // if (data.children && data.children.length) {
                     //    // val = "";
                     //    data.children.map(r=>{
                     //       if (val == "") {
                     //          val = r.id;
                     //       }
                     //       else {
                     //          val += "','" + r.id;
                     //       }
                     //    })
                     // }
                     // this.selectedrow = data;
                     this.filterObjBydefault.category_id = val;
                     this.activeTabName = "Open";
                     this.selectTabObj = this.tabspageobj[this.activeTabName];
                     this.onhandleClick();
                  },
                  //增加节点
                  onAddNode(obj) {
                     var data = obj.data, node = obj.node;
                     let me = this;
                     var config = {
                        totab: false, //true: 以Tab导航的方式打开
                        width: "500px",
                        height: "300px",
                        icon: "icon-product",
                        text: "资料分类",
                        id: "category_edit",//totab: true时需设置,用于判断是否已打开此页面
                        url: "module/md/page/product/page/category_edit.html",
                        data: {},
                        delta: {},
                        sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
                        callback: function(options_obj, callback) {
                           me.type_treedata = options_obj.options;
                           if (callback) {
                              callback();
                           }
                        }
                     };
                     me.doPopupByPublic(config);
                  },
                  //编辑节点
                  onEditNode(obj) {
                     var data = obj.data, node = obj.node;
                     var me = this;
                     Root.showPopup({
                        url: "module/md/page/product/page/product_type_edit.html",
                        url: "module/md/page/product/page/category_edit.html",
                        width: 800,
                        height: 230,
                        text: "资料分类",
                        data: data,
                        sceneCode: "edit",
                        callback: function(options_obj, callback) {
@@ -203,8 +491,10 @@
                           }
                        }
                     });
                  },
                  
                  //删除节点
                  onDelNode(obj) {
                     var data = obj.data, node = obj.node;
                     let me = this;
@@ -213,7 +503,7 @@
                       cancelButtonText: '取消',
                       type: 'warning'
                     }).then(() => {
                        me.dodeldata(data, node, "agm_category");
                        me.dodeldata(data, node, "md_prod_category");
                     }).catch(() => {
                        Root.message({
                           type: 'info',
@@ -221,11 +511,9 @@
                        });
                     });
                  },
                  dodeldata(row, node, tablename) {
                     if (row.id) {
                        let param = {
                           dataname: tablename,
                           id: row.id
                        }
@@ -247,318 +535,9 @@
                     }
                  },
                  
                  node_isShow(data, isShow) {
                     if (this.$refs[data.id]) {
                        this.$refs[data.id].style.display = isShow ? '' : 'none';
                     }
                  },
                  onNodeClick(obj) {
                     console.log(obj);
                     var data = obj.data, node = obj.node, el = obj.el;
                     var authorize_category_ids = "";
                     if (data.children && data.children.length) {
                        authorize_category_ids = "category_name='" + data.name + "'"
                     }
                     else {
                        authorize_category_ids = "product_name='" + data.name + "'"
                     }
                     // this.filterObjBydefault.category_name = val
                     this.selectedrow = data;
                     this.setSelectedRowId = null;//Brooke
                     this.filterObj = {};
                     this.pagenum_p = 1;
                     this.authorize_category_ids = authorize_category_ids;
                     this.getDataByNode();
                  },
                  // onNodeClick(data, node, el) {
                  //    var val = data.name;
                  //    if (data.children && data.children.length) {
                  //       val = "";
                  //       data.children.map(r=>{
                  //          if (val == "") {
                  //             val = r.name;
                  //          }
                  //          else {
                  //             val += "','" + r.name;
                  //          }
                  //       })
                  //    }
                  //    // this.filterObjBydefault.category_name = val
                  //    this.selectedrow = data;
                  //    this.pagenum_p = 1;
                  //    this.getDataByNode();
                  // },
                  getDataByNode() {
                  rowClick(obj){
                     var me = this;
                     if (!me.selectedrow.id) {
                        return
                     }
                     var filter_ = "";
                     // filter_ = " product_line_name like '" + this.selectedrow.name + "' or authorize_category_name like '" + this.selectedrow.name + "'"
                     //filter_ = " code is not null and code <> '' and (authorize_category_id = '" + me.selectedrow.type_id + "' or authorize_category_name like '" + me.selectedrow.name + "')"
                     filter_ =  this.authorize_category_ids;
                     var param_ = {
                        dataname: me.dataname_p,
                        filter: filter_,
                        orderby: "product_name",
                        page: {
                           pageno: me.pagenum_p,
                           pagesize: me.pagesize_p
                        },
                     }
                     Server.call("root/data/getEntitySet", param_, function(result) {
                        if (result && result.data && result.data.entityset) {
                           var data_ = result.data.entityset;
                           me.tableData_p = data_;
                           me.total_p = result.data.page.recordcount;
                        }
                        else {
                           me.total_p = 0;
                        }
                     })
                  },
                  getTableMeta() {
                     var me = this;
                     var param_ = {
                        dataname: this.dataname_p,
                        filter: "1<>1",
                        attachMeta: true,
                     }
                     Server.call("root/data/getEntitySet", param_, function(result) {
                        if (result.meta && result.meta[me.dataname_p] && result.meta[me.dataname_p].fields) {
                           var metas = clone(result.meta[me.dataname_p].fields);
                           var filterFields_ = [];
                           var tableFields_ = [];
                           metas.map(f=>{
                              f.isshow = "T";
                              //filter
                              if (f.isfilter) {
                                 filterFields_.push(clone(f));
                              }
                              else {
                                 var filter_f = clone(f);
                                 filter_f.isshow = "F";
                                 filterFields_.push(filter_f);
                              }
                              if(f.field == "rule_code") {
                                 f.isshow = "F";
                              }
                              tableFields_.push(clone(f));
                           })
                           if (!me.tableFields_p || (me.tableFields_p && me.tableFields_p.length == 0)) {
                              me.tableFields_p = clone(tableFields_);
                              me.filterFields = clone(filterFields_);
                              var filterObj_ = getDataByFields(me.filterObj, me.filterFields);
                              me.filterObj = clone(filterObj_);
                           }
                        }
                        //字段数组转字段obj,目的为了筛选时获取字段属性
                        me.fieldsToFieldsObj();
                        me.tableFieldClick();
                        me.tableDataAfter_p();
                     })
                  },
                  fieldsToFieldsObj() {
                     //字段转换
                     var formFieldsObj_ = {};
                     var tableFieldsObj_ = {};
                     this.formFieldsObj_ = {};
                     this.tableFieldsObj = {};
                     var filterFieldsObj_ = {};
                     this.filterFieldsObj = {};
                     this.formFields.map(f=>{
                        if (f.inputtypefilter) {
                           f.type = f.inputtypefilter;
                        }
                        formFieldsObj_[f.field] = f;
                     });
                     this.formFieldsObj = clone(formFieldsObj_);
                     if (this.tableFields && this.tableFields.length) {
                        var tableFields_ = TreeToArray(this.tableFields, "field");
                        tableFields_.map(f=>{
                           tableFieldsObj_[f.field] = f;
                        });
                        this.tableFieldsObj = clone(tableFieldsObj_);
                     }
                     this.filterFields.map(f=>{
                        if (f.inputtype == "date") {
                           f.type = "daterange";
                           f.filteroperator = "inScopeInclude";
                        }
                        if (f.inputtypefilter) {
                           f.type = f.inputtypefilter;
                        }
                        filterFieldsObj_[f.field] = f;
                     });
                     this.filterFieldsObj = clone(filterFieldsObj_);
                  },
                  tableFieldClick() {
                     var me = this;
                     //表格字段事件设置
                     this.tablefieldClick = {
                        material_code: {//字段事件设置
                           val: {//有值时的点击事件
                              notclick_val: "",//不可点击的值,1、是数组["11","22"];2、以“;”分隔的字符串"111;222"
                              notclick_bindfield: [],//当该字段值等于指定字段值时不可点击["filterfield": "111"]
                              onclick: function(obj) {//数据值点击事件
                                 var config = {
                                    totab: false, //true: 以Tab导航的方式打开
                                    width: "1100px",
                                    height: "520px",
                                    icon: "icon-product",
                                    text: "授权范围" + (obj.row.material_code ? "-" + obj.row.material_code : ""),
                                    id: "popup_sku_relation" + obj.row.id,//totab: true时需设置,用于判断是否已打开此页面
                                    url: "module/md/page/product/page/popup_sku_relation.html",
                                    data: obj.row,
                                    delta: "",
                                    filter: "product_id='"+obj.row.id+"'",
                                    sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse",
                                    callback: function(obj, callback) {
                                       if (callback) {
                                          callback();
                                       }
                                    }
                                 };
                                 me.doPopupByPublic(config);
                              },
                           },
                        },
                     };
                  },
                  tableDataAfter_p() {
                     var me = this;
                     if (this.tableFields_p.length > 0){
                        this.isRefresh_p = false;
                        this.$nextTick(function(){
                           this.isRefresh_p = true;
                           this.$nextTick(function(){
                              var el_list = [];
                              me.tableHeight_p = me.treeHeight;
                           })
                        })
                     }
                  },
                  onQueryAfter() {
                     this.pagenum_p = 1;
                     this.tableData_p = [];
                     this.total_p = 0;
                  },
                  getData_p(page) {
                     this.pagesize_p = page.pagesize;
                     this.pagenum_p = page.pagenum;
                     this.filterQuery();
                  },
                  getRow(obj) {
                     this.setSelectedRowId = clone(obj.row.id);
                  },
                  setRuleValue() {
                     let me = this;
                     let obj ={
                        row: {
                           id: me.setSelectedRowId,
                        },
                     }
                     var config = {
                        totab: false, //true: 以Tab导航的方式打开
                        width: "600px",
                        height: "500px",
                        icon: "icon-product",
                        text: "为 " + obj.row.id + " 设置下单倍数",
                        id: "popup_setRuleValue",//totab: true时需设置,用于判断是否已打开此页面
                        url: "module/md/page/product/page/popup_setRuleValue.html",
                        data: obj.row,
                        delta: "",
                        // filter: "id = '3018004'",
                        sceneCode: "edit",//"refuseedit",//"approval", //"add"//"browse",
                        callback: function(obj, callback) {
                           me.filterQuery();
                           if (callback) {
                              callback();
                           }
                        }
                     };
                     me.doPopupByPublic(config);
                  },
                  filterQuery() {
                     var me = this;
                     // var filter_ = " code is not null and code <> '' and (authorize_category_id = '" + me.selectedrow.type_id + "' or authorize_category_name like '" + me.selectedrow.name + "')"
                     var filter_ = " code is not null and code <> '' and " + me.authorize_category_ids;
                     filter_ = me.getFilterData(filter_, me.filterObj, me.filterFieldsObj);
                     console.log(filter_);
                     var param_ = {
                        dataname: me.dataname_p,
                        filter: filter_,
                        orderby: "name",
                        page: {
                           pageno: me.pagenum_p,
                           pagesize: me.pagesize_p
                        },
                     }
                     Server.call("root/data/getEntitySet", param_, function(result) {
                        if (result && result.data && result.data.entityset) {
                           var data_ = result.data.entityset;
                           me.tableData_p = data_;
                           me.total_p = result.data.page.recordcount;
                        }
                        else {
                           me.total_p = 0;
                        }
                     })
                  },
                  onInitFilter: function() {
                     this.filterObj = {};
                     this.filterQuery();
                  },
                  onDownload() {
                     let me = this;
                     let param = {
                        ioname:"export_md_prod_library_detail",
                        orderby: "",
                        token: Root.getToken()
                     }
                     window.top.vue.textdownloadForm(param);
                     me.selectTabObj.selectedrow = obj.row;
                  },
               }
            });
@@ -569,7 +548,7 @@
         });
      </script>
      <style>
         /*  在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */
         /* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */
         [v-cloak] {
            display: none !important;
         }
@@ -577,9 +556,6 @@
             overflow: hidden;
             position: relative;
             padding-left: 20px;
         }
         .nodeLabel {
             max-width: 220px !important;
         }
      </style>
      
@@ -590,126 +566,83 @@
         <div id="page_root">
            <div class="topbar">
               <span>{{title}}</span>
               <div style="float: right; margin-right: 10px">
                  <el-button v-show="cbuttons_r.export" @click="onDownload":icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
               <div style="float: right; margin-right: 18px;">
                  <el-button v-show="cbuttons_r.Add" :disabled="!clickChildNode" @click="addData" :icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}</el-button>
                  <!-- <el-button v-show="activeTabName == 'Open'" :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && selectTabObj.selectedrow.state_code == 'Open')" type="danger" @click="cancelConfirm">作 废</el-button> -->
               </div>
            </div>
            
            <div class="h_dialog__body">
               <div :style="{position: 'absolute', left: '10px', width: '320px', top: '40px', bottom: '10px', border: '1px solid #ccc'}">
               <div style="position: absolute;left: 10px; top:45px;width: 320px; bottom: 10px;border: 1px solid #ccc;">
                  <div style="height: 32px;line-height: 32px;border-bottom: 1px solid #ccc ;">
                     <span style="font-size: 14px;margin-left: 20px;">{{tree_title}}</span>
                     <span style="font-size: 14px;margin-left: 20px;">资料分类</span>
                  </div>
                  <div :style="{padding: '10px 0', height: treeHeight - 55 + 'px', overflow: 'auto'}">
                     <h-tree
                     v-if="isRefresh"
                     :tree-data="treeData"
                  <h-tree
                     v-if="type_treedata && type_treedata.length"
                     :tree-data="type_treedata"
                     :tree-txt-formatter="treeTxtFormatter"
                     :currentnodekey="currentnodekey"
                     :is-readonly="isTreeReadonly"
                     :currentnodekey="currentnodekey"
                     :maxlevel = "maxlevel"
                     
                     @node-click="onNodeClick"
                     @add-node="onAddNode"
                     @edit-node="onEditNode"
                     @del-node="onDelNode"
                     >
                     </h-tree>
                     <!-- <el-tree ref="hierTree" class="filter-tree" node-key="id" :indent="24"
                      default-expand-all
                      highlight-current
                      :data="treeData"
                      show-checkbox
                      :expand-on-click-node="true"
                      @node-click="onNodeClick"
                      >
                        <span class="custom-tree-node z_menu_tree" slot-scope="{ node, data, itm }"
                         @mouseenter="node_isShow(data, true)"
                         @mouseleave="node_isShow(data, false)"
                        >
                           <span>
                              <div class="nodeLabel nodeLabel_l" style="height: 32px; line-height: 32px;">
                              </div>
                              <div class="nodeLabel z_left_menu_tree_txt">
                                 <i v-if="!node.isLeaf" :class="!node.expanded ? 'el-icon-plus':'el-icon-minus'" style="font-size: 10px; margin-right: 10px; border: 1px solid #a7a9a9; color: #a7a9a9;"></i>
                              </div>
                              <div class="nodeLabel z_left_menu_tree_txt">
                                 <span>{{ data.name }}</span>
                                 <el-badge :ref="'dadgeid_' + data.id" v-show="data.isBadge ? true : false" is-dot class="item">
                                 </el-badge>
                              </div>
                           </span>
                           <span>
                              <div :ref="data.id" v-show="false" class="nodeLabel" style="width: 128px;max-width: 128px;">
                                 <el-button v-if="!data.parent_id" type="text"
                                 @click.stop="addNode(data,node)" class="z_node_button" icon="el-icon-circle-plus-outline">
                                 </el-button>
                                 <el-button type="text"
                                 @click.stop="editNode(data,node)" class="z_node_button" icon="el-icon-edit">
                                 </el-button>
                                 <el-button v-if="!(data.children && data.children.length)" type="text"
                                 @click.stop="delNode(data,node)" class="z_node_button" icon="el-icon-delete">
                                 </el-button>
                              </div>
                              <div class="nodeLabel" style="margin-right: 30px;">
                                 <span v-if="!node.isLeaf">{{data.children.length}}</span>
                              </div>
                           </span>
                        </span>
                     </el-tree> -->
                  </div>
                  </h-tree>
               </div>
               <div :style="{position: 'absolute', left: '340px', right: '10px', top: '40px', bottom: '10px', border: '1px solid #ccc'}">
               <div style="position: absolute;left: 340px; top:45px; right: 10px; bottom: 10px;border: 1px solid #ccc;">
                  <div>
                     <div style="height: 32px; border-bottom: 1px solid #aaa;">
                        <div class="table_title" style="float: left;">
                           <span>产品列表</span>
                        </div>
                        <div style=" text-align: right; ">
                           <el-button v-show="cbuttons_r.RuleValue" :disabled="!(setSelectedRowId)" @click="setRuleValue" >设置下单倍数</el-button>
                        </div>
                     <el-tabs v-model="activeTabName" @tab-click="handleClick">
                        <el-tab-pane v-for="(tab, k) in tabs" :label="tab.name" :name="tab.code" :key="k"></el-tab-pane>
                     </el-tabs>
                  </div>
                  <!-- <div class="topbar-line">
                     <div class="query-bar">
                        <h-form-filter v-if="selectTabObj.filterFields" ref="form1"
                           :form-attr="filterAttr"
                           :table-fields="selectTabObj.filterFields"
                           :form-data="selectTabObj.filterObj"
                           :table-field-click="selectTabObj.filterfieldClick"
                           v-on:on-query="onQuery"
                           v-on:on-init-query="onInitFilter"
                           v-on:on-edit-query="onEditFilter"
                           >
                        </h-form-filter>
                     </div>
                     <div class="topbar-line">
                        <!-- <div class="query-icon">
                           <i class="iconfont icon-query"></i>
                        </div> -->
                        <div class="query-bar">
                           <!-- <h-form-filter
                              ref="form1"
                              :form-attr="filterAttr"
                              :table-fields="filterFields"
                              :form-data="filterObj"
                              :table-field-click="filterfieldClick"
                              v-on:on-query="filterQuery"
                              v-on:on-init-query="onInitFilter"
                              >
                           </h-form-filter> -->
                        </div>
                     </div>
                  </div> -->
                  <div class="h_dialog__body">
                     <h-table
                        v-if="isRefresh_p"
                        ref="table_p"
                        :table-fields="tableFields_p"
                        :table-data="tableData_p"
                        :pagesize="pagesize_p"
                        :pagenum="pagenum_p"
                        :total="total_p"
                        :table-height="tableHeight_p - 132"
                        v-if="isRefresh && selectTabObj.tableFields"
                        ref="table1"
                        :table-fields="selectTabObj.tableFields"
                        :table-data="selectTabObj.tableData"
                        :is-edit-table-data="selectTabObj.isEditTableData"
                        :pagesize="selectTabObj.pagesize"
                        :pagenum="selectTabObj.pagenum"
                        :total="selectTabObj.total"
                        :table-height="selectTabObj.tableHeight - 10"
                        :table-field-click="selectTabObj.tablefieldClick"
                        :is-show-index="selectTabObj.isShowIndex"
                        :tableloading="tableloading"
                        :isdraggableorder="false"
                        :is-highlight-row="true"
                        :table-field-click="tablefieldClick"
                        :isfilterfield="false"
                        :table-buttons-click="selectTabObj.tablebuttonClick"
                        
                        v-on:get-data="getData_p"
                        v-on:row-click="getRow"
                        v-on:get-data="getData"
                        v-on:edit-data="editData"
                        v-on:row-click="rowClick"
                        v-on:order-fields="orderTableFields"
                     >
                     </h-table>
                  </div>
               </div>
            </div>
         </div>
      </div>