123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <template>
- <div>
- <el-form ref="formRef" :model="form" label-width="120px" size="small" :disabled="disabled">
- <slot name="form-item-task-skipName" v-if="skipConditionShow" :model="form" field="skipName">
- <el-form-item label="跳转名称">
- <el-input v-model="form.skipName" placeholder="跳转名称" />
- </el-form-item>
- </slot>
- <slot name="form-item-task-skipType" :model="form" field="skipType">
- <el-form-item label="跳转类型">
- <el-select v-model="form.skipType">
- <el-option sel label="审批通过" value="PASS" />
- <el-option label="退回" value="REJECT" />
- </el-select>
- </el-form-item>
- </slot>
- <slot
- name="form-item-task-skipCondition"
- v-if="skipConditionShow"
- :model="form"
- field="skipCondition"
- >
- <el-form-item label="跳转条件">
- <el-input
- v-model="form.condition"
- v-if="!spelFlag"
- placeholder="条件名"
- style="width: 20%"
- />
- <el-select
- v-model="form.conditionType"
- placeholder="请选择条件方式"
- style="width: 35%; margin-left: 1%"
- @change="changeOper"
- >
- <el-option label="大于" value="gt" />
- <el-option label="大于等于" value="ge" />
- <el-option label="等于" value="eq" />
- <el-option label="不等于" value="ne" />
- <el-option label="小于" value="lt" />
- <el-option label="小于等于" value="le" />
- <el-option label="包含" value="like" />
- <el-option label="不包含" value="notNike" />
- <el-option label="spel表达式" value="spel" />
- </el-select>
- <el-input
- v-model="form.conditionValue"
- placeholder="条件值"
- style="width: 42%; margin-left: 1%; margin-right: 1%"
- />
- </el-form-item>
- </slot>
- </el-form>
- </div>
- </template>
- <script setup lang="ts">
- const props = defineProps({
- modelValue: {
- type: Object,
- default() {
- return {}
- }
- },
- disabled: {
- // 是否禁止
- type: Boolean,
- default: false
- },
- skipConditionShow: {
- // 是否显示跳转条件
- type: Boolean,
- default: true
- }
- })
- const spelFlag = ref(false)
- const form = ref(props.modelValue)
- const emit = defineEmits(['change'])
- watch(
- () => form,
- (n) => {
- n = n.value
- let skipCondition = n.skipCondition
- skipCondition = '@@' + n.conditionType + '@@|'
- if (n.conditionType !== 'spel') {
- skipCondition =
- skipCondition + (n.condition ? n.condition : '') + '@@' + n.conditionType + '@@'
- }
- n.skipCondition = skipCondition + (n.conditionValue ? n.conditionValue : '')
- if (n) {
- emit('change', n)
- }
- },
- { deep: true }
- )
- function changeOper(obj) {
- spelFlag.value = obj === 'spel'
- }
- if (props.modelValue?.conditionType === 'spel') spelFlag.value = true
- </script>
- <style scoped></style>
|