yxk-20260509-党委会发起流程
发起流程的时候,还应该显示是否抄送所办领导,抄送所办领导字段,并且支持修改,修改后发起流程时需要带入到jsonData中 并且仅当前组件需要选择
This commit is contained in:
@@ -27,6 +27,20 @@
|
|||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
|
<template v-if="showSuoleaderFields">
|
||||||
|
<a-form-item label="是否抄送所办领导">
|
||||||
|
<j-switch v-model:value="formData.isNeedAppro" />
|
||||||
|
</a-form-item>
|
||||||
|
|
||||||
|
<a-form-item label="抄送所办领导">
|
||||||
|
<j-select-user
|
||||||
|
v-model:value="formData.supDeptleaderid"
|
||||||
|
:disabled="String(formData.isNeedAppro) !== '1'"
|
||||||
|
allow-clear
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template v-if="formData.triggerMode === 'recurring'">
|
<template v-if="formData.triggerMode === 'recurring'">
|
||||||
<a-form-item label="重复周期">
|
<a-form-item label="重复周期">
|
||||||
<JDictSelectTag
|
<JDictSelectTag
|
||||||
@@ -68,15 +82,20 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { reactive, ref } from 'vue';
|
import { reactive, ref, watch } from 'vue';
|
||||||
import JModal from '/src/components/Modal/src/JModal/JModal.vue';
|
import JModal from '/src/components/Modal/src/JModal/JModal.vue';
|
||||||
import JDictSelectTag from '/src/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/src/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
|
import JSwitch from '/src/components/Form/src/jeecg/components/JSwitch.vue';
|
||||||
|
import JSelectUser from '/src/components/Form/src/jeecg/components/JSelectUser.vue';
|
||||||
import { useMessage } from '/src/hooks/web/useMessage';
|
import { useMessage } from '/src/hooks/web/useMessage';
|
||||||
|
|
||||||
interface ModalPayload {
|
interface ModalPayload {
|
||||||
title?: string;
|
title?: string;
|
||||||
payload?: Record<string, any>;
|
payload?: Record<string, any>;
|
||||||
deptOptions?: DeptOption[];
|
deptOptions?: DeptOption[];
|
||||||
|
showSuoleaderFields?: boolean;
|
||||||
|
isNeedAppro?: string | number;
|
||||||
|
supDeptleaderid?: string | string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
interface DeptOption {
|
interface DeptOption {
|
||||||
@@ -91,12 +110,15 @@
|
|||||||
const visible = ref(false);
|
const visible = ref(false);
|
||||||
const contextData = ref<Record<string, any>>({});
|
const contextData = ref<Record<string, any>>({});
|
||||||
const deptOptions = ref<DeptOption[]>([]);
|
const deptOptions = ref<DeptOption[]>([]);
|
||||||
|
const showSuoleaderFields = ref(false);
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
triggerMode: 'immediate',
|
triggerMode: 'immediate',
|
||||||
intervalType: undefined as number | string | undefined,
|
intervalType: undefined as number | string | undefined,
|
||||||
startCount: undefined as number | undefined,
|
startCount: undefined as number | undefined,
|
||||||
intervalStartTime: undefined as string | undefined,
|
intervalStartTime: undefined as string | undefined,
|
||||||
deptIds: [] as string[],
|
deptIds: [] as string[],
|
||||||
|
isNeedAppro: '0',
|
||||||
|
supDeptleaderid: '' as string | string[],
|
||||||
});
|
});
|
||||||
|
|
||||||
function resetForm() {
|
function resetForm() {
|
||||||
@@ -105,7 +127,10 @@
|
|||||||
formData.startCount = undefined;
|
formData.startCount = undefined;
|
||||||
formData.intervalStartTime = undefined;
|
formData.intervalStartTime = undefined;
|
||||||
formData.deptIds = [];
|
formData.deptIds = [];
|
||||||
|
formData.isNeedAppro = '0';
|
||||||
|
formData.supDeptleaderid = '';
|
||||||
deptOptions.value = [];
|
deptOptions.value = [];
|
||||||
|
showSuoleaderFields.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function normalizeDeptOptions(options: DeptOption[] = []) {
|
function normalizeDeptOptions(options: DeptOption[] = []) {
|
||||||
@@ -129,6 +154,12 @@
|
|||||||
contextData.value = data.payload || {};
|
contextData.value = data.payload || {};
|
||||||
deptOptions.value = normalizeDeptOptions(data.deptOptions || []);
|
deptOptions.value = normalizeDeptOptions(data.deptOptions || []);
|
||||||
formData.deptIds = deptOptions.value.map((item) => item.value);
|
formData.deptIds = deptOptions.value.map((item) => item.value);
|
||||||
|
showSuoleaderFields.value = !!data.showSuoleaderFields;
|
||||||
|
formData.isNeedAppro = String(data.isNeedAppro ?? '0');
|
||||||
|
formData.supDeptleaderid = data.supDeptleaderid || '';
|
||||||
|
if (String(formData.isNeedAppro) !== '1') {
|
||||||
|
formData.supDeptleaderid = '';
|
||||||
|
}
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,11 +196,22 @@
|
|||||||
intervalStartTime: formData.triggerMode === 'recurring' ? formData.intervalStartTime : undefined,
|
intervalStartTime: formData.triggerMode === 'recurring' ? formData.intervalStartTime : undefined,
|
||||||
deptId: formData.deptIds.join(','),
|
deptId: formData.deptIds.join(','),
|
||||||
deptIds: [...formData.deptIds],
|
deptIds: [...formData.deptIds],
|
||||||
|
isNeedAppro: showSuoleaderFields.value ? formData.isNeedAppro : undefined,
|
||||||
|
supDeptleaderid: showSuoleaderFields.value ? (String(formData.isNeedAppro) === '1' ? formData.supDeptleaderid : '') : undefined,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
handleCancel();
|
handleCancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => formData.isNeedAppro,
|
||||||
|
(value) => {
|
||||||
|
if (String(value) !== '1') {
|
||||||
|
formData.supDeptleaderid = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
open,
|
open,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -404,6 +404,9 @@
|
|||||||
title: '发起流程',
|
title: '发起流程',
|
||||||
payload: { record },
|
payload: { record },
|
||||||
deptOptions: getResponsibleDeptOptions(record),
|
deptOptions: getResponsibleDeptOptions(record),
|
||||||
|
showSuoleaderFields: true,
|
||||||
|
isNeedAppro: record?.isNeedAppro,
|
||||||
|
supDeptleaderid: record?.supDeptleaderid,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -440,6 +443,11 @@
|
|||||||
const formatDate = (value, format) => {
|
const formatDate = (value, format) => {
|
||||||
return value ? dateUtil(value).format(format) : undefined;
|
return value ? dateUtil(value).format(format) : undefined;
|
||||||
};
|
};
|
||||||
|
const flowJsonData = {
|
||||||
|
...record,
|
||||||
|
isNeedAppro: options.isNeedAppro ?? record.isNeedAppro ?? '',
|
||||||
|
supDeptleaderid: options.supDeptleaderid ?? record.supDeptleaderid ?? '',
|
||||||
|
};
|
||||||
|
|
||||||
const params = {
|
const params = {
|
||||||
intervalType: options.intervalType,
|
intervalType: options.intervalType,
|
||||||
@@ -452,7 +460,7 @@
|
|||||||
flowCode: FLOW_CODE,
|
flowCode: FLOW_CODE,
|
||||||
formUrl: FORM_URL,
|
formUrl: FORM_URL,
|
||||||
flowName: FLOW_NAME,
|
flowName: FLOW_NAME,
|
||||||
jsonData: record,
|
jsonData: flowJsonData,
|
||||||
//台账相关字段
|
//台账相关字段
|
||||||
businessTablename: BUSINESS_TABLE_NAME,
|
businessTablename: BUSINESS_TABLE_NAME,
|
||||||
businessId: record.id,
|
businessId: record.id,
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
<j-switch v-model:value="formData.isNeedAppro" ></j-switch>
|
<j-switch v-model:value="formData.isNeedAppro" ></j-switch>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col v-if="showSupDeptLeader" :span="12">
|
||||||
<a-form-item label="所办领导" v-bind="validateInfos.supDeptleaderid" id="BgPartymatterForm-supDeptleaderid" name="supDeptleaderid">
|
<a-form-item label="所办领导" v-bind="validateInfos.supDeptleaderid" id="BgPartymatterForm-supDeptleaderid" name="supDeptleaderid">
|
||||||
<j-select-user v-model:value="formData.supDeptleaderid" allow-clear />
|
<j-select-user v-model:value="formData.supDeptleaderid" allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted } from 'vue';
|
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted, watch } from 'vue';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
import JSwitch from '/@/components/Form/src/jeecg/components/JSwitch.vue';
|
import JSwitch from '/@/components/Form/src/jeecg/components/JSwitch.vue';
|
||||||
@@ -155,6 +155,7 @@
|
|||||||
deadline: '',
|
deadline: '',
|
||||||
urgencyLevel: '1',
|
urgencyLevel: '1',
|
||||||
isNeedAppro: '',
|
isNeedAppro: '',
|
||||||
|
supDeptleaderid: '',
|
||||||
isNeedSuoleader: '',
|
isNeedSuoleader: '',
|
||||||
suoleaderid: '',
|
suoleaderid: '',
|
||||||
delFlag: '',
|
delFlag: '',
|
||||||
@@ -202,6 +203,17 @@
|
|||||||
return props.formDisabled;
|
return props.formDisabled;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const showSupDeptLeader = computed(() => String(formData.isNeedAppro) !== '0');
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => formData.isNeedAppro,
|
||||||
|
(value) => {
|
||||||
|
if (String(value) === '1') {
|
||||||
|
formData.supDeptleaderid = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
initFormData();
|
initFormData();
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user