From d0fab39db8c50fb72d7311b0d4c80e475af47c76 Mon Sep 17 00:00:00 2001 From: zhangyanpeng <bob.zhang@highdatas.com> Date: 星期日, 04 八月 2024 00:34:02 +0800 Subject: [PATCH] 调整 --- module/md/page/customer/page/customer_list_account.html | 2 module/md/page/product/page/batch_number.html | 995 +++++++++++++--------------- module/flow/page/flow_inventory_list.html | 8 module/system/page/main.html | 20 module/md/page/product/page/batch_number_edit.html | 337 ++++++-- module/md/page/product/page/category_edit.html | 653 +++++++++++++++++++ 6 files changed, 1,369 insertions(+), 646 deletions(-) diff --git a/module/flow/page/flow_inventory_list.html b/module/flow/page/flow_inventory_list.html index b48fe3d..c8d7582 100644 --- a/module/flow/page/flow_inventory_list.html +++ b/module/flow/page/flow_inventory_list.html @@ -27,7 +27,7 @@ }, tabs: [], tabsobj: {}, - + isShowTab: false, dataRequest: [], authTableFields: [ {field: "code", name: "鍖婚櫌缂栫爜", isshow: "T", align: "center",width: "150"}, @@ -1033,16 +1033,16 @@ <span>鎶ュ憡鏃ユ湡锛�</span> <span v-if="selectTabObj && selectTabObj.code == 'month'">{{newdate_month}}</span> <span v-if="selectTabObj && selectTabObj.code == 'daily'">{{newdate_day}}</span> - <el-radio-group style="margin-left: 10px;" + <!-- <el-radio-group style="margin-left: 10px;" v-if="selectTabObj && selectTabObj.filterObj && selectTabObj.code=='month'" v-model="selectTabObj.filterObj.dataversion" size="mini" fill="#4cb108"> <el-radio-button label="鏈堝害鍒濈増">鍒濈増</el-radio-button> <el-radio-button label="鏈堝害缁堢増">缁堢増</el-radio-button> - </el-radio-group> + </el-radio-group> --> </div> </div> - <div> + <div v-show="isShowTab"> <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> diff --git a/module/md/page/customer/page/customer_list_account.html b/module/md/page/customer/page/customer_list_account.html index 169c84e..62d6210 100644 --- a/module/md/page/customer/page/customer_list_account.html +++ b/module/md/page/customer/page/customer_list_account.html @@ -22,7 +22,7 @@ {code: "orglist", name: "鍌ㄥ", dataname: "md_org_customer", filterTxt: "", orderby: "md_org.update_time desc, md_org.code"}, // {code: "distributorlist", name: "閰嶉�佸晢鍒楄〃", dataname: "md_org_customer", filterTxt: "md_org.source='DMS' and md_org.state_code='Open'", orderby: "md_org.update_time desc, md_org.code"}, // {code: "nccsy", name: "NCC棣栬惀", dataname: "md_org_account_ncc", filterTxt: "1=1", orderby: "md_org_account_ncc.update_time desc, code"}, - {code: "WaitOpen", name: "棰勫悎浣�", dataname: "md_org_account", filterTxt: "(md_org_account.state_code='OpeningApproval' or md_org_account.state_code='Open')", orderby: "md_org_account.update_time desc, md_org_account.code"}, + {code: "WaitOpen", name: "棰勫悎浣�", dataname: "md_org_account", filterTxt: "(md_org_account.state_code='OpeningApproval' or md_org_account.state_code='Open' or md_org_account.state_code='CooperateApproval')", orderby: "md_org_account.update_time desc, md_org_account.code"}, {code: "Open", name: "鍚堜綔涓�", dataname: "md_org_partnership", filterTxt: "md_org_account.state_code='Incooperation'", orderby: "md_org_account.update_time desc, md_org_account.code"}, {code: "Close", name: "宸查��鍑�", dataname: "md_org_account", filterTxt: "md_org_account.state_code='Close'", orderby: "md_org_account.update_time desc, md_org_account.code"}, {code: "All", name: "鍏ㄩ儴", dataname: "md_org_account", filterTxt: "1=1", orderby: "md_org_account.update_time desc, md_org_account.code"}, diff --git a/module/md/page/product/page/batch_number.html b/module/md/page/product/page/batch_number.html index 0c066d2..66c9858 100644 --- a/module/md/page/product/page/batch_number.html +++ b/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; + //棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson + 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_); + + //瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴�� + 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: 浠ab瀵艰埅鐨勬柟寮忔墦寮� - 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: 浠ab瀵艰埅鐨勬柟寮忔墦寮� + 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_); - } - } - //瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴�� - 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: 浠ab瀵艰埅鐨勬柟寮忔墦寮� - 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: 浠ab瀵艰埅鐨勬柟寮忔墦寮� - 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> - /* 鍦╲ue.js涓� v-cloak 杩欎釜鎸囦护鏄槻姝㈤〉闈㈠姞杞芥椂鍑虹幇 vuejs 鐨勫彉閲忓悕鑰岃璁$殑 */ + /* 鍦╲ue.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> diff --git a/module/md/page/product/page/batch_number_edit.html b/module/md/page/product/page/batch_number_edit.html index 2401e88..82ab5a4 100644 --- a/module/md/page/product/page/batch_number_edit.html +++ b/module/md/page/product/page/batch_number_edit.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; @@ -15,35 +15,24 @@ new FormVue({ el: "#vbody", data: { - dataname: "md_batch", - title: "娣诲姞鎵瑰彿", + dataname: "sys_dossier", + title: "妯℃澘淇℃伅", + formAttr: { istitle: false, - title: "鎵瑰彿淇℃伅", + title: "琛ㄥ崟鍚嶇О", columnnumber: 2, - labelwidth: "140px", + labelwidth: "100px", labelposition: "left",//"left",// right//top size: "mini", border: "10px solid #c6c6c600" }, - formFields: [], - default_formFields: [ - {field: "field11", name: "浜у搧绾�", isshow: "T"}, - {field: "field22", name: "浜у搧缂栫爜", isshow: "T"}, - {field: "name", name: "浜у搧鍚嶇О", isshow: "T", type:"popup"}, - {field: "batchnumber", name: "鎵瑰彿", isshow: "T"}, - {isshow: "T", field: "field33",name: "浜у搧妫�楠屾姤鍛�", type: "span", buttonarrayname: [{type: "isnotdatashow", buttonname:"鏂囦欢涓婁紶",code:"upload", icon: "el-icon-upload", classname: "form_uploadfile"},{type:"isdata", buttonname: "鏌ョ湅鏂囦欢", icon: "el-icon-search",code:"showfile", classname: "form_showfile"},{type: "isdatashow", buttonname: "鍒犻櫎闄勪欢", icon: "el-icon-delete",code:"delfile", classname: "form_delfile"}], required: true}, - ], newformData: { - //id: uuid_short(), - // code: createCode("BA"), - create_time: createDatetime(), - status: "input", - state_name: "鑽夌", - creator_name: window.top.vue.userinfo.name, - type_code: "", - type_name: "", + state_code: "Open", + state_name: "鐢熸晥", + type: "agreement", + // creator_id: }, formData: {}, @@ -51,32 +40,32 @@ isedit: false,//鎻愪氦鍓嶇紪杈戯紝淇濆瓨/鎻愪氦 isrefuseedit: false,//鎷掔粷鍚庣紪杈戯紝淇濆瓨/鍐嶆鎻愪氦 isapproval: false,//瀹℃壒锛屽悓鎰�/鎷掔粷/杞姙/閫�鍥� - iscommit: false,//鎻愪氦鏍囪 //寮圭獥鍙傛暟 popupParames: {}, //瀛楁璁剧疆 - tablefieldClick: {}, formfieldClick: {}, }, created() { this.popupParames = clone(Root.popupParames); - this.title = this.popupParames.title || this.popupParames.text + this.title = this.popupParames.title || this.popupParames.text; + if (this.popupParames.data) { this.formData = clone(this.popupParames.data); } if (this.popupParames.sceneCode) { if (this.popupParames.sceneCode == "add") {//鏂板 - if (this.newformData) { - let formData_ = clone(this.formData); - - for (var k in this.newformData) { - formData_[k] = this.newformData[k]; - } - this.formData = formData_; + //鍔ㄦ�佽幏鍙栭粯璁ゆ暟鎹� + var newEntity_ = { + name: "newEntity", + url: "root/data/newEntity", + paramsobj: {dataname: "sys_dossier"}, + isnotoption: true, //true:涓嶆槸閫夐」 } + this.dataRequest.push(newEntity_); + this.isedit = true; } else if (this.popupParames.sceneCode == "browse") {//鍙 @@ -103,14 +92,26 @@ this.loadRequestData(this.dataRequest, result, function(data) { me.dataRequestObj = data; //棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson - - data.agm_template.map(c=>{ - me.options_templateobj[c[me.props_template.value]] = c; - }) - - let agm_template_ = ArrayToTree(clone(data.agm_template), "name", "parent_id"); - me.options_category = agm_template_; - + if (me.dataRequestObj.newEntity) { + var formData = clone(me.dataRequestObj.newEntity.data["sys_dossier"]); + // formData.product_category_name = []; + if (me.newformData) { + let formData_ = clone(formData); + + for (var k in me.newformData) { + if (!formData_[k]) { + formData_[k] = me.newformData[k]; + } + } + + me.formData = formData_; + } + + if (me.popupParames.delta) { + me.formData.category_id = clone(me.popupParames.delta.nodeKey); + } + } + me.initData(); }); } @@ -127,6 +128,7 @@ //let w_ = this.$refs.popup_body.offsetWidth + "px"; let w_ = "900px"; let h_ = this.$refs.popup_body.offsetHeight + "px"; + Root.setPopupWH(w_, h_); }) }); @@ -176,7 +178,7 @@ formFields_.push(clone(f)); }) if (!me.formFields || (me.formFields && me.formFields.length == 0)) { - me.formFields = clone(me.default_formFields); + me.formFields = clone(formFields_); //瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴�� me.fieldsToFieldsObj(); @@ -185,62 +187,65 @@ me.tableFieldClick(); } } + + if (me.rowData["file_index"]) { + + } }) }, tableFieldClick() { var me = this; - //琛ㄦ牸瀛楁浜嬩欢璁剧疆 - this.tablefieldClick = { - }; - //琛ㄥ崟瀛楁浜嬩欢璁剧疆 this.formfieldClick = { - name: { - popup: { - onclick: function(obj) {//寮圭獥鐐瑰嚮浜嬩欢 - //鎵撳紑 - me.tablePopup_productList(obj) + template_type_code: { + select: { + onchange: function(obj) { + obj.data.template_type_code = obj.selectoption.code || ""; + obj.data.template_type_name = obj.selectoption.value || ""; + } + } + }, + + template_attachment: { + buttonarray: { + onclick: function(obj) { + var filenamefield = obj.obj.field; + var fileidfield = "template_attachment_id"; + if(obj.buttonobj && obj.buttonobj.code == "showfile"){ + me.showFileImgByFileId(filenamefield, fileidfield, obj); + }else if (obj.buttonobj && obj.buttonobj.code == "upload"){ + me.onPopupByUploadFile(filenamefield, fileidfield, me.dataname); + }else if (obj.buttonobj && obj.buttonobj.code == "delfile"){ + me.deleteByFileId(filenamefield, fileidfield, obj); + } } }, }, - }; - }, - - tablePopup_productList(obj) { - var me = this; - Root.showPopup({ - url: "module/md/page/product/page/popup-new_batch_number-product.html", - width: 800, - height: 550, - data: this.oldObj, - sceneCode: "add", - dataname: "customer", - callback: function(obj, callback) { - - if (callback) { - callback(); - } - } - }); }, //鎻愪氦 submitRowTable() { this.iscommit = true; + //蹇呭~椤规牎楠� + var bo1 = this.$refs.form1.checkForm(); + if(!bo1){ + Root.message({ + type: 'error', + message: '璇峰~鍐欏繀濉」' + }); + this.iscommit = false; + return; + } this.saveRowTable(); }, //淇濆瓨 saveRowTable() { var me = this; - var operator_ = "save";//淇濆瓨 - if(me.iscommit) { - operator_ = "commit";//鎻愪氦 - } - - var entity_ = clone(this.formData); + + var entity_ = clone(me.formData); var entity = {}; for (var r in entity_) { if (entity_[r] || entity_[r] == "" || entity_[r] == false || entity_[r] == 0) { @@ -249,34 +254,170 @@ } let param = { - dataname: this.dataname, - // operator: operator_, + dataname: me.dataname, data: {}, } - param.data[this.dataname] = entity; + param.data[me.dataname] = entity; Server.call("root/data/saveEntity", param, function(result) { console.log(result); - if (result.success) { - if(me.iscommit){ + me.iscommit = false; + Root.message({ + type: 'success', + message: '鎻愪氦鎴愬姛' + }); + me.saveAfter(); + }, function(errorresult) { + console.log("閿欒淇℃伅", errorresult); + if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) { + if (errorresult.messages.list) { me.iscommit = false; - Root.message({ - type: 'success', - message: '鎻愪氦鎴愬姛' - }); - me.saveAfter(); + var config = { + totab: false, + // width: "1200px", + // height: 800, + icon: "icon-product", + text: "閿欒淇℃伅", + url: "module/tool/page/popup_error_messages.html", + data: {}, + delta: errorresult.messages.list, + callback: function(obj, callback) { + if (callback) { + callback(); + } + } + }; + me.doPopupByPublic(config); } - else { - Root.message({ - type: 'success', - message: '淇濆瓨鎴愬姛' - }); - me.saveAfter(); - } + } + else { + me.iscommit = false; + Root.message({ + type: 'error', + message: '鎻愪氦澶辫触' + }); } }); }, + + onPopupByUploadFile(filenamefield, fileidfield,dataname) { + var me = this; + var analysistype_ = ""; + var formData_ = clone(me.formData); + var delta_ = {filetypelist: [], multiplelimit: 1}//".png", ".jpg", ".pdf" + var config = { + totab: false, + width: "500px", + icon: "icon-product", + text: "闄勪欢涓婁紶", + id: "popupByUploadFile", + url: "module/tool/page/popup_uploadFile.html", + data: { + dataName: dataname, + fileidfieldName: fileidfield, + id: me.formData.id, + fileNamefieldName: filenamefield, + }, + delta: delta_, + callback: function(obj, callback) { + me.$message({ + showClose: true, + message: '涓婁紶鎴愬姛锛�', + type: 'success' + }); + + if (!formData_[filenamefield]) { + formData_[filenamefield] = {}; + } + formData_[filenamefield] = decodeURI(obj.row[0].name); + formData_[fileidfield] = obj.row[0].id; + + me.formData = formData_; + if (callback) { + callback(); + } + } + }; + this.doPopupByPublic(config); + }, + + showFileImgByFileId(filenamefield, fileidfield, obj) { + let me = this; + var file_name = obj.formdata[filenamefield]; + var file_id = obj.formdata[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: this.dataname + } + var config = { + totab: false, + width: "1200px", + 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, this.dataname); + } + } + }, + + deleteByFileId(filenamefield, fileidfield, obj){ + var me = this; + var formData_ = clone(me.formData); + Root.confirm('纭畾鍒犻櫎闄勪欢銆�' + formData_[filenamefield] + '銆戝悧锛�', '鍒犻櫎鎻愮ず', { + confirmButtonText: '鍒犻櫎', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + if (obj.formdata[fileidfield]) { + let param = { + dataname: "sys_dossier_file", + id: obj.formdata[fileidfield], + } + + Server.call("root/data/deleteEntity", param, function(result) { + console.log(result); + if (result && result.data) { + formData_[filenamefield] = ""; + formData_[fileidfield] = ""; + me.formData = clone(formData_); + Root.message({ + type: 'success', + message: '鍒犻櫎鎴愬姛!' + }); + } + }); + } + }).catch(() => { + Root.message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + + }, } }); }; @@ -293,7 +434,9 @@ </style> </head> - <body style="margin: 0px;"> <div v-cloak id="vbody"> + + <body style="margin: 0px;"> + <div v-cloak id="vbody"> <div id="page_root"> <div ref="popup_body" style="padding: 0 20px;"> <div class="popup_el-dialog__header"> @@ -302,7 +445,7 @@ <span> {{title}}</span> </div> </div> - <div style="height: 350px; overflow-y: auto;"> + <div style="height: 300px; overflow-y: auto;"> <div class="el-dialog__body"> <h-form ref="form1" @@ -316,13 +459,7 @@ </div> <div class="el-dialog__footer"> <el-button size="small" type="default" @click="closeDialog">鍙� 娑�</el-button> - <el-button size="small" v-if="isedit || isrefuseedit" type="primary" @click="saveRowTable":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button> - <el-button size="small" v-if="isrefuseedit" type="success" @click="">鍐嶆鎻愪氦</el-button> - - <el-button size="small" v-if="isapproval" type="success" @click="">閫� 杩�</el-button> - <el-button size="small" v-if="isapproval" type="danger" @click="">鎷� 缁�</el-button> - <el-button size="small" v-if="isapproval" type="primary" @click="">杞� 鍔�</el-button> - <el-button size="small" v-if="isapproval" type="success" @click="">閫� 鍥�</el-button> + <el-button size="small" v-if="isedit" type="success" :loading="iscommit" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.name}}</el-button> </div> </div> </div> diff --git a/module/md/page/product/page/category_edit.html b/module/md/page/product/page/category_edit.html new file mode 100644 index 0000000..e013df8 --- /dev/null +++ b/module/md/page/product/page/category_edit.html @@ -0,0 +1,653 @@ +<!doctype html> +<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> + + <script type="text/javascript"> + var pageVue = null; + function loadJsCss(callback) { + var jscss_urls = []; + window.top.initJsCss(document, jscss_urls, callback); + }; + + function initVue() { + new BasicsVue({ + el: "#vbody", + data: { + //dataname: "agm_record", + form_dataname: "md_prod_category", + table_dataname: "", + dataRequest: [ + { + name: "md_prod_category", + //url: "root/front/getOneDictionary", + //paramsobj: { code: "OrgType", }, + isnotoption: false, //true:涓嶆槸閫夐」 + code:"id",//鏄笅鎷夐�夐」鏃惰缃� + label:"name",//鏄笅鎷夐�夐」鏃惰缃� + filter: " (parent_id is null or parent_id='')" + }, + + { + name: "agmrecord_field", + dataname: "agm_field", + //url: "root/front/getOneDictionary", + //paramsobj: { code: "OrgType", }, + filter: " table_name='agm_record'", + isnotoption: false, //true:涓嶆槸閫夐」 + code:"id",//鏄笅鎷夐�夐」鏃惰缃� + label:"field_name",//鏄笅鎷夐�夐」鏃惰缃� + }, + + ], + + title: "鍗忚绫诲瀷鏂板", + formAttr: { + istitle: false, + title: "鍗忚绫诲瀷鏂板", + columnnumber: 2, + labelwidth: "110px", + labelposition: "left",// right + size: "medium", + border: "0px solid #c6c6c600" + }, + formFields: [ + {isshow: "T", field: "creator_name", name: "鍒涘缓浜�", type: "span", notvalunit: true}, + {isshow: "T", field: "create_time", name: "鍒涘缓鏃堕棿", type: "span", notvalunit: true}, + {isshow: "T", field: "parent_id", name: "鎵�灞炵被鍨�", type: "select", isrefresh: true, + options: [], props:{value: "id", label: "name"}, notvalunit: true, + }, + {isshow: "T", field: "name", name: "绫诲瀷鍚嶇О", notvalunit: true}, + //{isshow: "T", field: "fieldlist", name: "澶囨瀛楁閰嶇疆", type: "checkboxobj", options: [], colspan: 3}, + ], + newRowDefault: { + //id: uuid_short(), + code: createCode("BA"), + versionno: "1", + create_time: createDatetime(), + creator_name: window.top.vue.userinfo.name, + //fieldlist: [] + }, + formData: {}, + isWithinEditTableData: false, + notdisabled: true, + Approval: false, + + isCommit: false, + treeoptions: [], + + tableFields1: [ + {isshow: "T", field: "field_name", name: "澶囨鍩虹瀛楁"}, + ], + tableFields2: [ + {isshow: "T", field: "field_name", name: "澶囨鏄庣粏浜у搧鍙婇噾棰濆瓧娈�"}, + ], + tableFields3: [ + {isshow: "T", field: "field_name", name: "澶囨鏄庣粏缁堢瀛楁"}, + ], + tableHeight: 300, + tableData1: [], + tableData2: [], + tableData3: [], + agmFieldsObj: {}, + isCommit: false, + + selectionList: [], + selectionList_detail: [], + //瀛楁璁剧疆 + tablefieldClick: {}, + formfieldClick: {}, + }, + created() { + this.popupParames = clone(Root.popupParames); + this.title = this.popupParames.title || this.popupParames.text; + + if (this.popupParames.data) { + this.formData = clone(this.popupParames.data); + } + + if (this.popupParames.sceneCode) { + if (this.popupParames.sceneCode == "browse") { + this.formAttr.disabled = true; + this.isWithinEditTableData = false; + this.notdisabled = false; + this.Approval = false; + } + else if (this.popupParames.sceneCode == "add") { + if (this.newRowDefault) { + let formData_ = clone(this.formData); + + for (var k in this.newRowDefault) { + formData_[k] = this.newRowDefault[k]; + } + this.formData = formData_; + } + } + else if (this.popupParames.sceneCode == "edit") { + let formData_ = clone(this.formData); + + + } + } + }, + + mounted() { + var me = this; + //棰勫姞杞芥暟鎹� + if (this.dataRequest.length) { + var result = {}; + this.loadRequestData(this.dataRequest, result, function(data) { + me.dataRequestObj = data; + //棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson + me.tableData1 = clone(data.agmrecord_field); + // me.tableData2 = clone(data.agmrecorddetail_field); + // me.tableData3 = clone(data.agmrecorddetail_terminal_field); + var fieldlist_options = []; + me.tableData1.map(r=>{ + var option_ = { + code: r.id, + name: r.field_name + } + fieldlist_options.push(option_); + + me.agmFieldsObj[r.id] = r; + }) + // me.tableData2.map(r=>{ + // me.agmFieldsObj[r.id] = r; + // }) + // me.tableData3.map(r=>{ + // me.agmFieldsObj[r.id] = r; + // }) + var formFields_ = clone(me.formFields); + formFields_.map(f=>{ + if (f.field == "parent_id") { + //me.$set(f.options, me.dataRequestObj.md_prod_category) + f.options = me.dataRequestObj.md_prod_category + } + else if (f.field == "fieldlist") { + f.options = fieldlist_options + } + + }) + me.formFields = clone(formFields_); + + me.initData(); + }); + } + else { + this.initData(); + } + + this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂� + hideLoading(); + + //閲嶆柊璁剧疆寮圭獥瀹介珮 + this.$nextTick(function(){ + //let w_ = this.$refs.popup_body.offsetWidth + "px"; + let w_ = "900px"; + let h_ = this.$refs.popup_body.offsetHeight + "px"; + Root.setPopupWH(w_, h_); + }) + }); + }, + + methods:{ + closeDialog() { + var me = this; + if (me.popupParames.totab){ + Root.tab.removeItem(Root.tab.selected); + Root.tab.open(me.popupParames.parentOption, false); + } + else { + Root.hidePopup(); + } + }, + saveAfter() {//璋冨洖璋冪殑鍏抽棴 + var me = this; + if(this.popupParames.callback) { + let obj = { + options: this.treeoptions + } + this.popupParames.callback(obj, function() { + me.closeDialog(); + }); + } + else { + me.closeDialog(); + } + }, + + initData() { + let me = this + let filter_table = ""; + //璁剧疆瀛楁浜嬩欢 + me.tableFieldClick(); + }, + + tableFieldClick() { + var me = this; + //琛ㄥ崟瀛楁浜嬩欢璁剧疆 + this.formfieldClick = { + parent_id: {//妞嶅叆鏃ユ湡 + select: { + onchange: function(obj) {//妞嶅叆鏃ユ湡瑕佹棭浜庝笂鎶ユ棩鏈� + console.log("testest", obj); + if (obj.selectoption) { + if (obj.selectoption.code_rule) { + me.$set(me.formData, "code_rule", obj.selectoption.code_rule); + } + if (obj.selectoption.code_rule) { + me.$set(me.formData, "method_name", obj.selectoption.method_name); + } + if (obj.selectoption.code_rule) { + me.$set(me.formData, "sql_content", obj.selectoption.sql_content); + } + } + } + } + }, + }; + }, + + submitRowTable() { + this.isCommit = true; + this.saveRowTable(); + }, + + saveRowTable() { + var me = this; + + var operator_ = "save";//淇濆瓨 + + if(me.isCommit) { + operator_ = "commit";//鎻愪氦 + } + + var entity_ = clone(this.formData); + var entity = {}; + for (var r in entity_) { + if (entity_[r] || entity_[r] == "" || entity_[r] == false || entity_[r] == 0) { + entity[r] = entity_[r]; + } + } + + var table_entityset = []; + + if (this.formData.fieldlist) { + this.formData.fieldlist.map(id=>{ + var entity_d = { + category_name: this.formData.name, + field_id: id, + field: this.agmFieldsObj[id].field, + field_name: this.agmFieldsObj[id].field_name, + table_name: this.agmFieldsObj[id].table_name + } + this.formData.id + + table_entityset.push(entity_d); + }) + } + + // this.selectionList_detail.map(id=>{ + // var entity_ = { + // category_name: this.formData.name, + // field_id: id, + // field: this.agmFieldsObj[id].field, + // field_name: this.agmFieldsObj[id].field_name, + // table_name: this.agmFieldsObj[id].table_name + // } + // table_entityset.push(entity_); + // }) + // this.selectionList_terminal_detail.map(id=>{ + // var entity_ = { + // category_name: this.formData.name, + // field_id: id, + // field: this.agmFieldsObj[id].field, + // field_name: this.agmFieldsObj[id].field_name, + // table_name: this.agmFieldsObj[id].table_name + // } + // table_entityset.push(entity_); + // }) + + let param = { + + dataname: this.form_dataname, + // operator: operator_, + data: {}, + } + + param.data[this.form_dataname] = entity; + //param.data[this.table_dataname] = table_entityset; + + Server.call("root/data/saveEntity", param, function(result) { // + console.log(result); + if (result.success) { + if(me.isCommit){ + me.isCommit = false; + let param_ = { + + dataname: "md_prod_category", + filter: "1=1", + } + Server.call("root/data/getEntitySet", param_, function(result2){ + let md_prod_category_ = ArrayToTree(clone(result2.data.entityset), "name", "parent_id"); + // md_prod_category_.unshift({ + // id:"cascaderbyadd", + // label: "cascaderbyadd", + // name: "cascaderbyadd", + // parent_id: null + // }) + me.treeoptions = md_prod_category_; + + Root.message({ + type: 'success', + message: '鎻愪氦鎴愬姛' + }); + me.saveAfter(); + }); + } + else { + let param_ = { + + dataname: "md_prod_category", + filter: "1=1", + } + Server.call("root/data/getEntitySet", param_, function(result2){ + let md_prod_category_ = ArrayToTree(clone(result2.data.entityset), "name", "parent_id"); + // md_prod_category_.unshift({ + // id:"cascaderbyadd", + // label: "cascaderbyadd", + // name: "cascaderbyadd", + // parent_id: null + // }) + me.treeoptions = md_prod_category_; + Root.message({ + type: 'success', + message: '淇濆瓨鎴愬姛' + }); + me.saveAfter(); + }); + } + } + + }); + }, + + // visibleChange(obj, rowdata, callback) { + // let me = this; + // let row = obj; + // let field = obj.field; + // let options_ = []; + + // if(field == "parent_id") { + // var filter_ = " parent_id is null "; + + // let val = row[field]; + // let param_ = { + // + // dataname: "md_prod_category", + // filter: filter_, + // } + // Server.call("root/data/getEntitySet", param_, function(result){ + // options_ = result.data.entityset; + // options_.map(o=>{ + // o.label = o.name; + // }) + // console.log(options_); + // //obj.options = options_; + // callback({options: clone(options_)}); + + // }); + // } + // }, + + selectOptionOperate(obj) { + let me = this; + if (obj.type == "add") { + if (obj.fieldobj.field == "type_code") { + + + /* Root.showPopup({ + url: "../md/customer/popup/customer_list.html", + width: 800, + height: 550, + data: this.oldObj, + dataname: "customer", + callback: function(obj, callback) { + let formData_ = clone(me.formData); + formData_.customer_name = obj.row.md_description; + formData_.customer_code = obj.row.md_code; + formData_.customer_id = obj.row.id; + formData_.province_name = obj.row.province; + + me.formData = formData_; + if (callback) { + callback(); + } + } + }); */ + } + } + + }, + + formChange(obj) { + let me = this; + if (obj.fieldobj.field == "type_code") { + obj.data.type_name = clone(obj.selectoption.label); + } + + }, + + selectChange(obj) { + let me = this; + if (obj.fieldobj.field == "parent_id" && obj.selectoption) { + //obj.data.type_name = clone(obj.selectoption.label); + } + + }, + + showPopup(obj) { + let me = this; + this.selectFormField = obj.obj; + if (this.selectFormField.field == "customer_name") { + + Root.showPopup({ + url: "../md/customer/popup/customer_list.html", + width: 800, + height: 550, + data: this.oldObj, + dataname: "customer", + callback: function(obj, callback) { + let formData_ = clone(me.formData); + formData_.customer_name = obj.row.md_description; + formData_.customer_code = obj.row.md_code; + formData_.customer_id = obj.row.id; + // formData_.province_name = obj.row.province; + + me.formData = formData_; + if (callback) { + callback(); + } + } + }); + } + if (this.selectFormField.field == "delivery_part_name") { + Root.showPopup({ + url: "../org/company/popup/managesubject_list.html", + width: 800, + height: 550, + dataname:"getDelivery_part_name", + type :"managesubjectname", + callback: function(obj, callback) { + let formData_ = clone(me.formData); + formData_.delivery_part_name = obj.row.delivery_part_name; + formData_.delivery_part_code = obj.row.delivery_part_code; + me.formData = formData_; + if (callback) { + callback(); + } + } + }); + } + if (this.selectFormField.field == "product_name") { + Root.showPopup({ + url: "../md/product/popup/sku_list.html", + width: 800, + height: 550, + callback: function(obj, callback) { + let formData_ = clone(me.formData); + + formData_.product_id = obj.row.id; + formData_.product_code = obj.row.md_code; + formData_.product_name = obj.row.md_description; + //formData_.spec = obj.row.pack_specification; + + me.formData = formData_; + if (callback) { + callback(); + } + } + }); + } + }, + + handleSelectionChange(selection) { + this.selectionList = []; + if (selection.length > 0) { + selection.map(sr=>{ + this.selectionList.push(sr.id); + }) + } + }, + + handleSelectionChange_detail(selection) { + this.selectionList_detail = []; + if (selection.length > 0) { + selection.map(sr=>{ + this.selectionList_detail.push(sr.id); + }) + } + }, + handleSelectionChange_terminaldetail(selection) { + this.selectionList_terminal_detail = []; + if (selection.length > 0) { + selection.map(sr=>{ + this.selectionList_terminal_detail.push(sr.id); + }) + } + }, + + } + }); + }; + + loadJsCss(function () { + initVue(); + }); + </script> + <style> + /* 鍦╲ue.js涓� v-cloak 杩欎釜鎸囦护鏄槻姝㈤〉闈㈠姞杞芥椂鍑虹幇 vuejs 鐨勫彉閲忓悕鑰岃璁$殑 */ + [v-cloak] { + display: none !important; + } + + + /* .h_form_checkboxgroup .el-checkbox { + width: 120px; + } */ + </style> + + </head> + + <body style="margin: 0px;"> + <div v-cloak id="vbody"> + <div id="page_root"> + <div ref="popup_body" style="padding: 0 20px;"> + <div class="popup_el-dialog__header"> + <div class="dialog-title"> + <i class="iconfont icon-customermanagement"></i> + <!-- <span> {{formAttr.title}} </span> --> + </div> + </div> + <div style="height: 350px; overflow-y: auto;"> + <div class="el-dialog__body"> + <h-form + ref="form1" + :form-attr="formAttr" + :table-fields="formFields" + :form-data="formData" + :table-field-click="formfieldClick" + > + </h-form> + <!-- + v-on:form-change="formChange" + v-on:select-change="selectChange" + v-on:show-popup="showPopup" + v-on:select-option-operate="selectOptionOperate" + v-on:visible-change="visibleChange" --> + </div> + <!-- <div class="" style="padding-left: 20px;"> + <div style="width: 30%;float: left;"> + <h-table + ref="table1" + :table-fields="tableFields1" + :table-data="tableData1" + :table-height="tableHeight" + :is-selection="true" + :is-pagination="false" + + v-on:selection-change="handleSelectionChange" + > + </h-table> + </div> + <div style="width: 30%;float: left;margin-left: 5%;"> + <h-table + ref="table2" + :table-fields="tableFields2" + :table-data="tableData2" + :table-height="tableHeight" + :is-selection="true" + :is-pagination="false" + + v-on:selection-change="handleSelectionChange_detail" + > + </h-table> + </div> + + <div style="width: 30%;float: right;"> + <h-table + ref="table3" + :table-fields="tableFields3" + :table-data="tableData3" + :table-height="tableHeight" + :is-selection="true" + :is-pagination="false" + + v-on:selection-change="handleSelectionChange_terminaldetail" + > + </h-table> + </div> + + </div> --> + + </div> + <div class="el-dialog__footer"> + <el-button size="small" type="default" size="small" @click="closeDialog">鍙� 娑�</el-button> + <el-button size="small" v-if="notdisabled" type="primary" @click="saveRowTable":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button> + <!-- <el-button v-if="notdisabled" type="success" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.name}}</el-button> --> + </div> + </div> + </div> + + <div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;"> + <div class="spinner"> + <div class="cube1"></div> + <div class="cube2"></div> + </div> + </div> + </div> + + </body> +</html> diff --git a/module/system/page/main.html b/module/system/page/main.html index 20d1f7a..98c14c3 100644 --- a/module/system/page/main.html +++ b/module/system/page/main.html @@ -7,27 +7,27 @@ <meta http-equiv="Cache-control" content="no-cache"> <meta http-equiv="Cache" content="no-cache"> <title>缁堢鎺ㄥ箍骞冲彴</title> - <link href="../css/main.css?v=2024080201" rel="stylesheet"> - <link href="../../../css/control.css?v=2024080201" rel="stylesheet"> - <link href="../../../css/page.css?v=2024080201" rel="stylesheet"> - <link href="../../../css/icon/iconfont.css?v=2024080201" rel="stylesheet"> + <link href="../css/main.css?v=2024080301" rel="stylesheet"> + <link href="../../../css/control.css?v=2024080301" rel="stylesheet"> + <link href="../../../css/page.css?v=2024080301" rel="stylesheet"> + <link href="../../../css/icon/iconfont.css?v=2024080301" rel="stylesheet"> <link href="../../../js/vue/element-ui/lib/theme-chalk/index.css" rel="stylesheet"> <link href="../../../img/org/head.png" rel="shortcut icon" type="image/x-icon"> - <link href="../../../css/myelement.css?v=2024080201" rel="stylesheet"> + <link href="../../../css/myelement.css?v=2024080301" rel="stylesheet"> <script src="../../../js/jquery-3.5.1.min.js"></script> <script src="../../../js/vue/vue.js"></script> - <script src="../../../js/config.js?v=2024080201"></script> + <script src="../../../js/config.js?v=2024080301"></script> <script src="../../../data/data.js"></script> <script src="../../../js/vue/elementDefault.js"></script> <script src="../../../js/vue/element-ui/lib/index.js"></script> <script src="../../../js/Sortable.js"></script> - <script src="../../../js/vue/page.js?v=2024080201"></script> - <script src="../../../js/foundation.js?v=2024080201"></script> - <script src="../../../js/control.js?v=2024080201"></script> + <script src="../../../js/vue/page.js?v=2024080301"></script> + <script src="../../../js/foundation.js?v=2024080301"></script> + <script src="../../../js/control.js?v=2024080301"></script> <script src="../../../js/loadJsCss.js"></script> - <script src="../../../js/myelement.js?v=2024080201"></script> + <script src="../../../js/myelement.js?v=2024080301"></script> </head> -- Gitblit v1.8.0