<!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 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"> <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> </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="codeClick({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 : row.act_node_name ? '絎≧�壕���刻�' + row.act_node_name : '絎≧�壕���刻�'}} </div> <div v-if="row.status != 'open'" style="padding: 20px 5px; display: inline-block; color: red;"> {{row.emp_name ? '絎≧�剛査鐚�' + row.emp_name : row.act_assignee ? '絎≧�剛査鐚�' + row.act_assignee : '絎≧�剛査鐚�'}} </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 v-if="selectTabObj.code=='UnderApproval'" :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" type="primary" @click="onApprove(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: "���域換�����", //Tab蕁壕�臀� tabs_d: [ {code: "UnderApproval", name: "絎≧�剛賢", dataname: "getMyRecordWorking", filterTxt: "type = 'qtfy' and emp_code in ('" + window.top.vue.userinfo.employee.id + "','" + window.top.vue.userinfo.employee.code + "')", orderby: "update_time desc", dataurl: "rootjemin/data/getEntitySet"}, {code: "Open", name: "綏峨��", dataname: "getMyRecordHistoryWork", filterTxt: "type = 'qtfy' and act_assignee in ('" + window.top.vue.userinfo.employee.id + "','" + window.top.vue.userinfo.employee.code + "')", 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, }, created() { }, mounted() { var me = this; me.t_height = document.documentElement.clientHeight*1 - 180; // 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:{ onhandleClick() { this.initData(); }, onInitFilter() { //羝�腥� this.selectTabObj.filterObj = {}; this.selectTabObj.selectedrow = {}; this.initData(); }, onQuery() { this.initData(); }, initData() { var me = this; this.doQueryByTab(function(result, callback) {//�ヨ�������莪�鐚�����桁�絖�罧窮�� if (result.meta && result.meta[me.selectTabObj.dataname.toLowerCase()] && result.meta[me.selectTabObj.dataname.toLowerCase()].fields) { var metas = clone(result.meta[me.selectTabObj.dataname.toLowerCase()].fields); var filterFields_ = []; var tableFields_ = []; metas.map(f=>{ f.isshow = "T"; if (f.isfilter) { if (f.field == "head_province_name") { f.isshow = "F" } 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 } if (f.field == "flow_type" || f.field == "head_province_name") { f.isshow = "F"; } 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.selectTabObj.code=='UnderApproval'? me.onApprove(obj.data) : me.showInfo(obj) }, }, }, }; this.selectTabObj.tablefieldClick = tablefieldClick; }, codeClick(obj) { let me = this me.selectTabObj.code=='UnderApproval'? me.onApprove(obj.data) : me.showInfo(obj) }, opRowData(row, op) { let me = this if (op == 'del') { Root.confirm('隋�����ゅ��鐚�', '��腓�', { confirmButtonText: '隋��', cancelButtonText: '��羔�', type: 'warning' }).then(() => { let param = { dataName: 'pkg_agm_record_qtfy', 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: "���域換���莨�", id: "front_fee_info" + "edit" + row.id,//totab: true�狗��莅丞舟鐚�����ゆ�㊥����群��綣�罩らゝ�� url: "../agreement/policy/front_fee_info.html", data: row, delta: {}, sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", callback: function(obj, callback) { me.onQuery(); if (callback) { callback(); } } }; me.doPopupByPublic(config); } }, onApprove(row) { var me = this; var config = { totab: true, //true: 篁�Tab絲取�����劫���綣� width: "900px", height: "900px", icon: "icon-product", text: "���域換�����", id: "front_fee_info" + "approval" + row.id,//totab: true�狗��莅丞舟鐚�����ゆ�㊥����群��綣�罩らゝ�� url: "../agreement/policy/front_fee_info.html", data: row, delta: {}, sceneCode: "approval",//"refuseedit",//"approval", //"add"//"browse", callback: function(obj, callback) { me.onQuery(); if (callback) { callback(); } } }; me.doPopupByPublic(config); }, state_click(row){ var me = this; 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: "���域換�����", id: "front_fee_info" + "change",//totab: true�狗��莅丞舟鐚�����ゆ�㊥����群��綣�罩らゝ�� url: "../agreement/policy/front_fee_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: "���域換���罩�", id: "front_fee_info" + "end" + row.id,//totab: true�狗��莅丞舟鐚�����ゆ�㊥����群��綣�罩らゝ�� url: "../agreement/policy/front_fee_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: "���域換���医�", id: "front_fee_info" + "add",//totab: true�狗��莅丞舟鐚�����ゆ�㊥����群��綣�罩らゝ�� url: "../agreement/policy/front_fee_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: "���域換��拭���ョ��", id: "front_fee_info" + "browse" + obj.data.id,//totab: true�狗��莅丞舟鐚�����ゆ�㊥����群��綣�罩らゝ�� url: "../agreement/policy/front_fee_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>