1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <template>
- <div style="margin-top: 16px">
- <!-- <el-form-item label="处理用户">-->
- <!-- <el-select v-model="userTaskForm.assignee" @change="updateElementTask('assignee')">-->
- <!-- <el-option v-for="ak in mockData" :key="'ass-' + ak" :label="`用户${ak}`" :value="`user${ak}`" />-->
- <!-- </el-select>-->
- <!-- </el-form-item>-->
- <!-- <el-form-item label="候选用户">-->
- <!-- <el-select v-model="userTaskForm.candidateUsers" multiple collapse-tags @change="updateElementTask('candidateUsers')">-->
- <!-- <el-option v-for="uk in mockData" :key="'user-' + uk" :label="`用户${uk}`" :value="`user${uk}`" />-->
- <!-- </el-select>-->
- <!-- </el-form-item>-->
- <!-- <el-form-item label="候选分组">-->
- <!-- <el-select v-model="userTaskForm.candidateGroups" multiple collapse-tags @change="updateElementTask('candidateGroups')">-->
- <!-- <el-option v-for="gk in mockData" :key="'ass-' + gk" :label="`分组${gk}`" :value="`group${gk}`" />-->
- <!-- </el-select>-->
- <!-- </el-form-item>-->
- <el-form-item label="到期时间">
- <el-input v-model="userTaskForm.dueDate" clearable @change="updateElementTask('dueDate')" />
- </el-form-item>
- <el-form-item label="跟踪时间">
- <el-input v-model="userTaskForm.followUpDate" clearable @change="updateElementTask('followUpDate')" />
- </el-form-item>
- <el-form-item label="优先级">
- <el-input v-model="userTaskForm.priority" clearable @change="updateElementTask('priority')" />
- </el-form-item>
- 友情提示:任务的分配规则,使用
- <router-link target="_blank" :to="{path:'/bpm/manager/model'}"><el-link type="danger">流程模型</el-link> </router-link>
- 下的【分配规则】替代,提供指定角色、部门负责人、部门成员、岗位、工作组、自定义脚本等 7 种维护的任务分配维度,更加灵活!
- </div>
- </template>
- <script>
- export default {
- name: "UserTask",
- props: {
- id: String,
- type: String
- },
- data() {
- return {
- defaultTaskForm: {
- assignee: "",
- candidateUsers: [],
- candidateGroups: [],
- dueDate: "",
- followUpDate: "",
- priority: ""
- },
- userTaskForm: {},
- mockData: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- };
- },
- watch: {
- id: {
- immediate: true,
- handler() {
- this.bpmnElement = window.bpmnInstances.bpmnElement;
- this.$nextTick(() => this.resetTaskForm());
- }
- }
- },
- methods: {
- resetTaskForm() {
- for (let key in this.defaultTaskForm) {
- let value;
- if (key === "candidateUsers" || key === "candidateGroups") {
- value = this.bpmnElement?.businessObject[key] ? this.bpmnElement.businessObject[key].split(",") : [];
- } else {
- value = this.bpmnElement?.businessObject[key] || this.defaultTaskForm[key];
- }
- this.$set(this.userTaskForm, key, value);
- }
- },
- updateElementTask(key) {
- const taskAttr = Object.create(null);
- if (key === "candidateUsers" || key === "candidateGroups") {
- taskAttr[key] = this.userTaskForm[key] && this.userTaskForm[key].length ? this.userTaskForm[key].join() : null;
- } else {
- taskAttr[key] = this.userTaskForm[key] || null;
- }
- window.bpmnInstances.modeling.updateProperties(this.bpmnElement, taskAttr);
- }
- },
- beforeDestroy() {
- this.bpmnElement = null;
- }
- };
- </script>
|