Merge branch 'dev' into dev-dictionary
# Conflicts: # src/views/system/User/components/EditUserDialog.vue
This commit is contained in:
commit
b83dcef019
|
@ -64,7 +64,7 @@
|
||||||
<p>
|
<p>
|
||||||
{{ provider.description }}
|
{{ provider.description }}
|
||||||
</p>
|
</p>
|
||||||
<p>消息协议:{{ provider.id }}</p>
|
<!-- <p>消息协议:{{ provider.id }}</p> -->
|
||||||
<TitleComponent data="设备接入指引" />
|
<TitleComponent data="设备接入指引" />
|
||||||
<p>1、配置{{ provider.name }}通道</p>
|
<p>1、配置{{ provider.name }}通道</p>
|
||||||
<p>2、创建{{ provider.name }}设备接入网关</p>
|
<p>2、创建{{ provider.name }}设备接入网关</p>
|
||||||
|
|
|
@ -12,9 +12,8 @@
|
||||||
okText="确定"
|
okText="确定"
|
||||||
>
|
>
|
||||||
<j-form ref="formRef" :model="form.data" layout="vertical">
|
<j-form ref="formRef" :model="form.data" layout="vertical">
|
||||||
<div class="formName" v-if="form.IsShow('add', 'edit')">基础信息</div>
|
|
||||||
<j-row :gutter="24" v-if="form.IsShow('add', 'edit')">
|
<j-row :gutter="24" v-if="form.IsShow('add', 'edit')">
|
||||||
<j-col :span="24">
|
<j-col :span="12">
|
||||||
<j-form-item
|
<j-form-item
|
||||||
name="name"
|
name="name"
|
||||||
label="姓名"
|
label="姓名"
|
||||||
|
@ -32,113 +31,7 @@
|
||||||
/>
|
/>
|
||||||
</j-form-item>
|
</j-form-item>
|
||||||
</j-col>
|
</j-col>
|
||||||
</j-row>
|
|
||||||
<j-row :gutter="24" v-if="form.IsShow('add', 'edit')">
|
|
||||||
<j-col :span="12">
|
<j-col :span="12">
|
||||||
<j-form-item
|
|
||||||
name="telephone"
|
|
||||||
label="手机号"
|
|
||||||
:rules="[
|
|
||||||
{
|
|
||||||
pattern: /^1[3456789]\d{9}$/,
|
|
||||||
message: '请输入正确的手机号',
|
|
||||||
},
|
|
||||||
]"
|
|
||||||
>
|
|
||||||
<j-input
|
|
||||||
v-model:value="form.data.telephone"
|
|
||||||
placeholder="请输入手机号"
|
|
||||||
:maxlength="64"
|
|
||||||
/>
|
|
||||||
</j-form-item>
|
|
||||||
</j-col>
|
|
||||||
<j-col :span="12">
|
|
||||||
<j-form-item
|
|
||||||
name="email"
|
|
||||||
label="邮箱"
|
|
||||||
:rules="[
|
|
||||||
{
|
|
||||||
pattern:
|
|
||||||
/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
|
|
||||||
message: '请输入正确的邮箱',
|
|
||||||
},
|
|
||||||
]"
|
|
||||||
>
|
|
||||||
<j-input
|
|
||||||
v-model:value="form.data.email"
|
|
||||||
placeholder="请输入邮箱"
|
|
||||||
:maxlength="64"
|
|
||||||
/>
|
|
||||||
</j-form-item>
|
|
||||||
</j-col>
|
|
||||||
</j-row>
|
|
||||||
<j-row :gutter="24" v-if="form.IsShow('add', 'edit')">
|
|
||||||
<j-col :span="12">
|
|
||||||
<j-form-item name="roleIdList" label="角色" class="flex"
|
|
||||||
:rules="[
|
|
||||||
{ required: form.data.username !== 'admin', message: '请选择角色' },
|
|
||||||
]"
|
|
||||||
>
|
|
||||||
<j-tree-select
|
|
||||||
v-model:value="form.data.roleIdList"
|
|
||||||
multiple
|
|
||||||
show-search
|
|
||||||
style="width: calc(100% - 40px)"
|
|
||||||
placeholder="请选择角色"
|
|
||||||
:tree-data="form.roleOptions"
|
|
||||||
:fieldNames="{ label: 'name', value: 'id', children:'children' }"
|
|
||||||
:disabled="form.data.username === 'admin'"
|
|
||||||
:filterTreeNode="
|
|
||||||
(v: string, node: any) => filterSelectNode(v, node, 'name')
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<template #title="{ name }">
|
|
||||||
<div style="width: calc(100% - 10px) ">
|
|
||||||
<Ellipsis>{{ name }}</Ellipsis>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</j-tree-select>
|
|
||||||
<PermissionButton
|
|
||||||
:hasPermission="`${rolePermission}:add`"
|
|
||||||
@click="form.clickAddItem('roleIdList', 'Role')"
|
|
||||||
v-if="form.data.username !== 'admin'"
|
|
||||||
>
|
|
||||||
<AIcon type="PlusOutlined" />
|
|
||||||
</PermissionButton>
|
|
||||||
</j-form-item>
|
|
||||||
</j-col>
|
|
||||||
<j-col :span="12">
|
|
||||||
<j-form-item name="orgIdList" label="组织" class="flex">
|
|
||||||
<j-tree-select
|
|
||||||
v-model:value="form.data.orgIdList"
|
|
||||||
show-search
|
|
||||||
style="width: calc(100% - 40px)"
|
|
||||||
placeholder="请选择组织"
|
|
||||||
:tree-data="form.departmentOptions"
|
|
||||||
:fieldNames="{ label: 'name', value: 'id' }"
|
|
||||||
multiple
|
|
||||||
:filterTreeNode="
|
|
||||||
(v: string, node: any) => filterSelectNode(v, node, 'name')
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<template #title="{ name }">
|
|
||||||
{{ name }}
|
|
||||||
</template>
|
|
||||||
</j-tree-select>
|
|
||||||
<PermissionButton
|
|
||||||
:hasPermission="`${deptPermission}:add`"
|
|
||||||
@click="
|
|
||||||
form.clickAddItem('orgIdList', 'Department')
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<AIcon type="PlusOutlined" />
|
|
||||||
</PermissionButton>
|
|
||||||
</j-form-item>
|
|
||||||
</j-col>
|
|
||||||
</j-row>
|
|
||||||
<div class="formName" v-if="form.IsShow('add', 'edit')">账号信息</div>
|
|
||||||
<j-row :gutter="24" v-if="form.IsShow('add', 'edit')">
|
|
||||||
<j-col :span="24">
|
|
||||||
<j-form-item
|
<j-form-item
|
||||||
name="username"
|
name="username"
|
||||||
label="用户名"
|
label="用户名"
|
||||||
|
@ -199,6 +92,99 @@
|
||||||
</j-form-item>
|
</j-form-item>
|
||||||
</j-col>
|
</j-col>
|
||||||
</j-row>
|
</j-row>
|
||||||
|
<j-row :gutter="24" v-if="form.IsShow('add', 'edit')">
|
||||||
|
<j-col :span="12">
|
||||||
|
<j-form-item name="roleIdList" label="角色" class="flex"
|
||||||
|
:rules="[
|
||||||
|
{ required: form.data.username !== 'admin', message: '请选择角色' },
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
<j-select
|
||||||
|
v-model:value="form.data.roleIdList"
|
||||||
|
mode="multiple"
|
||||||
|
style="width: calc(100% - 40px)"
|
||||||
|
placeholder="请选择角色"
|
||||||
|
:options="_roleOptions"
|
||||||
|
:disabled="form.data.username === 'admin'"
|
||||||
|
></j-select>
|
||||||
|
|
||||||
|
<PermissionButton
|
||||||
|
:hasPermission="`${rolePermission}:add`"
|
||||||
|
@click="form.clickAddItem('roleIdList', 'Role')"
|
||||||
|
v-if="!admin"
|
||||||
|
>
|
||||||
|
<AIcon type="PlusOutlined" />
|
||||||
|
</PermissionButton>
|
||||||
|
</j-form-item>
|
||||||
|
</j-col>
|
||||||
|
<j-col :span="12">
|
||||||
|
<j-form-item name="orgIdList" label="组织" class="flex">
|
||||||
|
<j-tree-select
|
||||||
|
v-model:value="form.data.orgIdList"
|
||||||
|
show-search
|
||||||
|
style="width: calc(100% - 40px)"
|
||||||
|
placeholder="请选择组织"
|
||||||
|
:tree-data="_departmentOptions"
|
||||||
|
:fieldNames="{ label: 'name', value: 'id' }"
|
||||||
|
multiple
|
||||||
|
:filterTreeNode="
|
||||||
|
(v: string, node: any) => filterSelectNode(v, node, 'name')
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<template #title="{ name }">
|
||||||
|
{{ name }}
|
||||||
|
</template>
|
||||||
|
</j-tree-select>
|
||||||
|
<PermissionButton
|
||||||
|
:hasPermission="`${deptPermission}:add`"
|
||||||
|
@click="
|
||||||
|
form.clickAddItem('orgIdList', 'Department')
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<AIcon type="PlusOutlined" />
|
||||||
|
</PermissionButton>
|
||||||
|
</j-form-item>
|
||||||
|
</j-col>
|
||||||
|
</j-row>
|
||||||
|
<j-row :gutter="24" v-if="form.IsShow('add', 'edit')">
|
||||||
|
<j-col :span="12">
|
||||||
|
<j-form-item
|
||||||
|
name="telephone"
|
||||||
|
label="手机号"
|
||||||
|
:rules="[
|
||||||
|
{
|
||||||
|
pattern: /^1[3456789]\d{9}$/,
|
||||||
|
message: '请输入正确的手机号',
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
<j-input
|
||||||
|
v-model:value="form.data.telephone"
|
||||||
|
placeholder="请输入手机号"
|
||||||
|
:maxlength="64"
|
||||||
|
/>
|
||||||
|
</j-form-item>
|
||||||
|
</j-col>
|
||||||
|
<j-col :span="12">
|
||||||
|
<j-form-item
|
||||||
|
name="email"
|
||||||
|
label="邮箱"
|
||||||
|
:rules="[
|
||||||
|
{
|
||||||
|
pattern:
|
||||||
|
/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
|
||||||
|
message: '请输入正确的邮箱',
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
<j-input
|
||||||
|
v-model:value="form.data.email"
|
||||||
|
placeholder="请输入邮箱"
|
||||||
|
:maxlength="64"
|
||||||
|
/>
|
||||||
|
</j-form-item>
|
||||||
|
</j-col>
|
||||||
|
</j-row>
|
||||||
</j-form>
|
</j-form>
|
||||||
</j-modal>
|
</j-modal>
|
||||||
</template>
|
</template>
|
||||||
|
@ -222,7 +208,6 @@ import { AxiosResponse } from 'axios';
|
||||||
import { passwordRegEx } from '@/utils/validate';
|
import { passwordRegEx } from '@/utils/validate';
|
||||||
import { filterSelectNode, onlyMessage } from '@/utils/comm';
|
import { filterSelectNode, onlyMessage } from '@/utils/comm';
|
||||||
import { uniqBy } from 'lodash-es';
|
import { uniqBy } from 'lodash-es';
|
||||||
import { storeToRefs } from 'pinia';
|
|
||||||
|
|
||||||
const deptPermission = 'system/Department';
|
const deptPermission = 'system/Department';
|
||||||
const rolePermission = 'system/Role';
|
const rolePermission = 'system/Role';
|
||||||
|
@ -294,9 +279,10 @@ const form = reactive({
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
roleOptions: [],
|
roleOptions: [] as optionType[],
|
||||||
departmentOptions: [] as DefaultOptionType[],
|
departmentOptions: [] as DefaultOptionType[],
|
||||||
|
|
||||||
|
_roleOptions: [] as optionType[],
|
||||||
_departmentOptions: [] as DefaultOptionType[],
|
_departmentOptions: [] as DefaultOptionType[],
|
||||||
|
|
||||||
init: () => {
|
init: () => {
|
||||||
|
@ -320,8 +306,11 @@ const form = reactive({
|
||||||
(item: dictType) => item.id,
|
(item: dictType) => item.id,
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
form._roleOptions = resp.result?.roleList?.map((i: any) => {
|
||||||
|
return {label: i.name, value: i.id}
|
||||||
|
});
|
||||||
form.data.roleIdList = resp.result?.roleList?.map((i: any) => {
|
form.data.roleIdList = resp.result?.roleList?.map((i: any) => {
|
||||||
return i.id
|
return i.id
|
||||||
});
|
});
|
||||||
form._departmentOptions = resp.result?.orgList
|
form._departmentOptions = resp.result?.orgList
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
|
@ -389,24 +378,28 @@ const form = reactive({
|
||||||
});
|
});
|
||||||
|
|
||||||
const dealRoleList = (data:any) =>{
|
const dealRoleList = (data:any) =>{
|
||||||
return data.map((item:any)=>{
|
return data.map((item:any)=>{
|
||||||
|
return {
|
||||||
|
name: item.groupName,
|
||||||
|
id: item.groupId,
|
||||||
|
disabled: true,
|
||||||
|
children: item?.roles ? item.roles.map((i:any)=>{
|
||||||
return {
|
return {
|
||||||
name: item.groupName,
|
name:i.name,
|
||||||
id: item.groupId,
|
id:i.id
|
||||||
disabled: true,
|
|
||||||
children: item?.roles ? item.roles.map((i:any)=>{
|
|
||||||
return {
|
|
||||||
name:i.name,
|
|
||||||
id:i.id
|
|
||||||
}
|
|
||||||
}) : []
|
|
||||||
}
|
}
|
||||||
})
|
}) : []
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
// 组织已删除在仍显示在列表中
|
|
||||||
// const _departmentOptions = computed(() => {
|
const _roleOptions = computed(() => {
|
||||||
// return uniqBy([...form.departmentOptions, ...form._departmentOptions], 'id')
|
return uniqBy([...form.roleOptions, ...form._roleOptions], 'value')
|
||||||
// })
|
})
|
||||||
|
|
||||||
|
const _departmentOptions = computed(() => {
|
||||||
|
return uniqBy([...form.departmentOptions, ...form._departmentOptions], 'id')
|
||||||
|
})
|
||||||
|
|
||||||
form.init();
|
form.init();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue