<!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>上海GPO政ç–</title> <script src="../../../jsnew/elementDefault.js?v=20220425"></script> <script src="../../../jsnew/vue/vue.js"></script> <script src="../../../jsnew/vue/element-ui/element-ui_15/index.js"></script> <script src="../../../jsnew/myelement.js?v=20220425"></script> <script src="../../../jsnew/page.js?v=20220425"></script> <!-- <script src="../../../setting.js"></script> --> <link href="../../../jsnew/vue/element-ui/element-ui_15/theme-chalk/index.css" rel="stylesheet"> <link href="../../../jsnew/myelement.css?v=20220426" rel="stylesheet"> <link href="../../../jsnew/theme.css?v=20220426" rel="stylesheet"> <link href="../../../css/iconfont.css" rel="stylesheet"> <link href="../../../jsnew/page.css?v=20220425" rel="stylesheet"> <link href="//at.alicdn.com/t/font_2374495_13ltsxm2eor.css" rel="stylesheet"> </head> <body style="margin: 0px;"> <div v-cloak id="vbody"> <div id="page_root" v-loading="loading"> <div class="topbar"> <span>{{title}}</span> </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" :isdraggableorder="false" v-on:on-query="onQuery" v-on:on-init-query="onInitFilter" v-on:on-edit-query="onEditFilter" v-on:order-fields="orderFilterFields" > </h-form-filter> </div> <div style="display: flex; margin-bottom: 3px;"> <div style="width: 100%;"> <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 style="float: right; margin-right: 0px; position: absolute; right: 15px; z-index: 2;"> <el-button-group style="margin-left: 3px"> <el-button type="primary" @click="addData" icon="el-icon-plus">æ–° 增</el-button> <el-button type="primary" @click="changeData" >å˜ æ›´ </el-button> <el-button type = "primary" @click="endData" >终 æ¢ </el-button> <el-button type="primary" @click="exportList" icon="">导 出</el-button> </el-button-group> </div> </div> </div> <div class="h_dialog__body" :style="{height: t_height +'px', 'overflow-y': 'auto'}"> <template v-if="isRefresh && selectTabObj.tableFields"> <div v-for="(row, index) in selectTabObj.tableData" :key="'c' + index" class="" style="margin-bottom: 10px;" @click="onClickRowCard(row)"> <el-card :class="[selectTabObj.selectedrow && selectTabObj.selectedrow.id == row.id ? 'h_select_card' : '','h_table_card']" shadow="hover" style="position: relative;" > <div class="h_table_card_title"> <div style="width: 100%; height: 100%; display: flex;"> <div style="padding: 10px; display: inline-block;"> <el-tag :type="row.trans_type == 'new'? 'success' : (row.trans_type == 'trans'? '': 'danger')" > {{transTypeMap[row.trans_type]}} </el-tag> </div> <div class="state" @click="showInfo({data: row})" style="padding: 20px 5px; display: inline-block; color: red;"> {{row.code}} </div> <div class="state" @click="state_click(row)" style="padding: 20px 5px; display: inline-block; color: red;"> {{statusMap[row.status]}} </div> <div v-if="row.status != 'open'" style="padding: 20px 5px; display: inline-block; color: red;"> {{row.node_name ? '审批节点:' + row.node_name : '审批节点:'}} </div> <div v-if="row.status != 'open'" style="padding: 20px 5px; display: inline-block; color: red;"> {{row.emp_name ? '审批人:' + row.emp_name : '审批人:'}} </div> <div v-if="row.status != 'open'" style="padding: 20px 5px; display: inline-block; color: red;"> {{row.readed && row.readed == "T" ? '处ç†çжæ€ï¼šå¤„ç†ä¸' : '处ç†çжæ€ï¼šæœªå¤„ç†'}} </div> </div> </div> <el-row :gutter="20"> <el-col :span="2" class="h_table_card_front"> <!-- <div style="width: 100%; height: 100%;background-color: #b780e600;">å‰ç¼€</div> --> </el-col> <el-col :span="20" class="h_table_card_body"> <h-form :ref="'cf' + index" :form-attr="formAttr" :table-fields="selectTabObj.tableFields" :form-data="row" :table-field-click="selectTabObj.tablefieldClick" > </h-form> </el-col> <el-col :span="2" class="h_table_card_after" style="position: absolute; right: 5%; height: 100vh;"> <div style="width: 100%; background-color: #83e67300;"> <div> <el-button class="button-card" v-if="row.status === 'input' || row.status === 'refuse'" type="primary" @click="opRowData(row, 'edit')">ç¼– 辑 </el-button> </div> <div> <el-button class="button-card" v-if="row.status === 'refuse'" type="primary" @click="closeFlow(row)" >作 废 </el-button> </div> <div> <el-button class="button-card" v-if="row.status === 'input' || row.status === 'close' || !row.status" type="primary" @click="opRowData(row, 'del')" >åˆ é™¤ </el-button> </div> <!-- <div> <el-button class="button-card" v-if="row.status === 'working' && row.readed !== 'T'" type="primary" @click="backApply(row)" >撤回申请 </el-button> </div> --> </div> </el-col> </el-row> </el-card> </div> </template> <!-- <h-table 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 - 15" :table-field-click="selectTabObj.tablefieldClick" :is-show-index="selectTabObj.isShowIndex" :tableloading="tableloading" :isdraggableorder="true" v-on:get-data="getData" v-on:edit-data="editData" v-on:del-data="delData" v-on:order-fields="orderTableFields" > </h-table> --> </div> <div style="text-align: right; padding: 16px 0px;"> <el-pagination background layout="prev, pager, next" :total="selectTabObj.total" v-on:current-change="changePage" > </el-pagination> </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> <script type="text/javascript"> function initVue() { new TabTableVue({ el: "#vbody", data: { title: "上海GPO政ç–", //Tab项设置 tabs_d: [ {code: "All", name: "全部", dataname: "pkg_agm_record_gpo", filterTxt: "1=1 and type = 'gpo'", orderby: "update_time desc", dataurl: "rootjemin/data/getEntitySet"}, {code: "Input", name: "å¾…æäº¤", dataname: "pkg_agm_record_gpo", filterTxt: "status='input' and type = 'gpo'", orderby: "update_time desc", dataurl: "rootjemin/data/getEntitySet"}, {code: "Closed", name: "待修改", dataname: "pkg_agm_record_gpo", filterTxt: "status='refuse' and type = 'gpo'", orderby: "update_time desc", dataurl: "rootjemin/data/getEntitySet"}, {code: "UnderApproval", name: "审批ä¸", dataname: "pkg_agm_record_gpo", filterTxt: "status='working' and type = 'gpo'", orderby: "update_time desc", dataurl: "rootjemin/data/getEntitySet"}, {code: "Open", name: "审批完æˆ", dataname: "pkg_agm_record_gpo", filterTxt: "status='open' and type = 'gpo'", orderby: "update_time desc", dataurl: "rootjemin/data/getEntitySet"}, ], formAttr: { istitle: false, title: "表å•åç§°", columnnumber: 4, labelwidth: "100px", labelposition: "left",//"left",// right//top size: "mini", border: "1px solid #c6c6c600", disabled: true }, d_tabs: { Input: true, UnderApproval: true, Open: true, Closed: true, All: true, }, tabs: [], tabsobj: {}, transTypeMap: { new: "新增", trans: "å˜æ›´", end: "终æ¢", }, statusMap: { input: 'å¾…æäº¤', refuse: '待修改', working: '审批ä¸', open: '审批完æˆ', close: '作废' }, dataRequest: [ { name: "md_province", url: "rootjemin/data/getEntitySet", paramsobj: {dataname: "md_division", filter: "level = '1'"}, isnotoption: false, //true:䏿˜¯é€‰é¡¹ } ], default_filterFields: [], default_tableFields: [], t_height:null, loading: false }, created() { }, mounted() { var me = this; me.t_height = document.documentElement.clientHeight*1 - 220; let re = false if (window.top.vue.userinfo.user.roleList && window.top.vue.userinfo.user.roleList.length > 0) { window.top.vue.userinfo.user.roleList.map(s => { if (s.id && (s.id == "0")) { re = true } }) } if (!re) { this.filterTxt = " creator_code = '" + window.top.vue.userinfo.employee.code + "' " } // 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.cbuttons_r = result.buttons_r; // me.ctabs_r = result.tabs_r; me.ctabs_r = me.d_tabs; var tabsarr = []; me.tabs_d.map(e=>{ if(me.ctabs_r[e.code]){ tabsarr.push(e) } }) me.tabs = tabsarr; if(me.tabs.length>0){ me.activeTabName = me.tabs[0].code; } if (this.dataRequest && this.dataRequest.length) { var result = {}; this.loadRequestData(this.dataRequest, result, function(data) { me.dataRequestObj = data; //é¢„åŠ è½½æ•°æ®åŽç»™å“ªäº›å—段设置options或formatterjson //åˆå§‹åŒ–Tabs me.initTabsPage(function() { //èŽ·å–æ•°æ® me.initData(); }); }); } else { //åˆå§‹åŒ–Tabs me.initTabsPage(function() { //èŽ·å–æ•°æ® me.initData(); }); } me.$nextTick(() => { // 以æœåŠ¡çš„æ–¹å¼è°ƒç”¨çš„ Loading 需è¦å¼‚æ¥å…³é— hideLoading(); }); // }) // } // this.activeTabName = "input"; // //èŽ·å–æ•°æ® // this.initTabsPage(function() { // me.initData(); // }); // this.$nextTick(() => { // 以æœåŠ¡çš„æ–¹å¼è°ƒç”¨çš„ Loading 需è¦å¼‚æ¥å…³é— // hideLoading(); // }); }, methods:{ exportList() { exportList('recordGpoExport', this.getFilterData()) }, onhandleClick() { this.initData(); }, onInitFilter() { //清空 this.selectTabObj.filterObj = {}; this.selectTabObj.selectedrow = {}; this.initData(); }, onQuery() { this.initData(); }, initData() { var me = this; // 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); // //å—æ®µæ•°ç»„è½¬å—æ®µobj // me.fieldsToFieldsObj(); // //è®¾ç½®å—æ®µäº‹ä»¶ // me.tableFieldClick(); // } // let param = { // dataname: "pkg_agm_record_gpo", // }; // Server.call("rootjemin/data/getEntitySet", param, function(result) { // if (result.success) { // console.log(result); // var metas = clone(result.meta['agm_record_apply_gpo'].fields); // var filterFields_ = []; // var tableFields_ = []; // metas.map(f=>{ // f.isshow = "T"; // if (f.isfilter) { // filterFields_.push(clone(f)); // } // else { // var filter_f = clone(f); // filter_f.isshow = "F"; // f.type = "span"; // filterFields_.push(filter_f); // } // tableFields_.push(clone(f)); // }) // me.selectTabObj.filterFields = clone(filterFields_); // me.selectTabObj.tableFields = clone(tableFields_); // //å—æ®µæ•°ç»„è½¬å—æ®µobj // me.fieldsToFieldsObj(); // //è®¾ç½®å—æ®µäº‹ä»¶ // me.tableFieldClick(); // } // }); // this.tableDataAfter(); this.doQueryByTab(function(result, callback) {//查询åŽçš„回调,用于获å–å—æ®µçš„ if (result.meta && result.meta['agm_record_apply_gpo'] && result.meta['agm_record_apply_gpo'].fields) { var metas = clone(result.meta['agm_record_apply_gpo'].fields); var filterFields_ = []; var tableFields_ = []; metas.map(f=>{ f.isshow = "T"; if (f.isfilter) { if (f.field == 'head_province_name') { me.dataRequestObj.md_province.data.entityset.map(e => { e.value = e.name e.code = e.name }) f.options = me.dataRequestObj.md_province.data.entityset } filterFields_.push(clone(f)); } else { var filter_f = clone(f); filter_f.isshow = "F"; filterFields_.push(filter_f); } if (f.field == "code") { f.isshow = "F" f.colspan = 2 } tableFields_.push(clone(f)); }) if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) { me.selectTabObj.filterFields = clone(filterFields_); me.selectTabObj.tableFields = clone(tableFields_); //å—æ®µæ•°ç»„è½¬å—æ®µobj me.fieldsToFieldsObj(); //è®¾ç½®å—æ®µäº‹ä»¶ me.tableFieldClick(); } } if (callback) { callback(); } }); }, changePage(pageNo) { this.selectTabObj.pagenum = pageNo this.onQuery() }, tableFieldClick() { var me = this; var tablefieldClick = {}; //è¡¨æ ¼å—æ®µäº‹ä»¶è®¾ç½® tablefieldClick = { code: {//å—æ®µäº‹ä»¶è®¾ç½® val: {//有值时的点击事件 isonclick: true, onclick: function(obj) {//æ•°æ®å€¼ç‚¹å‡»äº‹ä»¶ me.showInfo(obj) }, }, }, }; this.selectTabObj.tablefieldClick = tablefieldClick; }, backApply(row) { let me = this Root.confirm('确定撤回å—?', 'æç¤º', { confirmButtonText: '确定', cancelButtonText: 'å–æ¶ˆ', type: 'warning' }).then(() => { let param = { businessId: row.id, flowId: row.flow_id, variableMap: { withdraw: true, reason: "申请人撤回", flowId: row.flow_id, attachment: "", dataName: "agm_record_apply" }, pass: false } Server.call("jeminact/rootact/act/deal/" + row.flow_id, param, function(result) { if (result.success) { Root.message({ type: 'success', message: '撤回æˆåŠŸ' }) me.onQuery() } else { Root.message({ type: 'error', message: result.error }) } }); }).catch(() => { }); }, closeFlow(row) { let me = this Root.confirm('确定作废å—?', 'æç¤º', { confirmButtonText: '确定', cancelButtonText: 'å–æ¶ˆ', type: 'warning' }).then(() => { let param = { dataName: 'agm_record_apply', id: row.id, flow_id: row.flow_id || "", business_type: "recordGpo" } Server.call("rootjemin/data/Close", param, function(result) { console.log(result); if (result && result.data) { Root.message({ type: 'success', message: '作废æˆåŠŸ!' }); me.onQuery() } }); }).catch(() => { }); }, opRowData(row, op) { let me = this if (op == 'del') { Root.confirm('ç¡®å®šåˆ é™¤å—?', 'æç¤º', { confirmButtonText: '确定', cancelButtonText: 'å–æ¶ˆ', type: 'warning' }).then(() => { let param = { dataName: 'pkg_agm_record_gpo', id: row.id, } Server.call("rootjemin/data/deleteEntity", param, function(result) { console.log(result); if (result && result.data) { Root.message({ type: 'success', message: 'åˆ é™¤æˆåŠŸ!' }); me.onQuery() } }); }).catch(() => { }); } else if (op == 'edit') { let sceneCode = "edit" if (row.trans_type == "trans") { sceneCode = "changeEdit" } else if (row.trans_type == "end") { sceneCode = "endEdit" } var config = { totab: true, //true: 以Tabå¯¼èˆªçš„æ–¹å¼æ‰“å¼€ width: "900px", height: "900px", icon: "icon-product", text: "上海GPO政ç–编辑", id: "shanghai_gpo_policy_info" + "edit" + row.id,//totab: trueæ—¶éœ€è®¾ç½®ï¼Œç”¨äºŽåˆ¤æ–æ˜¯å¦å·²æ‰“å¼€æ¤é¡µé¢ url: "../agreement/policy/shanghai_gpo_policy_info.html", data: row, delta: {}, sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", callback: function(obj, callback) { me.onQuery(); if (callback) { callback(); } } }; me.doPopupByPublic(config); } }, state_click(row){ var me = this; if (row.status == 'input') { Root.message({ type: 'warning', message: 'è¯¥çŠ¶æ€æ— 审批记录' }); return } var config = { totab: false, //true: 以Tabå¯¼èˆªçš„æ–¹å¼æ‰“å¼€ width: "900px", height: "500px", icon: "icon-product", text: "", id: row.id,//totab: trueæ—¶éœ€è®¾ç½®ï¼Œç”¨äºŽåˆ¤æ–æ˜¯å¦å·²æ‰“å¼€æ¤é¡µé¢ url: "../approval_new/ApprovalList_page_new.html?flow_id=" + row.flow_id, data: row, delta: {}, sceneCode: "change",//"refuseedit",//"approval", //"add"//"browse", callback: function(obj, callback) { if (callback) { callback(); } } }; me.doPopupByPublic(config); }, changeData(){ var me = this; // var row = me.selectTabObj.selectedrow; var config = { totab: true, //true: 以Tabå¯¼èˆªçš„æ–¹å¼æ‰“å¼€ width: "900px", height: "900px", icon: "icon-product", text: "上海GPO政ç–å˜æ›´", id: "shanghai_gpo_policy_info" + "change",//totab: trueæ—¶éœ€è®¾ç½®ï¼Œç”¨äºŽåˆ¤æ–æ˜¯å¦å·²æ‰“å¼€æ¤é¡µé¢ url: "../agreement/policy/shanghai_gpo_policy_info.html", data: "", delta: {}, sceneCode: "change",//"refuseedit",//"approval", //"add"//"browse", callback: function(obj, callback) { me.onQuery(); if (callback) { callback(); } } }; me.doPopupByPublic(config); }, endData(){ var me = this; var row = me.selectTabObj.selectedrow; var config = { totab: true, //true: 以Tabå¯¼èˆªçš„æ–¹å¼æ‰“å¼€ width: "900px", height: "900px", icon: "icon-product", text: "上海GPO政ç–终æ¢", id: "shanghai_gpo_policy_info" + "end" + row.id,//totab: trueæ—¶éœ€è®¾ç½®ï¼Œç”¨äºŽåˆ¤æ–æ˜¯å¦å·²æ‰“å¼€æ¤é¡µé¢ url: "../agreement/policy/shanghai_gpo_policy_info.html", data: row, delta: {}, sceneCode: "end",//"refuseedit",//"approval", //"add"//"browse", callback: function(obj, callback) { me.onQuery(); if (callback) { callback(); } } }; me.doPopupByPublic(config); }, onAddData() { var me = this; var config = { totab: true, //true: 以Tabå¯¼èˆªçš„æ–¹å¼æ‰“å¼€ width: "900px", height: "900px", icon: "icon-product", text: "上海GPOæ”¿ç–æ–°å¢ž", id: "shanghai_gpo_policy_info" + "add",//totab: trueæ—¶éœ€è®¾ç½®ï¼Œç”¨äºŽåˆ¤æ–æ˜¯å¦å·²æ‰“å¼€æ¤é¡µé¢ url: "../agreement/policy/shanghai_gpo_policy_info.html", data: {}, delta: {}, sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse", callback: function(obj, callback) { me.onQuery(); if (callback) { callback(); } } }; me.doPopupByPublic(config); }, showInfo(obj) { var me = this; var config = { totab: true, //true: 以Tabå¯¼èˆªçš„æ–¹å¼æ‰“å¼€ width: "900px", height: "900px", icon: "icon-product", text: "上海GPO政ç–ä¿¡æ¯æŸ¥çœ‹", id: "shanghai_gpo_policy_info" + "browse" + obj.data.id,//totab: trueæ—¶éœ€è®¾ç½®ï¼Œç”¨äºŽåˆ¤æ–æ˜¯å¦å·²æ‰“å¼€æ¤é¡µé¢ url: "../agreement/policy/shanghai_gpo_policy_info.html", data: obj.data, delta: {}, sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse", callback: function(obj, callback) { if (callback) { callback(); } } }; me.doPopupByPublic(config); }, onClickRowCard(row) { this.selectTabObj.selectedrow = clone(row); this.$forceUpdate(); }, } }); }; initVue(); </script> <style> /* 在vue.jsä¸ v-cloak 这个指令是防æ¢é¡µé¢åŠ è½½æ—¶å‡ºçŽ° vuejs çš„å˜é‡å而设计的 */ [v-cloak] { display: none !important; } .el-tabs__nav-scroll { overflow: hidden; position: relative; padding-left: 20px; } .h_form_filter { padding-top: 1px; } .h_table_card_title{ padding: 0px; margin: -10px 0px; } /* .el-button--mini { color: #FFF; background-color: #2984e2; border-color: #409EFF; } */ .state { text-decoration: underline; cursor: pointer; } .state:hover { cursor: pointer; font-weight: bolder; } .h_table_card:hover { cursor: pointer; } .h_select_card { border: 1px solid rgb(72, 172, 211); } /* .el-card__body { padding: 5px; } */ .button-card { width: 80px; margin-bottom: 5px; } .el-card { border-radius: 8px; } /* .el-button+.el-button { margin-left: 0px; } */ </style> </body> </html>