| | |
| | | }, |
| | | tabs: [], |
| | | tabsobj: {}, |
| | | |
| | | isShowTab: false, |
| | | dataRequest: [], |
| | | authTableFields: [ |
| | | {field: "code", name: "医院编码", isshow: "T", align: "center",width: "150"}, |
| | |
| | | <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> |
| | |
| | | {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"}, |
| | |
| | | <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; |
| | |
| | | }; |
| | | |
| | | 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(); |
| | | }); |
| | |
| | | }, |
| | | |
| | | 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; |
| | |
| | | } |
| | | 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(); |
| | | } |
| | |
| | | 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) { |
| | |
| | | } |
| | | } |
| | | }); |
| | | |
| | | }, |
| | | |
| | | //删除节点 |
| | | onDelNode(obj) { |
| | | var data = obj.data, node = obj.node; |
| | | let me = this; |
| | |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | me.dodeldata(data, node, "agm_category"); |
| | | me.dodeldata(data, node, "md_prod_category"); |
| | | }).catch(() => { |
| | | Root.message({ |
| | | type: 'info', |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | dodeldata(row, node, tablename) { |
| | | if (row.id) { |
| | | let param = { |
| | | |
| | | dataname: tablename, |
| | | id: row.id |
| | | } |
| | |
| | | } |
| | | }, |
| | | |
| | | 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; |
| | | }, |
| | | } |
| | | }); |
| | |
| | | }); |
| | | </script> |
| | | <style> |
| | | /* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */ |
| | | /* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */ |
| | | [v-cloak] { |
| | | display: none !important; |
| | | } |
| | |
| | | overflow: hidden; |
| | | position: relative; |
| | | padding-left: 20px; |
| | | } |
| | | .nodeLabel { |
| | | max-width: 220px !important; |
| | | } |
| | | </style> |
| | | |
| | |
| | | <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> |
| | |
| | | <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; |
| | |
| | | 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: {}, |
| | | |
| | |
| | | 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") {//只读 |
| | |
| | | this.loadRequestData(this.dataRequest, result, function(data) { |
| | | me.dataRequestObj = data; |
| | | //预加载数据后给哪些字段设置options或formatterjson |
| | | |
| | | 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(); |
| | | }); |
| | | } |
| | |
| | | //let w_ = this.$refs.popup_body.offsetWidth + "px"; |
| | | let w_ = "900px"; |
| | | let h_ = this.$refs.popup_body.offsetHeight + "px"; |
| | | |
| | | Root.setPopupWH(w_, h_); |
| | | }) |
| | | }); |
| | |
| | | formFields_.push(clone(f)); |
| | | }) |
| | | if (!me.formFields || (me.formFields && me.formFields.length == 0)) { |
| | | me.formFields = clone(me.default_formFields); |
| | | me.formFields = clone(formFields_); |
| | | |
| | | //字段数组转字段obj,目的为了筛选时获取字段属性 |
| | | me.fieldsToFieldsObj(); |
| | |
| | | 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) { |
| | |
| | | } |
| | | |
| | | 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: '已取消删除' |
| | | }); |
| | | }); |
| | | |
| | | }, |
| | | } |
| | | }); |
| | | }; |
| | |
| | | </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"> |
| | |
| | | <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" |
| | |
| | | </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> |
New file |
| | |
| | | <!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; |
| | | //预加载数据后给哪些字段设置options或formatterjson |
| | | 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> |
| | | /* 在vue.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> |
| | |
| | | <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> |
| | | |