Compare commits

...

6 Commits

Author SHA1 Message Date
A0066811 126586f663 hgwms-2098 fix 租户管理弹窗修改 2025-11-07 14:55:26 +08:00
A0066811 f907724c24 hgwms-2098 fix 角色管理弹窗修改 2025-11-07 14:48:53 +08:00
A0066811 84633099a9 hgwms-2098 fix 用户管理弹窗修改 2025-11-07 14:40:27 +08:00
A0066811 dda045dde0 hgwms-2098 fix 部门管理弹窗修改 2025-11-07 14:32:00 +08:00
A0066811 82a5263854 hgwms-2098 fix 岗位管理弹窗修改 2025-11-07 14:26:24 +08:00
A0066811 d7c8e2758b hgwms-2098 fix 策略参数弹窗修改 2025-11-07 14:21:38 +08:00
22 changed files with 1683 additions and 1367 deletions

View File

@ -1,20 +1,52 @@
<template>
<a-modal :open="visible" title="新增配置信息" cancelText="取消" okText="提交" @ok="submit" @cancel="cancel">
<a-form ref="formRef" :model="formState" :rules="formRules" v-bind="formItemLayoutWithOutLabel"
:label-col="labelCol" :wrapper-col="wrapperCol">
<a-modal
:open="visible"
title="新增配置信息"
cancelText="取消"
okText="提交"
@ok="submit"
@cancel="cancel"
>
<a-form
ref="formRef"
:model="formState"
:rules="formRules"
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="24">
<a-form-item ref="name" label="描述" name="name">
<a-textarea v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item ref="code" label="编号" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
<a-form-item ref="collectionType" label="集合类型" name="collectionType">
<a-select v-model:value="formState.collectionType" :options="configCollectionType"
@change="configCollectionTypeChanged" />
</a-col>
<a-col :span="24">
<a-form-item
ref="collectionType"
label="集合类型"
name="collectionType"
>
<a-select
v-model:value="formState.collectionType"
:options="configCollectionType"
@change="configCollectionTypeChanged"
/>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item ref="valueType" label="值类型" name="valueType">
<a-select v-model:value="formState.valueType" :options="configValueType" @change="valueTypeChanged" />
<a-select
v-model:value="formState.valueType"
:options="configValueType"
@change="valueTypeChanged"
/>
</a-form-item>
</a-col>
<template v-if="formState.collectionType === 'Single'">
<p>Single</p>
<!-- 单值-Interage代表 数字框-->
@ -51,13 +83,18 @@
<!-- 单值-日期代表 时间选择器-->
<template v-if="formState.valueType === 'INT'">
<p>INT</p>
<a-form-item v-for="(domain, index) in formState.domains" :key="domain.key"
v-bind="index === 0 ? formItemLayout : {}" :label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']" :rules="{
<a-form-item
v-for="(domain, index) in formState.domains"
:key="domain.key"
v-bind="index === 0 ? formItemLayout : {}"
:label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']"
:rules="{
required: true,
message: 'domain can not be null',
trigger: 'change',
}">
}"
>
<a-row>
<a-col :span="6">
<a-input v-model:value="domain.name" placeholder="name" />
@ -82,13 +119,18 @@
<template v-else-if="formState.valueType === 'BOOLEAN'">
<p>BOOLEAN</p>
<!-- <p>BOOLEAN {{formState.valueType}}</p> -->
<a-form-item v-for="(domain, index) in formState.domains" :key="domain.key"
v-bind="index === 0 ? formItemLayout : {}" :label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']" :rules="{
<a-form-item
v-for="(domain, index) in formState.domains"
:key="domain.key"
v-bind="index === 0 ? formItemLayout : {}"
:label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']"
:rules="{
required: true,
message: 'domain can not be null',
trigger: 'change',
}">
}"
>
<a-row>
<a-col :span="8">
<a-input v-model:value="domain.name" placeholder="name" />
@ -112,13 +154,18 @@
</template>
<template v-else-if="formState.valueType === 'DATE'">
<p>DATE</p>
<a-form-item v-for="(domain, index) in formState.domains" :key="domain.key"
v-bind="index === 0 ? formItemLayout : {}" :label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']" :rules="{
<a-form-item
v-for="(domain, index) in formState.domains"
:key="domain.key"
v-bind="index === 0 ? formItemLayout : {}"
:label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']"
:rules="{
required: true,
message: 'domain can not be null',
trigger: 'change',
}">
}"
>
<a-row>
<a-col :span="8">
<a-input v-model:value="domain.name" placeholder="name" />
@ -142,13 +189,18 @@
</template>
<template v-else>
<p>STRING</p>
<a-form-item v-for="(domain, index) in formState.domains" :key="domain.key"
v-bind="index === 0 ? formItemLayout : {}" :label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']" :rules="{
<a-form-item
v-for="(domain, index) in formState.domains"
:key="domain.key"
v-bind="index === 0 ? formItemLayout : {}"
:label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']"
:rules="{
required: true,
message: 'domain can not be null',
trigger: 'change',
}">
}"
>
<a-row>
<a-col :span="8">
<a-input v-model:value="domain.name" placeholder="name" />
@ -179,13 +231,18 @@
<!-- 单值-日期代表 时间选择器-->
<template v-if="formState.valueType === 'STRING'">
<p>STRING</p>
<a-form-item v-for="(domain, index) in formState.domains" :key="domain.key"
v-bind="index === 0 ? formItemLayout : {}" :label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']" :rules="{
<a-form-item
v-for="(domain, index) in formState.domains"
:key="domain.key"
v-bind="index === 0 ? formItemLayout : {}"
:label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']"
:rules="{
required: true,
message: 'domain can not be null',
trigger: 'change',
}">
}"
>
<a-row>
<a-col :span="8">
<a-input v-model:value="domain.name" placeholder="name" />
@ -209,13 +266,18 @@
</template>
<template v-else-if="formState.valueType === 'INT'">
<p>INT</p>
<a-form-item v-for="(domain, index) in formState.domains" :key="domain.key"
v-bind="index === 0 ? formItemLayout : {}" :label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']" :rules="{
<a-form-item
v-for="(domain, index) in formState.domains"
:key="domain.key"
v-bind="index === 0 ? formItemLayout : {}"
:label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']"
:rules="{
required: true,
message: 'domain can not be null',
trigger: 'change',
}">
}"
>
<a-row>
<a-col :span="8">
<a-input v-model:value="domain.name" placeholder="name" />
@ -240,13 +302,18 @@
<template v-else-if="formState.valueType === 'BOOLEAN'">
<p>BOOLEAN</p>
<a-form-item v-for="(domain, index) in formState.domains" :key="domain.key"
v-bind="index === 0 ? formItemLayout : {}" :label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']" :rules="{
<a-form-item
v-for="(domain, index) in formState.domains"
:key="domain.key"
v-bind="index === 0 ? formItemLayout : {}"
:label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']"
:rules="{
required: true,
message: 'domain can not be null',
trigger: 'change',
}">
}"
>
<a-row>
<a-col :span="8">
<a-input v-model:value="domain.name" placeholder="name" />
@ -270,13 +337,18 @@
</template>
<template v-else-if="formState.valueType === 'DATE'">
<p>DATE</p>
<a-form-item v-for="(domain, index) in formState.domains" :key="domain.key"
v-bind="index === 0 ? formItemLayout : {}" :label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']" :rules="{
<a-form-item
v-for="(domain, index) in formState.domains"
:key="domain.key"
v-bind="index === 0 ? formItemLayout : {}"
:label="index === 0 ? 'Domains' : 'Domains'"
:name="['domains', index, 'value']"
:rules="{
required: true,
message: 'domain can not be null',
trigger: 'change',
}">
}"
>
<a-row>
<a-col :span="8">
<a-input v-model:value="domain.name" placeholder="name" />
@ -298,7 +370,6 @@
</a-row>
</a-form-item>
</template>
</template>
<template v-else>
<!-- 单值-Interage代表 数字框-->
@ -336,33 +407,23 @@
</a-row>
</a-form-item> -->
<!-- <a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item> -->
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
</template>
<script>
import {
message
} from '@hwork/ant-design-vue';
import {
addConfig
} from "@/api/module/config";
import {
defineComponent,
reactive,
ref,
toRaw
} from "vue";
import {
MinusCircleOutlined,
PlusOutlined
} from '@ant-design/icons-vue';
import { message } from "@hwork/ant-design-vue";
import { addConfig } from "@/api/module/config";
import { defineComponent, reactive, ref, toRaw } from "vue";
import { MinusCircleOutlined, PlusOutlined } from "@ant-design/icons-vue";
export default defineComponent({
props: {
@ -372,7 +433,6 @@
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const formState = reactive({
@ -382,26 +442,34 @@
});
const formRules = {
name: [{
name: [
{
required: true,
message: '请输入名称',
trigger: 'blur'
}, ],
code: [{
message: "请输入名称",
trigger: "blur",
},
],
code: [
{
required: true,
message: '请输入键',
trigger: 'blur'
}, ],
valueType: [{
message: "请输入键",
trigger: "blur",
},
],
valueType: [
{
required: true,
message: '请选择值类型',
trigger: 'blur'
}, ],
collectionType: [{
message: "请选择值类型",
trigger: "blur",
},
],
collectionType: [
{
required: true,
message: '请选择集合类型',
trigger: 'blur'
}, ]
message: "请选择集合类型",
trigger: "blur",
},
],
};
const formItemLayout = {
labelCol: {
@ -434,7 +502,7 @@
},
};
const removeDomain = item => {
const removeDomain = (item) => {
let index = formState.domains.indexOf(item);
if (index !== -1) {
formState.domains.splice(index, 1);
@ -442,12 +510,17 @@
};
const configCollectionTypeChanged = function (e) {
formState.domain = []
}
formState.domain = [];
};
const valueTypeChanged = function (e) {
formState.domain = []
if (formState.collectionType === "" || formState.collectionType === undefined) return;
if (formState.valueType === "" || formState.valueType === undefined) return;
formState.domain = [];
if (
formState.collectionType === "" ||
formState.collectionType === undefined
)
return;
if (formState.valueType === "" || formState.valueType === undefined)
return;
// switch(formState.collectionType){
// case "Single": break;
// case "Map":
@ -464,78 +537,84 @@
// case "List":break;
// default:break;
// }
if (formState.domains)
console.log("valueTypeChanged", e)
console.log("valueTypeChanged", e.value)
}
if (formState.domains) console.log("valueTypeChanged", e);
console.log("valueTypeChanged", e.value);
};
const addDomain = () => {
formState.domains.push({
value: '',
name: '',
value: "",
name: "",
key: Date.now(),
});
};
const configValueType = ref([{
value: 'STRING',
label: '字符串类型',
}, {
value: 'BOOLEAN',
label: 'boolean类型',
const configValueType = ref([
{
value: "STRING",
label: "字符串类型",
},
{
value: 'INT',
label: 'Int数据类型',
value: "BOOLEAN",
label: "boolean类型",
},
{
value: 'DATE',
label: '日期类型',
value: "INT",
label: "Int数据类型",
},
{
value: "DATE",
label: "日期类型",
},
]);
const configCollectionType = ref([{
value: 'Single',
label: '单个值对象',
}, {
value: 'Map',
label: 'Map数据字典',
const configCollectionType = ref([
{
value: "Single",
label: "单个值对象",
},
{
value: 'List',
label: 'list集合',
}
value: "Map",
label: "Map数据字典",
},
{
value: "List",
label: "list集合",
},
]);
const key = "addConfig";
const submit = (e) => {
console.log("提交", e)
console.log("提交", e);
let row = toRaw(formState);
console.log("提交的数据", row)
console.log("提交的数据", row);
formRef.value
.validate()
.then(() => {
addConfig(toRaw(formState)).then((response) => {
if (response.success) {
message.success({
content: '保存成功',
duration: 1
}).then(() => {
message
.success({
content: "保存成功",
duration: 1,
})
.then(() => {
cancel();
});
} else {
message.success({
content: '保存失败',
duration: 1
}).then(() => {
message
.success({
content: "保存失败",
duration: 1,
})
.then(() => {
cancel();
});
}
});
})
.catch(error => {
console.log('error', error);
.catch((error) => {
console.log("error", error);
});
};
@ -544,8 +623,6 @@
context.emit("close", false);
};
return {
submit,
cancel,
@ -560,13 +637,12 @@
formItemLayoutWithOutLabel,
configCollectionTypeChanged,
labelCol: {
span: 8
span: 8,
},
wrapperCol: {
span: 12
span: 12,
},
};
},
});
</script>

View File

@ -11,28 +11,40 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol">
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="24">
<a-form-item ref="name" label="描述" name="name">
<a-textarea v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item ref="code" label="编号" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item ref="value" label="值" name="value">
<a-textarea v-model:value="formState.value" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</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/config";
import { defineComponent, reactive, ref, toRaw, watch } from "vue";
@ -44,29 +56,28 @@ 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'}],
code: [{ required: true, message: '请输入配置编号', trigger: 'blur'}],
value: [{ required: true, message: '请输入配置值', trigger: 'blur'}]
name: [{ required: true, message: "请输入配置描述", trigger: "blur" }],
code: [{ required: true, message: "请输入配置编号", trigger: "blur" }],
value: [{ required: true, message: "请输入配置值", trigger: "blur" }],
};
watch(props, (props) => {
formState.id = props.record.id
formState.name = props.record.name
formState.code = props.record.code
formState.value = props.record.value
formState.remark = props.record.remark
formState.enable = props.record.enable
})
formState.id = props.record.id;
formState.name = props.record.name;
formState.code = props.record.code;
formState.value = props.record.value;
formState.remark = props.record.remark;
formState.enable = props.record.enable;
});
const submit = (e) => {
message.loading({
@ -78,19 +89,23 @@ export default defineComponent({
.then(() => {
edit(toRaw(formState)).then((response) => {
if (response.success) {
message.success({
message
.success({
content: "保存成功",
key,
duration: 1,
}).then(()=>{
})
.then(() => {
cancel();
});
} else {
message.error({
message
.error({
content: "保存失败",
key,
duration: 1,
}).then(()=>{
})
.then(() => {
cancel();
});
}

View File

@ -11,23 +11,35 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol">
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="24">
<a-form-item ref="name" label="描述" name="name">
<a-textarea v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item ref="code" label="编号" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item ref="value" label="值" name="value">
<a-textarea v-model:value="formState.value" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
</template>
@ -42,29 +54,28 @@ 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'}],
code: [{ required: true, message: '请输入配置编号', trigger: 'blur'}],
value: [{ required: true, message: '请输入配置值', trigger: 'blur'}]
name: [{ required: true, message: "请输入配置描述", trigger: "blur" }],
code: [{ required: true, message: "请输入配置编号", trigger: "blur" }],
value: [{ required: true, message: "请输入配置值", trigger: "blur" }],
};
watch(props, (props) => {
formState.id = props.record.id
formState.name = props.record.name
formState.code = props.record.code
formState.value = props.record.value
formState.remark = props.record.remark
formState.enable = props.record.enable
})
formState.id = props.record.id;
formState.name = props.record.name;
formState.code = props.record.code;
formState.value = props.record.value;
formState.remark = props.record.remark;
formState.enable = props.record.enable;
});
const submit = (e) => {
formRef.value.resetFields();

View File

@ -11,24 +11,35 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="code" label="编号" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="value" label="值" name="value">
<a-input v-model:value="formState.value" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
</template>
@ -53,9 +64,9 @@ export default defineComponent({
});
const formRules = {
name: [{ required: true, message: '请输入配置描述', trigger: 'blur'}],
code: [{ required: true, message: '请输入配置编号', trigger: 'blur'}],
value: [{ required: true, message: '请输入配置值', trigger: 'blur'}]
name: [{ required: true, message: "请输入配置描述", trigger: "blur" }],
code: [{ required: true, message: "请输入配置编号", trigger: "blur" }],
value: [{ required: true, message: "请输入配置值", trigger: "blur" }],
};
const submit = (e) => {
@ -68,19 +79,23 @@ export default defineComponent({
.then(() => {
save(toRaw(formState)).then((response) => {
if (response.success) {
message.success({
message
.success({
content: "保存成功",
key,
duration: 1,
}).then(()=>{
})
.then(() => {
cancel();
});
} else {
message.error({
message
.error({
content: response.msg,
key,
duration: 1,
}).then(()=>{
})
.then(() => {
cancel();
});
}

View File

@ -11,11 +11,11 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="vertical"
>
<a-col :span="12" v-if="formState.parent != 0">
<!-- 当前部门为根部门, 则不提供上级部门选择 -->
<a-form-item label="上级" name="parent" v-if="formState.parent != 0 ">
<a-form-item label="上级" name="parent">
<a-tree-select
v-model:value="formState.parent"
style="width: 100%"
@ -27,26 +27,37 @@
>
</a-tree-select>
</a-form-item>
</a-col>
<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 ref="sort" label="排序" name="sort">
<a-input-number v-model:value="formState.sort" />
</a-form-item>
<a-form-item label="状态" name="state">
<a-switch v-model:checked="formState.enable" />
<a-input-number style="width: 100%" v-model:value="formState.sort" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item ref="address" label="地址" name="address">
<a-input v-model:value="formState.address" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="状态" name="state">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</a-form-item>
</a-col>
</a-form>
</a-modal>
</template>
<script>
import { message } from '@hwork/ant-design-vue';
import { message } from "@hwork/ant-design-vue";
import { edit, tree } from "@/api/module/dept";
import { defineComponent, reactive, ref, toRaw, watch } from "vue";
export default defineComponent({
@ -56,14 +67,13 @@ export default defineComponent({
},
record: {
type: Object,
}
},
},
emit: ["close"],
setup(props, context) {
const state = reactive({
depts: [],
})
});
const formRef = ref();
@ -73,19 +83,21 @@ export default defineComponent({
});
watch(props, (props) => {
formState.id = props.record.id
formState.name = props.record.name
formState.sort = props.record.sort
formState.parent = props.record.parent
formState.remark = props.record.remark
formState.enable = props.record.enable
formState.address = props.record.address
})
formState.id = props.record.id;
formState.name = props.record.name;
formState.sort = props.record.sort;
formState.parent = props.record.parent;
formState.remark = props.record.remark;
formState.enable = props.record.enable;
formState.address = props.record.address;
});
const formRules = {
name: [ { required: true, message: '请输入部门名称', trigger: 'blur'} ],
address: [ { required: true, message: '请输入详细地址', trigger: 'blur'} ],
parent: [ { required: true, message: '请选择上级部门', trigger: 'change'} ]
name: [{ required: true, message: "请输入部门名称", trigger: "blur" }],
address: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
parent: [
{ required: true, message: "请选择上级部门", trigger: "change" },
],
};
const submit = (e) => {
@ -94,18 +106,18 @@ export default defineComponent({
.then(() => {
edit(toRaw(formState)).then((response) => {
if (response.success) {
message.success({ content: '保存成功', duration: 1 }).then(()=>{
message.success({ content: "保存成功", duration: 1 }).then(() => {
cancel();
});
} else {
message.success({ content: '保存失败', duration: 1 }).then(()=>{
message.success({ content: "保存失败", duration: 1 }).then(() => {
cancel();
});
}
});
})
.catch(error => {
console.log('error', error);
.catch((error) => {
console.log("error", error);
});
};
@ -117,8 +129,8 @@ export default defineComponent({
const loadTree = () => {
tree({}).then((response) => {
state.depts = response.data;
})
}
});
};
///
loadTree();
@ -134,7 +146,12 @@ export default defineComponent({
labelCol: { span: 6 },
wrapperCol: { span: 18 },
replaceFields: {children:'children', title:'name', key:'id', value: 'id' }
replaceFields: {
children: "children",
title: "name",
key: "id",
value: "id",
},
};
},
});

View File

@ -11,11 +11,11 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="vertical"
>
<a-col :span="12" v-if="formState.parent != 0 ">
<!-- 当前部门为根部门, 则不提供上级部门选择 -->
<a-form-item label="上级" name="parent" v-if="formState.parent != 0 ">
<a-form-item label="上级" name="parent" >
<a-tree-select
v-model:value="formState.parent"
style="width: 100%"
@ -27,18 +27,19 @@
>
</a-tree-select>
</a-form-item>
</a-col>
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
<a-form-item ref="sort" label="排序" name="sort">
<a-input-number v-model:value="formState.sort" />
</a-form-item>
<a-form-item label="状态" name="state">
<a-switch v-model:checked="formState.enable" />
<a-input-number style="width: 100%" v-model:value="formState.sort" />
</a-form-item>
<a-form-item ref="address" label="地址" name="address">
<a-input v-model:value="formState.address" />
</a-form-item>
<a-form-item label="状态" name="state">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</a-form-item>

View File

@ -11,9 +11,10 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item label="上级" name="parent">
<a-tree-select
v-model:value="formState.parent"
@ -26,26 +27,41 @@
>
</a-tree-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="sort" label="排序" name="sort">
<a-input-number v-model:value="formState.sort" />
</a-form-item>
<a-form-item label="状态" name="state">
<a-switch v-model:checked="formState.enable" />
<a-input-number
style="width: 100%"
v-model:value="formState.sort"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="address" label="地址" name="address">
<a-input v-model:value="formState.address" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="状态" name="state">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</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 { save, tree } from "@/api/module/dept";
import { defineComponent, reactive, ref, toRaw } from "vue";
export default defineComponent({
@ -56,10 +72,9 @@ export default defineComponent({
},
emit: ["close"],
setup(props, context) {
const state = reactive({
depts: [],
})
});
const formRef = ref();
@ -69,9 +84,11 @@ export default defineComponent({
});
const formRules = {
name: [ { required: true, message: '请输入部门名称', trigger: 'blur'} ],
address: [ { required: true, message: '请输入详细地址', trigger: 'blur'} ],
parent: [ { required: true, message: '请选择上级部门', trigger: 'change'} ]
name: [{ required: true, message: "请输入部门名称", trigger: "blur" }],
address: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
parent: [
{ required: true, message: "请选择上级部门", trigger: "change" },
],
};
const submit = (e) => {
@ -80,18 +97,18 @@ export default defineComponent({
.then(() => {
save(toRaw(formState)).then((response) => {
if (response.success) {
message.success({ content: '保存成功', duration: 1 }).then(()=>{
message.success({ content: "保存成功", duration: 1 }).then(() => {
cancel();
});
} else {
message.success({ content: '保存失败', duration: 1 }).then(()=>{
message.success({ content: "保存失败", duration: 1 }).then(() => {
cancel();
});
}
});
})
.catch(error => {
console.log('error', error);
.catch((error) => {
console.log("error", error);
});
};
@ -103,8 +120,8 @@ export default defineComponent({
const loadTree = () => {
tree({}).then((response) => {
state.depts = response.data;
})
}
});
};
///
loadTree();
@ -120,7 +137,12 @@ export default defineComponent({
labelCol: { span: 6 },
wrapperCol: { span: 18 },
replaceFields: {children:'children', title:'name', key:'id', value: 'id' }
replaceFields: {
children: "children",
title: "name",
key: "id",
value: "id",
},
};
},
});

View File

@ -11,29 +11,40 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="code" label="标识" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="sort" label="标识" name="sort">
<a-input-number v-model:value="formState.sort" />
<a-input-number style="width: 100%" v-model:value="formState.sort" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</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/post";
import { defineComponent, reactive, ref, toRaw, watch } from "vue";
export default defineComponent({
@ -43,50 +54,53 @@ export default defineComponent({
},
record: {
type: Object,
}
},
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const formState = reactive({});
watch(props, (props) => {
formState.id = props.record.id
formState.name = props.record.name
formState.code = props.record.code
formState.sort = props.record.sort
formState.remark = props.record.remark
formState.enable = props.record.enable
})
formState.id = props.record.id;
formState.name = props.record.name;
formState.code = props.record.code;
formState.sort = props.record.sort;
formState.remark = props.record.remark;
formState.enable = props.record.enable;
});
const formRules = {
name: [ { required: true, message: '请输入岗位名称', trigger: 'blur'} ],
code: [ { required: true, message: '请输入岗位编号', trigger: 'blur'} ]
name: [{ required: true, message: "请输入岗位名称", trigger: "blur" }],
code: [{ required: true, message: "请输入岗位编号", trigger: "blur" }],
};
const editKey = "add";
const submit = (e) => {
message.loading({ content: '提交中...', key: editKey });
message.loading({ content: "提交中...", key: editKey });
formRef.value
.validate()
.then(() => {
edit(toRaw(formState)).then((response) => {
if (response.success) {
message.success({ content: '保存成功', key: editKey, duration: 1 }).then(()=>{
message
.success({ content: "保存成功", key: editKey, duration: 1 })
.then(() => {
cancel();
});
} else {
message.success({ content: '保存失败', key: editKey, duration: 1 }).then(()=>{
message
.success({ content: "保存失败", key: editKey, duration: 1 })
.then(() => {
cancel();
});
}
});
})
.catch(error => {
console.log('error', error);
.catch((error) => {
console.log("error", error);
});
};
@ -96,7 +110,6 @@ export default defineComponent({
};
return {
submit,
cancel,
formRef,

View File

@ -11,24 +11,35 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="code" label="标识" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="sort" label="标识" name="sort">
<a-input-number v-model:value="formState.sort" />
<a-input-number style="width: 100%" v-model:value="formState.sort" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
</template>
@ -41,23 +52,22 @@ export default defineComponent({
},
record: {
type: Object,
}
},
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const formState = reactive({});
watch(props, (props) => {
formState.id = props.record.id
formState.name = props.record.name
formState.code = props.record.code
formState.sort = props.record.sort
formState.remark = props.record.remark
formState.enable = props.record.enable
})
formState.id = props.record.id;
formState.name = props.record.name;
formState.code = props.record.code;
formState.sort = props.record.sort;
formState.remark = props.record.remark;
formState.enable = props.record.enable;
});
const formRules = {};
@ -72,7 +82,6 @@ export default defineComponent({
};
return {
submit,
cancel,
formRef,

View File

@ -11,29 +11,40 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="code" label="标识" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="sort" label="标识" name="sort">
<a-input-number v-model:value="formState.sort" />
<a-input-number style="width: 100%" v-model:value="formState.sort" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</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 { save } from "@/api/module/post";
import { defineComponent, reactive, ref, toRaw } from "vue";
export default defineComponent({
@ -44,7 +55,6 @@ export default defineComponent({
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const formState = reactive({
@ -53,31 +63,35 @@ export default defineComponent({
});
const formRules = {
name: [ { required: true, message: '请输入岗位名称', trigger: 'blur'} ],
code: [ { required: true, message: '请输入岗位编号', trigger: 'blur'} ]
name: [{ required: true, message: "请输入岗位名称", trigger: "blur" }],
code: [{ required: true, message: "请输入岗位编号", trigger: "blur" }],
};
const saveKey = "save";
const submit = (e) => {
message.loading({ content: '提交中...', key: saveKey });
message.loading({ content: "提交中...", key: saveKey });
formRef.value
.validate()
.then(() => {
save(toRaw(formState)).then((response) => {
if (response.success) {
message.success({ content: '保存成功', key: saveKey, duration: 1 }).then(()=>{
message
.success({ content: "保存成功", key: saveKey, duration: 1 })
.then(() => {
cancel();
});
} else {
message.success({ content: '保存失败', key: saveKey, duration: 1 }).then(()=>{
message
.success({ content: "保存失败", key: saveKey, duration: 1 })
.then(() => {
cancel();
});
}
});
})
.catch(error => {
console.log('error', error);
.catch((error) => {
console.log("error", error);
});
};

View File

@ -34,33 +34,18 @@
<a-input v-model:value="formState.title" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item
v-if="state.showComponent"
ref="component"
label="组件"
name="component"
>
<a-col :span="12" v-if="state.showComponent">
<a-form-item ref="component" label="组件" name="component">
<a-input v-model:value="formState.component" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item
v-if="state.showPath"
ref="path"
label="路径"
name="path"
>
<a-col :span="12" v-if="state.showPath">
<a-form-item ref="path" label="路径" name="path">
<a-input v-model:value="formState.path" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item
v-if="state.showCode"
ref="code"
label="标识"
name="code"
>
<a-col :span="12" v-if="state.showCode">
<a-form-item ref="code" label="标识" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
</a-col>

View File

@ -11,29 +11,40 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="code" label="标识" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="sort" label="排序" name="sort">
<a-input-number v-model:value="formState.sort" />
<a-input-number style="width: 100%" v-model:value="formState.sort" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</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/role";
import { defineComponent, reactive, ref, toRaw, watch } from "vue";
export default defineComponent({
@ -43,22 +54,17 @@ export default defineComponent({
},
record: {
type: Object,
}
},
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const formState = reactive({});
const formRules = {
name: [
{ required: true, message: '请输入名称', trigger: 'blur'},
],
code: [
{ required: true, message: '请输入标识', trigger: 'blur'},
]
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
code: [{ required: true, message: "请输入标识", trigger: "blur" }],
};
watch(props, (props) => {
@ -68,7 +74,7 @@ export default defineComponent({
formState.sort = props.record.sort;
formState.enable = props.record.enable;
formState.remark = props.record.remark;
})
});
const submit = (e) => {
formRef.value
@ -76,18 +82,18 @@ export default defineComponent({
.then(() => {
edit(toRaw(formState)).then((response) => {
if (response.success) {
message.success({ content: '保存成功', duration: 1 }).then(()=>{
message.success({ content: "保存成功", duration: 1 }).then(() => {
cancel();
});
} else {
message.success({ content: '保存失败', duration: 1 }).then(()=>{
message.success({ content: "保存失败", duration: 1 }).then(() => {
cancel();
});
}
});
})
.catch(error => {
console.log('error', error);
.catch((error) => {
console.log("error", error);
});
};

View File

@ -1,12 +1,5 @@
<template>
<a-modal
:open="visible"
title="权限配置"
cancelText="取消"
okText="保存"
@ok="submit"
@cancel="cancel"
>
<a-drawer :open="visible" title="权限配置" style="padding: 0 8px">
<a-tabs v-model:activeKey="state.active">
<a-tab-pane key="1" tab="菜单权限">
<a-tree
@ -23,7 +16,9 @@
<a-select-option value="ALL">全部</a-select-option>
<a-select-option value="SELF">仅自己</a-select-option>
<a-select-option value="DEPT">所在部门</a-select-option>
<a-select-option value="DEPT_CHILD">所在部门及下级部门</a-select-option>
<a-select-option value="DEPT_CHILD"
>所在部门及下级部门</a-select-option
>
<a-select-option value="CUSTOM">自定义数据</a-select-option>
</a-select>
<br />
@ -38,7 +33,11 @@
/>
</a-tab-pane>
</a-tabs>
</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";
@ -58,7 +57,6 @@ export default defineComponent({
},
emit: ["close"],
setup(props, context) {
const scope = ref("ALL");
const state = reactive({
@ -92,7 +90,7 @@ export default defineComponent({
state.checkedDeptIds = [];
state.showDept = false;
}
})
});
///
watch(props, (props) => {
@ -107,9 +105,9 @@ export default defineComponent({
dept({ roleId: props.record.id }).then((response) => {
response.data.forEach((element) => {
deptIds.push(element.id);
})
});
state.checkedDeptIds = deptIds;
})
});
scope.value = props.record.scope;
});
@ -120,9 +118,13 @@ export default defineComponent({
give({
scope: scope.value,
roleId: props.record.id,
powerIds: state.checkedPowerIds.checked?state.checkedPowerIds.checked:state.checkedPowerIds,
deptIds: state.checkedDeptIds.checked?state.checkedDeptIds.checked:state.checkedDeptIds }).then(
(response) => {
powerIds: state.checkedPowerIds.checked
? state.checkedPowerIds.checked
: state.checkedPowerIds,
deptIds: state.checkedDeptIds.checked
? state.checkedDeptIds.checked
: state.checkedDeptIds,
}).then((response) => {
if (response.success) {
message.success({ content: "保存成功", duration: 1 }).then(() => {
cancel();
@ -132,8 +134,7 @@ export default defineComponent({
cancel();
});
}
}
);
});
};
const cancel = (e) => {
@ -145,7 +146,7 @@ export default defineComponent({
state,
submit,
cancel,
SHOW_PARENT
SHOW_PARENT,
};
},
});

View File

@ -11,24 +11,35 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="code" label="标识" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="sort" label="排序" name="sort">
<a-input-number v-model:value="formState.sort" />
<a-input-number style="width: 100%" v-model:value="formState.sort" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
</template>
@ -41,11 +52,10 @@ export default defineComponent({
},
record: {
type: Object,
}
},
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const formState = reactive({});
@ -59,7 +69,7 @@ export default defineComponent({
formState.sort = props.record.sort;
formState.enable = props.record.enable;
formState.remark = props.record.remark;
})
});
const cancel = (e) => {
formRef.value.resetFields();

View File

@ -11,29 +11,40 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item ref="name" label="名称" name="name">
<a-input v-model:value="formState.name" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="code" label="标识" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="sort" label="排序" name="sort">
<a-input-number v-model:value="formState.sort" />
<a-input-number style="width: 100%" v-model:value="formState.sort" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</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 { save } from "@/api/module/role";
import { defineComponent, reactive, ref, toRaw } from "vue";
export default defineComponent({
@ -44,7 +55,6 @@ export default defineComponent({
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const formState = reactive({
@ -53,12 +63,8 @@ export default defineComponent({
});
const formRules = {
name: [
{ required: true, message: '请输入名称', trigger: 'blur'},
],
code: [
{ required: true, message: '请输入标识', trigger: 'blur'},
]
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
code: [{ required: true, message: "请输入标识", trigger: "blur" }],
};
const submit = (e) => {
@ -67,18 +73,18 @@ export default defineComponent({
.then(() => {
save(toRaw(formState)).then((response) => {
if (response.success) {
message.success({ content: '保存成功', duration: 1 }).then(()=>{
message.success({ content: "保存成功", duration: 1 }).then(() => {
cancel();
});
} else {
message.success({ content: '保存失败', duration: 1 }).then(()=>{
message.success({ content: "保存失败", duration: 1 }).then(() => {
cancel();
});
}
});
})
.catch(error => {
console.log('error', error);
.catch((error) => {
console.log("error", error);
});
};

View File

@ -11,19 +11,25 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol">
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
})
formState.id = props.record.id;
formState.name = props.record.name;
formState.describe = props.record.describe;
});
const submit = (e) => {
message.loading({
@ -65,19 +72,23 @@ export default defineComponent({
.then(() => {
edit(toRaw(formState)).then((response) => {
if (response.success) {
message.success({
message
.success({
content: "保存成功",
key,
duration: 1,
}).then(()=>{
})
.then(() => {
cancel();
});
} else {
message.error({
message
.error({
content: "保存失败",
key,
duration: 1,
}).then(()=>{
})
.then(() => {
cancel();
});
}

View File

@ -1,13 +1,7 @@
<template>
<a-modal
:open="visible"
title="权限配置"
cancelText="取消"
okText="保存"
@ok="submit"
@cancel="cancel"
>
<a-drawer :open="visible" title="权限配置">
<a-tree
style="padding: 0 6px"
checkable
checkStrictly
show-line="true"
@ -15,7 +9,11 @@
:replace-fields="state.powerReplaceFields"
v-model:checkedKeys="state.checkedPowerIds"
/>
</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";
@ -33,7 +31,6 @@ export default defineComponent({
},
emit: ["close"],
setup(props, context) {
const state = reactive({
powers: [],
checkedPowerIds: { checked: [] },
@ -61,8 +58,10 @@ export default defineComponent({
const submit = (e) => {
give({
tenantId: props.record.id,
powerIds: state.checkedPowerIds.checked?state.checkedPowerIds.checked:state.checkedPowerIds}).then(
(response) => {
powerIds: state.checkedPowerIds.checked
? state.checkedPowerIds.checked
: state.checkedPowerIds,
}).then((response) => {
if (response.success) {
message.success({ content: "保存成功", duration: 1 }).then(() => {
cancel();
@ -72,8 +71,7 @@ export default defineComponent({
cancel();
});
}
}
);
});
};
const cancel = (e) => {

View File

@ -11,14 +11,20 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol">
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
})
formState.id = props.record.id;
formState.name = props.record.name;
formState.describe = props.record.describe;
});
const submit = (e) => {
formRef.value.resetFields();

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";

View File

@ -1,7 +1,7 @@
<template>
<a-modal
:open="visible"
title="新增用户"
title="修改用户"
cancelText="取消"
okText="提交"
@ok="submit"
@ -11,34 +11,55 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol">
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item ref="nickname" label="昵称" name="nickname">
<a-input v-model:value="formState.nickname" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="username" label="账户" name="username">
<a-input v-model:value="formState.username" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="email" label="邮箱" name="email">
<a-input v-model:value="formState.email" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="phone" label="电话" name="phone">
<a-input v-model:value="formState.phone" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="性别" name="gender">
<a-radio-group v-model:value="formState.gender">
<a-radio value="0"></a-radio>
<a-radio value="1"></a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="岗位" name="postId">
<a-select v-model:value="formState.postId">
<a-select-option :value="post.id" v-bind:key="index" v-for="(post,index) in state.posts">{{post.name}}</a-select-option>
<a-select-option
:value="post.id"
v-bind:key="index"
v-for="(post, index) in state.posts"
>{{ post.name }}</a-select-option
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="部门" name="deptId">
<a-tree-select
v-model:value="formState.deptId"
@ -51,14 +72,18 @@
>
</a-tree-select>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</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 { list } from "@/api/module/post";
import { edit } from "@/api/module/user";
import { tree } from "@/api/module/dept";
@ -70,17 +95,16 @@ export default defineComponent({
},
record: {
type: Object,
}
},
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const state = reactive({
posts: [],
depts: [],
})
});
const formState = reactive({
enable: true,
@ -88,42 +112,45 @@ export default defineComponent({
});
const formRules = {
username: [ { required: true, message: '请输入账户', trigger: 'blur'} ],
nickname: [ { required: true, message: '请输入昵称', trigger: 'blur'} ],
password: [ { required: true, message: '请输入密码', trigger: 'blur'} ],
email: [ { required: true, message: '请输入邮箱', trigger: 'blur'} ],
phone: [ { required: true, message: '请输入电话', trigger: 'blur'} ],
postId: [ { required: true, message: '请选择岗位', trigger: 'blur'} ],
deptId: [ { required: true, message: '请选择部门', trigger: 'blur'} ],
username: [{ required: true, message: "请输入账户", trigger: "blur" }],
nickname: [{ required: true, message: "请输入昵称", trigger: "blur" }],
password: [{ required: true, message: "请输入密码", trigger: "blur" }],
email: [{ required: true, message: "请输入邮箱", trigger: "blur" }],
phone: [{ required: true, message: "请输入电话", trigger: "blur" }],
postId: [{ required: true, message: "请选择岗位", trigger: "blur" }],
deptId: [{ required: true, message: "请选择部门", trigger: "blur" }],
};
const loadPost = () => {
list({}).then((response) => {
state.posts = response.data;
})
}
});
};
const loadTree = () => {
tree({}).then((response) => {
state.depts = response.data;
})
}
});
};
const submit = (e) => {
formRef.value.validate().then(() => {
formRef.value
.validate()
.then(() => {
edit(toRaw(formState)).then((response) => {
if (response.success) {
message.success({ content: '保存成功', duration: 1 }).then(()=>{
message.success({ content: "保存成功", duration: 1 }).then(() => {
cancel();
});
} else {
message.error({ content: '保存失败', duration: 1 }).then(()=>{
message.error({ content: "保存失败", duration: 1 }).then(() => {
cancel();
});
}
});
})
}).catch(error => {
console.log('error', error);
.catch((error) => {
console.log("error", error);
});
};
@ -148,7 +175,7 @@ export default defineComponent({
formState.deptId = props.record.deptId;
formState.enable = props.record.enable;
formState.remark = props.record.remark;
})
});
return {
state,
@ -161,7 +188,12 @@ export default defineComponent({
labelCol: { span: 6 },
wrapperCol: { span: 18 },
replaceFields: {children:'children', title:'name', key:'id', value: 'id' }
replaceFields: {
children: "children",
title: "name",
key: "id",
value: "id",
},
};
},
});

View File

@ -11,34 +11,55 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol">
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item ref="nickname" label="昵称" name="nickname">
<a-input v-model:value="formState.nickname" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="username" label="账户" name="username">
<a-input v-model:value="formState.username" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="email" label="邮箱" name="email">
<a-input v-model:value="formState.email" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="phone" label="电话" name="phone">
<a-input v-model:value="formState.phone" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="性别" name="gender">
<a-radio-group v-model:value="formState.gender">
<a-radio value="0"></a-radio>
<a-radio value="1"></a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="岗位" name="postId">
<a-select v-model:value="formState.postId">
<a-select-option :value="post.id" v-bind:key="index" v-for="(post,index) in state.posts">{{post.name}}</a-select-option>
<a-select-option
:value="post.id"
v-bind:key="index"
v-for="(post, index) in state.posts"
>{{ post.name }}</a-select-option
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="部门" name="deptId">
<a-tree-select
v-model:value="formState.deptId"
@ -51,9 +72,13 @@
>
</a-tree-select>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
</template>
@ -68,17 +93,16 @@ export default defineComponent({
},
record: {
type: Object,
}
},
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const state = reactive({
posts: [],
depts: [],
})
});
const formState = reactive({
enable: true,
@ -90,14 +114,14 @@ export default defineComponent({
const loadPost = () => {
list({}).then((response) => {
state.posts = response.data;
})
}
});
};
const loadTree = () => {
tree({}).then((response) => {
state.depts = response.data;
})
}
});
};
const submit = (e) => {
formRef.value.resetFields();
@ -125,7 +149,7 @@ export default defineComponent({
formState.deptId = props.record.deptId;
formState.enable = props.record.enable;
formState.remark = props.record.remark;
})
});
return {
state,
@ -138,7 +162,12 @@ export default defineComponent({
labelCol: { span: 6 },
wrapperCol: { span: 18 },
replaceFields: {children:'children', title:'name', key:'id', value: 'id' }
replaceFields: {
children: "children",
title: "name",
key: "id",
value: "id",
},
};
},
});

View File

@ -11,37 +11,48 @@
ref="formRef"
:model="formState"
:rules="formRules"
:label-col="labelCol"
:wrapper-col="wrapperCol">
layout="vertical"
>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item ref="nickname" label="昵称" name="nickname">
<a-input v-model:value="formState.nickname" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="username" label="账户" name="username">
<a-input v-model:value="formState.username" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="password" label="密码" name="password">
<a-input v-model:value="formState.password" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="email" label="邮箱" name="email">
<a-input v-model:value="formState.email" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="phone" label="电话" name="phone">
<a-input v-model:value="formState.phone" />
</a-form-item>
<a-form-item label="性别" name="gender">
<a-radio-group v-model:value="formState.gender">
<a-radio value="0"></a-radio>
<a-radio value="1"></a-radio>
</a-radio-group>
</a-form-item>
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="岗位" name="postId">
<a-select v-model:value="formState.postId">
<a-select-option :value="post.id" v-bind:key="index" v-for="(post,index) in state.posts">{{post.name}}</a-select-option>
<a-select-option
:value="post.id"
v-bind:key="index"
v-for="(post, index) in state.posts"
>{{ post.name }}</a-select-option
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="部门" name="deptId">
<a-tree-select
v-model:value="formState.deptId"
@ -54,14 +65,34 @@
>
</a-tree-select>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="性别" name="gender">
<a-radio-group v-model:value="formState.gender">
<a-radio value="0"></a-radio>
<a-radio value="1"></a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</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 { list } from "@/api/module/post";
import { save } from "@/api/module/user";
import { tree } from "@/api/module/dept";
@ -74,13 +105,12 @@ export default defineComponent({
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const state = reactive({
posts: [],
depts: [],
})
});
const formState = reactive({
enable: true,
@ -88,43 +118,46 @@ export default defineComponent({
});
const formRules = {
username: [ { required: true, message: '请输入账户', trigger: 'blur'} ],
nickname: [ { required: true, message: '请输入昵称', trigger: 'blur'} ],
password: [ { required: true, message: '请输入密码', trigger: 'blur'} ],
email: [ { required: true, message: '请输入邮箱', trigger: 'blur'} ],
phone: [ { required: true, message: '请输入电话', trigger: 'blur'} ],
postId: [ { required: true, message: '请选择岗位', trigger: 'blur'} ],
deptId: [ { required: true, message: '请选择部门', trigger: 'blur'} ],
tenantId: [ { required: true, message: '请选择租户', trigger: 'blur'} ]
username: [{ required: true, message: "请输入账户", trigger: "blur" }],
nickname: [{ required: true, message: "请输入昵称", trigger: "blur" }],
password: [{ required: true, message: "请输入密码", trigger: "blur" }],
email: [{ required: true, message: "请输入邮箱", trigger: "blur" }],
phone: [{ required: true, message: "请输入电话", trigger: "blur" }],
postId: [{ required: true, message: "请选择岗位", trigger: "blur" }],
deptId: [{ required: true, message: "请选择部门", trigger: "blur" }],
tenantId: [{ required: true, message: "请选择租户", trigger: "blur" }],
};
const loadPost = () => {
list({}).then((response) => {
state.posts = response.data;
})
}
});
};
const loadTree = () => {
tree({}).then((response) => {
state.depts = response.data;
})
}
});
};
const submit = (e) => {
formRef.value.validate().then(() => {
formRef.value
.validate()
.then(() => {
save(toRaw(formState)).then((response) => {
if (response.success) {
message.success({ content: '保存成功', duration: 1 }).then(()=>{
message.success({ content: "保存成功", duration: 1 }).then(() => {
cancel();
});
} else {
message.error({ content: '保存失败', duration: 1 }).then(()=>{
message.error({ content: "保存失败", duration: 1 }).then(() => {
cancel();
});
}
});
})
}).catch(error => {
console.log('error', error);
.catch((error) => {
console.log("error", error);
});
};
@ -149,7 +182,12 @@ export default defineComponent({
labelCol: { span: 6 },
wrapperCol: { span: 18 },
replaceFields: {children:'children', title:'name', key:'id', value: 'id' }
replaceFields: {
children: "children",
title: "name",
key: "id",
value: "id",
},
};
},
});