| | |
| | | .h_table .el-input--mini .el-input__inner { |
| | | height: 24px; |
| | | line-height: 24px; |
| | | text-align: right; |
| | | padding-left: 5px; |
| | | padding-right: 5px; |
| | | } |
| | | |
| | | .h_table .el-input-number .el-input-number__decrease, |
| | | .h_table .el-input-number .el-input-number__increase { |
| | | display: none; |
| | | } |
| | | |
| | | .h_table .el-input--mini .el-input__icon { |
| | | line-height: 26px; |
| | | } |
| | |
| | | |
| | | |
| | | config = { |
| | | jscssversion: "2024080201", //.js/.css文件的版本号,去除前端缓存的一种机制 |
| | | jscssversion: "2024081901", //.js/.css文件的版本号,去除前端缓存的一种机制 |
| | | isupgrading: false, //是否升级中 |
| | | appName: "TPP", |
| | | title: "营销一体化运营平台", |
| | |
| | | // 数据加载时的转圈圈 |
| | | '<div v-loading="istableloading" v-if="istableloading" class="h_table_loading"></div> '+ |
| | | // 表格工具栏 - 标题、功能组、多选 |
| | | '<div v-if="isshowtool && ((tableAttr.istitle && tableAttr.title) || (istablebuttons && tablebuttons.length) || ((isbasicfilterfields && (tableAttr.toolbarobj && tableAttr.toolbarobj.isbasicfilterfields) && tableBasicFilterFields.length) || (isfilterfield && (tableAttr.toolbarobj && tableAttr.toolbarobj.isfilterfield))) || (tableAttr.tag && tableAttr.tag.name)) || ((tableAttr.toolbarobj && ((isbasicfilterfields && tableAttr.toolbarobj.isbasicfilterfields) || (tableAttr.toolbarobj.more_datalist && tableAttr.toolbarobj.more_datalist.length))) || (isshowShoppingcart && (tableAttr.isSelection || isSelection)) || (tableToolButtons && tableToolButtons.length))" class="h_h_table" :ref="\'h_tabletool\' + href"> '+ |
| | | '<div v-if="isshowtool && ((tableAttr.istitle && tableAttr.title) || (istablebuttons && tablebuttons.length) || ((isbasicfilterfields && (tableAttr.toolbarobj && tableAttr.toolbarobj.isbasicfilterfields) && tableBasicFilterFields.length) || (isfilterfield && (tableAttr.toolbarobj && tableAttr.toolbarobj.isfilterfield))) || (tableAttr.tag && tableAttr.tag.name)) || ((tableAttr.toolbarobj && (tableAttr.toolbarobj.more_datalist && tableAttr.toolbarobj.more_datalist.length)) || (isshowShoppingcart && (tableAttr.isSelection || isSelection)) || (tableToolButtons && tableToolButtons.length))" class="h_h_table aaa" :ref="\'h_tabletool\' + href"> '+ |
| | | // 表格本身功能(标题、字段顺序、表刷新、表标签) |
| | | '<div v-if="(tableAttr.istitle && tableAttr.title) || (istablebuttons && tablebuttons.length) || ((isbasicfilterfields && (tableAttr.toolbarobj && tableAttr.toolbarobj.isbasicfilterfields) && tableBasicFilterFields.length) || (isfilterfield && (tableAttr.toolbarobj && tableAttr.toolbarobj.isfilterfield))) || (tableAttr.tag && tableAttr.tag.name)" class="h_table_tool_left">'+ |
| | | // 标题 |
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 ListVue({ |
| | | el: "#vbody", |
| | | data: { |
| | | dataname: "fee_guide_settle_execute", |
| | | title: "执行单", |
| | | orderby: "", |
| | | filterfieldClick: {}, |
| | | tablefieldClick: {}, |
| | | formfieldClick: {}, |
| | | |
| | | dataRequest: [], |
| | | dataRequestObj:{}, |
| | | |
| | | filterFields: [], |
| | | tableFields: [], |
| | | cbuttons_r: {}, |
| | | ctabs_r: {}, |
| | | isCustomer: false, |
| | | }, |
| | | 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; |
| | | //预加载数据 |
| | | if (me.dataRequest && me.dataRequest.length) { |
| | | var result = {}; |
| | | me.loadRequestData(me.dataRequest, result, function(data) { |
| | | me.dataRequestObj = data; |
| | | //预加载数据后给哪些字段设置options或formatterjson |
| | | |
| | | me.initData(); |
| | | }); |
| | | } |
| | | else { |
| | | me.initData(); |
| | | } |
| | | |
| | | me.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 |
| | | hideLoading(); |
| | | }); |
| | | }) |
| | | } |
| | | }, |
| | | methods:{ |
| | | initData() { |
| | | var me = this; |
| | | |
| | | 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.field == "md_org_account__bu_name") { |
| | | f.optionsgroup = "bu" |
| | | } |
| | | if (f.field == "md_org_account__company_name") { |
| | | f.optionsgroup = "company" |
| | | } |
| | | if (f.field == "province") { |
| | | f.options = me.dataRequestObj.md_province |
| | | } |
| | | |
| | | if (f.field == "is_editable") { |
| | | f.isshow = "F" |
| | | } |
| | | if (me.isCustomer && f.field == "md_position_hierarchy__position_path") { |
| | | f.isshow = "F" |
| | | f.isfilter = false |
| | | } |
| | | |
| | | 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.filterFields || (me.filterFields && me.filterFields.length == 0)) { |
| | | me.filterFields = clone(filterFields_); |
| | | me.tableFields = clone(tableFields_); |
| | | |
| | | //字段数组转字段obj,目的为了筛选时获取字段属性 |
| | | me.fieldsToFieldsObj(); |
| | | |
| | | //设置字段事件 |
| | | me.tableFieldClick(); |
| | | } |
| | | } |
| | | |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | tableFieldClick() { |
| | | var me = this; |
| | | //表格字段事件设置 |
| | | 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); |
| | | }, |
| | | }, |
| | | }, |
| | | code: {//字段事件设置 |
| | | val: {//有值时的点击事件 |
| | | notclick_val: "",//不可点击的值,1、是数组["11","22"];2、以“;”分隔的字符串"111;222" |
| | | notclick_bindfield: [],//当该字段值等于指定字段值时不可点击["filterfield": "111"] |
| | | onclick: function(obj) {//数据值点击事件 |
| | | var sceneCode_ = "browse"; |
| | | //如果是创建人且是录入状态或退回状态则是编辑状态 |
| | | if (obj.row.creator_id == window.top.vue.userinfo.id && (obj.row.state_code == "Input" || obj.row.state_code == "input" || obj.row.state_code == "Rejected")) { |
| | | sceneCode_ = "edit"; |
| | | } |
| | | |
| | | var config = { |
| | | totab: true, //true: 以Tab导航的方式打开 |
| | | width: "1100px", |
| | | height: "520px", |
| | | icon: "icon-product", |
| | | text: "商业信息 " + (obj.row.name ? obj.row.name : ""), |
| | | id: "customer_edit_browse" + obj.row.id,//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/md/page/customer/page/customer_edit.html", |
| | | data: obj.row, |
| | | delta: {closeCode:"1"}, |
| | | sceneCode: sceneCode_,//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(obj, callback) { |
| | | me.onQuery(); |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | | rowClick(obj) { |
| | | var me = this; |
| | | me.selectedrow = obj.row; |
| | | }, |
| | | |
| | | 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: "popup_edit_fee_qty" + sceneCode + row.id,//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/fee/page/popup/popup_edit_fee_qty.html", |
| | | data: row, |
| | | delta: {}, |
| | | sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(obj, callback) { |
| | | me.onQuery(); |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | 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> |
| | | </head> |
| | | |
| | | <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 :disabled="!(selectedrow.id)" @click="editData('edit') " :icon="buttonsconfig.alter.icon":icon="buttonsconfig.alter.icon">{{buttonsconfig.alter.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 class="h_dialog__body"> |
| | | <h-table |
| | | v-if="isRefresh" |
| | | ref="table1" |
| | | :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="false" |
| | | v-on:get-data="getData" |
| | | |
| | | v-on:cell-click="cellClick" |
| | | v-on:row-click="rowClick" |
| | | > |
| | | </h-table> |
| | | </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> |
| | | |
| | | <style> |
| | | [v-cloak] { |
| | | display: none !important; |
| | | } |
| | | .prefixclass { |
| | | width: 10px; |
| | | height: 10px; |
| | | border-radius: 5px; |
| | | background-color: #e6372b; |
| | | display: inline-block; |
| | | } |
| | | </style> |
| | | </body> |
| | | </html> |
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 FormVue({ |
| | | el: "#vbody", |
| | | data: { |
| | | dataname: "fee_guide_settle_execute", |
| | | table_dataname: "fee_working_out_base_execute", |
| | | title: "执行单信息", |
| | | dataRequest: [ |
| | | { |
| | | name: "fee_working_out_base_execute", // 业务负责人字段 |
| | | dataname: "fee_working_out_base_execute", |
| | | url: "root/data/getEntitySet", |
| | | paramsobj: {dataname: "fee_working_out_base_execute", attachMeta: true, filter: "1<>1"}, |
| | | isnotoption: true, //true:不是选项 |
| | | } |
| | | ], |
| | | meta_fee_working_out_base_execute: [], |
| | | |
| | | options_md_org_master: [], |
| | | md_bu_org_obj: {}, |
| | | options_md_bu: [], |
| | | productobj_map: {}, |
| | | md_bu_product_obj: {}, |
| | | md_bu_product_bu_obj: {}, |
| | | md_prod_sku_obj: {}, |
| | | |
| | | formAttr: { |
| | | istitle: false, |
| | | title: "表单名称", |
| | | columnnumber: 3, |
| | | labelwidth: "100px", |
| | | labelposition: "left",//"left",// right//top |
| | | size: "mini", |
| | | border: "10px solid #c6c6c600", |
| | | borderleft: "0px" |
| | | }, |
| | | |
| | | formFields: [], |
| | | |
| | | newformData: { |
| | | state_code: "Input", |
| | | state_name: "录入", |
| | | is_active: true, |
| | | source: "手动录入", |
| | | type_code: "Customer", // Standard标准价目表、Customer经销商价目表 |
| | | }, |
| | | formData: {}, |
| | | |
| | | isRefresh: true, |
| | | tableFields: [], |
| | | tableData: [], |
| | | //字段设置 |
| | | tablefieldClick: {}, |
| | | pagesize: 10, |
| | | pagenum: 1, |
| | | total: 0, |
| | | tableHeight: 200, |
| | | tableloading: false, |
| | | |
| | | |
| | | //按键权限设置 |
| | | isedit: false,//提交前编辑,保存/提交 |
| | | isrefuseedit: false,//拒绝后编辑,保存/再次提交 |
| | | isapproval: false,//审批,同意/拒绝/转办/退回 |
| | | |
| | | iscommit: false,//提交标记 |
| | | |
| | | //弹窗参数 |
| | | popupParames: {}, |
| | | |
| | | formfieldClick: {}, |
| | | dheight: null, |
| | | |
| | | agreementdata: {}, |
| | | options_product: [], |
| | | |
| | | //审批相关变量 |
| | | reasonvisible:false,//审批通过或拒绝填写原因 |
| | | approveremark: '',//填写理由 |
| | | passOrRefuse:false, |
| | | loading_pass: false, |
| | | }, |
| | | created() { |
| | | this.popupParames = clone(Root.popupParames); |
| | | // this.title = this.popupParames.title || this.popupParames.text |
| | | if (this.popupParames.data) { |
| | | if (this.popupParames.data._datano) { |
| | | this.title = this.title + this.popupParames.data._datano; |
| | | } |
| | | this.formData = clone(this.popupParames.data); |
| | | } |
| | | if (this.popupParames.delta && this.popupParames.delta.dataname) { |
| | | this.dataname = clone(this.popupParames.delta.dataname); |
| | | } |
| | | |
| | | if (this.popupParames.delta && this.popupParames.delta.agreementdata) { |
| | | this.agreementdata = clone(this.popupParames.delta.agreementdata); |
| | | } |
| | | if (this.popupParames.delta && this.popupParames.delta.options_product) { |
| | | this.options_product = clone(this.popupParames.delta.options_product); |
| | | } |
| | | |
| | | if (this.popupParames.sceneCode) { |
| | | if (this.popupParames.sceneCode == "add") {//新增 |
| | | var newEntity_ = { |
| | | name: "newEntity", |
| | | url: "root/data/newEntity", |
| | | paramsobj: {dataname: this.dataname}, |
| | | isnotoption: true, //true:不是选项 |
| | | } |
| | | this.dataRequest.push(newEntity_); |
| | | for (var k in this.popupParames.data) { |
| | | this.newformData[k] = this.popupParames.data[k] |
| | | } |
| | | this.isedit = true; |
| | | } |
| | | else if (this.popupParames.sceneCode == "browse") {//只读 |
| | | this.formAttr.disabled = true; |
| | | } |
| | | else if (this.popupParames.sceneCode == "edit" || this.popupParames.sceneCode == "editbyagreement") {//编辑 |
| | | this.isedit = true; |
| | | } |
| | | else if (this.popupParames.sceneCode == "approval") {//审批 |
| | | this.formAttr.disabled = true; |
| | | this.isapproval = true; |
| | | |
| | | if (this.formData.current_step_name && this.formData.current_step_name == "运营部门复核") { |
| | | this.isedit = true; |
| | | } |
| | | |
| | | } |
| | | else if (this.popupParames.sceneCode == "refuseedit") {//拒绝后的编辑 |
| | | this.isrefuseedit = true; |
| | | } |
| | | } |
| | | }, |
| | | |
| | | mounted() { |
| | | var me = this; |
| | | var title_h = 0; |
| | | if (me.popupParames.totab) { |
| | | title_h = 42; |
| | | } |
| | | me.dheight = document.documentElement.clientHeight - 50 - title_h; |
| | | //预加载数据 |
| | | if (this.dataRequest && this.dataRequest.length) { |
| | | var result = {}; |
| | | this.loadRequestData(this.dataRequest, result, function(data) { |
| | | me.dataRequestObj = data; |
| | | //预加载数据后给哪些字段设置options或formatterjson |
| | | if (me.dataRequestObj.newEntity) { |
| | | var formData = clone(me.dataRequestObj.newEntity.data[me.dataname]); |
| | | 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.dataRequestObj.fee_working_out_base_execute) { |
| | | let meta_ = me.dataRequestObj.fee_working_out_base_execute.meta.fee_working_out_base_execute.fields; |
| | | meta_.map(f=>{ |
| | | f.isshow = "T"; |
| | | if (f.field == "_qty_trans" || f.field == "_qty_cal" || f.field == "_qty_final" || f.field == "_amt_final") { |
| | | f.isfixed = "right"; |
| | | } |
| | | }) |
| | | me.meta_fee_working_out_base_execute = clone(meta_) |
| | | } |
| | | me.initData(); |
| | | }); |
| | | } |
| | | else { |
| | | this.initData(); |
| | | } |
| | | |
| | | // 以服务的方式调用的 Loading 需要异步关闭 |
| | | this.$nextTick(() => { |
| | | hideLoading(); |
| | | }); |
| | | }, |
| | | |
| | | 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 = { |
| | | //row: this.formData |
| | | } |
| | | this.popupParames.callback(obj, function() { |
| | | me.closeDialog(); |
| | | }); |
| | | } |
| | | else { |
| | | me.closeDialog(); |
| | | } |
| | | }, |
| | | |
| | | initData() { |
| | | let me = this; |
| | | var id_ = null; |
| | | if (this.formData.id) { |
| | | id_ = this.formData.id; |
| | | } |
| | | this.getRowDataById(id_, function(result) { //查询后的回调,用于获取字段的 |
| | | if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) { |
| | | var metas = clone(result.meta[me.dataname].fields); |
| | | var formFields_ = []; |
| | | |
| | | metas.map(f=>{ |
| | | f.isshow = "T"; |
| | | if (f.field == "company_id") { |
| | | // f.isshow = "F"; |
| | | f.options = me.options_md_org_master |
| | | } |
| | | |
| | | if (f.field == "product_id") { |
| | | f.props = {label: "value", value: "code", multiple: false}; |
| | | if (me.options_product.length) { |
| | | f.options = clone(me.options_product); |
| | | } |
| | | else if (me.formData.bu_id && me.md_bu_product_obj[me.formData.bu_id]) { |
| | | f.options = clone(me.md_bu_product_obj[me.formData.bu_id].children); |
| | | } |
| | | else { |
| | | f.options = []; |
| | | } |
| | | } |
| | | |
| | | // if (f.field == "customer_name" && (me.popupParames.sceneCode == "addbyagreement" || me.popupParames.sceneCode == "editbyagreement")) { |
| | | // f.disabled = true; |
| | | // } |
| | | // if ((f.field == "date_from" || f.field == "date_to") && (me.popupParames.sceneCode == "addbyagreement" || me.popupParames.sceneCode == "editbyagreement")) { |
| | | // f.isshow = false; |
| | | // } |
| | | |
| | | formFields_.push(clone(f)); |
| | | }) |
| | | if (!me.formFields || (me.formFields && me.formFields.length == 0)) { |
| | | me.formFields = clone(formFields_); |
| | | me.tableFields = clone(me.meta_fee_working_out_base_execute); |
| | | |
| | | //设置字段事件 |
| | | me.tableFieldClick(); |
| | | } |
| | | |
| | | if (me.formData.company_id) { |
| | | var formFields_ = clone(me.formFields); |
| | | formFields_.map(f=>{ |
| | | if (f.field == "bu_id") { |
| | | if (me.md_bu_org_obj[me.formData.company_id] && me.md_bu_org_obj[me.formData.company_id].length) { |
| | | f.options = clone(me.md_bu_org_obj[me.formData.company_id]) |
| | | } |
| | | } |
| | | }) |
| | | me.formFields = clone(formFields_); |
| | | } |
| | | |
| | | if (me.formData.product_id) { |
| | | var select_p_ = [me.formData.product_id]; |
| | | me.formData.product_id = clone(select_p_); |
| | | |
| | | var formFields_ = clone(me.formFields); |
| | | formFields_.map(f=>{ |
| | | if (f.field == "spec") { |
| | | if (me.formData.product_id) { |
| | | f.options = clone(me.md_prod_sku_obj[me.formData.product_id[0]]); |
| | | } |
| | | else { |
| | | f.options = []; |
| | | } |
| | | } |
| | | }) |
| | | me.formFields = clone(formFields_); |
| | | } |
| | | me.onTableQuery(); |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | tableFieldClick() { |
| | | var me = this; |
| | | //表单字段事件设置 |
| | | this.formfieldClick = { |
| | | type_code: { |
| | | select: { |
| | | onchange: function(obj,refreshCallback) {//下拉展开事件 |
| | | obj.data.type_name = obj.selectoption.value || ""; |
| | | var formFields_ = clone(me.formFields); |
| | | formFields_.map(f=>{ |
| | | if (f.field == "account_name") { // f.field == "company_id" || f.field == "bu_id" || |
| | | if (obj.data.type_code == "Onsite") { // 优惠价格 |
| | | f.required = false |
| | | } |
| | | else { |
| | | f.required = true |
| | | } |
| | | } |
| | | }) |
| | | me.formFields = clone(formFields_); |
| | | }, |
| | | }, |
| | | }, |
| | | _qty_trans: { |
| | | val: { |
| | | onchange: function(obj) { |
| | | var formData_ = clone(me.formData); |
| | | formData_._qty_trans = formData_._qty_trans * 1; |
| | | if (formData_._qty_cal) { |
| | | formData_._qty_final = (formData_._qty_cal * 1) - (formData_._qty_trans * 1) |
| | | formData_._amt_final = formData_._qty_final * formData_._taxunitprice |
| | | } |
| | | me.formData = clone(formData_); |
| | | } |
| | | }, |
| | | input: { |
| | | onchange: function(obj) { |
| | | var formData_ = clone(me.formData); |
| | | formData_._qty_trans = formData_._qty_trans * 1; |
| | | if (formData_._qty_cal) { |
| | | formData_._qty_final = (formData_._qty_cal * 1) - (formData_._qty_trans * 1) |
| | | formData_._amt_final = formData_._qty_final * formData_._taxunitprice |
| | | } |
| | | me.formData = clone(formData_); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | }; |
| | | |
| | | this.tablefieldClick = { |
| | | _qty_trans: { |
| | | input: { |
| | | onchange: function(obj) { |
| | | obj.row._qty_trans = obj.row._qty_trans * 1; |
| | | if (obj.row._qty_cal) { |
| | | obj.row._qty_final = (obj.row._qty_cal * 1) - (obj.row._qty_trans * 1) |
| | | obj.row._amt_final = obj.row._qty_final * obj.row._taxunitprice |
| | | } |
| | | |
| | | me.saveTableRow(obj.row); |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | }, |
| | | |
| | | saveTableRow(row) { |
| | | var me = this; |
| | | var entity_ = clone(row); |
| | | var entity = { |
| | | _qty_trans: entity_._qty_trans, |
| | | _qty_final: entity_._qty_final, |
| | | _amt_final: entity_._amt_final, |
| | | id: entity_.id |
| | | }; |
| | | |
| | | let param = { |
| | | dataname: me.table_dataname, |
| | | data: {}, |
| | | } |
| | | if (entity.id) { |
| | | param.id = entity.id |
| | | } |
| | | param.data[me.table_dataname] = entity; |
| | | Server.call("root/data/saveEntity", param, function(result) { |
| | | |
| | | }, function(errorresult) { |
| | | console.log("错误信息", errorresult); |
| | | if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) { |
| | | if (errorresult.messages.list) { |
| | | var config = { |
| | | totab: false, |
| | | 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 if (errorresult.exists_errors && errorresult.exists_errors.length) { |
| | | var messages_list = [] |
| | | var index_ = 0; |
| | | errorresult.exists_errors.map(r=>{ |
| | | index_ ++; |
| | | var messages_ = { |
| | | step: index_, |
| | | level: "Error", |
| | | message: r.title + "【" + r.errors[0].record_no + r.errors[0].record_name?r.errors[0].record_name: '' + "】" |
| | | } |
| | | messages_list.push(messages_) |
| | | }) |
| | | var config = { |
| | | totab: false, |
| | | // width: "1200px", |
| | | // height: 800, |
| | | icon: "icon-product", |
| | | text: "错误信息", |
| | | url: "module/tool/page/popup_error_messages.html", |
| | | data: {}, |
| | | delta: messages_list, |
| | | callback: function(obj, callback) { |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | } |
| | | else { |
| | | Root.message({ |
| | | type: 'error', |
| | | message: '调整失败' |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | openAccount(sceneCode, obj, callback) { |
| | | var me = this; |
| | | var data_ = {}; |
| | | var config = { |
| | | totab: false, //true: 以Tab导航的方式打开 |
| | | width: "800px", |
| | | height: "520px", |
| | | icon: "icon-product", |
| | | text: "经销商选择", |
| | | id: "popup_account",//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/md/page/popup/page/popup_account.html", |
| | | data: data_, |
| | | delta: {}, |
| | | // filter: "org_id='"+ me.selectedrow.org_id + "' and bu_id='" + me.selectedrow.bu_id + "'", |
| | | filter: "md_org_account.state_code='Open'", |
| | | sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(popupobj, popupcallback) { |
| | | callback(popupobj); |
| | | if (popupcallback) { |
| | | popupcallback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | }, |
| | | openOrg(sceneCode, obj, callback) { |
| | | var me = this; |
| | | var config = { |
| | | totab: false, //true: 以Tab导航的方式打开 |
| | | width: "800px", |
| | | height: "520px", |
| | | icon: "icon-product", |
| | | text: "选择配送商", |
| | | id: "popup_customer",//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/md/page/popup/page/popup_customer.html", |
| | | data: {}, |
| | | delta: "", |
| | | // filter: "category_code='"+ me.positiondata.org_id + "' and bu_id='" + me.positiondata.bu_id + "'", |
| | | filter: "is_distributor='T'", |
| | | sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(popupobj, popupcallback) { |
| | | callback(popupobj); |
| | | if (popupcallback) { |
| | | popupcallback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | }, |
| | | openHospital(sceneCode, obj, callback) { |
| | | var me = this; |
| | | var data_ = {}; |
| | | var config = { |
| | | totab: false, //true: 以Tab导航的方式打开 |
| | | width: "800px", |
| | | height: "520px", |
| | | icon: "icon-product", |
| | | text: "医院选择", |
| | | id: "popup_hospital",//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/md/page/popup/page/popup_hospital.html", |
| | | data: data_, |
| | | delta: {}, |
| | | // filter: "org_id='"+ me.selectedrow.org_id + "' and bu_id='" + me.selectedrow.bu_id + "'", |
| | | filter: "", |
| | | sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(popupobj, popupcallback) { |
| | | callback(popupobj); |
| | | if (popupcallback) { |
| | | popupcallback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | }, |
| | | |
| | | open_productlist(obj) { |
| | | var me = this; |
| | | 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(); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | getData: function(page) { |
| | | this.pagesize = page.pagesize; |
| | | this.pagenum = page.pagenum; |
| | | // if (page.filtersobj) { |
| | | // this.filterObj = page.filtersobj; |
| | | // } |
| | | // this.selectedrow = {}; |
| | | this.onTableQuery(); |
| | | }, |
| | | onTableQuery() { |
| | | var me = this |
| | | let filter_ = "task_id='" + this.formData.id + "'"; |
| | | |
| | | let param_ = { |
| | | dataname: this.table_dataname, |
| | | filter: filter_, |
| | | orderby: "_dataNo", |
| | | page: { |
| | | pageno: this.pagenum, |
| | | pagesize: this.pagesize |
| | | }, |
| | | attachMeta: false |
| | | } |
| | | |
| | | me.tableData = []; |
| | | me.tableloading = true; |
| | | Server.call("root/data/getEntitySet", param_, function(result) { |
| | | me.tableloading = false; |
| | | if (result && result.data && result.data.entityset) { |
| | | var data_ = result.data.entityset; |
| | | me.tableData = data_; |
| | | me.total = result.data.page ? result.data.page.recordcount : 0; |
| | | } |
| | | else { |
| | | me.total = 0; |
| | | } |
| | | }, function(){ |
| | | me.tableloading = false; |
| | | }); |
| | | }, |
| | | |
| | | //提交 |
| | | submitRowTable() { |
| | | var me = this; |
| | | var bo_ = this.$refs.form1.checkForm(); |
| | | |
| | | if (!bo_) { |
| | | bo_ = false; |
| | | Root.message({ |
| | | type: 'error', |
| | | message: '请填写必填项' |
| | | }); |
| | | return |
| | | } |
| | | this.iscommit = true; |
| | | this.saveRowTable(); |
| | | }, |
| | | |
| | | //保存 |
| | | saveRowTable(callback) { |
| | | var me = this; |
| | | var operator_ = "saveEntity";//保存 |
| | | // if(me.iscommit) { |
| | | // operator_ = "commit";//提交 |
| | | // } |
| | | |
| | | var entity_ = clone(this.formData); |
| | | var entity = { |
| | | _qty_trans: entity_._qty_trans, |
| | | _qty_final: entity_._qty_final, |
| | | _amt_final: entity_._amt_final, |
| | | id: entity_.id |
| | | }; |
| | | |
| | | let param = { |
| | | dataname: me.dataname, |
| | | data: {}, |
| | | } |
| | | if (me.formData.id) { |
| | | param.id = me.formData.id |
| | | } |
| | | param.data[me.dataname] = entity; |
| | | |
| | | Server.call("root/data/" + operator_, param, function(result) { |
| | | console.log(result); |
| | | if (result.success) { |
| | | if (callback) { |
| | | callback() |
| | | } |
| | | else { |
| | | if(me.iscommit){ |
| | | me.iscommit = false; |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '提交成功' |
| | | }); |
| | | me.saveAfter(); |
| | | } |
| | | else { |
| | | 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; |
| | | 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 if (errorresult.exists_errors && errorresult.exists_errors.length) { |
| | | var messages_list = [] |
| | | var index_ = 0; |
| | | errorresult.exists_errors.map(r=>{ |
| | | index_ ++; |
| | | var messages_ = { |
| | | step: index_, |
| | | level: "Error", |
| | | message: r.title + "【" + r.errors[0].record_no + r.errors[0].record_name?r.errors[0].record_name: '' + "】" |
| | | } |
| | | messages_list.push(messages_) |
| | | }) |
| | | me.iscommit = false; |
| | | var config = { |
| | | totab: false, |
| | | // width: "1200px", |
| | | // height: 800, |
| | | icon: "icon-product", |
| | | text: "错误信息", |
| | | url: "module/tool/page/popup_error_messages.html", |
| | | data: {}, |
| | | delta: messages_list, |
| | | callback: function(obj, callback) { |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | } |
| | | else { |
| | | me.iscommit = false; |
| | | Root.message({ |
| | | type: 'error', |
| | | message: '提交失败' |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 通过或拒绝 |
| | | onShowApproval(passOrRefuse) { |
| | | this.approveremark = ""; |
| | | this.reasonvisible = true;//审批备注填写弹窗 |
| | | this.passOrRefuse = passOrRefuse;// commit下一个状态;approve通过;gohome;//拒绝 goback;//回退 |
| | | }, |
| | | saveReason() { |
| | | this.loading_pass = true; |
| | | if(this.passOrRefuse == "commit" || this.passOrRefuse == "approve"){ |
| | | this.doApproval(); |
| | | } |
| | | else{ |
| | | if(this.approveremark != ""){ |
| | | this.doApproval(); |
| | | } |
| | | else{ |
| | | Root.message({ |
| | | type: 'warning', |
| | | message: '请填写原因' |
| | | }); |
| | | this.loading_pass = false; |
| | | } |
| | | } |
| | | }, |
| | | doApproval(bo) { |
| | | var me = this; |
| | | // if (this.isedit) { |
| | | // this.saveRowTable(function() { |
| | | // me.doRunApproval(); |
| | | // }); |
| | | // } |
| | | // else { |
| | | me.doRunApproval(); |
| | | // } |
| | | |
| | | }, |
| | | |
| | | getMachine(callback) { |
| | | var me = this; |
| | | let param = { |
| | | dataname: me.dataname, |
| | | } |
| | | Server.call("root/state/getMachine", param, function(result) { |
| | | var next_step = {}; // 向下流程 |
| | | var up_step = {}; // 向上流程 |
| | | |
| | | if (result && result.machine && result.machine.detail) { |
| | | result.machine.detail.map(md=>{ |
| | | next_step[md.from_code] = md.to_code; |
| | | up_step[md.to_code] = md.from_code; |
| | | }) |
| | | |
| | | callback(next_step, up_step); |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | doRunApproval() { |
| | | var me = this; |
| | | |
| | | let param = { |
| | | dataname: me.dataname, |
| | | id: me.formData.id, |
| | | // to_state: to_state_, |
| | | remark: this.approveremark |
| | | } |
| | | // |
| | | // return |
| | | Server.call("root/data/" + this.passOrRefuse, param, function(result) { |
| | | me.loading_pass = false; |
| | | console.log(result); |
| | | if (me.passOrRefuse == "commit" || me.passOrRefuse == "approve") { |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '审批成功' |
| | | }); |
| | | } |
| | | else if (me.passOrRefuse == "goback") { |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '已退回' |
| | | }); |
| | | } |
| | | else if (me.passOrRefuse == "gohome") { |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '已拒绝' |
| | | }); |
| | | } |
| | | me.saveAfter(); |
| | | }, function(errorresult) { |
| | | console.log("错误信息", errorresult); |
| | | me.loading_pass = false; |
| | | if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) { |
| | | if (errorresult.messages.list) { |
| | | 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: 'error', |
| | | message: '审批失败' |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | loadJsCss(function () { |
| | | initVue(); |
| | | }); |
| | | </script> |
| | | <style> |
| | | /* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */ |
| | | [v-cloak] { |
| | | display: none !important; |
| | | } |
| | | </style> |
| | | |
| | | </head> |
| | | |
| | | <body style="margin: 0px;"> |
| | | <div v-cloak id="vbody"> |
| | | <div id="page_root"> |
| | | <div ref="popup_body" style="padding: 0 20px;"> |
| | | <div v-if="popupParames.totab" class="el-dialog__header"> |
| | | <div class="dialog-title"> |
| | | <i class="iconfont icon-customermanagement"></i> |
| | | <span> {{title}}</span> |
| | | </div> |
| | | </div> |
| | | <div :style="{height: dheight + 'px', '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> |
| | | </div> |
| | | |
| | | <div class="h_BU"> |
| | | <div style="padding: 0px;"> |
| | | <h-table |
| | | v-if="isRefresh" |
| | | ref="table1" |
| | | :table-fields="tableFields" |
| | | :table-data="tableData" |
| | | :is-within-edit-table-data="isedit" |
| | | :table-field-click="tablefieldClick" |
| | | :pagesize="pagesize" |
| | | :pagenum="pagenum" |
| | | :total="total" |
| | | :table-height="dheight - 252 - 64" |
| | | :is-highlight-row="true" |
| | | :isdraggableorder="false" |
| | | :isshowtool="false" |
| | | :isshow-shoppingcart="false" |
| | | |
| | | v-on:get-data="getData" |
| | | > |
| | | </h-table> |
| | | <!-- |
| | | :is-edit-table-data="isWithinEditTableData" |
| | | --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="填写原因" :visible.sync="reasonvisible" height="50%"> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 10}" |
| | | placeholder="请输入原因" |
| | | v-model="approveremark"> |
| | | </el-input> |
| | | |
| | | <div slot="footer" class="dialog-footer" > |
| | | <el-button type="default" @click="reasonvisible = false">取 消</el-button> |
| | | <el-button type="primary" :loading="loading_pass" @click="saveReason">确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <div class="el-dialog__footer"> |
| | | <el-button-group style="margin-right: 80px;" > |
| | | <el-button size="small" v-if="isapproval" type="warning" plain @click="onShowApproval('gohome')">退回到申请人</el-button> |
| | | <el-button size="small" v-if="isapproval" type="danger" plain @click="onShowApproval('goback')">退回到上一步</el-button> |
| | | </el-button-group> |
| | | <el-button size="small" type="default" @click="closeDialog">取 消</el-button> |
| | | <!-- <el-button size="small" v-if="isedit || isrefuseedit" type="primary" :loading="loading_save" @click="saveRowTable()":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button> |
| | | <el-button size="small" v-if="isedit && !formData.agreement_id" type="success" :loading="loading_submit" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.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="onShowApproval('approve')">通 过</el-button> |
| | | <!-- <el-button size="small" v-if="isapproval" type="primary" @click="">转 办</el-button> --> |
| | | </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 class="cube2"></div> |
| | | </div> |
| | | </div> |
| | | </body> |
| | | </html> |
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 FormVue({ |
| | | el: "#vbody", |
| | | data: { |
| | | dataname: "fee_guide_settle_qty", |
| | | table_dataname: "fee_working_out_base_qty", |
| | | title: "数量单信息", |
| | | dataRequest: [ |
| | | { |
| | | name: "fee_working_out_base_qty", // 业务负责人字段 |
| | | dataname: "fee_working_out_base_qty", |
| | | url: "root/data/getEntitySet", |
| | | paramsobj: {dataname: "fee_working_out_base_qty", attachMeta: true, filter: "1<>1"}, |
| | | isnotoption: true, //true:不是选项 |
| | | } |
| | | ], |
| | | meta_fee_working_out_base_qty: [], |
| | | |
| | | options_md_org_master: [], |
| | | md_bu_org_obj: {}, |
| | | options_md_bu: [], |
| | | productobj_map: {}, |
| | | md_bu_product_obj: {}, |
| | | md_bu_product_bu_obj: {}, |
| | | md_prod_sku_obj: {}, |
| | | |
| | | formAttr: { |
| | | istitle: false, |
| | | title: "表单名称", |
| | | columnnumber: 3, |
| | | labelwidth: "100px", |
| | | labelposition: "left",//"left",// right//top |
| | | size: "mini", |
| | | border: "10px solid #c6c6c600", |
| | | borderleft: "0px" |
| | | }, |
| | | |
| | | formFields: [], |
| | | |
| | | newformData: { |
| | | state_code: "Input", |
| | | state_name: "录入", |
| | | is_active: true, |
| | | source: "手动录入", |
| | | type_code: "Customer", // Standard标准价目表、Customer经销商价目表 |
| | | }, |
| | | formData: {}, |
| | | |
| | | isRefresh: true, |
| | | tableFields: [], |
| | | tableData: [], |
| | | //字段设置 |
| | | tablefieldClick: {}, |
| | | pagesize: 10, |
| | | pagenum: 1, |
| | | total: 0, |
| | | tableHeight: 200, |
| | | tableloading: false, |
| | | |
| | | |
| | | //按键权限设置 |
| | | isedit: false,//提交前编辑,保存/提交 |
| | | isrefuseedit: false,//拒绝后编辑,保存/再次提交 |
| | | isapproval: false,//审批,同意/拒绝/转办/退回 |
| | | |
| | | iscommit: false,//提交标记 |
| | | |
| | | //弹窗参数 |
| | | popupParames: {}, |
| | | |
| | | formfieldClick: {}, |
| | | dheight: null, |
| | | |
| | | agreementdata: {}, |
| | | options_product: [], |
| | | |
| | | //审批相关变量 |
| | | reasonvisible:false,//审批通过或拒绝填写原因 |
| | | approveremark: '',//填写理由 |
| | | passOrRefuse:false, |
| | | loading_pass: false, |
| | | }, |
| | | created() { |
| | | this.popupParames = clone(Root.popupParames); |
| | | // this.title = this.popupParames.title || this.popupParames.text |
| | | if (this.popupParames.data) { |
| | | if (this.popupParames.data._datano) { |
| | | this.title = this.title + this.popupParames.data._datano; |
| | | } |
| | | this.formData = clone(this.popupParames.data); |
| | | } |
| | | if (this.popupParames.delta && this.popupParames.delta.dataname) { |
| | | this.dataname = clone(this.popupParames.delta.dataname); |
| | | } |
| | | |
| | | if (this.popupParames.delta && this.popupParames.delta.agreementdata) { |
| | | this.agreementdata = clone(this.popupParames.delta.agreementdata); |
| | | } |
| | | if (this.popupParames.delta && this.popupParames.delta.options_product) { |
| | | this.options_product = clone(this.popupParames.delta.options_product); |
| | | } |
| | | |
| | | if (this.popupParames.sceneCode) { |
| | | if (this.popupParames.sceneCode == "add") {//新增 |
| | | var newEntity_ = { |
| | | name: "newEntity", |
| | | url: "root/data/newEntity", |
| | | paramsobj: {dataname: this.dataname}, |
| | | isnotoption: true, //true:不是选项 |
| | | } |
| | | this.dataRequest.push(newEntity_); |
| | | for (var k in this.popupParames.data) { |
| | | this.newformData[k] = this.popupParames.data[k] |
| | | } |
| | | this.isedit = true; |
| | | } |
| | | else if (this.popupParames.sceneCode == "browse") {//只读 |
| | | this.formAttr.disabled = true; |
| | | } |
| | | else if (this.popupParames.sceneCode == "edit" || this.popupParames.sceneCode == "editbyagreement") {//编辑 |
| | | this.isedit = true; |
| | | } |
| | | else if (this.popupParames.sceneCode == "approval") {//审批 |
| | | this.formAttr.disabled = true; |
| | | this.isapproval = true; |
| | | |
| | | if (this.formData.current_step_name && this.formData.current_step_name == "运营部门复核") { |
| | | this.isedit = true; |
| | | } |
| | | |
| | | } |
| | | else if (this.popupParames.sceneCode == "refuseedit") {//拒绝后的编辑 |
| | | this.isrefuseedit = true; |
| | | } |
| | | } |
| | | }, |
| | | |
| | | mounted() { |
| | | var me = this; |
| | | var title_h = 0; |
| | | if (me.popupParames.totab) { |
| | | title_h = 42; |
| | | } |
| | | me.dheight = document.documentElement.clientHeight - 50 - title_h; |
| | | //预加载数据 |
| | | if (this.dataRequest && this.dataRequest.length) { |
| | | var result = {}; |
| | | this.loadRequestData(this.dataRequest, result, function(data) { |
| | | me.dataRequestObj = data; |
| | | //预加载数据后给哪些字段设置options或formatterjson |
| | | if (me.dataRequestObj.newEntity) { |
| | | var formData = clone(me.dataRequestObj.newEntity.data[me.dataname]); |
| | | 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.dataRequestObj.fee_working_out_base_qty) { |
| | | let meta_ = me.dataRequestObj.fee_working_out_base_qty.meta.fee_working_out_base_qty.fields; |
| | | meta_.map(f=>{ |
| | | f.isshow = "T"; |
| | | if (f.field == "_qty_trans" || f.field == "_qty_cal" || f.field == "_qty_final" || f.field == "_amt_final") { |
| | | f.isfixed = "right"; |
| | | } |
| | | }) |
| | | me.meta_fee_working_out_base_qty = clone(meta_) |
| | | } |
| | | me.initData(); |
| | | }); |
| | | } |
| | | else { |
| | | this.initData(); |
| | | } |
| | | |
| | | // 以服务的方式调用的 Loading 需要异步关闭 |
| | | this.$nextTick(() => { |
| | | hideLoading(); |
| | | }); |
| | | }, |
| | | |
| | | 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 = { |
| | | //row: this.formData |
| | | } |
| | | this.popupParames.callback(obj, function() { |
| | | me.closeDialog(); |
| | | }); |
| | | } |
| | | else { |
| | | me.closeDialog(); |
| | | } |
| | | }, |
| | | |
| | | initData() { |
| | | let me = this; |
| | | var id_ = null; |
| | | if (this.formData.id) { |
| | | id_ = this.formData.id; |
| | | } |
| | | this.getRowDataById(id_, function(result) { //查询后的回调,用于获取字段的 |
| | | if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) { |
| | | var metas = clone(result.meta[me.dataname].fields); |
| | | var formFields_ = []; |
| | | |
| | | metas.map(f=>{ |
| | | f.isshow = "T"; |
| | | if (f.field == "company_id") { |
| | | // f.isshow = "F"; |
| | | f.options = me.options_md_org_master |
| | | } |
| | | |
| | | if (f.field == "product_id") { |
| | | f.props = {label: "value", value: "code", multiple: false}; |
| | | if (me.options_product.length) { |
| | | f.options = clone(me.options_product); |
| | | } |
| | | else if (me.formData.bu_id && me.md_bu_product_obj[me.formData.bu_id]) { |
| | | f.options = clone(me.md_bu_product_obj[me.formData.bu_id].children); |
| | | } |
| | | else { |
| | | f.options = []; |
| | | } |
| | | } |
| | | |
| | | // if (f.field == "customer_name" && (me.popupParames.sceneCode == "addbyagreement" || me.popupParames.sceneCode == "editbyagreement")) { |
| | | // f.disabled = true; |
| | | // } |
| | | // if ((f.field == "date_from" || f.field == "date_to") && (me.popupParames.sceneCode == "addbyagreement" || me.popupParames.sceneCode == "editbyagreement")) { |
| | | // f.isshow = false; |
| | | // } |
| | | |
| | | formFields_.push(clone(f)); |
| | | }) |
| | | if (!me.formFields || (me.formFields && me.formFields.length == 0)) { |
| | | me.formFields = clone(formFields_); |
| | | me.tableFields = clone(me.meta_fee_working_out_base_qty); |
| | | |
| | | //设置字段事件 |
| | | me.tableFieldClick(); |
| | | } |
| | | |
| | | if (me.formData.company_id) { |
| | | var formFields_ = clone(me.formFields); |
| | | formFields_.map(f=>{ |
| | | if (f.field == "bu_id") { |
| | | if (me.md_bu_org_obj[me.formData.company_id] && me.md_bu_org_obj[me.formData.company_id].length) { |
| | | f.options = clone(me.md_bu_org_obj[me.formData.company_id]) |
| | | } |
| | | } |
| | | }) |
| | | me.formFields = clone(formFields_); |
| | | } |
| | | |
| | | if (me.formData.product_id) { |
| | | var select_p_ = [me.formData.product_id]; |
| | | me.formData.product_id = clone(select_p_); |
| | | |
| | | var formFields_ = clone(me.formFields); |
| | | formFields_.map(f=>{ |
| | | if (f.field == "spec") { |
| | | if (me.formData.product_id) { |
| | | f.options = clone(me.md_prod_sku_obj[me.formData.product_id[0]]); |
| | | } |
| | | else { |
| | | f.options = []; |
| | | } |
| | | } |
| | | }) |
| | | me.formFields = clone(formFields_); |
| | | } |
| | | me.onTableQuery(); |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | tableFieldClick() { |
| | | var me = this; |
| | | //表单字段事件设置 |
| | | this.formfieldClick = { |
| | | type_code: { |
| | | select: { |
| | | onchange: function(obj,refreshCallback) {//下拉展开事件 |
| | | obj.data.type_name = obj.selectoption.value || ""; |
| | | var formFields_ = clone(me.formFields); |
| | | formFields_.map(f=>{ |
| | | if (f.field == "account_name") { // f.field == "company_id" || f.field == "bu_id" || |
| | | if (obj.data.type_code == "Onsite") { // 优惠价格 |
| | | f.required = false |
| | | } |
| | | else { |
| | | f.required = true |
| | | } |
| | | } |
| | | }) |
| | | me.formFields = clone(formFields_); |
| | | }, |
| | | }, |
| | | }, |
| | | _qty_trans: { |
| | | val: { |
| | | onchange: function(obj) { |
| | | var formData_ = clone(me.formData); |
| | | formData_._qty_trans = formData_._qty_trans * 1; |
| | | if (formData_._qty_cal) { |
| | | formData_._qty_final = (formData_._qty_cal * 1) - (formData_._qty_trans * 1) |
| | | formData_._amt_final = formData_._qty_final * formData_._taxunitprice |
| | | } |
| | | me.formData = clone(formData_); |
| | | } |
| | | }, |
| | | input: { |
| | | onchange: function(obj) { |
| | | var formData_ = clone(me.formData); |
| | | formData_._qty_trans = formData_._qty_trans * 1; |
| | | if (formData_._qty_cal) { |
| | | formData_._qty_final = (formData_._qty_cal * 1) - (formData_._qty_trans * 1) |
| | | formData_._amt_final = formData_._qty_final * formData_._taxunitprice |
| | | } |
| | | me.formData = clone(formData_); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | }; |
| | | |
| | | this.tablefieldClick = { |
| | | _qty_trans: { |
| | | input: { |
| | | onchange: function(obj) { |
| | | obj.row._qty_trans = obj.row._qty_trans * 1; |
| | | if (obj.row._qty_cal) { |
| | | obj.row._qty_final = (obj.row._qty_cal * 1) - (obj.row._qty_trans * 1) |
| | | obj.row._amt_final = obj.row._qty_final * obj.row._taxunitprice |
| | | } |
| | | |
| | | me.saveTableRow(obj.row); |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | }, |
| | | |
| | | saveTableRow(row) { |
| | | var me = this; |
| | | var entity_ = clone(row); |
| | | var entity = { |
| | | _qty_trans: entity_._qty_trans, |
| | | _qty_final: entity_._qty_final, |
| | | _amt_final: entity_._amt_final, |
| | | id: entity_.id |
| | | }; |
| | | |
| | | let param = { |
| | | dataname: me.table_dataname, |
| | | data: {}, |
| | | } |
| | | if (entity.id) { |
| | | param.id = entity.id |
| | | } |
| | | param.data[me.table_dataname] = entity; |
| | | Server.call("root/data/saveEntity", param, function(result) { |
| | | |
| | | }, function(errorresult) { |
| | | console.log("错误信息", errorresult); |
| | | if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) { |
| | | if (errorresult.messages.list) { |
| | | var config = { |
| | | totab: false, |
| | | 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 if (errorresult.exists_errors && errorresult.exists_errors.length) { |
| | | var messages_list = [] |
| | | var index_ = 0; |
| | | errorresult.exists_errors.map(r=>{ |
| | | index_ ++; |
| | | var messages_ = { |
| | | step: index_, |
| | | level: "Error", |
| | | message: r.title + "【" + r.errors[0].record_no + r.errors[0].record_name?r.errors[0].record_name: '' + "】" |
| | | } |
| | | messages_list.push(messages_) |
| | | }) |
| | | var config = { |
| | | totab: false, |
| | | // width: "1200px", |
| | | // height: 800, |
| | | icon: "icon-product", |
| | | text: "错误信息", |
| | | url: "module/tool/page/popup_error_messages.html", |
| | | data: {}, |
| | | delta: messages_list, |
| | | callback: function(obj, callback) { |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | } |
| | | else { |
| | | Root.message({ |
| | | type: 'error', |
| | | message: '调整失败' |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | openAccount(sceneCode, obj, callback) { |
| | | var me = this; |
| | | var data_ = {}; |
| | | var config = { |
| | | totab: false, //true: 以Tab导航的方式打开 |
| | | width: "800px", |
| | | height: "520px", |
| | | icon: "icon-product", |
| | | text: "经销商选择", |
| | | id: "popup_account",//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/md/page/popup/page/popup_account.html", |
| | | data: data_, |
| | | delta: {}, |
| | | // filter: "org_id='"+ me.selectedrow.org_id + "' and bu_id='" + me.selectedrow.bu_id + "'", |
| | | filter: "md_org_account.state_code='Open'", |
| | | sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(popupobj, popupcallback) { |
| | | callback(popupobj); |
| | | if (popupcallback) { |
| | | popupcallback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | }, |
| | | openOrg(sceneCode, obj, callback) { |
| | | var me = this; |
| | | var config = { |
| | | totab: false, //true: 以Tab导航的方式打开 |
| | | width: "800px", |
| | | height: "520px", |
| | | icon: "icon-product", |
| | | text: "选择配送商", |
| | | id: "popup_customer",//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/md/page/popup/page/popup_customer.html", |
| | | data: {}, |
| | | delta: "", |
| | | // filter: "category_code='"+ me.positiondata.org_id + "' and bu_id='" + me.positiondata.bu_id + "'", |
| | | filter: "is_distributor='T'", |
| | | sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(popupobj, popupcallback) { |
| | | callback(popupobj); |
| | | if (popupcallback) { |
| | | popupcallback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | }, |
| | | openHospital(sceneCode, obj, callback) { |
| | | var me = this; |
| | | var data_ = {}; |
| | | var config = { |
| | | totab: false, //true: 以Tab导航的方式打开 |
| | | width: "800px", |
| | | height: "520px", |
| | | icon: "icon-product", |
| | | text: "医院选择", |
| | | id: "popup_hospital",//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/md/page/popup/page/popup_hospital.html", |
| | | data: data_, |
| | | delta: {}, |
| | | // filter: "org_id='"+ me.selectedrow.org_id + "' and bu_id='" + me.selectedrow.bu_id + "'", |
| | | filter: "", |
| | | sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(popupobj, popupcallback) { |
| | | callback(popupobj); |
| | | if (popupcallback) { |
| | | popupcallback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | }, |
| | | |
| | | open_productlist(obj) { |
| | | var me = this; |
| | | 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(); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | getData: function(page) { |
| | | this.pagesize = page.pagesize; |
| | | this.pagenum = page.pagenum; |
| | | // if (page.filtersobj) { |
| | | // this.filterObj = page.filtersobj; |
| | | // } |
| | | // this.selectedrow = {}; |
| | | this.onTableQuery(); |
| | | }, |
| | | onTableQuery() { |
| | | var me = this |
| | | let filter_ = "task_id='" + this.formData.id + "'"; |
| | | |
| | | let param_ = { |
| | | dataname: this.table_dataname, |
| | | filter: filter_, |
| | | orderby: "_dataNo", |
| | | page: { |
| | | pageno: this.pagenum, |
| | | pagesize: this.pagesize |
| | | }, |
| | | attachMeta: false |
| | | } |
| | | |
| | | me.tableData = []; |
| | | me.tableloading = true; |
| | | Server.call("root/data/getEntitySet", param_, function(result) { |
| | | me.tableloading = false; |
| | | if (result && result.data && result.data.entityset) { |
| | | var data_ = result.data.entityset; |
| | | me.tableData = data_; |
| | | me.total = result.data.page ? result.data.page.recordcount : 0; |
| | | } |
| | | else { |
| | | me.total = 0; |
| | | } |
| | | }, function(){ |
| | | me.tableloading = false; |
| | | }); |
| | | }, |
| | | |
| | | //提交 |
| | | submitRowTable() { |
| | | var me = this; |
| | | var bo_ = this.$refs.form1.checkForm(); |
| | | |
| | | if (!bo_) { |
| | | bo_ = false; |
| | | Root.message({ |
| | | type: 'error', |
| | | message: '请填写必填项' |
| | | }); |
| | | return |
| | | } |
| | | this.iscommit = true; |
| | | this.saveRowTable(); |
| | | }, |
| | | |
| | | //保存 |
| | | saveRowTable(callback) { |
| | | var me = this; |
| | | var operator_ = "saveEntity";//保存 |
| | | // if(me.iscommit) { |
| | | // operator_ = "commit";//提交 |
| | | // } |
| | | |
| | | var entity_ = clone(this.formData); |
| | | var entity = { |
| | | _qty_trans: entity_._qty_trans, |
| | | _qty_final: entity_._qty_final, |
| | | _amt_final: entity_._amt_final, |
| | | id: entity_.id |
| | | }; |
| | | |
| | | let param = { |
| | | dataname: me.dataname, |
| | | data: {}, |
| | | } |
| | | if (me.formData.id) { |
| | | param.id = me.formData.id |
| | | } |
| | | param.data[me.dataname] = entity; |
| | | |
| | | Server.call("root/data/" + operator_, param, function(result) { |
| | | console.log(result); |
| | | if (result.success) { |
| | | if (callback) { |
| | | callback() |
| | | } |
| | | else { |
| | | if(me.iscommit){ |
| | | me.iscommit = false; |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '提交成功' |
| | | }); |
| | | me.saveAfter(); |
| | | } |
| | | else { |
| | | 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; |
| | | 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 if (errorresult.exists_errors && errorresult.exists_errors.length) { |
| | | var messages_list = [] |
| | | var index_ = 0; |
| | | errorresult.exists_errors.map(r=>{ |
| | | index_ ++; |
| | | var messages_ = { |
| | | step: index_, |
| | | level: "Error", |
| | | message: r.title + "【" + r.errors[0].record_no + r.errors[0].record_name?r.errors[0].record_name: '' + "】" |
| | | } |
| | | messages_list.push(messages_) |
| | | }) |
| | | me.iscommit = false; |
| | | var config = { |
| | | totab: false, |
| | | // width: "1200px", |
| | | // height: 800, |
| | | icon: "icon-product", |
| | | text: "错误信息", |
| | | url: "module/tool/page/popup_error_messages.html", |
| | | data: {}, |
| | | delta: messages_list, |
| | | callback: function(obj, callback) { |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | } |
| | | else { |
| | | me.iscommit = false; |
| | | Root.message({ |
| | | type: 'error', |
| | | message: '提交失败' |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 通过或拒绝 |
| | | onShowApproval(passOrRefuse) { |
| | | this.approveremark = ""; |
| | | this.reasonvisible = true;//审批备注填写弹窗 |
| | | this.passOrRefuse = passOrRefuse;// commit下一个状态;approve通过;gohome;//拒绝 goback;//回退 |
| | | }, |
| | | saveReason() { |
| | | this.loading_pass = true; |
| | | if(this.passOrRefuse == "commit" || this.passOrRefuse == "approve"){ |
| | | this.doApproval(); |
| | | } |
| | | else{ |
| | | if(this.approveremark != ""){ |
| | | this.doApproval(); |
| | | } |
| | | else{ |
| | | Root.message({ |
| | | type: 'warning', |
| | | message: '请填写原因' |
| | | }); |
| | | this.loading_pass = false; |
| | | } |
| | | } |
| | | }, |
| | | doApproval(bo) { |
| | | var me = this; |
| | | // if (this.isedit) { |
| | | // this.saveRowTable(function() { |
| | | // me.doRunApproval(); |
| | | // }); |
| | | // } |
| | | // else { |
| | | me.doRunApproval(); |
| | | // } |
| | | |
| | | }, |
| | | |
| | | getMachine(callback) { |
| | | var me = this; |
| | | let param = { |
| | | dataname: me.dataname, |
| | | } |
| | | Server.call("root/state/getMachine", param, function(result) { |
| | | var next_step = {}; // 向下流程 |
| | | var up_step = {}; // 向上流程 |
| | | |
| | | if (result && result.machine && result.machine.detail) { |
| | | result.machine.detail.map(md=>{ |
| | | next_step[md.from_code] = md.to_code; |
| | | up_step[md.to_code] = md.from_code; |
| | | }) |
| | | |
| | | callback(next_step, up_step); |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | doRunApproval() { |
| | | var me = this; |
| | | |
| | | let param = { |
| | | dataname: me.dataname, |
| | | id: me.formData.id, |
| | | // to_state: to_state_, |
| | | remark: this.approveremark |
| | | } |
| | | // |
| | | // return |
| | | Server.call("root/data/" + this.passOrRefuse, param, function(result) { |
| | | me.loading_pass = false; |
| | | console.log(result); |
| | | if (me.passOrRefuse == "commit" || me.passOrRefuse == "approve") { |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '审批成功' |
| | | }); |
| | | } |
| | | else if (me.passOrRefuse == "goback") { |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '已退回' |
| | | }); |
| | | } |
| | | else if (me.passOrRefuse == "gohome") { |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '已拒绝' |
| | | }); |
| | | } |
| | | me.saveAfter(); |
| | | }, function(errorresult) { |
| | | console.log("错误信息", errorresult); |
| | | me.loading_pass = false; |
| | | if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) { |
| | | if (errorresult.messages.list) { |
| | | 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: 'error', |
| | | message: '审批失败' |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | loadJsCss(function () { |
| | | initVue(); |
| | | }); |
| | | </script> |
| | | <style> |
| | | /* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */ |
| | | [v-cloak] { |
| | | display: none !important; |
| | | } |
| | | </style> |
| | | |
| | | </head> |
| | | |
| | | <body style="margin: 0px;"> |
| | | <div v-cloak id="vbody"> |
| | | <div id="page_root"> |
| | | <div ref="popup_body" style="padding: 0 20px;"> |
| | | <div v-if="popupParames.totab" class="el-dialog__header"> |
| | | <div class="dialog-title"> |
| | | <i class="iconfont icon-customermanagement"></i> |
| | | <span> {{title}}</span> |
| | | </div> |
| | | </div> |
| | | <div :style="{height: dheight + 'px', '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> |
| | | </div> |
| | | |
| | | <div class="h_BU"> |
| | | <div style="padding: 0px;"> |
| | | <h-table |
| | | v-if="isRefresh" |
| | | ref="table1" |
| | | :table-fields="tableFields" |
| | | :table-data="tableData" |
| | | :is-within-edit-table-data="isedit" |
| | | :table-field-click="tablefieldClick" |
| | | :pagesize="pagesize" |
| | | :pagenum="pagenum" |
| | | :total="total" |
| | | :table-height="dheight - 252 - 64" |
| | | :is-highlight-row="true" |
| | | :isdraggableorder="false" |
| | | :isshowtool="false" |
| | | :isshow-shoppingcart="false" |
| | | |
| | | v-on:get-data="getData" |
| | | > |
| | | </h-table> |
| | | <!-- |
| | | :is-edit-table-data="isWithinEditTableData" |
| | | --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="填写原因" :visible.sync="reasonvisible" height="50%"> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 10}" |
| | | placeholder="请输入原因" |
| | | v-model="approveremark"> |
| | | </el-input> |
| | | |
| | | <div slot="footer" class="dialog-footer" > |
| | | <el-button type="default" @click="reasonvisible = false">取 消</el-button> |
| | | <el-button type="primary" :loading="loading_pass" @click="saveReason">确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <div class="el-dialog__footer"> |
| | | <el-button-group style="margin-right: 80px;" > |
| | | <el-button size="small" v-if="isapproval" type="warning" plain @click="onShowApproval('gohome')">退回到申请人</el-button> |
| | | <el-button size="small" v-if="isapproval" type="danger" plain @click="onShowApproval('goback')">退回到上一步</el-button> |
| | | </el-button-group> |
| | | <el-button size="small" type="default" @click="closeDialog">取 消</el-button> |
| | | <!-- <el-button size="small" v-if="isedit || isrefuseedit" type="primary" :loading="loading_save" @click="saveRowTable()":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button> |
| | | <el-button size="small" v-if="isedit && !formData.agreement_id" type="success" :loading="loading_submit" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.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="onShowApproval('approve')">通 过</el-button> |
| | | <!-- <el-button size="small" v-if="isapproval" type="primary" @click="">转 办</el-button> --> |
| | | </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 class="cube2"></div> |
| | | </div> |
| | | </div> |
| | | </body> |
| | | </html> |
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"> |
| | | function loadJsCss(callback) { |
| | | var jscss_urls = [ |
| | | {id: "css_m1", type: "css", url: "root/css/tree.css"}, |
| | | ]; |
| | | window.top.initJsCss(document, jscss_urls, callback); |
| | | }; |
| | | |
| | | function initVue() { |
| | | new TreeVue({ |
| | | el: "#vbody", |
| | | data: { |
| | | dataname: "md_product_category", |
| | | title: "客户清洗平台", |
| | | dataRequest: [], |
| | | |
| | | tree_title: "清洗进度", |
| | | treeTxtFormatter: "{name}:{cnt}", |
| | | isTreeReadonly: true, |
| | | isTreeRefresh: true, |
| | | |
| | | initTreeData_d: [ |
| | | {id: "C0", name: "流向总数", cnt: "1200", |
| | | children: [ |
| | | {id: "C01", name: "正确处理", cnt: "1200", dataname: "md_org_data", filtertxt: "1<>1", |
| | | children: [ |
| | | {id: "C011", name: "去重客户", cnt: "1200", dataname: "md_org_data", filtertxt: "1<>1", |
| | | children: [ |
| | | {id: "C0111", name: "自动匹配", cnt: "1180", dataname: "md_org_data", filtertxt: "1<>1"}, |
| | | {id: "C0112", name: "人工待处理", cnt: "12", dataname: "md_org_data", filtertxt: "1<>1"}, |
| | | {id: "C0113", name: "人工已处理", cnt: "0", dataname: "md_org_data", filtertxt: "1<>1"}, |
| | | {id: "C0114", name: "建议新增", cnt: "8", dataname: "md_org_data", filtertxt: "1<>1"}, |
| | | ]}, |
| | | ]}, |
| | | {id: "C1", name: "处理错误", cnt: "0", dataname: "md_org_data", filtertxt: "1<>1"}, |
| | | ] |
| | | }, |
| | | ], |
| | | |
| | | isRefresh_table1: true, |
| | | tableFields_table1: [ |
| | | {isshow: "T", field: "field1", name: "原始客户名称", align: "left",width: "100", isminwidth: true}, |
| | | {isshow: "T", field: "field2", name: "最高分", align: "center", width: "80"}, |
| | | {isshow: "T", field: "field3", name: "专有名词", align: "left", width: "100", isminwidth: true}, |
| | | {isshow: "T", field: "field4", name: "渠道", align: "left", width: "120"}, |
| | | {isshow: "T", field: "field5", name: "省份", align: "center", width: "100"}, |
| | | {isshow: "T", field: "field6", name: "城市", align: "center", width: "100"}, |
| | | {isshow: "T", field: "field7", name: "区县", align: "center", width: "100"}, |
| | | {isshow: "T", field: "field8", name: "状态", align: "center", width: "100"}, |
| | | ], |
| | | pagesize_table1: 10, |
| | | pagenum_table1: 1, |
| | | total_table1: 0, |
| | | tableHeight_table1: 100, |
| | | tablefieldClick_table1: {}, |
| | | tableData_table1: [ |
| | | {id: "001", field1: "宏佳顺医疗器械有限公司", field2: "89", field3: "宏佳顺,医疗器械", field4: "有限公司", field5: "江西省", field6: "", field7: "", field8: "待清洗" }, |
| | | {id: "002", field1: "誉美医疗器械贸易有限公司", field2: "89", field3: "誉美,医疗器械,贸易", field4: "有限公司", field5: "湖南省", field6: "长沙市", field7: "", field8: "待清洗" }, |
| | | {id: "003", field1: "德汇同创医疗器械有限公司", field2: "89", field3: "德汇同创", field4: "有限公司", field5: "广州省", field6: "", field7: "", field8: "待清洗" }, |
| | | {id: "004", field1: "通泰慷医疗科技有限公司", field2: "89", field3: "通泰慷,医疗科技", field4: "有限公司", field5: "上海市", field6: "", field7: "", field8: "待清洗" }, |
| | | ], |
| | | selectedrow_table1: {}, |
| | | |
| | | isRefresh_table2: true, |
| | | filterAttr: { |
| | | columnnumber: 4, |
| | | labelwidth: "80px", |
| | | labelposition: "right",//"left",//"right", |
| | | size: "medium", |
| | | border: "0px solid #c6c6c600" |
| | | }, |
| | | filterFields_table2: [ |
| | | {isshow: "T", field: "field1", name: "客户名称", filterfield: "", filteroperator: "like"}, |
| | | ], |
| | | filterObj_table2: {}, |
| | | tableFields_table2: [ |
| | | {isshow: "T", field: "field1", name: "客户名称", align: "center",width: "150", isminwidth: true}, |
| | | {isshow: "T", field: "field2", name: "省份", align: "center", width: "100"}, |
| | | {isshow: "T", field: "field3", name: "城市", align: "center", width: "100"}, |
| | | {isshow: "T", field: "field4", name: "区县", align: "center", width: "100"}, |
| | | {isshow: "T", field: "field5", name: "渠道", align: "center", width: "120"}, |
| | | {isshow: "T", field: "field6", name: "区县", align: "center", width: "100"}, |
| | | {isshow: "T", field: "field7",name: "操作", type:"buttons", buttons: [{name:"推荐",code:"tj"},{name: "不推荐", code:"nbj"}]}, |
| | | ], |
| | | pagesize_table2: 10, |
| | | pagenum_table2: 1, |
| | | total_table2: 0, |
| | | tableHeight_table2: 100, |
| | | tablefieldClick_table2: {}, |
| | | tableData_table2: [], |
| | | selectedrow_table2: {}, |
| | | |
| | | isRefresh_table3: true, |
| | | tableAttr_table3: { |
| | | isborder: false |
| | | }, |
| | | tableFields_table3: [ |
| | | {isshow: "T", field: "field1", name: "分值", align: "center",width: "100", headercolor: "#0000"}, |
| | | {isshow: "T", field: "field2", name: "客户名称", align: "center", width: "150", headercolor: "#0000"}, |
| | | {isshow: "T", field: "field3", name: "专有名词", width: "100", isminwidth: true, headercolor: "#0000"}, |
| | | {isshow: "T", field: "field5", name: "省份", align: "center", width: "100", headercolor: "#0000"}, |
| | | {isshow: "T", field: "field6", name: "城市", align: "center", width: "100", headercolor: "#0000"}, |
| | | {isshow: "T", field: "field7", name: "区县", align: "center", width: "100", headercolor: "#0000"}, |
| | | {isshow: "T", field: "field8", name: "状态", align: "center", width: "100", headercolor: "#0000"}, |
| | | {isshow: "T", field: "field9",name: "操作", align: "center", width: "100", headercolor: "#0000", type:"buttons", buttons: [{name:"推荐",code:"tj"},{name: "不推荐", code:"nbj"}]}, |
| | | ], |
| | | tableHeight_table3: 100, |
| | | tableData_table3: [ |
| | | {id: "1"}, |
| | | {id: "2"}, |
| | | {id: "3"}, |
| | | {id: "4"}, |
| | | ], |
| | | tablefieldClick_table3: {}, |
| | | selectedrow_table3: {}, |
| | | |
| | | }, |
| | | created() { |
| | | let clientHeight = document.documentElement.clientHeight; |
| | | this.treeHeight = clientHeight - 120; |
| | | // var currentcapacity = window.top.vue.userinfo.currentcapacity; |
| | | var dataRequest_ = { |
| | | name: "md_approval", |
| | | paramsobj: { |
| | | filter: "rolecode like '%|" + window.top.vue.userinfo.currentcapacity.code + "|%'" |
| | | // filter: "rolecode like '%|Capacity-QA|%'" |
| | | }, |
| | | url: "root/workflow/getOutline", |
| | | isnotoption: true, |
| | | } |
| | | // this.dataRequest.push(dataRequest_); |
| | | this.tableHeight_table1 = this.treeHeight / 3 + 10; |
| | | this.tableHeight_table2 = this.treeHeight / 3 + 10; |
| | | |
| | | this.tableHeight_table3 = this.treeHeight - this.tableHeight_table1 - this.tableHeight_table2 - 10; |
| | | |
| | | this.fieldClick(); |
| | | }, |
| | | |
| | | mounted() { |
| | | var me = this; |
| | | //预加载数据 |
| | | if (this.dataRequest && this.dataRequest.length) { |
| | | var result = {}; |
| | | this.loadRequestData(this.dataRequest, result, function(data) { |
| | | console.log("预加载数据:", data); |
| | | me.dataRequestObj = data; |
| | | // let md_approval_ = ArrayToTree(clone(data.md_approval.data), "name", "parent_id"); |
| | | // me.initTreeData_d = md_approval_; |
| | | |
| | | var medataRequest_ = [] |
| | | me.initTreeData_d.map(nodes=>{ |
| | | if (nodes.children) { |
| | | var isBadge_ = false; |
| | | nodes.children.map(node=>{ |
| | | if (node.cnt) { |
| | | isBadge_ = true; |
| | | node.badgeval = node.cnt |
| | | } |
| | | }) |
| | | nodes.isBadge = isBadge_; |
| | | } |
| | | }) |
| | | me.initData(); |
| | | // 以服务的方式调用的 Loading 需要异步关闭 |
| | | me.$nextTick(() => { |
| | | hideLoading(); |
| | | }); |
| | | |
| | | }); |
| | | } |
| | | else { |
| | | this.initData(); // 以服务的方式调用的 Loading 需要异步关闭 |
| | | this.$nextTick(() => { |
| | | hideLoading(); |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | methods:{ |
| | | initData() { |
| | | var me = this; |
| | | me.treeData = me.initTreeData_d; |
| | | // this.onQuery(function(result, callback) {//查询后的回调,用于获取字段的 |
| | | // me.treeData = me.initTreeData_d; |
| | | // if (callback) { |
| | | // callback(); |
| | | // } |
| | | |
| | | // }); |
| | | |
| | | // me.treeRefresh() |
| | | }, |
| | | onTableDataAfter() {}, |
| | | treeRefresh() { |
| | | var me = this; |
| | | var param_ = { |
| | | filter: "rolecode like '%|" + window.top.vue.userinfo.currentcapacity.code + "|%'" |
| | | } |
| | | Server.call("root/workflow/getOutline", param_, function(result) { |
| | | let md_approval_ = ArrayToTree(clone(result.data), "name", "parent_id"); |
| | | var medataRequest_ = []; |
| | | md_approval_.map(nodes=>{ |
| | | if (nodes.children) { |
| | | var isBadge_ = false; |
| | | nodes.children.map(node=>{ |
| | | if (node.cnt) { |
| | | isBadge_ = true; |
| | | node.badgeval = node.cnt |
| | | } |
| | | }) |
| | | nodes.isBadge = isBadge_; |
| | | } |
| | | }) |
| | | me.isTreeRefresh = false; |
| | | me.treeData = md_approval_; |
| | | me.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 |
| | | me.defaultexpandedkeys = [me.selectednode.id]; |
| | | me.currentnodekey = me.selectednode.id; |
| | | me.isTreeRefresh = true; |
| | | }); |
| | | |
| | | me.getData1ByNode(); |
| | | }) |
| | | }, |
| | | |
| | | onNodeClick(obj) { |
| | | var data = obj.data, node = obj.node, el = obj.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.selectednode = data; |
| | | this.pagenum_table1 = 1; |
| | | if (this.selectednode.dataname) { |
| | | // this.getTable1Meta(); |
| | | // this.getData1ByNode(); |
| | | } |
| | | }, |
| | | getTable1Meta() {}, |
| | | getData1ByNode() {}, |
| | | |
| | | getData1(page) { |
| | | this.pagesize_table1 = page.pagesize; |
| | | this.pagenum_table1 = page.pagenum; |
| | | |
| | | this.getData1ByNode(); |
| | | }, |
| | | |
| | | table1RowClick(obj) { |
| | | this.selectedrow_table1 = obj.row; |
| | | this.getData2ByRowTable1(); |
| | | }, |
| | | |
| | | getData2(page) { |
| | | this.pagesize_table2 = page.pagesize; |
| | | this.pagenum_table2 = page.pagenum; |
| | | }, |
| | | table2RowClick(obj) { |
| | | this.selectedrow_table2 = obj.row; |
| | | }, |
| | | getData2ByRowTable1() {}, |
| | | |
| | | onQueryTable2() {}, |
| | | onInitFilterTable2() { |
| | | //清空 |
| | | this.filterObj = {}; |
| | | this.selectedrow = {}; |
| | | this.onQueryTable2(); |
| | | }, |
| | | getData3(page) { |
| | | |
| | | }, |
| | | table3RowClick(obj) { |
| | | this.selectedrow_table3 = obj.row; |
| | | }, |
| | | |
| | | fieldClick() { |
| | | this.tablefieldClick_table3 = { |
| | | field9: { |
| | | buttons: { |
| | | onclick: function(row, code) { |
| | | Root.message({ |
| | | type: 'success', |
| | | message: code |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | this.tablefieldClick_table2 = { |
| | | field7: { |
| | | buttons: { |
| | | onclick: function(row, code) { |
| | | Root.message({ |
| | | type: 'success', |
| | | message: code |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | //清洗 |
| | | doWash() { |
| | | var me = this; |
| | | var config = { |
| | | totab: false, //true: 以Tab导航的方式打开 |
| | | width: "900px", |
| | | height: "900px", |
| | | icon: "icon-product", |
| | | text: "清洗进度", |
| | | id: "test_page",//totab: true时需设置,用于判断是否已打开此页面 |
| | | //url: "module/system/page/coming.html", |
| | | url: "module/flow/page/popup/washProcess.html", |
| | | data: {}, |
| | | delta: {}, |
| | | sceneCode: "edit", //"add"//"browse", |
| | | callback: function(obj, callback) { |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | 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; |
| | | } |
| | | |
| | | .nodeLabel { |
| | | max-width: 200px !important; |
| | | } |
| | | .h_table { |
| | | margin-top: 0px !important; |
| | | position: relative; |
| | | } |
| | | .el-table--small .el-table__cell { |
| | | padding: 5px 0!important; |
| | | } |
| | | </style> |
| | | |
| | | </head> |
| | | |
| | | <body style="margin: 0px;"> |
| | | <div v-cloak id="vbody"> |
| | | <div id="page_root"> |
| | | <div class="topbar"> |
| | | <span>{{title}}</span> |
| | | |
| | | <!-- <div style="float: right; margin-right: 18px;"> |
| | | <el-button-group style="margin-left: 3px;"> |
| | | <el-button type="primary" @click="doWash">清 洗</el-button> |
| | | </el-button-group> |
| | | </div> --> |
| | | </div> |
| | | |
| | | <div class="h_dialog__body"> |
| | | <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> |
| | | </div> |
| | | <div :style="{padding: '10px 0', height: treeHeight + 'px', overflow: 'auto'}"> |
| | | <h-tree v-if="isTreeRefresh" |
| | | :tree-data="treeData" |
| | | :tree-txt-formatter="treeTxtFormatter" |
| | | :is-readonly="isTreeReadonly" |
| | | :default-expanded-keys="defaultexpandedkeys" |
| | | :currentnodekey="currentnodekey" |
| | | :default-expand-all="true" |
| | | |
| | | @node-click="onNodeClick" |
| | | > |
| | | </h-tree> |
| | | |
| | | </div> |
| | | </div> |
| | | <div style="position: absolute;left: 340px; top:45px; right: 10px; bottom: 10px;border: 1px solid #ccc;"> |
| | | <div> |
| | | <div style="height: 32px;"> |
| | | <div class="table_title" style="float: left;"> |
| | | <span>人工待清洗数据</span> |
| | | </div> |
| | | |
| | | <div style="float: right; margin-right: 18px;"> |
| | | <el-button-group style="margin-left: 3px;"> |
| | | <el-button @click="">来十条</el-button> |
| | | </el-button-group> |
| | | </div> |
| | | </div> |
| | | <h-table |
| | | v-if="isRefresh_table1 && tableFields_table1.length" |
| | | ref="table_table1" |
| | | :table-fields="tableFields_table1" |
| | | :table-data="tableData_table1" |
| | | :pagesize="pagesize_table1" |
| | | :pagenum="pagenum_table1" |
| | | :total="total_table1" |
| | | :table-height="tableHeight_table1 - 32" |
| | | :is-highlight-row="true" |
| | | :table-field-click="tablefieldClick_table1" |
| | | :is-pagination="false" |
| | | |
| | | v-on:get-data="getData1" |
| | | v-on:row-click="table1RowClick" |
| | | > |
| | | </h-table> |
| | | <div :style="{height: (tableHeight_table3) + 'px'}"> |
| | | <div style="height: 32px;line-height: 32px;margin-top: 10px;"> |
| | | |
| | | <span style="font-weight: bold;margin-left: 20px;"><i class="el-icon-tickets"></i> 原始客户名称:</span> |
| | | <span>{{selectedrow_table1.field1}}</span> |
| | | |
| | | <div style="float: right; margin-right: 18px;"> |
| | | <el-button-group style="margin-left: 3px;"> |
| | | <el-button @click="">建议新增</el-button> |
| | | <el-button @click="">待 定</el-button> |
| | | <el-button @click="">清空推荐</el-button> |
| | | </el-button-group> |
| | | </div> |
| | | </div> |
| | | <h-table |
| | | v-if="isRefresh_table3 && tableFields_table3.length" |
| | | ref="table_table3" |
| | | :table-attr="tableAttr_table3" |
| | | :table-fields="tableFields_table3" |
| | | :table-data="tableData_table3" |
| | | :table-height="tableHeight_table3 - 42" |
| | | :is-highlight-row="true" |
| | | :table-field-click="tablefieldClick_table3" |
| | | :is-pagination="false" |
| | | :is-show-index="true" |
| | | :is-within-edit-table-data="true" |
| | | |
| | | v-on:get-data="getData3" |
| | | v-on:row-click="table3RowClick" |
| | | > |
| | | </h-table> |
| | | </div> |
| | | |
| | | <div :style="{height: (tableHeight_table2) + 'px'}"> |
| | | <!-- <div style="height: 32px; margin-top: 20px;"> |
| | | <div class="table_title" style="float: left;"> |
| | | <span> <span v-if="selectedrow && selectedrow.field2">【{{selectedrow.field2}}】</span>对应审批人</span> |
| | | </div> |
| | | </div> --> |
| | | <div class="topbar-line"> |
| | | <div class="query-bar"> |
| | | <h-form-filter v-if="filterFields_table2" ref="form1" |
| | | :form-attr="filterAttr" |
| | | :table-fields="filterFields_table2" |
| | | :form-data="filterObj_table2" |
| | | :isdraggableorder="false" |
| | | |
| | | v-on:on-query="onQueryTable2" |
| | | v-on:on-init-query="onInitFilterTable2" |
| | | > |
| | | </h-form-filter> |
| | | </div> |
| | | </div> |
| | | <h-table |
| | | v-if="isRefresh_table1 && tableFields_table2.length" |
| | | ref="table_table2" |
| | | :table-fields="tableFields_table2" |
| | | :table-data="tableData_table2" |
| | | :table-height="tableHeight_table2 - 40" |
| | | :is-highlight-row="true" |
| | | :table-field-click="tablefieldClick_table2" |
| | | :is-pagination="true" |
| | | :is-within-edit-table-data="true" |
| | | |
| | | v-on:get-data="getData2" |
| | | v-on:row-click="table2RowClick" |
| | | > |
| | | </h-table> |
| | | </div> |
| | | </div> |
| | | </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 class="cube2"></div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script>document.write('<script src="//' + (location.host || 'localhost').split(':')[0] + ':35929/livereload.js?snipver=1"></' + 'script>')</script><script>document.addEventListener('LiveReloadDisconnect', function() { setTimeout(function() { window.location.reload(); }, 500); })</script></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=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="../css/main.css?v=2024081901" rel="stylesheet"> |
| | | <link href="../../../css/control.css?v=2024081901" rel="stylesheet"> |
| | | <link href="../../../css/page.css?v=2024081901" rel="stylesheet"> |
| | | <link href="../../../css/icon/iconfont.css?v=2024081901" 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=2024080301" rel="stylesheet"> |
| | | <link href="../../../css/myelement.css?v=2024081901" 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=2024080301"></script> |
| | | <script src="../../../js/config.js?v=2024081901"></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=2024080301"></script> |
| | | <script src="../../../js/foundation.js?v=2024080301"></script> |
| | | <script src="../../../js/control.js?v=2024080301"></script> |
| | | <script src="../../../js/vue/page.js?v=2024081901"></script> |
| | | <script src="../../../js/foundation.js?v=2024081901"></script> |
| | | <script src="../../../js/control.js?v=2024081901"></script> |
| | | <script src="../../../js/loadJsCss.js"></script> |
| | | <script src="../../../js/myelement.js?v=2024080301"></script> |
| | | <script src="../../../js/myelement.js?v=2024081901"></script> |
| | | |
| | | </head> |
| | | |