d84f2062 by 任超

style:申请单元列表

2 parents 81c221ec a0dbcf25
......@@ -56,20 +56,13 @@ export default {
mounted () {
// 计算滚动条高度
setTimeout(() => {
if (this.btnShow) {
if (this.btnShow) { //判断按钮的显影来决定是否需要计算高度
if (this.height == 'auto') {
this.contentHeight = (this.$refs.contentRef.offsetHeight - 115) + 'px'
} else {
this.contentHeight = (parseInt(this.height) - parseInt('115px')) + 'px';
this.contentHeight = (this.$refs.contentRef.offsetHeight - 100) + 'px'
}
} else {
if (this.height == 'auto') {
this.contentHeight = this.$refs.contentRef.offsetHeight + 'px'
} else {
this.contentHeight = this.height
}
this.contentHeight = (parseInt(this.height) - parseInt('100px')) + 'px';
}
}, 500)
},
methods: {
......@@ -132,7 +125,7 @@ export default {
.ls-title {
padding: 16px;
color: #ffffff;
background: linear-gradient(-2deg, #409EFF, transparent)
<<<<<<< HEAD background: linear-gradient(-2deg, #409EFF, transparent)=======background: linear-gradient(3deg, #409EFF, transparent) >>>>>>> a0dbcf251b229577437bdc0f84385af37f76a7ac
}
.ls-title .svg-icon {
......@@ -146,7 +139,7 @@ export default {
}
.ls-mask-footer {
height: 65px;
height: 50px;
display: flex;
justify-content: center;
width: 100%;
......@@ -164,7 +157,7 @@ export default {
right: 12px;
font-size: 20px;
cursor: pointer;
color: #ffffff;
color: #409EFF;
}
/deep/.el-loading-mask {
......@@ -172,7 +165,7 @@ export default {
}
/deep/.el-button {
margin: 15px 10px;
margin: 8px 10px;
width: 75px;
}
</style>
......
......@@ -33,6 +33,14 @@ export const constantRoutes = [
name: 'workFrame',
hidden: true,
meta: { title: '发起申请' }
},
// 业务流程只读框架
{
path: '/workFrameView',
component: () => import('@/views/workflow/workFrameView.vue'),
name: 'workFrameView',
hidden: true,
meta: { title: '发起申请' }
}
]
......
<template>
<div class="container">
<!-- 顶部内容框 -->
<div class="topButton">
<!-- 左侧业务功能按钮 -->
<ul>
<li @click="operation(index, item)" v-for="(item, index) in leftButtonList" :key="index">
<svg-icon :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
</ul>
<!-- 右侧流程按钮 -->
<ul>
<li @click="operation(index, item)" v-for="(item, index) in rightButtonList" :key="index">
<svg-icon class="icon" :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
</ul>
</div>
<!-- 内容框架 -->
<div class="containerFrame">
<!-- 左侧菜单栏 -->
<div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }">
<div v-if="this.isShowdrawer">
<div class="title">申请单元列表({{ unitData.length }})</div>
<el-menu :default-active="activeIndex" @select="unitClick">
<el-menu-item v-for="(item, index) in unitData" :index="index.toString()" :key="index">
<p>{{ item.bdcdyh }}</p>
<p class="title-detail">{{ item.zl }}</p>
</el-menu-item>
</el-menu>
</div>
<div class="map-drawer-click map-drawer" v-if="!isShowdrawer" @click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
<div class="map-drawer-expand map-drawer" v-else @click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
</div>
<div class="leftCon">
<!-- 分屏左侧预览 -->
<div v-if="splitScreen" class="splitScreen-con">
<component :is="clxxForm" v-bind="currentSelectProps" :key="fresh" />
</div>
<!-- 表单内容区域 -->
<div class="rightContainer">
<el-tabs v-model="tabName" @tab-click="tabClick">
<el-tab-pane :label="item.name" :name="item.value" v-for="(item, index) in tabList" :key="index">
</el-tab-pane>
</el-tabs>
<component :key="fresh" :is="componentTag" v-bind="currentSelectProps" />
</div>
</div>
</div>
</div>
</template>
<style scoped lang='scss'>
@import "~@/styles/mixin.scss";
@import "./workFrame.scss";
</style>
<script>
import {
leftMenu,
stepExpandInfo,
record,
getNextLinkInfo,
completeTask,
} from "@/api/fqsq.js"
import { getWorkFlowImage } from "@/api/jsydsyqFlow.js"
import { getForm } from "./flowform.js"
export default {
data () {
return {
// 流程图
imgSrc: '',
// 折叠
isShowdrawer: true,
// 默认选中
activeIndex: '0',
//受理申请标识码
bsmSlsq: this.$route.query.bsmSlsq,
//当前流程所在环节
bestepid: this.$route.query.bestepid,
//顶部左侧按钮集合
leftButtonList: [],
//顶部右侧按钮集合
rightButtonList: [],
//左侧菜单数据集合
unitData: [],
//设置那个表单选中
tabName: "",
//表单集合
tabList: [],
//选择加载哪一个组件
componentTag: "",
//设置表单组件是否刷选值
fresh: 10,
//设置表单传递数据
currentSelectProps: {},
//是否开启材料分屏
splitScreen: false,
//材料分屏表单
clxxForm: "",
//材料信息选择卡索引
clxxIndex: "",
//材料信息选项卡对象
clxxTab: {},
}
},
mounted () {
this.loadBdcdylist();
this.flowInitParam();
},
methods: {
//加载流程初始参数
flowInitParam () {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
formdata.append("type", "READ_ONLY");
stepExpandInfo(formdata).then((res) => {
if (res.code === 200) {
this.leftButtonList = res.result.button;
this.rightButtonList = res.result.operation;
this.tabList = res.result.form;
//默认选择第一个选项卡内容
this.tabName = res.result.form[0].value;
let that = this;
this.tabList.forEach(function (item, index) {
if (item.value == "clxx") {
that.clxxIndex = index;
that.clxxForm = getForm(item.value);
that.clxxTab = item;
}
});
//默认加载第一个选项卡的组件内容
this.getFromRouter(res.result.form[0].value);
}
})
},
//流程环节操作按钮
operation (index, item) {
//按钮 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书
//操作按钮 登簿:record 转件:transfer 退回:back 退出:signout
let that = this;
switch (item.value) {
case "B1":
getWorkFlowImage(this.bsmSlsq).then(res => {
this.imgSrc = URL.createObjectURL(res)
this.$popup({
title: '流程图',
editItem: 'workflow/components/flowChart',
formData: this.imgSrc
})
})
break;
case "B5":
this.zsylFlag = 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, 1, this.clxxTab);
}
break;
case "signout":
window.close();
break;
}
},
//读取申请单元信息
loadBdcdylist () {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
leftMenu(formdata).then((res) => {
if (res.code === 200) {
this.unitData = res.result;
this.currentSelectProps = res.result[0];
}
})
},
//申请单元点击事件
unitClick (index) {
if (this.currentSelectProps.bsmSldy != this.unitData[index].bsmSldy) {
this.currentSelectProps = this.unitData[index];
this.fresh += 1;
}
},
//表单选项卡事件
tabClick (tab, event) {
this.getFromRouter(tab.name);
},
//切换选项卡内容组件
getFromRouter (tabname) {
this.componentTag = getForm(tabname);
},
}
}
</script>
\ No newline at end of file
......@@ -131,7 +131,7 @@ export default {
this.fetchData()
},
ywhClick (item) {
const { href } = this.$router.resolve('/workFrame?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&viewtype=1');
const { href } = this.$router.resolve('/workFrameView?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&viewtype=1');
window.open(href, '_blank');
}
}
......
......@@ -116,7 +116,7 @@ export default {
console.log(name, sort);
},
openDialog (item) {
const { href } = this.$router.resolve('/fqsq?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + item.bsmBusiness + '&viewtype=3')
const { href } = this.$router.resolve('/workFrameView?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + item.bsmBusiness + '&viewtype=3')
window.open(href, '_blank');
}
}
......