/* * @Description:workFramezu.vue组件的方法 头部按钮弹框方法 * @Autor: miaofang * @LastEditTime: 2023-06-14 15:01:31 */ import { getWorkFlowImage } from "@/api/workflow/jsydsyqFlow.js"; import { getPrintTemplateByCode } from "@/api/system"; import { getPrintApplicationInfo } from "@/api/fqsq"; import { uploadUndo } from "@/api/clxx"; import { deleteFlow } from "@/api/ywbl"; import { getLodop } from "@/utils/LodopFuncs" import { stepExpandInfo, record, completeTask, getNextLinkInfo, } from "@/api/fqsq.js"; import { mapGetters } from 'vuex' import { log } from "bpmn-js-token-simulation"; export default { data () { return { //是否开启材料分屏 splitScreen: false, //设置表单组件是否刷选值 fresh: 10, //左侧菜单数据集合 unitData: [], //顶部左侧按钮集合 leftButtonList: [], //顶部右侧按钮集合 rightButtonList: [], //批量按钮名称 batchButtonName: '', // 受理申请信息 slsq: {} } }, mounted () { this.flowInitParam(); }, methods: { //加载流程初始参数 flowInitParam () { var formdata = new FormData(); formdata.append("bsmSlsq", this.bsmSlsq); formdata.append("bestepid", this.bestepid); stepExpandInfo(formdata).then((res) => { if (res.code === 200) { this.leftButtonList = res.result.button; this.rightButtonList = res.result.operation; // this.rightButtonList.splice(0,2) } }) }, //流程环节操作按钮 operation (item) { //按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿 //操作按钮 登簿:record 转件:transfer 退回:back 退出:signout let that = this; switch (item.value) { case "B0": this.openDialog() break; case "B1": getWorkFlowImage(this.bsmSlsq, this.$route.query.bestepid).then(res => { let { result } = res this.$popupDialog("流程图", "workflow/components/processViewer", { xml: result.xml, finishedInfo: { finishedTaskSet: result.finishedActivityIds, unfinishedTaskSet: result.runningActivityIds, rejectedTaskSet: result.rejectedTaskSet, finishedSequenceFlowSet: result.finishedSequenceFlowIds }, allCommentList: result.historyTaskList }, '80%', true) }) break; case "B2": //材料分屏按钮 this.splitScreen = this.splitScreen ? false : true; this.$store.dispatch("app/settScreen", this.splitScreen); if (this.splitScreen) { //如果当前选项卡为材料信息内容,递减到上一个选项卡内容 if (this.tabName == this.clxxTab.value) { this.tabName = this.tabList[this.clxxIndex - 1].value; this.getFromRouter(this.tabList[this.clxxIndex - 1].value); } //删除材料信息选项卡数据 this.tabList.splice(this.clxxIndex, 1); } else { //新增材料信息选项卡数据 this.tabList.splice(this.clxxIndex, 0, this.clxxTab); } break; case "B3": //材料导入 document.getElementById("cldr").click(); break; case "B4": this.$popupDialog("登记簿详情", "registerBook/djbFrame", this.currentSelectProps, '80%', true) break; case "B5": // this.$popupDialog("证书预览", "workflow/components/dialog/zsyl", { // bsmSlsq: this.bsmSlsq, // entryType: '1' // }, '65%', true) this.$confirm('此操作将新增一条补录信息, 是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { this.addRepairRecord() this.$message({ type: 'success', message: '补录成功!' }); }).catch(() => { this.$message({ type: 'info', message: '取消编辑' }); }); break; case "B6": //根据编号获取对应信息 getPrintTemplateByCode({ tmpno: 'dysqs' }).then(res => { if (res.code == 200) { getPrintApplicationInfo(this.currentSelectProps).then(infoRes => { if (infoRes.code == 200) { //打开模板设计 let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); LODOP.ADD_PRINT_DATA("ProgramData", res.result.tmpcontent); //装载模板 //todo 调取后端接口获取数据 循环set for (let key in infoRes.result) { LODOP.SET_PRINT_STYLEA(key, "CONTENT", infoRes.result[key]); } LODOP.PREVIEW(); } else { this.$message.error(infoRes.message) } }) } else { this.$message.error(res.message) } }) break; case "B7": this.$popupDialog("证书领取", "workflow/components/dialog/zslq", { bsmSlsq: this.$route.query.bsmSlsq }, '70%', true ) break; case "B8": this.$popupDialog('楼盘表', 'lpb/index', { bsm: '' }, '90%', true) break; case "back": //退回按钮 this.$popupDialog("退回", "workflow/components/th", { bsmSlsq: this.bsmSlsq, bestepid: this.bestepid }, '800px', true) break; case "transfer": //转件按钮 getNextLinkInfo({ bsmSlsq: this.bsmSlsq, bestepid: this.bestepid, }).then((res) => { if (res.code === 200) { if (res.result) { this.sendToNext(res.result); } else { this.sendToEnd(); } } }); break; case "stop": //终止按钮 this.$popupDialog("终止", "workflow/components/stop", { bsmSlsq: this.bsmSlsq, bestepid: this.bestepid, }, '600px', true) break; case "signout": window.close(); //取消认领 unClaimTask(this.bsmSlsq, this.bestepid) break; case "B9": var formdata = new FormData(); formdata.append("bsmSlsq", this.bsmSlsq); formdata.append("bestepid", this.bestepid); this.$confirm("请确认是否登簿", "提示", { iconClass: "el-icon-question", //自定义图标样式 confirmButtonText: "确认", //确认按钮文字更换 cancelButtonText: "取消", //取消按钮文字更换 showClose: true, //是否显示右上角关闭按钮 type: "warning", //提示类型 success/info/warning/error }).then(function () { record(formdata).then((res) => { if (res.code === 200) { if (res.result.length === 1) { res.result[0].state ? that.$alert("登簿成功!") : that.$alert(res.result[0].msg);; } else { that.$alert('<div>' + res.result[0].ywh + ',' + res.result[0].msg + '</div>', '登簿明细', { dangerouslyUseHTMLString: true }); } } else { that.$alert(res.message); } }); }); break; case "rm": this.del() break; } }, del () { let formdata = new FormData(); formdata.append("bsmSlsq", this.bsmSlsq); this.$confirm("确定要删除吗, 是否继续?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", }) .then(() => { deleteFlow(formdata).then((res) => { if (res.code === 200) { this.$message({ type: "success", message: "删除成功!", }); window.close(); window.opener.getBpageList(); } else { this.$message.error(res.message); } }); }) .catch(() => { this.$message({ type: "info", message: "已取消删除", }); }); }, //发送下一个环节 sendToNext (obj) { const h = this.$createElement; this.$msgbox({ title: "您确定转出吗?", message: h("div", { style: "margin: auto" }, [ h("span", null, "下个环节名称:"), h("i", { style: "color: teal" }, obj.taskName), h("div", null, ""), h("span", null, "下个环节经办人: "), h("i", { style: "color: teal" }, obj.usernames.join(",")), ]), showCancelButton: true, beforeClose: (action, instance, done) => { if (action === "confirm") { instance.confirmButtonLoading = true; instance.confirmButtonText = "执行中..."; completeTask({ bsmSlsq: this.bsmSlsq, shyj: "this.bestepid", stepform: JSON.stringify(this.tabList), }).then((res) => { if (res.code === 200) { instance.confirmButtonLoading = false; this.$message.success("转件成功"); // window.opener.location.reload(); //刷新父窗口 if (window.opener && window.opener.getBpageList) { window.opener.getBpageList(); } else { window.opener.frames[0].getBpageList(); } window.close(); this.$emit("input", false); } else { instance.confirmButtonLoading = false; instance.confirmButtonText = "确定"; this.$message.error(res.message); } }); } else { done(); } }, }).then((action) => { this.$message({ type: "info", message: "action: " + action, }); }); }, sendToEnd () { let that = this const h = this.$createElement; this.$msgbox({ title: "您确定转出吗?", message: "此环节为流程最后环节,转出后流程将结束", showCancelButton: true, beforeClose: (action, instance, done) => { if (action === "confirm") { instance.confirmButtonLoading = true; instance.confirmButtonText = "执行中..."; completeTask({ bsmSlsq: this.bsmSlsq, shyj: "this.bestepid", stepform: JSON.stringify(this.tabList), }).then((res) => { if (res.code === 200) { instance.confirmButtonLoading = false; that.$message.success("转件成功"); localStorage.setItem('transfer', true) // window.opener.location.reload(); //刷新父窗口 if (window.opener && window.opener.getBpageList) { window.opener.getBpageList(); } else { window.opener.frames[0].getBpageList(); } window.close(); that.$emit("input", false); } else { instance.confirmButtonLoading = false; instance.confirmButtonText = "确定"; this.$message.error(res.message); } }) } else { done(); } }, }).then((action) => { this.$message({ type: "info", message: "action: " + action }) }) }, //批量操作 handleBatchDel () { this.$popupDialog("批量删除", "workflow/components/batchDel", { width: "50%", btnShow: false, bsmSlsq: this.bsmSlsq, dataList: this.unitData, }) }, handleChange (file) { var formdata = new FormData(); formdata.append("file", file.raw); formdata.append("bsmSldy", this.currentSelectProps.bsmSldy); formdata.append("bsmSlsq", this.bsmSlsq); uploadUndo(formdata).then(res => { if (res.code == 200) { this.$message.success("导入成功"); } else { this.$message.error(res.message) } }) }, // 上传 beforeUpload (file) { return true; } } }