import Vue from "vue" import Api from "~/service/Api" import { display } from "~/service/business/file" import { getTrnNameByInr } from "~/service/business/common" import Utils from "~/utils" import CodeTable from "~/config/CodeTable"; export default { data() { }, created() { if (this.root) { //非顶级vue实例,不需要执行 return; } if (this.codes) { Vue.set(this.codes, "codeSet", {}) } }, mounted() { //this.restoreDisplay() }, methods: { updateValueSet(values) { if (!values) { return } //顶级实例,进入设置 if (!this.root) { for (let key in values) { Vue.set(this.codes.codeSet, key, values[key]) } } else { this.root.updateValueSet(values) } }, /* 获取后台setValues、setCodeValues传来的动态码,并自动转为码表值。 key:为后端传来的CodeSet的字段path,如'bddgrp.rec.docprbrol' tableName:src下的全局静态码表中的码表名称,如'rolall' 如后端传来的CodeSet下该字段值为"value+lable",则不用传参数tableName 如后端传来的CodeSet下该字段值仅有"value",则需传参数tableName,去全局静态码表中找到相应码表,根据value值找到lable值 */ // getValues(key, tableName) { // let arr = this.codes.codeSet[key] // if (!arr) // return undefined // return arr.map(item => { // let itemArr = item.split("\t") // if (itemArr.length > 1) { // return { label: itemArr[1], value: itemArr[0] } // } else { // if (tableName && CodeTable[tableName]) { // const r = CodeTable[tableName].find(code => code.value === itemArr[0]) // if (r) { // return { label: r.label, value: itemArr[0] } // } // } // return { label: itemArr[0], value: itemArr[0] } // } // }) // }, showBackendErrors(fieldErrors) { // 清除之前的校验状态 if (!this.getRoot().$refs.modelForm) { return } if (!this.isChecking) { this.getRoot().$refs.modelForm.clearValidate(); } else { // 当 checkAll 操作时,由面板切换所触发的 executeRule 请求时,不清空 checkAll 的错误信息 this.isChecking = false; } const fields = this.getRoot().$refs.modelForm.fields; const tab = Utils.positioningErrorMsg(fieldErrors, fields); return tab; }, loading(text) { const loading = this.$loading({ lock: true, text, spinner: 'el-icon-loading', background: 'rgba(200, 200, 200, 0.3)' }); return loading }, getRoot() { return (this.root || this) }, // async init(params) { // const loading = this.loading("交易加载中") // let prePageId = this.$route.params.prePageId || ""; // console.log("init/prePageId:"+prePageId); // let data = { params,prePageId }; // let rtnmsg = await Api.post("/business/gitopn/init", data) // // let rtnmsg = await Api.post(this.requestPrefix + "/init", data) // if (rtnmsg.respCode == SUCCESS) { // this.updateValueSet(rtnmsg.codeSet) // //添加pageId // if(rtnmsg.data.pageId) // window.GLOBAL_CACHE.PAGEID_CACHE.add(rtnmsg.data.pageId); // } // loading.close() // return rtnmsg // }, async save(params) { const loading = this.loading("正在保存交易") let rtnmsg = await Api.post(this.requestPrefix + "/save", this.wrapper(params)) loading.close() return rtnmsg }, async confirm(params) { const loading = this.loading("正在保存交易") let rtnmsg = await Api.post(this.requestPrefix + "/confirmData", this.wrapper(params)) loading.close() return rtnmsg }, async executeCheck(rulePath, params) { const loading = this.loading("校验进行中") let rtnmsg = await Api.post(this.requestPrefix + "/executeCheck/" + rulePath, this.wrapper(params)) if (rtnmsg.respCode == SUCCESS) { this.updateValueSet(rtnmsg.codeSet) this.showBackendErrors(rtnmsg.fieldErrors) } loading.close() return rtnmsg }, // async executeDefault(rulePath, params) { // let rtnmsg = await Api.post(this.requestPrefix + "/executeDefault/" + rulePath, this.wrapper(params)) // if (rtnmsg.respCode == SUCCESS) { // this.updateValueSet(rtnmsg.codeSet) // this.showBackendErrors(rtnmsg.fieldErrors) // } // return rtnmsg // }, // async executeRule(rulePath, params, delayCb) { // const loading = this.loading("正在请求数据") // let rtnmsg = await Api.post(this.requestPrefix + "/executeRule/" + rulePath, this.wrapper(params, delayCb)) // if (rtnmsg.respCode == SUCCESS) { // this.updateValueSet(rtnmsg.codeSet) // this.showBackendErrors(rtnmsg.fieldErrors) // } // loading.close() // return rtnmsg // }, async executeCustomRule(rulePath, params, delayCb) { const loading = this.loading("正在请求数据") //copy Utils.copyCustomFromModel(this.customModel, this.model) console.log(this.customModel) let rtnmsg = await Api.post(this.requestPrefix + "/executeRule/" + rulePath, this.wrapperCustom(params, delayCb)) if (rtnmsg.respCode == SUCCESS) { this.updateValueSet(rtnmsg.codeSet) this.showBackendErrors(rtnmsg.fieldErrors) } loading.close() return rtnmsg }, async checkAll(params) { const loading = this.loading("正在校验数据") const rtnmsg = await Api.post(this.requestPrefix + "/checkAll", this.wrapper(params)) if (rtnmsg.respCode == SUCCESS) { this.updateValueSet(rtnmsg.codeSet) } loading.close() return rtnmsg }, async pedding(params) { const loading = this.loading("正在暂存数据") const rtnmsg = await Api.post(this.requestPrefix + "/pending", this.wrapper(params)) if (rtnmsg.respCode == SUCCESS) { this.updateValueSet(rtnmsg.codeSet) } loading.close() return rtnmsg }, async restoreDisplay() { let inr = this.$route.query.trn if (!inr) return const loading = this.loading("快照数据加载中") let data = await display(inr) if (data.data) { Utils.copyValueFromVO(this.model, JSON.parse(data.data)) } else { this.$notify.error({ title: '错误', message: '快照文件加载失败!' }); } loading.close() }, /** * * @param {Object} params 额外参数 * @param {Boolean} updateModel 是否更新model * @returns */ // async executeNotify(params, updateModel) { // const rtnmsg = await Api.post(this.requestPrefix + "/executeNotify", this.wrapper(params)) // if (rtnmsg.respCode == SUCCESS) { // this.updateValueSet(rtnmsg.codeSet) // if (arguments.length > 1 && arguments[1]) { // this.updateModel(rtnmsg.data) // } // } // return rtnmsg // }, /** * 打开详情页面 * @param {string} inr */ display(inr) { getTrnNameByInr({ inr }).then((res) => { if (res.respCode == SUCCESS) { const trnName = res.data.toLowerCase(); let viewurl = "/#/display/" + trnName + "?trn=" + inr window.open(viewurl, 'newwindow', 'height=1500,width=1200,top=100,left=100,toolbar=no,resizable=no,menubar=no,location=no, status=no'); } }); } }, async beforeDestroy(){ if(!this.root && this.model && this.model.pageId){ //回收pageId window.GLOBAL_CACHE.PAGEID_CACHE.delete(this.model.pageId); } } }