* fix -- 修改获取流程节点信息接口(供前端渲染流程跟踪图着色使用) * fix -- 修复流程跟踪着色问题 * fix -- 采用ProcessViewer组件显示流程跟踪信息 * fix -- 整合表单设计代码 * fix -- 简易实现用户任务选择用户下拉框内容 * fix -- 修改项目介绍及sql文件 * del -- 移除未使用的文件 * fix -- 修复组件无法显示和修改的问题 * add -- 整合 Rtony/RuoYi-flowable 工作流 * add -- 添加process-designer流程设计插件 * !3 同步ruoyi-vue-plus更新 * !2 登录认证用户信息添加nickName字段(流程任务需要使用到)
124 lines
2.4 KiB
Vue
124 lines
2.4 KiB
Vue
<template>
|
|
<div class="icon-dialog">
|
|
<el-dialog
|
|
v-bind="$attrs"
|
|
width="980px"
|
|
:modal-append-to-body="false"
|
|
v-on="$listeners"
|
|
@open="onOpen"
|
|
@close="onClose"
|
|
>
|
|
<div slot="title">
|
|
选择图标
|
|
<el-input
|
|
v-model="key"
|
|
size="mini"
|
|
:style="{width: '260px'}"
|
|
placeholder="请输入图标名称"
|
|
prefix-icon="el-icon-search"
|
|
clearable
|
|
/>
|
|
</div>
|
|
<ul class="icon-ul">
|
|
<li
|
|
v-for="icon in iconList"
|
|
:key="icon"
|
|
:class="active===icon?'active-item':''"
|
|
@click="onSelect(icon)"
|
|
>
|
|
<i :class="icon" />
|
|
<div>{{ icon }}</div>
|
|
</li>
|
|
</ul>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import iconList from '@/utils/generator/icon.json'
|
|
|
|
const originList = iconList.map(name => `el-icon-${name}`)
|
|
|
|
export default {
|
|
inheritAttrs: false,
|
|
props: ['current'],
|
|
data() {
|
|
return {
|
|
iconList: originList,
|
|
active: null,
|
|
key: ''
|
|
}
|
|
},
|
|
watch: {
|
|
key(val) {
|
|
if (val) {
|
|
this.iconList = originList.filter(name => name.indexOf(val) > -1)
|
|
} else {
|
|
this.iconList = originList
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
onOpen() {
|
|
this.active = this.current
|
|
this.key = ''
|
|
},
|
|
onClose() {},
|
|
onSelect(icon) {
|
|
this.active = icon
|
|
this.$emit('select', icon)
|
|
this.$emit('update:visible', false)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
.icon-ul {
|
|
margin: 0;
|
|
padding: 0;
|
|
font-size: 0;
|
|
li {
|
|
list-style-type: none;
|
|
text-align: center;
|
|
font-size: 14px;
|
|
display: inline-block;
|
|
width: 16.66%;
|
|
box-sizing: border-box;
|
|
height: 108px;
|
|
padding: 15px 6px 6px 6px;
|
|
cursor: pointer;
|
|
overflow: hidden;
|
|
&:hover {
|
|
background: #f2f2f2;
|
|
}
|
|
&.active-item{
|
|
background: #e1f3fb;
|
|
color: #7a6df0
|
|
}
|
|
> i {
|
|
font-size: 30px;
|
|
line-height: 50px;
|
|
}
|
|
}
|
|
}
|
|
.icon-dialog {
|
|
::v-deep .el-dialog {
|
|
border-radius: 8px;
|
|
margin-bottom: 0;
|
|
margin-top: 4vh !important;
|
|
display: flex;
|
|
flex-direction: column;
|
|
max-height: 92vh;
|
|
overflow: hidden;
|
|
box-sizing: border-box;
|
|
.el-dialog__header {
|
|
padding-top: 14px;
|
|
}
|
|
.el-dialog__body {
|
|
margin: 0 20px 20px 20px;
|
|
padding: 0;
|
|
overflow: auto;
|
|
}
|
|
}
|
|
}
|
|
</style>
|