!37 feat(inspect): DqInspectTaskForm添加必填字段校验规则
* feat(inspect): DqInspectTaskForm添加必填字段校验规则 * refactor(form): 是否需要审批字段统一替换为j-switch组件 * feat(form): 部门经办人替换为sz-dept-user-modal组件 * feat(form): 新增部门角色用户选择组件,替换各处j-select-user
This commit is contained in:
@@ -50,7 +50,7 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="所办领导">
|
<a-form-item label="所办领导">
|
||||||
<DeptRoleSelectUser
|
<DeptRoleUserSelectRadioGroup
|
||||||
v-model:value="formData.supDeptleaderid"
|
v-model:value="formData.supDeptleaderid"
|
||||||
deptId="2044677604785229826"
|
deptId="2044677604785229826"
|
||||||
roleId="2044680793306591234"
|
roleId="2044680793306591234"
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
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 JSwitch from '/src/components/Form/src/jeecg/components/JSwitch.vue';
|
||||||
import DeptRoleSelectUser from '/@/views/bg/xispeak/components/DeptRoleSelectUser.vue';
|
import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue';
|
||||||
import { useMessage } from '/src/hooks/web/useMessage';
|
import { useMessage } from '/src/hooks/web/useMessage';
|
||||||
|
|
||||||
interface ModalPayload {
|
interface ModalPayload {
|
||||||
|
|||||||
@@ -0,0 +1,78 @@
|
|||||||
|
<template>
|
||||||
|
<a-select
|
||||||
|
:value="modelValue || undefined"
|
||||||
|
@change="onChange"
|
||||||
|
:mode="multiple ? 'multiple' : undefined"
|
||||||
|
:disabled="disabled"
|
||||||
|
:placeholder="placeholder"
|
||||||
|
allowClear
|
||||||
|
:getPopupContainer="(node) => node.parentNode"
|
||||||
|
>
|
||||||
|
<a-select-option v-for="user in userList" :key="user.username" :value="user.username">
|
||||||
|
{{ user.realname }}
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, onMounted, watch } from 'vue';
|
||||||
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
|
||||||
|
const props = withDefaults(
|
||||||
|
defineProps<{
|
||||||
|
deptId: string;
|
||||||
|
roleId: string;
|
||||||
|
multiple?: boolean;
|
||||||
|
disabled?: boolean;
|
||||||
|
placeholder?: string;
|
||||||
|
}>(),
|
||||||
|
{
|
||||||
|
multiple: false,
|
||||||
|
disabled: false,
|
||||||
|
placeholder: '请选择',
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
const modelValue = defineModel<string>('value', { default: '' });
|
||||||
|
|
||||||
|
const userList = ref<Array<{ username: string; realname: string }>>([]);
|
||||||
|
|
||||||
|
async function fetchUserList() {
|
||||||
|
if (!props.deptId) {
|
||||||
|
userList.value = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
const params = {
|
||||||
|
departId: props.deptId,
|
||||||
|
roleId: props.roleId,
|
||||||
|
searchSecurityLevel: 5,
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 999,
|
||||||
|
};
|
||||||
|
const res = await defHttp.get({ url: '/sys/user/queryUserRoleComponentData', params });
|
||||||
|
const records = res?.records || res?.result?.records || [];
|
||||||
|
userList.value = records;
|
||||||
|
} catch {
|
||||||
|
userList.value = [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(fetchUserList);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => [props.deptId, props.roleId],
|
||||||
|
() => {
|
||||||
|
modelValue.value = '';
|
||||||
|
fetchUserList();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
function onChange(value: string | string[]) {
|
||||||
|
if (props.multiple) {
|
||||||
|
modelValue.value = Array.isArray(value) ? value.join(',') : '';
|
||||||
|
} else {
|
||||||
|
modelValue.value = (value as string) || '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
<a-col v-if="showSupDeptLeader" :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 />-->
|
||||||
<DeptRoleSelectUser
|
<DeptRoleUserSelectRadioGroup
|
||||||
v-model:value="formData.supDeptleaderid"
|
v-model:value="formData.supDeptleaderid"
|
||||||
deptId="2044677604785229826"
|
deptId="2044677604785229826"
|
||||||
roleId="2044680793306591234"
|
roleId="2044680793306591234"
|
||||||
@@ -156,7 +156,7 @@
|
|||||||
import { saveOrUpdate } from '../BgPartymatter.api';
|
import { saveOrUpdate } from '../BgPartymatter.api';
|
||||||
import { Form } from 'ant-design-vue';
|
import { Form } from 'ant-design-vue';
|
||||||
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
||||||
import DeptRoleSelectUser from "@/views/bg/xispeak/components/DeptRoleSelectUser.vue";
|
import DeptRoleUserSelectRadioGroup from "/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
formDisabled: { type: Boolean, default: false },
|
formDisabled: { type: Boolean, default: false },
|
||||||
|
|||||||
@@ -141,7 +141,7 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col v-if="mainForm.needSdwApproval === 1" :span="12">
|
<a-col v-if="mainForm.needSdwApproval === 1" :span="12">
|
||||||
<a-form-item label="督导领导列表" name="sdwLeaderList">
|
<a-form-item label="督导领导列表" name="sdwLeaderList">
|
||||||
<DeptRoleSelectUser
|
<DeptRoleUserSelectRadioGroup
|
||||||
v-model:value="mainForm.sdwLeaderList"
|
v-model:value="mainForm.sdwLeaderList"
|
||||||
deptId="2044677562460508161"
|
deptId="2044677562460508161"
|
||||||
roleId="2044676455280570370"
|
roleId="2044676455280570370"
|
||||||
@@ -252,7 +252,7 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col v-if="showSubApproveUserSelector" :span="12">
|
<a-col v-if="showSubApproveUserSelector" :span="12">
|
||||||
<a-form-item label="部门经办人" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
<a-form-item label="部门经办人" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||||
<j-select-user v-model:value="subApproveUser" :disabled="savingSubApproveUser" allow-clear />
|
<sz-dept-user-modal v-model:value="subApproveUser" :disabled="savingSubApproveUser" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
@@ -279,6 +279,7 @@
|
|||||||
import { useUserStore } from '/@/store/modules/user';
|
import { useUserStore } from '/@/store/modules/user';
|
||||||
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
|
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
|
||||||
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue';
|
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue';
|
||||||
|
import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
||||||
import JTreeSelect from '/@/components/Form/src/jeecg/components/JTreeSelect.vue';
|
import JTreeSelect from '/@/components/Form/src/jeecg/components/JTreeSelect.vue';
|
||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
import Icon from '/@/components/Icon/index';
|
import Icon from '/@/components/Icon/index';
|
||||||
@@ -293,7 +294,7 @@
|
|||||||
import TaskHandleInnerContent from '/@/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue';
|
import TaskHandleInnerContent from '/@/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue';
|
||||||
import BgXiSpeakBPMFeedbackModal from './BgXiSpeakBPMFeedbackModal.vue';
|
import BgXiSpeakBPMFeedbackModal from './BgXiSpeakBPMFeedbackModal.vue';
|
||||||
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
|
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
|
||||||
import DeptRoleSelectUser from './DeptRoleSelectUser.vue';
|
import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue';
|
||||||
|
|
||||||
const { isDisabledAuth, hasPermission, initBpmFormData } = usePermission();
|
const { isDisabledAuth, hasPermission, initBpmFormData } = usePermission();
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
|
|||||||
@@ -39,8 +39,8 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="责任人" v-bind="validateInfos.responsiblePerson" id="BgXiSpeakForm-responsiblePerson" name="responsiblePerson">
|
<a-form-item label="所党委责任人" v-bind="validateInfos.responsiblePerson" id="BgXiSpeakForm-responsiblePerson" name="responsiblePerson">
|
||||||
<j-select-user v-model:value="formData.responsiblePerson" placeholder="请从所党委选择责任人" allow-clear />
|
<DeptRoleUserSelectDropDown v-model:value="formData.responsiblePerson" :deptId="PARTY_COMMITTEE_DEPT_ID" :roleId="SDW_LEADER_ROLE_ID" placeholder="请从所党委选择责任人" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
@@ -60,18 +60,15 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="是否需要所党委领导督办" v-bind="validateInfos.needSdwApproval" id="BgXiSpeakForm-needSdwApproval" name="needSdwApproval">
|
<a-form-item label="是否需要所党委领导督办" v-bind="validateInfos.needSdwApproval" id="BgXiSpeakForm-needSdwApproval" name="needSdwApproval">
|
||||||
<a-radio-group v-model:value="formData.needSdwApproval">
|
<j-switch v-model:value="formData.needSdwApproval" />
|
||||||
<a-radio :value="1">是</a-radio>
|
|
||||||
<a-radio :value="0">否</a-radio>
|
|
||||||
</a-radio-group>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col v-if="formData.needSdwApproval === 1" :span="12">
|
<a-col v-if="formData.needSdwApproval == '1'" :span="12">
|
||||||
<a-form-item label="所党委领导列表" id="BgXiSpeakForm-sdwLeaderList" name="sdwLeaderList">
|
<a-form-item label="所党委领导列表" id="BgXiSpeakForm-sdwLeaderList" name="sdwLeaderList">
|
||||||
<DeptRoleSelectUser
|
<DeptRoleUserSelectRadioGroup
|
||||||
v-model:value="formData.sdwLeaderList"
|
v-model:value="formData.sdwLeaderList"
|
||||||
deptId="2044677562460508161"
|
:deptId="PARTY_COMMITTEE_DEPT_ID"
|
||||||
roleId="2044676455280570370"
|
:roleId="SDW_LEADER_ROLE_ID"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -126,16 +123,20 @@
|
|||||||
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 JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
|
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
|
||||||
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue';
|
import DeptRoleUserSelectDropDown from '/@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue';
|
||||||
import JTreeSelect from '/@/components/Form/src/jeecg/components/JTreeSelect.vue';
|
import JTreeSelect from '/@/components/Form/src/jeecg/components/JTreeSelect.vue';
|
||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
import DeptRoleSelectUser from './DeptRoleSelectUser.vue';
|
import JSwitch from '/@/components/Form/src/jeecg/components/JSwitch.vue';
|
||||||
|
import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue';
|
||||||
import { getValueType } from '/@/utils';
|
import { getValueType } from '/@/utils';
|
||||||
import { loadTreeData, saveOrUpdateDict } from '../BgXiSpeak.api';
|
import { loadTreeData, saveOrUpdateDict } from '../BgXiSpeak.api';
|
||||||
import { Form } from 'ant-design-vue';
|
import { Form } from 'ant-design-vue';
|
||||||
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
||||||
import { usePermission } from '/@/hooks/web/usePermission';
|
import { usePermission } from '/@/hooks/web/usePermission';
|
||||||
|
|
||||||
|
const PARTY_COMMITTEE_DEPT_ID = '2044677562460508161';
|
||||||
|
const SDW_LEADER_ROLE_ID = '2044676455280570370';
|
||||||
|
|
||||||
const { initBpmFormData } = usePermission();
|
const { initBpmFormData } = usePermission();
|
||||||
const useForm = Form.useForm;
|
const useForm = Form.useForm;
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
@@ -154,7 +155,7 @@
|
|||||||
status: 'x月x日召开xxxx年第x次党委会议',
|
status: 'x月x日召开xxxx年第x次党委会议',
|
||||||
secretLevel: '',
|
secretLevel: '',
|
||||||
responsiblePerson: '',
|
responsiblePerson: '',
|
||||||
needSdwApproval: 0,
|
needSdwApproval: '',
|
||||||
sdwLeaderList: '',
|
sdwLeaderList: '',
|
||||||
implPlan: '',
|
implPlan: '',
|
||||||
implMeasures: '',
|
implMeasures: '',
|
||||||
@@ -268,7 +269,7 @@
|
|||||||
const tmpData = {};
|
const tmpData = {};
|
||||||
Object.keys(formData).forEach((key) => {
|
Object.keys(formData).forEach((key) => {
|
||||||
if (data.hasOwnProperty(key)) {
|
if (data.hasOwnProperty(key)) {
|
||||||
tmpData[key] = data[key] === null ? (key === 'needSdwApproval' ? 0 : '') : data[key];
|
tmpData[key] = data[key] === null ? (key === 'needSdwApproval' ? '0' : '') : data[key];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -301,7 +302,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (formData.needSdwApproval === undefined || formData.needSdwApproval === null) {
|
if (formData.needSdwApproval === undefined || formData.needSdwApproval === null) {
|
||||||
formData.needSdwApproval = 0;
|
formData.needSdwApproval = '0';
|
||||||
}
|
}
|
||||||
|
|
||||||
confirmLoading.value = true;
|
confirmLoading.value = true;
|
||||||
|
|||||||
@@ -203,7 +203,7 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col v-if="showSubApproveUserSelector" :span="12">
|
<a-col v-if="showSubApproveUserSelector" :span="12">
|
||||||
<a-form-item label="部门经办人" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
<a-form-item label="部门经办人" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||||
<j-select-user v-model:value="subApproveUser" :disabled="savingSubApproveUser" allow-clear />
|
<sz-dept-user-modal v-model:value="subApproveUser" :disabled="savingSubApproveUser" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
@@ -247,6 +247,7 @@
|
|||||||
import { useUserStore } from '/@/store/modules/user';
|
import { useUserStore } from '/@/store/modules/user';
|
||||||
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
|
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
|
||||||
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue';
|
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue';
|
||||||
|
import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
import Icon from '/@/components/Icon/index';
|
import Icon from '/@/components/Icon/index';
|
||||||
import { saveBpmForm, setProcessVariable, specificProblemOptions } from '../DqInspectTask.api';
|
import { saveBpmForm, setProcessVariable, specificProblemOptions } from '../DqInspectTask.api';
|
||||||
|
|||||||
@@ -32,7 +32,13 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="完成时限" v-bind="validateInfos.deadline" id="DqInspectTaskForm-deadline" name="deadline">
|
<a-form-item label="完成时限" v-bind="validateInfos.deadline" id="DqInspectTaskForm-deadline" name="deadline">
|
||||||
<a-date-picker placeholder="请选择完成时限" v-model:value="formData.deadline" value-format="YYYY-MM-DD" style="width: 100%" allow-clear />
|
<a-date-picker
|
||||||
|
placeholder="请选择完成时限"
|
||||||
|
v-model:value="formData.deadline"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
style="width: 100%"
|
||||||
|
allow-clear
|
||||||
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
@@ -46,7 +52,12 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="监督意见" v-bind="validateInfos.supervisoryOpinion" id="DqInspectTaskForm-supervisoryOpinion" name="supervisoryOpinion">
|
<a-form-item
|
||||||
|
label="监督意见"
|
||||||
|
v-bind="validateInfos.supervisoryOpinion"
|
||||||
|
id="DqInspectTaskForm-supervisoryOpinion"
|
||||||
|
name="supervisoryOpinion"
|
||||||
|
>
|
||||||
<a-input v-model:value="formData.supervisoryOpinion" placeholder="请输入监督意见" allow-clear></a-input>
|
<a-input v-model:value="formData.supervisoryOpinion" placeholder="请输入监督意见" allow-clear></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -60,39 +71,65 @@
|
|||||||
<!-- 责任与监督 -->
|
<!-- 责任与监督 -->
|
||||||
<a-divider orientation="left" plain>责任与监督</a-divider>
|
<a-divider orientation="left" plain>责任与监督</a-divider>
|
||||||
<a-row :gutter="[16, 0]">
|
<a-row :gutter="[16, 0]">
|
||||||
<a-col :span="12">
|
|
||||||
<a-form-item label="措施责任领导" v-bind="validateInfos.measureResLeader" id="DqInspectTaskForm-measureResLeader" name="measureResLeader">
|
|
||||||
<j-select-user v-model:value="formData.measureResLeader" allow-clear />
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="措施责任部门" v-bind="validateInfos.measureResDept" id="DqInspectTaskForm-measureResDept" name="measureResDept">
|
<a-form-item label="措施责任部门" v-bind="validateInfos.measureResDept" id="DqInspectTaskForm-measureResDept" name="measureResDept">
|
||||||
<j-select-dept v-model:value="formData.measureResDept" :multiple="true" checkStrictly allow-clear />
|
<j-select-dept v-model:value="formData.measureResDept" :multiple="true" checkStrictly allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="分管所领导" v-bind="validateInfos.chargeLeaderId" id="DqInspectTaskForm-chargeLeaderId" name="chargeLeaderId">
|
<a-form-item
|
||||||
<j-select-user v-model:value="formData.chargeLeaderId" allow-clear />
|
label="措施责任领导"
|
||||||
|
v-bind="validateInfos.measureResLeader"
|
||||||
|
id="DqInspectTaskForm-measureResLeader"
|
||||||
|
name="measureResLeader"
|
||||||
|
>
|
||||||
|
<DeptRoleUserSelectDropDown
|
||||||
|
v-model:value="formData.measureResLeader"
|
||||||
|
:deptId="measureResDeptId"
|
||||||
|
:roleId="MEASURE_RES_LEADER_ROLE_ID"
|
||||||
|
:disabled="measureResLeaderDisabled"
|
||||||
|
placeholder="请选择措施责任领导"
|
||||||
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="整改交付成果" v-bind="validateInfos.rectificationEvidence" id="DqInspectTaskForm-rectificationEvidence" name="rectificationEvidence">
|
<a-form-item label="分管所领导" v-bind="validateInfos.chargeLeaderId" id="DqInspectTaskForm-chargeLeaderId" name="chargeLeaderId">
|
||||||
|
<DeptRoleUserSelectDropDown
|
||||||
|
v-model:value="formData.chargeLeaderId"
|
||||||
|
:deptId="CHARGE_LEADER_DEPT_ID"
|
||||||
|
:roleId="CHARGE_LEADER_ROLE_ID"
|
||||||
|
placeholder="请选择分管所领导"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item
|
||||||
|
label="整改交付成果"
|
||||||
|
v-bind="validateInfos.rectificationEvidence"
|
||||||
|
id="DqInspectTaskForm-rectificationEvidence"
|
||||||
|
name="rectificationEvidence"
|
||||||
|
>
|
||||||
<a-input v-model:value="formData.rectificationEvidence" placeholder="请输入整改交付成果" allow-clear></a-input>
|
<a-input v-model:value="formData.rectificationEvidence" placeholder="请输入整改交付成果" allow-clear></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="成效评价标准" v-bind="validateInfos.evaluationCriterion" id="DqInspectTaskForm-evaluationCriterion" name="evaluationCriterion">
|
<a-form-item
|
||||||
|
label="成效评价标准"
|
||||||
|
v-bind="validateInfos.evaluationCriterion"
|
||||||
|
id="DqInspectTaskForm-evaluationCriterion"
|
||||||
|
name="evaluationCriterion"
|
||||||
|
>
|
||||||
<a-input v-model:value="formData.evaluationCriterion" placeholder="请输入成效评价标准" allow-clear></a-input>
|
<a-input v-model:value="formData.evaluationCriterion" placeholder="请输入成效评价标准" allow-clear></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="是否需要党群领导审批" v-bind="validateInfos.isNeedAppro" id="DqInspectTaskForm-isNeedAppro" name="isNeedAppro">
|
<a-form-item label="是否需要党群领导审批" v-bind="validateInfos.isNeedAppro" id="DqInspectTaskForm-isNeedAppro" name="isNeedAppro">
|
||||||
<j-dict-select-tag type='radio' v-model:value="formData.isNeedAppro" dictCode="yn" placeholder="请选择是否需要党群领导审批" allow-clear />
|
<j-switch v-model:value="formData.isNeedAppro" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col v-if="formData.isNeedAppro === '1'" :span="12">
|
<a-col v-if="formData.isNeedAppro === '1'" :span="12">
|
||||||
<a-form-item label="党群领导" v-bind="validateInfos.supDeptleaderid" id="DqInspectTaskForm-supDeptleaderid" name="supDeptleaderid">
|
<a-form-item label="党群领导" v-bind="validateInfos.supDeptleaderid" id="DqInspectTaskForm-supDeptleaderid" name="supDeptleaderid">
|
||||||
<j-select-user v-model:value="formData.supDeptleaderid" allow-clear />
|
<DeptRoleUserSelectRadioGroup v-model:value="formData.supDeptleaderid" :deptId="PARTY_MASSES_DEPT_ID" :roleId="MEASURE_RES_LEADER_ROLE_ID" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
@@ -117,7 +154,7 @@
|
|||||||
<!-- :toolbar="true"/>-->
|
<!-- :toolbar="true"/>-->
|
||||||
<!-- </a-tab-pane>-->
|
<!-- </a-tab-pane>-->
|
||||||
<!-- </a-tabs>-->
|
<!-- </a-tabs>-->
|
||||||
<div v-if="showFlowSubmitButton" :span="24" style="width: 100%;text-align: center;margin-top: 10px">
|
<div v-if="showFlowSubmitButton" :span="24" style="width: 100%; text-align: center; margin-top: 10px">
|
||||||
<a-button preIcon="ant-design:check-outlined" style="width: 126px" type="primary" @click="submitForm">提 交</a-button>
|
<a-button preIcon="ant-design:check-outlined" style="width: 126px" type="primary" @click="submitForm">提 交</a-button>
|
||||||
</div>
|
</div>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
@@ -131,31 +168,40 @@
|
|||||||
import { JVxeTable } from '/@/components/jeecg/JVxeTable';
|
import { JVxeTable } from '/@/components/jeecg/JVxeTable';
|
||||||
import { dqInspectProgressColumns } from '../DqInspectTask.data';
|
import { dqInspectProgressColumns } from '../DqInspectTask.data';
|
||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
|
import JSwitch from '/@/components/Form/src/jeecg/components/JSwitch.vue';
|
||||||
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
|
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
|
||||||
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue';
|
import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue';
|
||||||
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
||||||
import { Form } from 'ant-design-vue';
|
import { Form } from 'ant-design-vue';
|
||||||
|
import DeptRoleUserSelectDropDown from '@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue';
|
||||||
const useForm = Form.useForm;
|
const useForm = Form.useForm;
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "DqInspectTaskForm",
|
name: 'DqInspectTaskForm',
|
||||||
components:{
|
components: {
|
||||||
|
DeptRoleUserSelectDropDown,
|
||||||
JDictSelectTag,
|
JDictSelectTag,
|
||||||
|
JSwitch,
|
||||||
JSelectDept,
|
JSelectDept,
|
||||||
JSelectUser,
|
DeptRoleUserSelectRadioGroup,
|
||||||
JVxeTable,
|
JVxeTable,
|
||||||
JFormContainer,
|
JFormContainer,
|
||||||
},
|
},
|
||||||
props:{
|
props: {
|
||||||
formDisabled:{
|
formDisabled: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false,
|
||||||
},
|
},
|
||||||
formData: { type: Object, default: ()=>{} },
|
formData: { type: Object, default: () => {} },
|
||||||
formBpm: { type: Boolean, default: true }
|
formBpm: { type: Boolean, default: true },
|
||||||
},
|
},
|
||||||
emits:['success'],
|
emits: ['success'],
|
||||||
setup(props, {emit}) {
|
setup(props, { emit }) {
|
||||||
|
const CHARGE_LEADER_DEPT_ID = '2044677562460508161';
|
||||||
|
const CHARGE_LEADER_ROLE_ID = '2062794430936240130';
|
||||||
|
const PARTY_MASSES_DEPT_ID = '2044677628281720834';
|
||||||
|
const MEASURE_RES_LEADER_ROLE_ID = '2044680793306591234';
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
const dqInspectProgressTableRef = ref();
|
const dqInspectProgressTableRef = ref();
|
||||||
@@ -164,7 +210,7 @@
|
|||||||
const dqInspectProgressTable = reactive<Record<string, any>>({
|
const dqInspectProgressTable = reactive<Record<string, any>>({
|
||||||
loading: false,
|
loading: false,
|
||||||
columns: dqInspectProgressColumns,
|
columns: dqInspectProgressColumns,
|
||||||
dataSource: []
|
dataSource: [],
|
||||||
});
|
});
|
||||||
const activeKey = ref('dqInspectProgress');
|
const activeKey = ref('dqInspectProgress');
|
||||||
const formData = reactive<Record<string, any>>({
|
const formData = reactive<Record<string, any>>({
|
||||||
@@ -198,34 +244,41 @@
|
|||||||
//表单验证
|
//表单验证
|
||||||
const validatorRules = reactive({
|
const validatorRules = reactive({
|
||||||
problemId: [{ required: true, message: '请选择具体问题' }],
|
problemId: [{ required: true, message: '请选择具体问题' }],
|
||||||
|
secretLevel: [{ required: true, message: '请选择密级' }],
|
||||||
|
improveMeasure: [{ required: true, message: '请输入整改措施' }],
|
||||||
|
deadline: [{ required: true, message: '请选择完成时限' }],
|
||||||
|
measureResDept: [{ required: true, message: '请选择措施责任部门' }],
|
||||||
|
measureResLeader: [{ required: true, message: '请选择措施责任领导' }],
|
||||||
|
chargeLeaderId: [{ required: true, message: '请选择分管所领导' }],
|
||||||
|
isNeedAppro: [{ required: true, message: '请选择是否需要党群领导审批' }],
|
||||||
});
|
});
|
||||||
const {resetFields, validate, validateInfos} = useForm(formData, validatorRules, {immediate: false});
|
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
||||||
const dbData = {};
|
const dbData = {};
|
||||||
|
|
||||||
// 表单禁用
|
// 表单禁用
|
||||||
const disabled = computed(()=>{
|
const disabled = computed(() => {
|
||||||
if(props.formBpm === true){
|
if (props.formBpm === true) {
|
||||||
if(props.formData.disabled === false){
|
if (props.formData.disabled === false) {
|
||||||
return false;
|
return false;
|
||||||
}else{
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return props.formDisabled;
|
return props.formDisabled;
|
||||||
});
|
});
|
||||||
|
|
||||||
onMounted(()=>{
|
onMounted(() => {
|
||||||
loadSpecificProblemOptions();
|
loadSpecificProblemOptions();
|
||||||
initFormData();
|
initFormData();
|
||||||
});
|
});
|
||||||
//渲染流程表单数据
|
//渲染流程表单数据
|
||||||
const queryByIdUrl = '/dqinspecttask/dqInspectTask/queryById';
|
const queryByIdUrl = '/dqinspecttask/dqInspectTask/queryById';
|
||||||
async function initFormData(){
|
async function initFormData() {
|
||||||
if(props.formBpm === true){
|
if (props.formBpm === true) {
|
||||||
let params = {id: props.formData.dataId};
|
let params = { id: props.formData.dataId };
|
||||||
const row = await defHttp.get({url: queryByIdUrl, params});
|
const row = await defHttp.get({ url: queryByIdUrl, params });
|
||||||
//设置表单的值
|
//设置表单的值
|
||||||
Object.keys(row).map(k => {
|
Object.keys(row).map((k) => {
|
||||||
formData[k] = row[k];
|
formData[k] = row[k];
|
||||||
});
|
});
|
||||||
//子表数据
|
//子表数据
|
||||||
@@ -234,15 +287,23 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 是否显示提交按钮
|
// 是否显示提交按钮
|
||||||
const showFlowSubmitButton = computed(()=>{
|
const showFlowSubmitButton = computed(() => {
|
||||||
if(props.formBpm === true){
|
if (props.formBpm === true) {
|
||||||
if(props.formData.disabled === false){
|
if (props.formData.disabled === false) {
|
||||||
return true
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const measureResDeptId = computed(() => {
|
||||||
|
const val = formData.measureResDept;
|
||||||
|
if (!val) return '';
|
||||||
|
return String(val).split(',')[0];
|
||||||
|
});
|
||||||
|
|
||||||
|
const measureResLeaderDisabled = computed(() => !measureResDeptId.value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 整改任务只能选择具体问题,分类和面上问题由后端置灰用于分组展示。
|
* 整改任务只能选择具体问题,分类和面上问题由后端置灰用于分组展示。
|
||||||
*/
|
*/
|
||||||
@@ -276,16 +337,16 @@
|
|||||||
resetFields();
|
resetFields();
|
||||||
const tmpData = {};
|
const tmpData = {};
|
||||||
Object.keys(formData).forEach((key) => {
|
Object.keys(formData).forEach((key) => {
|
||||||
if(row.hasOwnProperty(key)){
|
if (row.hasOwnProperty(key)) {
|
||||||
tmpData[key] = row[key]
|
tmpData[key] = row[key];
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
//赋值
|
//赋值
|
||||||
Object.assign(formData,tmpData);
|
Object.assign(formData, tmpData);
|
||||||
}
|
}
|
||||||
|
|
||||||
const {getSubFormAndTableData, transformData} = useValidateAntFormAndTable(activeKey, {
|
const { getSubFormAndTableData, transformData } = useValidateAntFormAndTable(activeKey, {
|
||||||
'dqInspectProgress': dqInspectProgressTableRef,
|
dqInspectProgress: dqInspectProgressTableRef,
|
||||||
});
|
});
|
||||||
|
|
||||||
async function getFormData() {
|
async function getFormData() {
|
||||||
@@ -301,7 +362,7 @@
|
|||||||
}
|
}
|
||||||
return Promise.reject(errorFields);
|
return Promise.reject(errorFields);
|
||||||
}
|
}
|
||||||
return transformData(toRaw(formData))
|
return transformData(toRaw(formData));
|
||||||
}
|
}
|
||||||
|
|
||||||
async function submitForm() {
|
async function submitForm() {
|
||||||
@@ -320,16 +381,16 @@
|
|||||||
} catch {}
|
} catch {}
|
||||||
}
|
}
|
||||||
const values = Object.assign({}, dbData, mainData, subData);
|
const values = Object.assign({}, dbData, mainData, subData);
|
||||||
console.log('表单提交数据', values)
|
console.log('表单提交数据', values);
|
||||||
const isUpdate = values.id ? true : false
|
const isUpdate = values.id ? true : false;
|
||||||
await saveOrUpdate(values, isUpdate);
|
await saveOrUpdate(values, isUpdate);
|
||||||
//关闭弹窗
|
//关闭弹窗
|
||||||
emit('success');
|
emit('success');
|
||||||
}
|
}
|
||||||
|
|
||||||
function setFieldsValue(values) {
|
function setFieldsValue(values) {
|
||||||
if(values){
|
if (values) {
|
||||||
Object.keys(values).map(k=>{
|
Object.keys(values).map((k) => {
|
||||||
formData[k] = values[k];
|
formData[k] = values[k];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -344,7 +405,6 @@
|
|||||||
formData[key] = value;
|
formData[key] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
dqInspectProgressTableRef,
|
dqInspectProgressTableRef,
|
||||||
dqInspectProgressTable,
|
dqInspectProgressTable,
|
||||||
@@ -361,13 +421,19 @@
|
|||||||
wrapperCol,
|
wrapperCol,
|
||||||
disabled,
|
disabled,
|
||||||
showFlowSubmitButton,
|
showFlowSubmitButton,
|
||||||
|
CHARGE_LEADER_DEPT_ID,
|
||||||
|
CHARGE_LEADER_ROLE_ID,
|
||||||
|
PARTY_MASSES_DEPT_ID,
|
||||||
|
MEASURE_RES_LEADER_ROLE_ID,
|
||||||
|
measureResDeptId,
|
||||||
|
measureResLeaderDisabled,
|
||||||
getFormData,
|
getFormData,
|
||||||
submitForm,
|
submitForm,
|
||||||
add,
|
add,
|
||||||
edit,
|
edit,
|
||||||
formRef,
|
formRef,
|
||||||
}
|
};
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|||||||
Reference in New Issue
Block a user