index.vue 2.49 KB
Newer Older
1
<template>
2
    <div class="workflow">
3
        <div class="mb-10">
dragondean@qq.com's avatar
dragondean@qq.com committed
4 5 6 7 8 9 10 11 12
            <my-process-viewer
                ref="processViewer"
                :value="bpmnXML"
                :prefix="prefix"
                :activityData="activityData"
                :processInstanceData="processInstanceData"
                :taskData="taskData"
            />
        </div>
13
        <el-form label-position="left" label-width="100px">
dragondean@qq.com's avatar
dragondean@qq.com committed
14
          <el-form-item :label="$t('抄送')">
15
            <el-select v-model="valueSync" multiple :placeholder="$t('请选择抄送人')" style="width:100%" filterable :disabled="disabled" >
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
                <el-option
                v-for="item in users"
                :key="item.id"
                :label="item.nickname"
                :value="item.id">
                </el-option>
            </el-select>
          </el-form-item>
        </el-form>
    </div>
</template>
<script>
import {getProcessDefinitionBpmnXMLByKey} from "@/api/bpm/definition"
import {listSimpleUsers} from '@/api/system/user'
export default {
    props:{
        xmlkey: String, // 流程标识
        value: Array,
        prefix: { // 使用哪个引擎
            type: String,
            default: "camunda",
        },
        activityData: { // 活动的数据。传递时,可高亮流程
            type: Array,
            default: () => [],
        },
        processInstanceData: { // 流程实例的数据。传递时,可展示流程发起人等信息
            type: Object,
        },
        taskData: { // 任务实例的数据。传递时,可展示 UserTask 审核相关的信息
            type: Array,
            default: () => [],
48 49
        },
        disabled: Boolean
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
    },
    data(){
        return {
            valueSync: [],
            bpmnXML: null,
            users: [],
            selectedUserIds:[]
        }
    },
    watch:{
        value(){
            this.valueSync = this.value || []
        },
        valueSync(val){
            this.$emit('input', val)
        },

    },
    created(){
        if(this.value){
            this.valueSync = this.value
        }
        listSimpleUsers().then(res => {
            this.users = res.data
        })
        this.loadData()
    },
    methods:{
        loadData(){
            getProcessDefinitionBpmnXMLByKey(this.xmlkey).then(response => {
                this.bpmnXML = response.data
            })
        }
    }

}
86 87 88 89 90
</script>
<style lang="scss" scoped>
.workflow ::v-deep .my-process-designer{
    height: auto;
}
91
</style>