|
|
@ -3,328 +3,340 @@ |
|
|
@ 时间: 2023-10-10 14:23:45 |
|
|
@ 时间: 2023-10-10 14:23:45 |
|
|
@ 备注: 添加节点弹窗 |
|
|
@ 备注: 添加节点弹窗 |
|
|
--> |
|
|
--> |
|
|
<script lang='ts' setup> |
|
|
<script lang="ts" setup> |
|
|
import { v4 as uuidv4 } from "uuid"; |
|
|
import { v4 as uuidv4 } from "uuid"; |
|
|
let props = defineProps({ |
|
|
let props = defineProps({ |
|
|
nodeConfig: { |
|
|
nodeConfig: { |
|
|
type: Object, |
|
|
type: Object, |
|
|
default: () => ({}), |
|
|
default: () => ({}), |
|
|
}, |
|
|
}, |
|
|
childNodeP: { |
|
|
childNodeP: { |
|
|
type: Object, |
|
|
type: Object, |
|
|
default: ()=> ({}) |
|
|
default: () => ({}), |
|
|
} |
|
|
}, |
|
|
}) |
|
|
}); |
|
|
let emits = defineEmits(['update:childNodeP']) |
|
|
let emits = defineEmits(["update:childNodeP"]); |
|
|
let visible = ref(false) |
|
|
let visible = ref(false); |
|
|
//添加节点 |
|
|
//添加节点 |
|
|
const addType = (type:any)=> { |
|
|
const addType = (type: any) => { |
|
|
// console.log("props.nodeConfig",props.nodeConfig) |
|
|
// console.log("props.nodeConfig",props.nodeConfig) |
|
|
// console.log("props.childNodeP",props.childNodeP) |
|
|
// console.log("props.childNodeP",props.childNodeP) |
|
|
visible.value = false; |
|
|
visible.value = false; |
|
|
let onlyNumber = uuidv4().replaceAll('-','').toString(); //获取唯一编码 |
|
|
let onlyNumber = uuidv4().replaceAll("-", "").toString(); //获取唯一编码 |
|
|
// console.log('136', onlyNumber,props.nodeConfig,props.childNodeP) |
|
|
// console.log('136', onlyNumber,props.nodeConfig,props.childNodeP) |
|
|
let fromNodeNumber = ""; //来源 |
|
|
let fromNodeNumber = ""; //来源 |
|
|
let gotoNodeNumber = ""; //去向 |
|
|
let gotoNodeNumber = ""; //去向 |
|
|
if(props.nodeConfig != null && props.nodeConfig.nodeNumber != null && props.nodeConfig.nodeNumber != "") { |
|
|
if ( |
|
|
fromNodeNumber = props.nodeConfig.nodeNumber |
|
|
props.nodeConfig != null && |
|
|
// eslint-disable-next-line vue/no-mutating-props |
|
|
props.nodeConfig.nodeNumber != null && |
|
|
props.nodeConfig.gotoNode = [onlyNumber] |
|
|
props.nodeConfig.nodeNumber != "" |
|
|
// console.log("p1",props.nodeConfig) |
|
|
) { |
|
|
} |
|
|
fromNodeNumber = props.nodeConfig.nodeNumber; |
|
|
if(props.childNodeP != null) { |
|
|
// eslint-disable-next-line vue/no-mutating-props |
|
|
if(props.childNodeP.nodeNumber != null && props.childNodeP.nodeNumber != ""){ |
|
|
props.nodeConfig.gotoNode = [onlyNumber]; |
|
|
gotoNodeNumber = props.childNodeP.nodeNumber |
|
|
// console.log("p1",props.nodeConfig) |
|
|
// console.log("p2",props.nodeConfig) |
|
|
} |
|
|
} |
|
|
if (props.childNodeP != null) { |
|
|
// eslint-disable-next-line vue/no-mutating-props |
|
|
if (props.childNodeP.nodeNumber != null && props.childNodeP.nodeNumber != "") { |
|
|
props.childNodeP.fromNode = onlyNumber |
|
|
gotoNodeNumber = props.childNodeP.nodeNumber; |
|
|
if(props.childNodeP.childNode){ |
|
|
// console.log("p2",props.nodeConfig) |
|
|
if(props.childNodeP.childNode.nodeNumber != null && props.childNodeP.childNode.nodeNumber != ""){ |
|
|
|
|
|
// eslint-disable-next-line vue/no-mutating-props |
|
|
|
|
|
props.childNodeP.gotoNode = [props.childNodeP.childNode.nodeNumber] |
|
|
|
|
|
// console.log("p3",props.childNodeP) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (type != 4) { |
|
|
|
|
|
var data; |
|
|
|
|
|
if (type == 1) { |
|
|
|
|
|
data = { |
|
|
|
|
|
"nodeNumber":onlyNumber, //节点标识 |
|
|
|
|
|
"nodeName": "审核人", //节点名称 |
|
|
|
|
|
"error": true, //当前审批是否通过校验 |
|
|
|
|
|
"type": 1, // 0 发起人 1审批 2抄送 3执行人 4条件 5路由 |
|
|
|
|
|
"settype": 1, |
|
|
|
|
|
"selectMode": 0, |
|
|
|
|
|
"selectRange": 0, |
|
|
|
|
|
"directorLevel": 1, |
|
|
|
|
|
"examineMode": 1, |
|
|
|
|
|
"noHanderAction": 1, |
|
|
|
|
|
"examineEndDirectorLevel": 0, |
|
|
|
|
|
"childNode": props.childNodeP, |
|
|
|
|
|
"nodeUserList": [], |
|
|
|
|
|
"fromNode": fromNodeNumber, |
|
|
|
|
|
"gotoNode":gotoNodeNumber!=""?[gotoNodeNumber]:[], |
|
|
|
|
|
"sendBackNode":"beginnode", |
|
|
|
|
|
"attribute":1, |
|
|
|
|
|
"matrix":{ |
|
|
|
|
|
"matrixid":0, |
|
|
|
|
|
"matrixName":"", |
|
|
|
|
|
"factorid":0, |
|
|
|
|
|
"factorName":"", |
|
|
|
|
|
"outcomeid":0, |
|
|
|
|
|
"outcomeName":"", |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
// console.log("p4",data) |
|
|
|
|
|
} else if (type == 2) { |
|
|
|
|
|
data = { |
|
|
|
|
|
"nodeNumber":onlyNumber, |
|
|
|
|
|
"nodeName": "抄送人", |
|
|
|
|
|
"type": 2, |
|
|
|
|
|
"ccSelfSelectFlag": 1, |
|
|
|
|
|
"childNode": props.childNodeP, |
|
|
|
|
|
"nodeUserList": [], |
|
|
|
|
|
"fromNode": fromNodeNumber, |
|
|
|
|
|
"gotoNode":gotoNodeNumber!=""?[gotoNodeNumber]:[], |
|
|
|
|
|
} |
|
|
|
|
|
// console.log("p5",data) |
|
|
|
|
|
}else if (type == 3) { |
|
|
|
|
|
data = { |
|
|
|
|
|
"nodeNumber":onlyNumber, |
|
|
|
|
|
"nodeName": "执行人", |
|
|
|
|
|
"error": true, |
|
|
|
|
|
"type": 3, |
|
|
|
|
|
"settype": 1, |
|
|
|
|
|
"selectMode": 0, |
|
|
|
|
|
"selectRange": 0, |
|
|
|
|
|
"directorLevel": 1, |
|
|
|
|
|
"examineMode": 1, |
|
|
|
|
|
"noHanderAction": 1, |
|
|
|
|
|
"examineEndDirectorLevel": 0, |
|
|
|
|
|
"childNode": props.childNodeP, |
|
|
|
|
|
"nodeUserList": [], |
|
|
|
|
|
"fromNode": fromNodeNumber, |
|
|
|
|
|
"gotoNode":gotoNodeNumber!=""?[gotoNodeNumber]:[], |
|
|
|
|
|
"sendBackNode":"beginnode", |
|
|
|
|
|
"attribute":1, |
|
|
|
|
|
"matrix":{ |
|
|
|
|
|
"matrixid":0, |
|
|
|
|
|
"matrixName":"", |
|
|
|
|
|
"factorid":0, |
|
|
|
|
|
"factorName":"", |
|
|
|
|
|
"outcomeid":0, |
|
|
|
|
|
"outcomeName":"", |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
// console.log("p6",data) |
|
|
|
|
|
} |
|
|
|
|
|
emits("update:childNodeP", data) |
|
|
|
|
|
} else { |
|
|
|
|
|
const snowflake1 = uuidv4().replaceAll('-','').toString(); |
|
|
|
|
|
const snowflake2 = uuidv4().replaceAll('-','').toString(); |
|
|
|
|
|
if(props.childNodeP){ |
|
|
|
|
|
// eslint-disable-next-line vue/no-mutating-props |
|
|
|
|
|
props.childNodeP.fromNode =snowflake1 //默认第一个分支指向条件1 |
|
|
|
|
|
} |
|
|
|
|
|
let data = { |
|
|
|
|
|
"nodeNumber":onlyNumber, |
|
|
|
|
|
"nodeName": "路由", |
|
|
|
|
|
"type": 5, |
|
|
|
|
|
"childNode": null, |
|
|
|
|
|
"fromNode": fromNodeNumber, |
|
|
|
|
|
"gotoNode":[snowflake1,snowflake2], |
|
|
|
|
|
"conditionNodes": [{ |
|
|
|
|
|
"nodeNumber":snowflake1, |
|
|
|
|
|
"nodeName": "条件1", |
|
|
|
|
|
"error": true, |
|
|
|
|
|
"type": 4, |
|
|
|
|
|
"priorityLevel": 1, |
|
|
|
|
|
"conditionList": [], |
|
|
|
|
|
"nodeUserList": [], |
|
|
|
|
|
"childNode": props.childNodeP, |
|
|
|
|
|
"fromNode": onlyNumber, |
|
|
|
|
|
"gotoNode":gotoNodeNumber!=""?[gotoNodeNumber]:[], |
|
|
|
|
|
}, { |
|
|
|
|
|
"nodeNumber":snowflake2, |
|
|
|
|
|
"nodeName": "条件2", |
|
|
|
|
|
"type": 4, |
|
|
|
|
|
"priorityLevel": 2, |
|
|
|
|
|
"conditionList": [], |
|
|
|
|
|
"nodeUserList": [], |
|
|
|
|
|
"childNode": null, |
|
|
|
|
|
"fromNode": onlyNumber, |
|
|
|
|
|
"gotoNode":[], |
|
|
|
|
|
}] |
|
|
|
|
|
} |
|
|
|
|
|
// console.log("p7",data) |
|
|
|
|
|
emits("update:childNodeP", data) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
// eslint-disable-next-line vue/no-mutating-props |
|
|
|
|
|
props.childNodeP.fromNode = onlyNumber; |
|
|
|
|
|
if (props.childNodeP.childNode) { |
|
|
|
|
|
if ( |
|
|
|
|
|
props.childNodeP.childNode.nodeNumber != null && |
|
|
|
|
|
props.childNodeP.childNode.nodeNumber != "" |
|
|
|
|
|
) { |
|
|
|
|
|
// eslint-disable-next-line vue/no-mutating-props |
|
|
|
|
|
props.childNodeP.gotoNode = [props.childNodeP.childNode.nodeNumber]; |
|
|
|
|
|
// console.log("p3",props.childNodeP) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (type != 4) { |
|
|
|
|
|
var data; |
|
|
|
|
|
if (type == 1) { |
|
|
|
|
|
data = { |
|
|
|
|
|
nodeNumber: onlyNumber, //节点标识 |
|
|
|
|
|
nodeName: "审核人", //节点名称 |
|
|
|
|
|
error: true, //当前审批是否通过校验 |
|
|
|
|
|
type: 1, // 0 发起人 1审批 2抄送 3执行人 4条件 5路由 |
|
|
|
|
|
settype: 1, |
|
|
|
|
|
selectMode: 0, |
|
|
|
|
|
selectRange: 0, |
|
|
|
|
|
directorLevel: 1, |
|
|
|
|
|
examineMode: 1, |
|
|
|
|
|
noHanderAction: 1, |
|
|
|
|
|
examineEndDirectorLevel: 0, |
|
|
|
|
|
childNode: props.childNodeP, |
|
|
|
|
|
nodeUserList: [], |
|
|
|
|
|
fromNode: fromNodeNumber, |
|
|
|
|
|
gotoNode: gotoNodeNumber != "" ? [gotoNodeNumber] : [], |
|
|
|
|
|
sendBackNode: "beginnode", |
|
|
|
|
|
attribute: 1, |
|
|
|
|
|
matrix: { |
|
|
|
|
|
matrixid: 0, |
|
|
|
|
|
matrixName: "", |
|
|
|
|
|
factorid: 0, |
|
|
|
|
|
factorName: "", |
|
|
|
|
|
outcomeid: 0, |
|
|
|
|
|
outcomeName: "", |
|
|
|
|
|
list: [], |
|
|
|
|
|
}, |
|
|
|
|
|
}; |
|
|
|
|
|
// console.log("p4",data) |
|
|
|
|
|
} else if (type == 2) { |
|
|
|
|
|
data = { |
|
|
|
|
|
nodeNumber: onlyNumber, |
|
|
|
|
|
nodeName: "抄送人", |
|
|
|
|
|
type: 2, |
|
|
|
|
|
ccSelfSelectFlag: 1, |
|
|
|
|
|
childNode: props.childNodeP, |
|
|
|
|
|
nodeUserList: [], |
|
|
|
|
|
fromNode: fromNodeNumber, |
|
|
|
|
|
gotoNode: gotoNodeNumber != "" ? [gotoNodeNumber] : [], |
|
|
|
|
|
}; |
|
|
|
|
|
// console.log("p5",data) |
|
|
|
|
|
} else if (type == 3) { |
|
|
|
|
|
data = { |
|
|
|
|
|
nodeNumber: onlyNumber, |
|
|
|
|
|
nodeName: "执行人", |
|
|
|
|
|
error: true, |
|
|
|
|
|
type: 3, |
|
|
|
|
|
settype: 1, |
|
|
|
|
|
selectMode: 0, |
|
|
|
|
|
selectRange: 0, |
|
|
|
|
|
directorLevel: 1, |
|
|
|
|
|
examineMode: 1, |
|
|
|
|
|
noHanderAction: 1, |
|
|
|
|
|
examineEndDirectorLevel: 0, |
|
|
|
|
|
childNode: props.childNodeP, |
|
|
|
|
|
nodeUserList: [], |
|
|
|
|
|
fromNode: fromNodeNumber, |
|
|
|
|
|
gotoNode: gotoNodeNumber != "" ? [gotoNodeNumber] : [], |
|
|
|
|
|
sendBackNode: "beginnode", |
|
|
|
|
|
attribute: 1, |
|
|
|
|
|
matrix: { |
|
|
|
|
|
matrixid: 0, |
|
|
|
|
|
matrixName: "", |
|
|
|
|
|
factorid: 0, |
|
|
|
|
|
factorName: "", |
|
|
|
|
|
outcomeid: 0, |
|
|
|
|
|
outcomeName: "", |
|
|
|
|
|
list: [], |
|
|
|
|
|
}, |
|
|
|
|
|
}; |
|
|
|
|
|
// console.log("p6",data) |
|
|
|
|
|
} |
|
|
|
|
|
emits("update:childNodeP", data); |
|
|
|
|
|
} else { |
|
|
|
|
|
const snowflake1 = uuidv4().replaceAll("-", "").toString(); |
|
|
|
|
|
const snowflake2 = uuidv4().replaceAll("-", "").toString(); |
|
|
|
|
|
if (props.childNodeP) { |
|
|
|
|
|
// eslint-disable-next-line vue/no-mutating-props |
|
|
|
|
|
props.childNodeP.fromNode = snowflake1; //默认第一个分支指向条件1 |
|
|
|
|
|
} |
|
|
|
|
|
let data = { |
|
|
|
|
|
nodeNumber: onlyNumber, |
|
|
|
|
|
nodeName: "路由", |
|
|
|
|
|
type: 5, |
|
|
|
|
|
childNode: null, |
|
|
|
|
|
fromNode: fromNodeNumber, |
|
|
|
|
|
gotoNode: [snowflake1, snowflake2], |
|
|
|
|
|
conditionNodes: [ |
|
|
|
|
|
{ |
|
|
|
|
|
nodeNumber: snowflake1, |
|
|
|
|
|
nodeName: "条件1", |
|
|
|
|
|
error: true, |
|
|
|
|
|
type: 4, |
|
|
|
|
|
priorityLevel: 1, |
|
|
|
|
|
conditionList: [], |
|
|
|
|
|
nodeUserList: [], |
|
|
|
|
|
childNode: props.childNodeP, |
|
|
|
|
|
fromNode: onlyNumber, |
|
|
|
|
|
gotoNode: gotoNodeNumber != "" ? [gotoNodeNumber] : [], |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
nodeNumber: snowflake2, |
|
|
|
|
|
nodeName: "条件2", |
|
|
|
|
|
type: 4, |
|
|
|
|
|
priorityLevel: 2, |
|
|
|
|
|
conditionList: [], |
|
|
|
|
|
nodeUserList: [], |
|
|
|
|
|
childNode: null, |
|
|
|
|
|
fromNode: onlyNumber, |
|
|
|
|
|
gotoNode: [], |
|
|
|
|
|
}, |
|
|
|
|
|
], |
|
|
|
|
|
}; |
|
|
|
|
|
// console.log("p7",data) |
|
|
|
|
|
emits("update:childNodeP", data); |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
</script> |
|
|
</script> |
|
|
<template> |
|
|
<template> |
|
|
<div class="add-node-btn-box"> |
|
|
<div class="add-node-btn-box"> |
|
|
<div class="add-node-btn"> |
|
|
<div class="add-node-btn"> |
|
|
<el-popover v-model="visible" placement="right-start" width="auto"> |
|
|
<el-popover v-model="visible" placement="right-start" width="auto"> |
|
|
<div class="add-node-popover-body"> |
|
|
<div class="add-node-popover-body"> |
|
|
<a class="add-node-popover-item approver" @click="addType(1)"> |
|
|
<a class="add-node-popover-item approver" @click="addType(1)"> |
|
|
<div class="item-wrapper"> |
|
|
<div class="item-wrapper"> |
|
|
<span class="iconfont"><el-icon><Stamp /></el-icon></span> |
|
|
<span class="iconfont" |
|
|
</div> |
|
|
><el-icon><Stamp /></el-icon |
|
|
<p>审批人</p> |
|
|
></span> |
|
|
</a> |
|
|
</div> |
|
|
<a class="add-node-popover-item notifier" @click="addType(2)"> |
|
|
<p>审批人</p> |
|
|
<div class="item-wrapper"> |
|
|
</a> |
|
|
<span class="iconfont"><i class="fa fa-send"></i></span> |
|
|
<a class="add-node-popover-item notifier" @click="addType(2)"> |
|
|
</div> |
|
|
<div class="item-wrapper"> |
|
|
<p>抄送人</p> |
|
|
<span class="iconfont"><i class="fa fa-send"></i></span> |
|
|
</a> |
|
|
</div> |
|
|
<a class="add-node-popover-item approver" @click="addType(3)"> |
|
|
<p>抄送人</p> |
|
|
<div class="item-wrapper"> |
|
|
</a> |
|
|
<span class="iconfont"><i class="fa fa-pencil-square-o"></i></span> |
|
|
<a class="add-node-popover-item approver" @click="addType(3)"> |
|
|
</div> |
|
|
<div class="item-wrapper"> |
|
|
<p>处理</p> |
|
|
<span class="iconfont"><i class="fa fa-pencil-square-o"></i></span> |
|
|
</a> |
|
|
</div> |
|
|
<a class="add-node-popover-item condition" @click="addType(4)"> |
|
|
<p>处理</p> |
|
|
<div class="item-wrapper"> |
|
|
</a> |
|
|
<span class="iconfont"><i class="fa fa-sitemap"></i></span> |
|
|
<a class="add-node-popover-item condition" @click="addType(4)"> |
|
|
</div> |
|
|
<div class="item-wrapper"> |
|
|
<p>条件分支</p> |
|
|
<span class="iconfont"><i class="fa fa-sitemap"></i></span> |
|
|
</a> |
|
|
</div> |
|
|
</div> |
|
|
<p>条件分支</p> |
|
|
<template #reference> |
|
|
</a> |
|
|
<button class="btn" type="button"> |
|
|
</div> |
|
|
<span class="iconfont"><i class="fa fa-plus"></i></span> |
|
|
<template #reference> |
|
|
</button> |
|
|
<button class="btn" type="button"> |
|
|
</template> |
|
|
<span class="iconfont"><i class="fa fa-plus"></i></span> |
|
|
</el-popover> |
|
|
</button> |
|
|
</div> |
|
|
</template> |
|
|
</div> |
|
|
</el-popover> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
<style lang='scss' scoped> |
|
|
<style lang="scss" scoped></style> |
|
|
|
|
|
|
|
|
</style> |
|
|
|
|
|
<style scoped lang="less"> |
|
|
<style scoped lang="less"> |
|
|
.add-node-btn-box { |
|
|
.add-node-btn-box { |
|
|
|
|
|
width: 240px; |
|
|
|
|
|
display: -webkit-inline-box; |
|
|
|
|
|
display: -ms-inline-flexbox; |
|
|
|
|
|
display: inline-flex; |
|
|
|
|
|
-ms-flex-negative: 0; |
|
|
|
|
|
flex-shrink: 0; |
|
|
|
|
|
-webkit-box-flex: 1; |
|
|
|
|
|
-ms-flex-positive: 1; |
|
|
|
|
|
position: relative; |
|
|
|
|
|
&:before { |
|
|
|
|
|
content: ""; |
|
|
|
|
|
position: absolute; |
|
|
|
|
|
top: 0; |
|
|
|
|
|
left: 0; |
|
|
|
|
|
right: 0; |
|
|
|
|
|
bottom: 0; |
|
|
|
|
|
z-index: -1; |
|
|
|
|
|
margin: auto; |
|
|
|
|
|
width: 2px; |
|
|
|
|
|
height: 100%; |
|
|
|
|
|
background-color: #cacaca; |
|
|
|
|
|
} |
|
|
|
|
|
.add-node-btn { |
|
|
|
|
|
user-select: none; |
|
|
width: 240px; |
|
|
width: 240px; |
|
|
display: -webkit-inline-box; |
|
|
padding: 20px 0 32px; |
|
|
display: -ms-inline-flexbox; |
|
|
display: flex; |
|
|
display: inline-flex; |
|
|
-webkit-box-pack: center; |
|
|
-ms-flex-negative: 0; |
|
|
justify-content: center; |
|
|
flex-shrink: 0; |
|
|
flex-shrink: 0; |
|
|
-webkit-box-flex: 1; |
|
|
-webkit-box-flex: 1; |
|
|
-ms-flex-positive: 1; |
|
|
flex-grow: 1; |
|
|
position: relative; |
|
|
.btn { |
|
|
&:before { |
|
|
outline: none; |
|
|
content: ""; |
|
|
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1); |
|
|
position: absolute; |
|
|
width: 30px; |
|
|
top: 0; |
|
|
height: 30px; |
|
|
left: 0; |
|
|
background: #3296fa; |
|
|
right: 0; |
|
|
border-radius: 50%; |
|
|
bottom: 0; |
|
|
position: relative; |
|
|
z-index: -1; |
|
|
border: none; |
|
|
margin: auto; |
|
|
line-height: 30px; |
|
|
width: 2px; |
|
|
-webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
|
|
height: 100%; |
|
|
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
|
|
background-color: #cacaca |
|
|
.iconfont { |
|
|
} |
|
|
color: #fff; |
|
|
.add-node-btn { |
|
|
font-size: 16px; |
|
|
user-select: none; |
|
|
} |
|
|
width: 240px; |
|
|
&:hover { |
|
|
padding: 20px 0 32px; |
|
|
transform: scale(1.3); |
|
|
display: flex; |
|
|
box-shadow: 0 13px 27px 0 rgba(0, 0, 0, 0.1); |
|
|
-webkit-box-pack: center; |
|
|
} |
|
|
justify-content: center; |
|
|
&:active { |
|
|
flex-shrink: 0; |
|
|
transform: none; |
|
|
-webkit-box-flex: 1; |
|
|
background: #1e83e9; |
|
|
flex-grow: 1; |
|
|
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1); |
|
|
.btn { |
|
|
} |
|
|
outline: none; |
|
|
|
|
|
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1); |
|
|
|
|
|
width: 30px; |
|
|
|
|
|
height: 30px; |
|
|
|
|
|
background: #3296fa; |
|
|
|
|
|
border-radius: 50%; |
|
|
|
|
|
position: relative; |
|
|
|
|
|
border: none; |
|
|
|
|
|
line-height: 30px; |
|
|
|
|
|
-webkit-transition: all .3s cubic-bezier(.645, .045, .355, 1); |
|
|
|
|
|
transition: all .3s cubic-bezier(.645, .045, .355, 1); |
|
|
|
|
|
.iconfont { |
|
|
|
|
|
color: #fff; |
|
|
|
|
|
font-size: 16px |
|
|
|
|
|
} |
|
|
|
|
|
&:hover { |
|
|
|
|
|
transform: scale(1.3); |
|
|
|
|
|
box-shadow: 0 13px 27px 0 rgba(0, 0, 0, .1) |
|
|
|
|
|
} |
|
|
|
|
|
&:active { |
|
|
|
|
|
transform: none; |
|
|
|
|
|
background: #1e83e9; |
|
|
|
|
|
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |
|
|
<style lang="less"> |
|
|
<style lang="less"> |
|
|
.add-node-popover-body { |
|
|
.add-node-popover-body { |
|
|
display: flex; |
|
|
display: flex; |
|
|
.add-node-popover-item { |
|
|
.add-node-popover-item { |
|
|
margin-right: 10px; |
|
|
margin-right: 10px; |
|
|
cursor: pointer; |
|
|
cursor: pointer; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
flex: 1; |
|
|
flex: 1; |
|
|
color: #191f25!important; |
|
|
color: #191f25 !important; |
|
|
.item-wrapper { |
|
|
.item-wrapper { |
|
|
user-select: none; |
|
|
user-select: none; |
|
|
display: inline-block; |
|
|
display: inline-block; |
|
|
width: 80px; |
|
|
width: 80px; |
|
|
height: 80px; |
|
|
height: 80px; |
|
|
margin-bottom: 5px; |
|
|
margin-bottom: 5px; |
|
|
background: #fff; |
|
|
background: #fff; |
|
|
border: 1px solid #e2e2e2; |
|
|
border: 1px solid #e2e2e2; |
|
|
border-radius: 50%; |
|
|
border-radius: 50%; |
|
|
transition: all .3s cubic-bezier(.645, .045, .355, 1); |
|
|
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
|
|
.iconfont { |
|
|
.iconfont { |
|
|
font-size: 35px; |
|
|
font-size: 35px; |
|
|
line-height: 80px |
|
|
line-height: 80px; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
&.approver{ |
|
|
&.approver { |
|
|
.item-wrapper { |
|
|
.item-wrapper { |
|
|
color: #ff943e |
|
|
color: #ff943e; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
&.notifier{ |
|
|
&.notifier { |
|
|
.item-wrapper { |
|
|
.item-wrapper { |
|
|
color: #3296fa |
|
|
color: #3296fa; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
&.condition{ |
|
|
&.condition { |
|
|
.item-wrapper { |
|
|
.item-wrapper { |
|
|
color: #15bc83 |
|
|
color: #15bc83; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
&:hover{ |
|
|
&:hover { |
|
|
.item-wrapper { |
|
|
.item-wrapper { |
|
|
background: #3296fa; |
|
|
background: #3296fa; |
|
|
box-shadow: 0 10px 20px 0 rgba(50, 150, 250, .4) |
|
|
box-shadow: 0 10px 20px 0 rgba(50, 150, 250, 0.4); |
|
|
} |
|
|
} |
|
|
.iconfont { |
|
|
.iconfont { |
|
|
color: #fff |
|
|
color: #fff; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
&:active{ |
|
|
&:active { |
|
|
.item-wrapper { |
|
|
.item-wrapper { |
|
|
box-shadow: none; |
|
|
box-shadow: none; |
|
|
background: #eaeaea |
|
|
background: #eaeaea; |
|
|
} |
|
|
} |
|
|
.iconfont { |
|
|
.iconfont { |
|
|
color: inherit |
|
|
color: inherit; |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |
|
|
|