hgwms-2098 fix 租户管理弹窗修改

hwork-master
A0066811 2025-11-07 14:55:26 +08:00
parent f907724c24
commit 126586f663
4 changed files with 110 additions and 94 deletions

View File

@ -11,19 +11,25 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
<a-form-item label="备注" name="describe">
<a-textarea v-model:value="formState.describe" />
</a-form-item>
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="24">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="describe">
<a-textarea v-model:value="formState.describe" />
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
</template>
<script>
import { message } from '@hwork/ant-design-vue';
import { message } from "@hwork/ant-design-vue";
import { edit } from "@/api/module/tenant";
import { defineComponent, reactive, ref, toRaw, watch } from "vue";
@ -35,25 +41,26 @@ export default defineComponent({
},
record: {
type: Object,
}
},
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
let formState = reactive({});
const formRules = {
name: [{ required: true, message: "请输入租户名称", trigger: "blur" }],
describe: [{ required: true, message: "请输入租户描述", trigger: "blur" }],
describe: [
{ required: true, message: "请输入租户描述", trigger: "blur" },
],
};
watch(props,(props) => {
formState.id = props.record.id
formState.name = props.record.name
formState.describe = props.record.describe
})
watch(props, (props) => {
formState.id = props.record.id;
formState.name = props.record.name;
formState.describe = props.record.describe;
});
const submit = (e) => {
message.loading({
@ -65,21 +72,25 @@ export default defineComponent({
.then(() => {
edit(toRaw(formState)).then((response) => {
if (response.success) {
message.success({
content: "保存成功",
key,
duration: 1,
}).then(()=>{
cancel();
});
message
.success({
content: "保存成功",
key,
duration: 1,
})
.then(() => {
cancel();
});
} else {
message.error({
content: "保存失败",
key,
duration: 1,
}).then(()=>{
cancel();
});
message
.error({
content: "保存失败",
key,
duration: 1,
})
.then(() => {
cancel();
});
}
});
})
@ -99,10 +110,10 @@ export default defineComponent({
formRef,
formState,
formRules,
labelCol: { span: 6 },
wrapperCol: { span: 18 },
};
},
});
</script>
</script>

View File

@ -1,21 +1,19 @@
<template>
<a-modal
:open="visible"
title="权限配置"
cancelText="取消"
okText="保存"
@ok="submit"
@cancel="cancel"
>
<a-tree
checkable
checkStrictly
show-line="true"
:tree-data="state.powers"
:replace-fields="state.powerReplaceFields"
v-model:checkedKeys="state.checkedPowerIds"
/>
</a-modal>
<a-drawer :open="visible" title="权限配置">
<a-tree
style="padding: 0 6px"
checkable
checkStrictly
show-line="true"
:tree-data="state.powers"
:replace-fields="state.powerReplaceFields"
v-model:checkedKeys="state.checkedPowerIds"
/>
<template #footer>
<a-button @click="cancel"></a-button>
<a-button type="primary" @click="submit"></a-button>
</template>
</a-drawer>
</template>
<script>
import { message } from "@hwork/ant-design-vue";
@ -33,10 +31,9 @@ export default defineComponent({
},
emit: ["close"],
setup(props, context) {
const state = reactive({
powers: [],
checkedPowerIds: {checked:[]},
checkedPowerIds: { checked: [] },
powerReplaceFields: { key: "id" },
});
@ -59,21 +56,22 @@ export default defineComponent({
loadPower();
const submit = (e) => {
give({
give({
tenantId: props.record.id,
powerIds: state.checkedPowerIds.checked?state.checkedPowerIds.checked:state.checkedPowerIds}).then(
(response) => {
if (response.success) {
message.success({ content: "保存成功", duration: 1 }).then(() => {
cancel();
});
} else {
message.error({ content: "保存失败", duration: 1 }).then(() => {
cancel();
});
}
powerIds: state.checkedPowerIds.checked
? state.checkedPowerIds.checked
: state.checkedPowerIds,
}).then((response) => {
if (response.success) {
message.success({ content: "保存成功", duration: 1 }).then(() => {
cancel();
});
} else {
message.error({ content: "保存失败", duration: 1 }).then(() => {
cancel();
});
}
);
});
};
const cancel = (e) => {
@ -87,4 +85,4 @@ export default defineComponent({
};
},
});
</script>
</script>

View File

@ -11,14 +11,20 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
<a-form-item label="备注" name="describe">
<a-textarea v-model:value="formState.describe" />
</a-form-item>
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="24">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="describe">
<a-textarea v-model:value="formState.describe" />
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
</template>
@ -33,25 +39,26 @@ export default defineComponent({
},
record: {
type: Object,
}
},
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
let formState = reactive({});
const formRules = {
name: [{ required: true, message: "请输入租户名称", trigger: "blur" }],
describe: [{ required: true, message: "请输入租户描述", trigger: "blur" }],
describe: [
{ required: true, message: "请输入租户描述", trigger: "blur" },
],
};
watch(props,(props) => {
formState.id = props.record.id
formState.name = props.record.name
formState.describe = props.record.describe
})
watch(props, (props) => {
formState.id = props.record.id;
formState.name = props.record.name;
formState.describe = props.record.describe;
});
const submit = (e) => {
formRef.value.resetFields();
@ -69,10 +76,10 @@ export default defineComponent({
formRef,
formState,
formRules,
labelCol: { span: 6 },
wrapperCol: { span: 18 },
};
},
});
</script>
</script>

View File

@ -1,18 +1,14 @@
<template>
<a-modal
<a-drawer
:open="visible"
title="新增租户"
cancelText="取消"
okText="提交"
@ok="submit"
@cancel="cancel"
>
<a-form
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="vertical"
style="padding: 0 6px"
>
<a-tabs v-model:activeKey="state.active">
<a-tab-pane key="0" tab="租户信息">
@ -43,7 +39,11 @@
</a-tab-pane>
</a-tabs>
</a-form>
</a-modal>
<template #footer>
<a-button @click="cancel"></a-button>
<a-button type="primary" @click="submit"></a-button>
</template>
</a-drawer>
</template>
<script>
import { message } from "@hwork/ant-design-vue";