| | |
| | | <!doctype html> |
| | | <!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) { |
| | |
| | | }; |
| | | |
| | | function initVue() { |
| | | pageVue = new TabTableVue({ |
| | | new ListVue({ |
| | | el: "#vbody", |
| | | data: { |
| | | dataname: "v_guarantee", |
| | | title: "保证金管理", |
| | | orderby: "", |
| | | filterfieldClick: {}, |
| | | tablefieldClick: {}, |
| | | formfieldClick: {}, |
| | | |
| | | //Tab项设置 |
| | | tabs_d: [ |
| | | // {code: "Input", name: "草稿", dataname: "md_target_dealer", filterTxt: "(state_code='Input' or state_code = 'Rejected')", orderby: "update_time desc"}, |
| | | // // {code: "UnderApproval", name: "审批中", dataname: "so_implant", filterTxt: "state_code='UnderApproval'", orderby: "doc_date desc"}, |
| | | // // {code: "Open", name: "审批完成", dataname: "so_implant", filterTxt: "state_code='Open'", orderby: "doc_date desc"}, |
| | | // // {code: "Closed", name: "失效", dataname:"so_implant", filterTxt: "state_code='Open'",}, |
| | | // {code: "All", name: "全部", dataname: "md_target_dealer", filterTxt: "1 = 1", orderby: "update_time desc"}, |
| | | dataRequest: [], |
| | | dataRequestObj:{}, |
| | | |
| | | {code: "List", name: "保证金明细", dataname: "md_target_dealer", filterTxt: "", orderby: ""}, |
| | | {code: "Flow", name: "保证金流水", dataname: "md_target_dealer", filterTxt: "", orderby: ""}, |
| | | // {code: "Apply", name: "指标申请", dataname: "md_target_apply", filterTxt: "1 = 1", orderby: "update_time desc"}, |
| | | ], |
| | | tabs: [], |
| | | tabsobj: {}, |
| | | |
| | | filterFields: [], |
| | | tableFields: [], |
| | | default_filterFields: [ |
| | | {isshow: "T", field: "year", name: "年份", filterfield:"", filteroperator: "like"}, |
| | | {isshow: "T", field: "customer_code", name: "推广商编码", filterfield:"", filteroperator: "like"}, |
| | | {isshow: "T", field: "customer_name", name: "推广商名称", filterfield:"", filteroperator: "like"}, |
| | | ], |
| | | default_tableFields: [ |
| | | //{isshow: "T", field: "category_id", name: "协议类型-ID", width: "100"}, |
| | | {isshow: "F", field: "state_code", name: "状态编码", width: "70"}, |
| | | {isshow: "T", field: "state_name", name: "状态名称", type:"tag", tagtype: '{^草稿^:^info^,^生效^:^success^,^关闭^:^danger^}', width: "80"}, |
| | | // {isshow: "T", field: "state_code", name: "状态编码", width: "70",filter_field:'state_code',filter_operator:'=',input_type:'capsuletag',input_type_filter:'select',options_key:'standard',options_pattern:'{^草稿^:^info^,^生效^:^success^,^审批中^:^warning^}'}, |
| | | //{isshow: "T", field: "template_id", name: "模板-ID", width: "100"}, |
| | | {isshow: "T", field: "month", name: "申请日期", width: "100"}, |
| | | {isshow: "T", field: "code", name: "台账编码", width: "100"}, |
| | | {isshow: "T", field: "name", name: "申请类型", width: "100"}, |
| | | {isshow: "T", field: "code", name: "推广商编码", width: "100"}, |
| | | {isshow: "T", field: "name", name: "推广商名称", width: "220"}, |
| | | {isshow: "T", field: "amt", name: "金额", width: "100",formatter:'formatter_money',align:'right',prefix:'¥'}, |
| | | {isshow: "T", field: "remark", name: "备注", width: "100",formatter:'formatter_money',align:'right',isminwidth:'T'}, |
| | | ], |
| | | cbuttons_r: {}, |
| | | ctabs_r: {}, |
| | | dataRequest: [ |
| | | // { |
| | | // name: "machine_state", |
| | | // dataname: "v_state_machine_state", |
| | | // // url: "root/data/newEntity", |
| | | // // paramsobj: {dataname: "md_org_data", type_code:"Distributor"}, |
| | | // isnotoption: false, //true:不是选项 |
| | | // code:"code",//是下拉选项时设置 |
| | | // label:"name",//是下拉选项时设置 |
| | | // // orderby: "index_no", |
| | | // filter: "parent_id='md_target_dealer'", |
| | | // }, |
| | | ], |
| | | dataRequestObj: {}, |
| | | isCustomer: false, |
| | | }, |
| | | created() {}, |
| | | |
| | | created() { |
| | | this.isCustomer = window.top.vue.isCustomer |
| | | }, |
| | | mounted() { |
| | | var me = this; |
| | | if (window.top.tab.selected.option.page_id) { |
| | | this.title = window.top.tab.selected.option.menutitle |
| | | getPageByPageId(window.top.tab.selected.option.page_id, function(result){ |
| | | me.cbuttons_r = result.buttons_r; |
| | | // me.ctabs_r = result.tabs_r; |
| | | |
| | | // var tabsarr = []; |
| | | // me.tabs_d.map(e=>{ |
| | | // if(me.ctabs_r[e.code]){ |
| | | // tabsarr.push(e) |
| | | // } |
| | | // }) |
| | | // me.tabs = tabsarr; |
| | | |
| | | me.tabs = me.tabs_d; |
| | | //预加载数据 |
| | | if (me.dataRequest && me.dataRequest.length) { |
| | | var result = {}; |
| | | me.loadRequestData(me.dataRequest, result, function(data) { |
| | | me.dataRequestObj = data; |
| | | //预加载数据后给哪些字段设置options或formatterjson |
| | | |
| | | if(me.tabs.length>0){ |
| | | me.activeTabName = me.tabs[0].code; |
| | | } |
| | | //初始化Tabs |
| | | me.initTabsPage(function() { |
| | | //获取数据 |
| | | me.initData(); |
| | | }); |
| | | me.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 |
| | | hideLoading(); |
| | | }); |
| | | me.initData(); |
| | | }); |
| | | } |
| | | else { |
| | | if(me.tabs.length>0){ |
| | | me.activeTabName = me.tabs[0].code; |
| | | } |
| | | //初始化Tabs |
| | | me.initTabsPage(function() { |
| | | //获取数据 |
| | | me.initData(); |
| | | }); |
| | | me.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 |
| | | hideLoading(); |
| | | }); |
| | | me.initData(); |
| | | } |
| | | |
| | | me.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 |
| | | hideLoading(); |
| | | }); |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | methods:{ |
| | | onhandleClick() { |
| | | this.initData(); |
| | | }, |
| | | |
| | | initData() { |
| | | var me = this; |
| | | 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); |
| | | |
| | | this.onQuery(function(result, callback) {//查询后的回调,用于获取字段的 |
| | | if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) { |
| | | var metas = clone(result.meta[me.dataname].fields); |
| | | var filterFields_ = []; |
| | | var tableFields_ = []; |
| | | |
| | | metas.map(f=>{ |
| | | f.isshow = "T"; |
| | | if (f.isfilter) { |
| | | if (f.field == "state_name") { |
| | | f.filterfield = "state_code"; |
| | | f.options = me.dataRequestObj.machine_state; |
| | | } |
| | | 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); |
| | | if (!me.filterFields || (me.filterFields && me.filterFields.length == 0)) { |
| | | me.filterFields = clone(filterFields_); |
| | | me.tableFields = clone(tableFields_); |
| | | |
| | | //字段数组转字段obj,目的为了筛选时获取字段属性 |
| | | me.fieldsToFieldsObj(); |
| | | |
| | | //设置字段事件 |
| | | me.tableFieldClick(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | //字段数组转字段obj,目的为了筛选时获取字段属性 |
| | | me.fieldsToFieldsObj(); |
| | | |
| | | //设置字段事件 |
| | | me.tableFieldClick(); |
| | | |
| | | if (callback) { |
| | | callback(); |
| | |
| | | |
| | | tableFieldClick() { |
| | | var me = this; |
| | | var tablefieldClick = {}; |
| | | this.selectTabObj.tablefieldClick = tablefieldClick[this.activeTabName]; |
| | | //表格字段事件设置 |
| | | this.tablefieldClick = { |
| | | state_name: {//状态 |
| | | val: {//有值时的点击事件 |
| | | notclick_val: ["草稿","录入"],//不可点击的值,1、是数组["11","22"];2、以“;”分隔的字符串"111;222" |
| | | notclick_bindfield: [], |
| | | onclick: function(obj) { |
| | | var config = { |
| | | totab: false, |
| | | width: "1100px", |
| | | height: "520px", |
| | | icon: "icon-product", |
| | | text: "流程步骤", |
| | | id: "popup_workflow_step_user" + obj.row.id, |
| | | url: "module/tool/page/popup_workflow_step_user.html?v=2023020703", |
| | | data: obj.row, |
| | | delta: {},//{machine_code: "Org_Account_Open"}, |
| | | sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(obj, callback) { |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | }, |
| | | tableButtonClick() { |
| | | var me = this; |
| | | var tablebuttonClick = {}; |
| | | tablebuttonClick.List = [ |
| | | { |
| | | isbuttonshow: true, |
| | | type:"primary", |
| | | code: "add", |
| | | isselected: false, |
| | | classname: "", |
| | | onclick: function(obj) { |
| | | me.openCustomer('add',obj.selectedList[0]) |
| | | } |
| | | }, |
| | | ] |
| | | me.selectTabObj.tablebuttonClick = tablebuttonClick[this.activeTabName] |
| | | }, |
| | | openCustomer(sceneCode, obj) { |
| | | |
| | | rowClick(obj){ |
| | | var me = this; |
| | | me.selectedrow = obj.row; |
| | | }, |
| | | |
| | | addCustomer(){ |
| | | let me = this; |
| | | var row = {} |
| | | if (sceneCode == "edit" || sceneCode == "browse") { |
| | | row = me.selectTabObj.selectedrow; |
| | | if(!row){ |
| | | Root.message({ |
| | | type: 'warning', |
| | | message: '请选择一条数据' |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | var config = { |
| | | totab: true, //true: 以Tab导航的方式打开 |
| | | width: "1100px", |
| | | height: "520px", |
| | | width: "1000px", |
| | | height: "500px", |
| | | icon: "icon-product", |
| | | text: "保证金" + (row.customer_code ? ("-" + row.customer_code) : ""), |
| | | id: "deposit_apply" + (row.id? row.id : "add") + sceneCode, |
| | | url: "module/md/page/customer/page/deposit_apply.html", |
| | | text: "商业新增", |
| | | id: "customer_edit",//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/md/page/customer/page/customer_edit.html", |
| | | data: {}, |
| | | delta: {}, |
| | | sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(obj, callback) { |
| | | me.onQuery(); |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | }, |
| | | editData(sceneCode){ |
| | | var me = this; |
| | | var row = me.selectedrow; |
| | | if(!row){ |
| | | Root.message({ |
| | | type: 'warning', |
| | | message: '请选择一条数据' |
| | | }); |
| | | return; |
| | | } |
| | | var config = { |
| | | totab: true, //true: 以Tab导航的方式打开 |
| | | width: "900px", |
| | | height: "500px", |
| | | icon: "icon-product", |
| | | text: "客户编辑", |
| | | id: "customer_edit" + row.id,//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/md/page/customer/page/customer_edit.html", |
| | | data: row, |
| | | delta: {}, |
| | | sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", |
| | |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | }, |
| | | |
| | | onDownload() { |
| | | let me = this; |
| | | var filter_ = "1 = 1"; |
| | | filter_ = this.getFilterData(filter_); |
| | | console.log("download", filter_); |
| | | let param = { |
| | | sign: "md_org_data", |
| | | filename: '经销商新增导出' + String(new Date().getTime()), |
| | | filter: filter_, |
| | | orderby: "update_time desc", |
| | | token: Root.getToken() |
| | | } |
| | | |
| | | me.textdownloadForm(param); |
| | | }, |
| | | |
| | | textdownloadForm(params) {//post文件流下载 |
| | | let form = document.createElement('form'); |
| | | form.id = 'form_download'; |
| | | form.name = 'form_download'; |
| | | document.body.appendChild(form); |
| | | //循环创建input框 |
| | | for (let obj in params) { |
| | | if (params.hasOwnProperty(obj)) { |
| | | let input = document.createElement('input') |
| | | input.type = 'hidden' |
| | | input.name = obj; |
| | | input.value = params[obj] |
| | | form.appendChild(input) |
| | | } |
| | | }; |
| | | form.method = 'post'; //请求方式 |
| | | form.action = window.top.config.url_root + "root/exports/exportSheetsExcel?token=" + Root.getToken(); |
| | | form.submit(); // form表单提交 |
| | | |
| | | document.body.removeChild(form); // 移除创建的元素 |
| | | }, |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | loadJsCss(function () { |
| | | initVue(); |
| | | }); |
| | | </script> |
| | | <style> |
| | | /* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */ |
| | | [v-cloak] { |
| | | display: none !important; |
| | | } |
| | | .el-tabs__nav-scroll { |
| | | overflow: hidden; |
| | | position: relative; |
| | | padding-left: 20px; |
| | | } |
| | | </style> |
| | | |
| | | </head> |
| | | |
| | | <body style="margin: 0px;"> |
| | | <body style="margin: 0px;" > |
| | | <div v-cloak id="vbody"> |
| | | <div id="page_root"> |
| | | <div class="topbar"> |
| | | <span :class="page_title == 'right' ? 'h_page_title_right' : 'h_page_title_left'"><span class="h_page_title_txt">{{title}}</span></span> |
| | | |
| | | <div :class="page_title == 'right' ? 'h_page_button_left' : 'h_page_button_right'"> |
| | | <el-button-group style="margin-left: 3px"> |
| | | <el-button v-show="cbuttons_r.export" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button> |
| | | </el-button-group> |
| | | <el-button v-show="cbuttons_r.export ? cbuttons_r.export : false" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button> |
| | | </div> |
| | | </div> |
| | | <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="h_dialog__body"> |
| | | <h-table |
| | | v-if="isRefresh && selectTabObj.tableFields" |
| | | v-if="isRefresh" |
| | | 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" |
| | | :table-field-click="selectTabObj.tablefieldClick" |
| | | :is-show-index="selectTabObj.isShowIndex" |
| | | :tableloading="tableloading" |
| | | :is-highlight-row="selectTabObj.isHighlightRow" |
| | | :table-fields="tableFields" |
| | | :table-data="tableData" |
| | | :is-edit-table-data="isEditTableData" |
| | | :table-field-click="tablefieldClick" |
| | | :pagesize="pagesize" |
| | | :pagenum="pagenum" |
| | | :total="total" |
| | | :table-height="tableHeight" |
| | | :is-highlight-row="true" |
| | | :isdraggableorder="cbuttons_r.Set" |
| | | :filtersobj="selectTabObj.filterObj" |
| | | :table-buttons-click="selectTabObj.tablebuttonClick" |
| | | |
| | | v-on:get-data="getData" |
| | | v-on:edit-data="editData" |
| | | v-on:row-click="rowClick" |
| | | v-on:del-data="delData" |
| | | |
| | | v-on:cell-click="cellClick" |
| | | v-on:row-click="rowClick" |
| | | v-on:order-fields="orderTableFields" |
| | | > |
| | | </h-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | </div> |
| | | <div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;"> |
| | | <div class="spinner"> |
| | | <div class="cube1"></div> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <style> |
| | | [v-cloak] { |
| | | display: none !important; |
| | | } |
| | | .prefixclass { |
| | | width: 10px; |
| | | height: 10px; |
| | | border-radius: 5px; |
| | | background-color: #e6372b; |
| | | display: inline-block; |
| | | } |
| | | </style> |
| | | </body> |
| | | </html> |