!31 fix(xispeak): 修复流程发起后下拉菜单显示状态不正确
* fix(xispeak): 修复流程发起后下拉菜单显示状态不正确 * refactor(xispeak): 抽取督办领导选择为DeptRoleSelectUser组件 * fix(xispeak): 修复BPM表单输入被刷掉和新增表单带入旧数据 * docs(xispeak): 更新BPM节点权限配置
This commit is contained in:
@@ -61,6 +61,10 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
|
|||||||
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1
|
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### 节点:<反馈流程部门负责人反馈>
|
||||||
|
Task_133caii
|
||||||
|
bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&showDeptFeedback=1
|
||||||
|
|
||||||
### 节点: <所党委审批>
|
### 节点: <所党委审批>
|
||||||
* taskDefKey: `<Task_15sm4w5>`
|
* taskDefKey: `<Task_15sm4w5>`
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
|
|||||||
## 习讲话经办人反馈流程
|
## 习讲话经办人反馈流程
|
||||||
|
|
||||||
### 节点: <纪检负责人审批>
|
### 节点: <纪检负责人审批>
|
||||||
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1
|
* taskDefKey: `<Task_005iiwi>`
|
||||||
|
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1
|
||||||
---
|
---
|
||||||
|
|
||||||
### 节点: <部门负责人审批>
|
### 节点: <部门负责人审批>
|
||||||
|
|||||||
@@ -529,6 +529,12 @@
|
|||||||
onClick: handleProcessJbr.bind(null, record),
|
onClick: handleProcessJbr.bind(null, record),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (record.bpmStatus == '3') {
|
||||||
|
dropDownAction.push({
|
||||||
|
label: '发起经办人执行反馈流程',
|
||||||
|
onClick: handleProcessJbr.bind(null, record),
|
||||||
|
});
|
||||||
|
}
|
||||||
if (record.bpmStatus == '2') {
|
if (record.bpmStatus == '2') {
|
||||||
dropDownAction.push({
|
dropDownAction.push({
|
||||||
label: '再次发起经办人执行反馈流程',
|
label: '再次发起经办人执行反馈流程',
|
||||||
@@ -711,7 +717,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
await startProcessSchedules(params);
|
await startProcessSchedules(params);
|
||||||
await saveOrUpdateDict({ id: record.id, bpmStatus: '2', supervisionCount: nextSuperviseCount, completionStatus: 0 }, true);
|
await saveOrUpdateDict({ id: record.id, bpmStatus: '3', supervisionCount: nextSuperviseCount, completionStatus: 0 }, true);
|
||||||
createMessage.success('发起成功');
|
createMessage.success('发起成功');
|
||||||
reload();
|
reload();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,26 +141,11 @@
|
|||||||
</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">
|
||||||
<a-input
|
<DeptRoleSelectUser
|
||||||
v-model:value="sdwLeaderNames"
|
v-model:value="mainForm.sdwLeaderList"
|
||||||
placeholder="请选择督导领导"
|
deptId="2044677562460508161"
|
||||||
|
roleId="2044676455280570370"
|
||||||
:disabled="mainDisabled"
|
:disabled="mainDisabled"
|
||||||
readonly
|
|
||||||
allow-clear
|
|
||||||
@click="openSdwLeaderModal"
|
|
||||||
@clear="handleClearSdwLeader"
|
|
||||||
>
|
|
||||||
<template #suffix>
|
|
||||||
<SearchOutlined @click="openSdwLeaderModal" />
|
|
||||||
</template>
|
|
||||||
</a-input>
|
|
||||||
<SzUserSelectByDeptRoleSecurityModal
|
|
||||||
v-model:open="sdwLeaderModalOpen"
|
|
||||||
title="请选择所党委领导"
|
|
||||||
:deptId="sdwLeaderDeptId"
|
|
||||||
:roleId="sdwLeaderRoleId"
|
|
||||||
:securityValue="sdwLeaderSecurityValue"
|
|
||||||
@confirm="handleSdwLeaderConfirm"
|
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -288,7 +273,7 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, onMounted, reactive, ref, watch } from 'vue';
|
import { computed, onMounted, reactive, ref, watch } from 'vue';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
import { getUserList } from '/@/api/common/api';
|
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
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';
|
||||||
@@ -307,8 +292,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 SzUserSelectByDeptRoleSecurityModal from '/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue';
|
import DeptRoleSelectUser from './DeptRoleSelectUser.vue';
|
||||||
import { SearchOutlined } from '@ant-design/icons-vue';
|
|
||||||
|
|
||||||
const { isDisabledAuth, hasPermission, initBpmFormData } = usePermission();
|
const { isDisabledAuth, hasPermission, initBpmFormData } = usePermission();
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
@@ -345,42 +329,6 @@
|
|||||||
const subApproveUser = ref('');
|
const subApproveUser = ref('');
|
||||||
const isEnd = ref(0);
|
const isEnd = ref(0);
|
||||||
|
|
||||||
// 督导领导选人弹窗
|
|
||||||
const sdwLeaderModalOpen = ref(false);
|
|
||||||
const sdwLeaderNames = ref('');
|
|
||||||
const sdwLeaderDeptId = ref('2044677562460508161');
|
|
||||||
const sdwLeaderRoleId = ref('2044676455280570370');
|
|
||||||
const sdwLeaderSecurityValue = ref(5);
|
|
||||||
|
|
||||||
function openSdwLeaderModal() {
|
|
||||||
sdwLeaderModalOpen.value = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleClearSdwLeader() {
|
|
||||||
mainForm.sdwLeaderList = '';
|
|
||||||
sdwLeaderNames.value = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleSdwLeaderConfirm(rows: Array<{ id: string; realname: string }>) {
|
|
||||||
if (rows && rows.length > 0) {
|
|
||||||
mainForm.sdwLeaderList = rows.map((r) => r.username).join(',');
|
|
||||||
sdwLeaderNames.value = rows.map((r) => r.realname).join(',');
|
|
||||||
} else {
|
|
||||||
mainForm.sdwLeaderList = '';
|
|
||||||
sdwLeaderNames.value = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function resolveSdwLeaderNames(ids: string) {
|
|
||||||
try {
|
|
||||||
const res = await getUserList({ username: ids, pageSize: 999 });
|
|
||||||
const records = res?.records || res?.result?.records || [];
|
|
||||||
sdwLeaderNames.value = records.map((u: any) => u.realname).join(',');
|
|
||||||
} catch {
|
|
||||||
sdwLeaderNames.value = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const mainForm = reactive<Record<string, any>>({
|
const mainForm = reactive<Record<string, any>>({
|
||||||
id: '',
|
id: '',
|
||||||
pid: '',
|
pid: '',
|
||||||
@@ -497,7 +445,16 @@
|
|||||||
initFormData();
|
initFormData();
|
||||||
});
|
});
|
||||||
|
|
||||||
watch([() => props.formData?.dataId, () => processInfo.value.processInstanceId], () => initFormData());
|
watch(
|
||||||
|
() => props.formData?.dataId,
|
||||||
|
() => initFormData()
|
||||||
|
);
|
||||||
|
watch(
|
||||||
|
() => processInfo.value.processInstanceId,
|
||||||
|
(newVal) => {
|
||||||
|
if (newVal) loadFeedbackList();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
watch(showDeptFeedback, () => {
|
watch(showDeptFeedback, () => {
|
||||||
loadFeedbackList();
|
loadFeedbackList();
|
||||||
@@ -531,10 +488,6 @@
|
|||||||
Object.keys(mainForm).forEach((key) => {
|
Object.keys(mainForm).forEach((key) => {
|
||||||
mainForm[key] = record[key] ?? '';
|
mainForm[key] = record[key] ?? '';
|
||||||
});
|
});
|
||||||
sdwLeaderNames.value = record.sdwLeaderList_dictText || '';
|
|
||||||
if (!sdwLeaderNames.value && mainForm.sdwLeaderList) {
|
|
||||||
resolveSdwLeaderNames(mainForm.sdwLeaderList);
|
|
||||||
}
|
|
||||||
// 从 approveInfo JSON 初始化当前部门的 isEnd 和 subApproveUser
|
// 从 approveInfo JSON 初始化当前部门的 isEnd 和 subApproveUser
|
||||||
const approveInfo = record.approveInfo;
|
const approveInfo = record.approveInfo;
|
||||||
const deptId = getCurrentUserDeptId();
|
const deptId = getCurrentUserDeptId();
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
</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.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">
|
<a-radio-group v-model:value="formData.needSdwApproval">
|
||||||
<a-radio :value="1">是</a-radio>
|
<a-radio :value="1">是</a-radio>
|
||||||
<a-radio :value="0">否</a-radio>
|
<a-radio :value="0">否</a-radio>
|
||||||
@@ -67,26 +67,11 @@
|
|||||||
</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">
|
||||||
<a-input
|
<DeptRoleSelectUser
|
||||||
v-model:value="sdwLeaderNames"
|
v-model:value="formData.sdwLeaderList"
|
||||||
placeholder="请选择督办领导"
|
deptId="2044677562460508161"
|
||||||
readonly
|
roleId="2044676455280570370"
|
||||||
allow-clear
|
|
||||||
@click="openSdwLeaderModal"
|
|
||||||
@clear="handleClearSdwLeader"
|
|
||||||
>
|
|
||||||
<template #suffix>
|
|
||||||
<SearchOutlined @click="openSdwLeaderModal" />
|
|
||||||
</template>
|
|
||||||
</a-input>
|
|
||||||
<SzUserSelectByDeptRoleSecurityModal
|
|
||||||
v-model:open="sdwLeaderModalOpen"
|
|
||||||
title="请选择所党委领导"
|
|
||||||
:deptId="sdwLeaderDeptId"
|
|
||||||
:roleId="sdwLeaderRoleId"
|
|
||||||
:securityValue="sdwLeaderSecurityValue"
|
|
||||||
@confirm="handleSdwLeaderConfirm"
|
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -144,9 +129,7 @@
|
|||||||
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue';
|
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.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 SzUserSelectByDeptRoleSecurityModal from '/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue';
|
import DeptRoleSelectUser from './DeptRoleSelectUser.vue';
|
||||||
import { SearchOutlined } from '@ant-design/icons-vue';
|
|
||||||
import { getUserList } from '/@/api/common/api';
|
|
||||||
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';
|
||||||
@@ -161,77 +144,45 @@
|
|||||||
const emit = defineEmits(['register', 'ok']);
|
const emit = defineEmits(['register', 'ok']);
|
||||||
let model: Nullable<Recordable> = null;
|
let model: Nullable<Recordable> = null;
|
||||||
|
|
||||||
const formData = reactive<Record<string, any>>({
|
function getDefaultFormData(): Record<string, any> {
|
||||||
id: '',
|
return {
|
||||||
pid: '',
|
id: '',
|
||||||
speakStatus: '',
|
pid: '',
|
||||||
time: '',
|
speakStatus: '',
|
||||||
elmComment: '经单位主要负责同时签批同意,由xx部做好贯彻落实',
|
time: '',
|
||||||
status: 'x月x日召开xxxx年第x次党委会议',
|
elmComment: '经单位主要负责同时签批同意,由xx部做好贯彻落实',
|
||||||
secretLevel: '',
|
status: 'x月x日召开xxxx年第x次党委会议',
|
||||||
responsiblePerson: '',
|
secretLevel: '',
|
||||||
needSdwApproval: 0,
|
responsiblePerson: '',
|
||||||
sdwLeaderList: '',
|
needSdwApproval: 0,
|
||||||
implPlan: '',
|
sdwLeaderList: '',
|
||||||
implMeasures: '',
|
implPlan: '',
|
||||||
numberOfResolutions: undefined,
|
implMeasures: '',
|
||||||
implStatus: '',
|
numberOfResolutions: undefined,
|
||||||
implCount: undefined,
|
implStatus: '',
|
||||||
closedCount: undefined,
|
implCount: undefined,
|
||||||
reportFeedbackStatus: '',
|
closedCount: undefined,
|
||||||
isCompletionRisk: undefined,
|
reportFeedbackStatus: '',
|
||||||
delayRiskMitigation: '',
|
isCompletionRisk: undefined,
|
||||||
completionStatus: undefined,
|
delayRiskMitigation: '',
|
||||||
deadline: '',
|
completionStatus: undefined,
|
||||||
implDept: '',
|
deadline: '',
|
||||||
treeDepth: undefined,
|
implDept: '',
|
||||||
sortOrder: undefined,
|
treeDepth: undefined,
|
||||||
delFlag: undefined,
|
sortOrder: undefined,
|
||||||
bpmStatus: undefined,
|
delFlag: undefined,
|
||||||
supervisionCount: undefined,
|
bpmStatus: undefined,
|
||||||
});
|
supervisionCount: undefined,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const formData = reactive<Record<string, any>>(getDefaultFormData());
|
||||||
|
|
||||||
const { createMessage } = useMessage();
|
const { createMessage } = useMessage();
|
||||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 6 } });
|
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 6 } });
|
||||||
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 18 } });
|
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 18 } });
|
||||||
const confirmLoading = ref<boolean>(false);
|
const confirmLoading = ref<boolean>(false);
|
||||||
|
|
||||||
// 督办领导选人弹窗
|
|
||||||
const sdwLeaderModalOpen = ref(false);
|
|
||||||
const sdwLeaderNames = ref('');
|
|
||||||
const sdwLeaderDeptId = ref('2044677562460508161');
|
|
||||||
const sdwLeaderRoleId = ref('2044676455280570370');
|
|
||||||
const sdwLeaderSecurityValue = ref(5);
|
|
||||||
|
|
||||||
function openSdwLeaderModal() {
|
|
||||||
sdwLeaderModalOpen.value = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleClearSdwLeader() {
|
|
||||||
formData.sdwLeaderList = '';
|
|
||||||
sdwLeaderNames.value = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleSdwLeaderConfirm(rows: Array<{ id: string; realname: string }>) {
|
|
||||||
if (rows && rows.length > 0) {
|
|
||||||
formData.sdwLeaderList = rows.map((r) => r.username).join(',');
|
|
||||||
sdwLeaderNames.value = rows.map((r) => r.realname).join(',');
|
|
||||||
} else {
|
|
||||||
formData.sdwLeaderList = '';
|
|
||||||
sdwLeaderNames.value = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function resolveSdwLeaderNames(ids: string) {
|
|
||||||
try {
|
|
||||||
const res = await getUserList({ username: ids, pageSize: 999 });
|
|
||||||
const records = res?.records || res?.result?.records || [];
|
|
||||||
sdwLeaderNames.value = records.map((u: any) => u.realname).join(',');
|
|
||||||
} catch {
|
|
||||||
sdwLeaderNames.value = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const validatorRules = reactive({
|
const validatorRules = reactive({
|
||||||
speakStatus: [{ required: true, message: '请输入重要讲话指示批示情况' }],
|
speakStatus: [{ required: true, message: '请输入重要讲话指示批示情况' }],
|
||||||
time: [{ required: true, message: '请选择时间' }],
|
time: [{ required: true, message: '请选择时间' }],
|
||||||
@@ -289,13 +240,23 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function edit(record) {
|
function edit(record) {
|
||||||
|
// 新增:同步重置,不带入任何旧数据
|
||||||
|
if (!record.id) {
|
||||||
|
const defaults = getDefaultFormData();
|
||||||
|
for (const key of Object.keys(formData)) {
|
||||||
|
formData[key] = defaults[key];
|
||||||
|
}
|
||||||
|
model = {};
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 编辑/详情
|
||||||
nextTick(async () => {
|
nextTick(async () => {
|
||||||
resetFields();
|
resetFields();
|
||||||
expandedRowKeys.value = [];
|
expandedRowKeys.value = [];
|
||||||
|
|
||||||
// 非BPM模式且有ID时,从API查询完整数据,避免列表行数据不完整导致字段不显示
|
|
||||||
let data = record;
|
let data = record;
|
||||||
if (record.id && !props.formBpm) {
|
if (!props.formBpm) {
|
||||||
try {
|
try {
|
||||||
const res = await defHttp.get({ url: queryByIdUrl, params: { id: record.id } });
|
const res = await defHttp.get({ url: queryByIdUrl, params: { id: record.id } });
|
||||||
data = res || record;
|
data = res || record;
|
||||||
@@ -312,10 +273,6 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
Object.assign(formData, tmpData);
|
Object.assign(formData, tmpData);
|
||||||
sdwLeaderNames.value = data.sdwLeaderList_dictText || '';
|
|
||||||
if (!sdwLeaderNames.value && formData.sdwLeaderList) {
|
|
||||||
resolveSdwLeaderNames(formData.sdwLeaderList);
|
|
||||||
}
|
|
||||||
model = { ...tmpData };
|
model = { ...tmpData };
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<j-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
|
<j-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
|
||||||
<BgXiSpeakForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></BgXiSpeakForm>
|
<BgXiSpeakForm ref="registerForm" :key="formKey" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></BgXiSpeakForm>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<a-button @click="handleCancel">取消</a-button>
|
<a-button @click="handleCancel">取消</a-button>
|
||||||
<a-button :class="{ 'jee-hidden': disableSubmit }" type="primary" @click="handleOk">确认</a-button>
|
<a-button :class="{ 'jee-hidden': disableSubmit }" type="primary" @click="handleOk">确认</a-button>
|
||||||
@@ -20,24 +20,27 @@
|
|||||||
const visible = ref<boolean>(false);
|
const visible = ref<boolean>(false);
|
||||||
const disableSubmit = ref<boolean>(false);
|
const disableSubmit = ref<boolean>(false);
|
||||||
const registerForm = ref();
|
const registerForm = ref();
|
||||||
|
const formKey = ref(0);
|
||||||
const emit = defineEmits(['register', 'success']);
|
const emit = defineEmits(['register', 'success']);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增
|
* 新增
|
||||||
*/
|
*/
|
||||||
function add(obj={}) {
|
function add(obj={}) {
|
||||||
|
formKey.value++;
|
||||||
title.value = '新增';
|
title.value = '新增';
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
registerForm.value.add(obj);
|
registerForm.value.add(obj);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑
|
* 编辑
|
||||||
* @param record
|
* @param record
|
||||||
*/
|
*/
|
||||||
function edit(record) {
|
function edit(record) {
|
||||||
|
formKey.value++;
|
||||||
title.value = disableSubmit.value ? '详情' : '编辑';
|
title.value = disableSubmit.value ? '详情' : '编辑';
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<template>
|
||||||
|
<a-radio-group v-model:value="modelValue" :disabled="disabled">
|
||||||
|
<a-radio v-for="user in userList" :key="user.username" :value="user.username">
|
||||||
|
{{ user.realname }}
|
||||||
|
</a-radio>
|
||||||
|
</a-radio-group>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, onMounted } from 'vue';
|
||||||
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
|
||||||
|
const props = defineProps<{
|
||||||
|
deptId: string;
|
||||||
|
roleId: string;
|
||||||
|
disabled?: boolean;
|
||||||
|
}>();
|
||||||
|
|
||||||
|
const modelValue = defineModel<string>('value', { default: '' });
|
||||||
|
|
||||||
|
const userList = ref<Array<{ username: string; realname: string }>>([]);
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
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 = [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user