Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
so-manage-ui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
smart-operation
so-manage-ui
Commits
a1ef092e
Commit
a1ef092e
authored
Jul 06, 2023
by
张耀
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into zy
parents
d972548e
411e5037
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
297 additions
and
466 deletions
+297
-466
src/page/main/authority/organization/index.vue
src/page/main/authority/organization/index.vue
+1
-1
src/page/main/authority/organization/user-detail/index.vue
src/page/main/authority/organization/user-detail/index.vue
+75
-99
src/page/main/authority/user/add/index.vue
src/page/main/authority/user/add/index.vue
+43
-39
src/page/main/authority/user/add/system-form.vue
src/page/main/authority/user/add/system-form.vue
+35
-208
src/page/main/authority/user/index.vue
src/page/main/authority/user/index.vue
+14
-20
src/page/main/system-admin/dict/index.vue
src/page/main/system-admin/dict/index.vue
+129
-99
No files found.
src/page/main/authority/organization/index.vue
View file @
a1ef092e
...
...
@@ -173,7 +173,7 @@ const headers = reactive([
},
{
label
:
"
手机号
"
,
prop
:
"
contact_
phone
"
,
prop
:
"
phone
"
,
minWidth
:
150
,
},
{
...
...
src/page/main/authority/organization/user-detail/index.vue
View file @
a1ef092e
...
...
@@ -4,7 +4,7 @@
<div
class=
"page_content apaas_scroll"
>
<div
class=
"info_row"
>
<div
class=
"title"
>
<div><span
class=
"icon_box"
></span>
账号
信息
</div>
<div><span
class=
"icon_box"
></span>
基础
信息
</div>
<div
class=
"dashed_line"
></div>
</div>
<div
class=
"info_content"
>
...
...
@@ -17,20 +17,14 @@
alt=
""
/>
</div>
<div
class=
"info_box"
>
<bg-info
:data=
"accountInfo"
></bg-info>
</div>
</div>
</div>
<div>
<div
class=
"title"
>
<div><span
class=
"icon_box"
></span>
个人信息
</div>
<div
class=
"dashed_line"
></div>
</div>
<div
class=
"info_content"
>
<div
class=
"img_box"
></div>
<div
class=
"info_box"
>
<bg-info
v-if=
"accountType === 2"
:data=
"personInfo"
></bg-info>
<bg-info
v-if=
"accountType === 3"
:data=
"personInfo2"
></bg-info>
<bg-detail-table2
class=
"detail_info"
:list=
"accountInfo"
>
<template
#state
="
{ data }">
<p
class=
"detail-module"
>
<span>
{{
data
.
label
}}
</span>
<span
:class=
"data.value ? 'active' : 'disabled'"
>
{{
data
.
value
?
"
启用
"
:
"
禁用
"
}}
</span>
</p>
</
template
>
</bg-detail-table2>
</div>
</div>
</div>
...
...
@@ -39,7 +33,7 @@
</template>
<
script
setup
>
import
{
reactive
,
toRefs
,
ref
,
computed
,
onBeforeMount
}
from
"
vue
"
;
import
{
reactive
,
ref
,
onBeforeMount
}
from
"
vue
"
;
import
{
useRoute
}
from
"
vue-router
"
;
import
axios
from
"
@/request/http.js
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
...
...
@@ -48,120 +42,64 @@ const route = useRoute();
const
accountInfo
=
reactive
([
{
name
:
"
手机号
"
,
value
:
""
,
nameWidth
:
130
,
},
{
name
:
"
账号
"
,
value
:
""
,
nameWidth
:
130
,
},
{
name
:
"
角色
"
,
value
:
""
,
nameWidth
:
130
,
},
{
name
:
"
所属组织
"
,
value
:
""
,
nameWidth
:
130
,
},
{
name
:
"
创建人
"
,
key
:
"
name
"
,
label
:
"
姓名
"
,
value
:
""
,
nameWidth
:
130
,
},
{
name
:
"
创建账号
"
,
key
:
"
organization
"
,
label
:
"
所属组织
"
,
value
:
""
,
nameWidth
:
130
,
},
{
name
:
"
最后编辑时间
"
,
key
:
"
system_account
"
,
label
:
"
账号
"
,
value
:
""
,
nameWidth
:
130
,
},
{
name
:
"
创建时间
"
,
key
:
"
phone
"
,
label
:
"
手机号
"
,
value
:
""
,
nameWidth
:
130
,
},
]);
const
personInfo
=
reactive
([
{
name
:
"
姓名
"
,
value
:
""
,
nameWidth
:
130
,
},
{
name
:
"
邮箱
"
,
value
:
""
,
nameWidth
:
130
,
},
{
name
:
"
证据类型
"
,
value
:
""
,
nameWidth
:
130
,
},
{
name
:
"
身份证号
"
,
key
:
"
system_role
"
,
label
:
"
角色
"
,
value
:
""
,
idCard
:
true
,
nameWidth
:
130
,
},
{
name
:
"
备注
"
,
key
:
"
state
"
,
label
:
"
是否启用
"
,
value
:
""
,
full
:
true
,
nameWidth
:
130
,
},
]);
const
personInfo2
=
reactive
([
{
name
:
"
姓名
"
,
value
:
""
,
nameWidth
:
130
,
slot
:
"
state
"
,
},
{
name
:
"
邮箱
"
,
key
:
"
created_name
"
,
label
:
"
创建人
"
,
value
:
""
,
nameWidth
:
130
,
},
{
name
:
"
备注
"
,
key
:
"
created_time
"
,
label
:
"
创建时间
"
,
value
:
""
,
full
:
true
,
nameWidth
:
130
,
},
]);
const
logo
=
ref
(
""
);
const
accountType
=
ref
(
2
);
//1.业务系统账号 2.组织管理员账号 3.平台用户账号
const
getDetail
=
()
=>
{
axios
.
get
(
`/
apaas/system/v5/org
/user/
${
route
.
query
.
id
}
`
).
then
((
res
)
=>
{
axios
.
get
(
`/
v1/api
/user/
${
route
.
query
.
id
}
`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
const
detail
=
res
.
data
.
data
;
accountInfo
[
0
].
value
=
detail
.
contact_phone
;
accountInfo
[
1
].
value
=
detail
.
system_account
;
accountInfo
[
2
].
value
=
detail
.
system_role
&&
detail
.
system_role
.
length
>
0
?
detail
.
system_role
.
join
(
"
、
"
)
:
""
;
accountInfo
[
3
].
value
=
detail
.
organization
;
accountInfo
[
4
].
value
=
detail
.
created_by
;
accountInfo
[
5
].
value
=
detail
.
created_by_account
;
accountInfo
[
6
].
value
=
detail
.
updated_time
;
accountInfo
[
0
].
value
=
detail
.
name
;
accountInfo
[
1
].
value
=
detail
.
organization
;
accountInfo
[
2
].
value
=
detail
.
system_account
;
accountInfo
[
3
].
value
=
detail
.
phone
;
accountInfo
[
4
].
value
=
detail
.
system_role_name
&&
detail
.
system_role_name
.
length
>
0
?
detail
.
system_role_name
.
join
(
"
、
"
)
:
""
;
accountInfo
[
5
].
value
=
detail
.
state
;
accountInfo
[
6
].
value
=
detail
.
created_name
;
accountInfo
[
7
].
value
=
detail
.
created_time
;
personInfo
[
0
].
value
=
detail
.
contact_name
;
personInfo
[
1
].
value
=
detail
.
contact_email
;
personInfo
[
2
].
value
=
detail
.
document_type
===
1
?
"
身份证
"
:
""
;
personInfo
[
3
].
value
=
detail
.
document_number
;
personInfo
[
4
].
value
=
detail
.
remark
;
personInfo2
[
0
].
value
=
detail
.
contact_name
;
personInfo2
[
1
].
value
=
detail
.
contact_email
;
personInfo2
[
2
].
value
=
detail
.
remark
;
logo
.
value
=
detail
.
logo
;
accountType
.
value
=
detail
.
is_admin
;
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
...
...
@@ -175,7 +113,7 @@ onBeforeMount(() => {
});
</
script
>
<
style
scoped
>
<
style
scoped
lang=
"scss"
>
.page_content
{
padding
:
15px
;
overflow
:
auto
;
...
...
@@ -216,4 +154,42 @@ onBeforeMount(() => {
border-radius
:
2px
;
margin-right
:
5px
;
}
.detail-module
{
height
:
100%
;
display
:
flex
;
span
{
height
:
100%
;
display
:
inline-block
;
padding-left
:
15px
;
box-sizing
:
border-box
;
&
:nth-of-type
(
1
)
{
background-color
:
#f7f7f9
;
min-width
:
114px
;
border-right
:
solid
1px
#dadee7
;
}
&
:nth-of-type
(
2
)
{
flex-grow
:
1
;
&
:
:
before
{
display
:
inline-block
;
content
:
""
;
width
:
8px
;
height
:
8px
;
margin-right
:
4px
;
border-radius
:
4px
;
}
&
.active
{
color
:
#3759be
;
&
:
:
before
{
background-color
:
#3759be
;
}
}
&
.disabled
{
color
:
#ff9f51
;
&
:
:
before
{
background-color
:
#ff9f51
;
}
}
}
}
}
</
style
>
src/page/main/authority/user/add/index.vue
View file @
a1ef092e
...
...
@@ -26,6 +26,7 @@ import { useRoute, useRouter } from "vue-router";
import
systemForm
from
"
./system-form.vue
"
;
import
{
reactive
,
ref
,
onBeforeUnmount
,
onMounted
}
from
"
vue
"
;
import
axios
from
"
@/request/http.js
"
;
import
CryptoJS
from
"
crypto-js
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
import
bgBreadcrumb
from
"
@/components/bg-breadcrumb.vue
"
;
const
route
=
useRoute
();
...
...
@@ -57,42 +58,51 @@ const getSystemFormData = (data) => {
};
//提交表单
const
submit
=
()
=>
{
if
(
route
.
query
.
id
)
{
let
params
=
{
...
formData
,
logo
:
formData
.
logo
&&
formData
.
logo
.
length
>
0
?
formData
.
logo
[
0
].
url
:
""
,
};
axios
.
put
(
`/v1/api/user/
${
route
.
query
.
id
}
`
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
cancel
();
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
});
}
else
{
let
params
=
{
...
formData
,
logo
:
formData
.
logo
&&
formData
.
logo
.
length
>
0
?
formData
.
logo
[
0
].
url
:
""
,
password
:
CryptoJS
.
AES
.
encrypt
(
formData
.
password
,
"
swuE9cmCZQwrkYRV
"
).
toString
(),
};
axios
.
put
(
`/v1/api/user/add`
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
cancel
();
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
});
}
systemFormRef
.
value
.
validateForm
().
then
((
res
)
=>
{
if
(
!
res
)
return
;
if
(
route
.
query
.
id
)
{
let
params
=
{
...
systemFormRef
.
value
.
systemForm
,
logo
:
systemFormRef
.
value
.
systemForm
.
logo
&&
systemFormRef
.
value
.
systemForm
.
logo
.
length
>
0
?
systemFormRef
.
value
.
systemForm
.
logo
[
0
].
url
:
""
,
};
axios
.
put
(
`/v1/api/user/
${
route
.
query
.
id
}
`
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
cancel
();
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
});
}
else
{
let
params
=
{
...
systemFormRef
.
value
.
systemForm
,
logo
:
systemFormRef
.
value
.
systemForm
.
logo
&&
systemFormRef
.
value
.
systemForm
.
logo
.
length
>
0
?
systemFormRef
.
value
.
systemForm
.
logo
[
0
].
url
:
""
,
password
:
CryptoJS
.
AES
.
encrypt
(
systemFormRef
.
value
.
systemForm
.
password
,
"
swuE9cmCZQwrkYRV
"
).
toString
(),
};
delete
params
.
confirm_password
;
axios
.
post
(
`/v1/api/user/add`
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
cancel
();
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
});
}
});
};
//取消
const
cancel
=
()
=>
{
// router.go(-1);
router
.
push
({
path
:
"
/authority/user
"
,
query
:
{
id
:
formData
.
organization_id
,
organization_id
:
systemFormRef
.
value
.
systemForm
.
organization_id
,
},
});
};
...
...
@@ -103,18 +113,12 @@ const getDetail = () => {
const
form
=
res
.
data
.
data
;
systemFormRef
.
value
.
setForm
({
organization_id
:
form
.
organization_id
,
s
ystem_role_id
:
form
.
system_role_id
,
s
elect_role
:
form
.
system_role
,
logo
:
form
.
logo
?
[{
url
:
form
.
logo
}]
:
[],
business_code
:
form
.
business_code
,
business_name
:
form
.
business_name
,
business_desc
:
form
.
business_desc
,
name
:
form
.
name
,
system_account
:
form
.
system_account
,
system_phone
:
form
.
system_phone
,
access_address
:
form
.
access_address
,
develop_id
:
form
.
develop_id
,
phone
:
form
.
phone
,
state
:
form
.
state
,
appid
:
form
.
app_id
,
appsecret
:
form
.
app_secret
,
});
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
...
...
src/page/main/authority/user/add/system-form.vue
View file @
a1ef092e
...
...
@@ -15,37 +15,10 @@
:disabled=
"formType"
style=
"width: 100%"
/>
</el-form-item>
<el-form-item
label=
"
业务系统编码"
prop=
"business_code"
v-if=
"formTyp
e"
>
<el-input
v-model=
"systemForm.
business_code"
:disabled=
"formTyp
e"
/>
<el-form-item
label=
"
姓名"
prop=
"nam
e"
>
<el-input
v-model=
"systemForm.
nam
e"
/>
</el-form-item>
<el-form-item
label=
"业务系统名称"
prop=
"business_name"
>
<el-input
v-model=
"systemForm.business_name"
/>
</el-form-item>
<el-form-item
label=
"AppId"
prop=
"appid"
v-if=
"formType"
>
<el-input
v-model=
"systemForm.appid"
:disabled=
"formType"
>
<template
#suffix
>
<bg-icon
icon=
"#bg-ic-copy"
style=
"cursor: pointer"
@
click=
"copyText(systemForm.appid)"
></bg-icon>
</
template
>
</el-input>
<!-- <span class="pl-1"><el-button type="primary" @click="copyText(systemForm.appid)">复制</el-button></span> -->
</el-form-item>
<el-form-item
label=
"AppSecret"
prop=
"appsecret"
v-if=
"formType"
>
<div
style=
"display: flex; width: 100%"
>
<el-input
v-model=
"systemForm.appsecret"
:disabled=
"formType"
>
<
template
#suffix
>
<bg-icon
icon=
"#bg-ic-copy"
style=
"cursor: pointer"
@
click=
"copyText(systemForm.appsecret)"
></bg-icon>
</
template
>
</el-input>
<span
class=
"pl-1"
><el-button
type=
"primary"
@
click=
"resetSecret"
>
重置
</el-button></span>
</div>
</el-form-item>
<el-form-item
label=
"系统LOGO"
prop=
"logo"
>
<el-form-item
label=
"头像"
prop=
"logo"
>
<bg-upload-image
v-model=
"systemForm.logo"
:showTips=
"true"
...
...
@@ -56,62 +29,31 @@
:accept=
"['.jpg', '.jpeg', '.png']"
customTips=
"请选择图片上传:大小120 * 120像素支持jpg、png等格式,图片需小于500KB"
></bg-upload-image>
</el-form-item>
<el-form-item
label=
"业务系统概述"
prop=
"business_desc"
>
<el-input
type=
"textarea"
:rows=
"3"
v-model=
"systemForm.business_desc"
show-word-limit
maxlength=
"300"
/>
</el-form-item>
<el-form-item
label=
"角色"
prop=
"system_role_id"
v-if=
"!formType"
>
<el-select
v-model=
"systemForm.system_role_id"
placeholder=
"请选择角色"
:disabled=
"true"
style=
"width: 100%"
>
<el-option
v-for=
"item in roleList"
:key=
"item.role_id"
:label=
"item.role_name"
:value=
"item.role_id"
/>
<el-form-item
label=
"角色"
prop=
"select_role"
>
<el-select
v-model=
"systemForm.select_role"
multiple
placeholder=
"请选择角色"
style=
"width: 100%"
>
<el-option
v-for=
"item in roleList"
:key=
"item.role_id"
:label=
"item.role_name"
:value=
"item.role_id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"账号"
prop=
"system_account"
>
<el-input
v-model=
"systemForm.system_account"
/>
</el-form-item>
<el-form-item
label=
"手机号"
prop=
"
system_
phone"
>
<el-input
v-model=
"systemForm.
system_
phone"
/>
<el-form-item
label=
"手机号"
prop=
"phone"
>
<el-input
v-model=
"systemForm.phone"
/>
</el-form-item>
<el-form-item
label=
"密码"
prop=
"password"
v-if=
"!formType
"
>
<el-form-item
v-if=
"!formType"
label=
"密码"
prop=
"password
"
>
<el-input
:type=
"password_eye ? 'text' : 'password'"
v-model=
"systemForm.password"
>
<template
#suffix
>
<bg-icon
@
click=
"password_eye = !password_eye"
class=
"icon_eye"
icon=
"#bg-ic-eye"
></bg-icon>
<bg-icon
@
click=
"password_eye = !password_eye"
class=
"icon_eye"
icon=
"#bg-ic-eye"
></bg-icon>
</
template
>
</el-input>
</el-form-item>
<el-form-item
label=
"确认密码"
prop=
"confirm_password"
v-if=
"!formType
"
>
<el-form-item
v-if=
"!formType"
label=
"确认密码"
prop=
"confirm_password
"
>
<el-input
:type=
"confirm_eye ? 'text' : 'password'"
v-model=
"systemForm.confirm_password"
>
<
template
#suffix
>
<bg-icon
@
click=
"confirm_eye = !confirm_eye"
class=
"icon_eye"
icon=
"#bg-ic-eye"
></bg-icon>
</
template
>
</el-input>
</el-form-item>
<el-form-item
label=
"访问地址"
prop=
"access_address"
>
<el-input
v-model=
"systemForm.access_address"
/>
</el-form-item>
<el-form-item
label=
"开发厂商名称"
prop=
"develop_id"
>
<el-select
v-model=
"systemForm.develop_id"
placeholder=
"请选择开发厂商"
style=
"width: 100%"
>
<el-option
v-for=
"item in firmList"
:key=
"item.dict_id"
:label=
"item.dict_name"
:value=
"item.dict_id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"是否启用"
prop=
"state"
>
<bg-switch
:labels=
"['否', '是']"
:values=
"[0, 1]"
v-model=
"systemForm.state"
></bg-switch>
</el-form-item>
...
...
@@ -119,7 +61,7 @@
</template>
<
script
setup
>
import
{
reactive
,
ref
,
onBeforeMount
,
onMounted
,
computed
}
from
"
vue
"
;
import
{
reactive
,
ref
,
onBeforeMount
,
onMounted
,
watch
}
from
"
vue
"
;
import
axios
from
"
@/request/http.js
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
import
{
validatePhone
}
from
"
@/services/rules.js
"
;
...
...
@@ -128,27 +70,17 @@ const props = defineProps({
type
:
Boolean
,
default
:
false
,
//false 新增 true 编辑
},
id
:
{
type
:
String
,
default
:
""
,
},
});
const
systemForm
=
reactive
({
organization_id
:
""
,
business_code
:
""
,
business_name
:
""
,
business_desc
:
""
,
name
:
""
,
logo
:
[],
s
ystem_role_id
:
""
,
s
elect_role
:
[]
,
system_account
:
""
,
system_
phone
:
""
,
phone
:
""
,
password
:
""
,
confirm_password
:
""
,
access_address
:
""
,
develop_id
:
""
,
state
:
1
,
appid
:
""
,
appsecret
:
""
,
});
const
password_eye
=
ref
(
false
);
const
confirm_eye
=
ref
(
false
);
...
...
@@ -160,88 +92,22 @@ const validatePass = (rule, value, callback) => {
callback
();
}
};
const
validateBusinessName
=
(
rule
,
value
,
callback
)
=>
{
let
reg
=
/^
[
a-zA-Z0-9
\u
4e00-
\u
9fa5
]
+$/
;
if
(
!
reg
.
test
(
value
))
{
callback
(
new
Error
(
"
只能输入字母、数字和汉字
"
));
}
else
{
let
params
=
null
;
if
(
props
.
id
)
{
params
=
{
id
:
parseInt
(
props
.
id
),
business_name
:
value
,
organization_id
:
systemForm
.
organization_id
,
};
}
else
{
params
=
{
business_name
:
value
,
organization_id
:
systemForm
.
organization_id
};
}
axios
.
post
(
`/apaas/system/v5/user/check/business`
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
callback
();
}
else
{
callback
(
new
Error
(
res
.
data
.
data
));
}
});
}
};
const
validateSystemAccount
=
(
rule
,
value
,
callback
)
=>
{
let
reg
=
/^
[
a-zA-Z0-9
]
+$/
;
if
(
!
reg
.
test
(
value
))
{
callback
(
new
Error
(
"
只能输入字母和数字
"
));
}
else
{
let
params
=
null
;
if
(
props
.
id
)
{
params
=
{
id
:
parseInt
(
props
.
id
),
system_account
:
value
};
}
else
{
params
=
{
system_account
:
value
};
}
axios
.
post
(
`/apaas/system/v5/user/check/account`
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
callback
();
}
else
{
callback
(
new
Error
(
res
.
data
.
data
));
}
});
}
};
const
checkPhoneRepet
=
(
rule
,
value
,
callback
)
=>
{
let
params
=
null
;
if
(
props
.
id
)
{
params
=
{
id
:
parseInt
(
props
.
id
),
contact_phone
:
value
};
}
else
{
params
=
{
id
:
0
,
contact_phone
:
value
};
}
axios
.
post
(
`/apaas/system/v5/org/check`
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
callback
();
}
else
{
callback
(
new
Error
(
res
.
data
.
data
));
}
});
};
const
formRules
=
reactive
({
organization_id
:
[{
required
:
true
,
message
:
"
请选择组织
"
,
trigger
:
"
change
"
}],
business_name
:
[
{
required
:
true
,
message
:
"
请输入业务系统名称
"
,
trigger
:
"
blur
"
},
{
max
:
50
,
message
:
"
业务系统名称最大长度为50个字符
"
,
trigger
:
"
blur
"
},
{
validator
:
validateBusinessName
,
trigger
:
"
blur
"
},
name
:
[
{
required
:
true
,
message
:
"
请输入姓名
"
,
trigger
:
"
blur
"
},
{
max
:
50
,
message
:
"
姓名最大长度为50个字符
"
,
trigger
:
"
blur
"
},
],
s
ystem_role_id
:
[{
required
:
true
,
message
:
"
请选择角色
"
,
trigger
:
"
blur
"
}],
s
elect_role
:
[{
required
:
true
,
type
:
"
array
"
,
message
:
"
请选择角色
"
,
trigger
:
"
change
"
}],
system_account
:
[
{
required
:
true
,
message
:
"
请输入账号
"
,
trigger
:
"
blur
"
},
{
min
:
4
,
message
:
"
帐号长度不得低于4个字符
"
,
trigger
:
"
blur
"
},
{
max
:
20
,
message
:
"
帐号最大长度为20个字符
"
,
trigger
:
"
blur
"
},
{
validator
:
validateSystemAccount
,
trigger
:
"
blur
"
},
],
system_
phone
:
[
phone
:
[
{
required
:
true
,
message
:
"
请输入账号
"
,
trigger
:
"
blur
"
},
{
validator
:
validatePhone
,
trigger
:
"
blur
"
},
{
validator
:
checkPhoneRepet
,
trigger
:
"
blur
"
},
],
password
:
[
{
required
:
true
,
message
:
"
请输入密码
"
,
trigger
:
"
blur
"
},
...
...
@@ -251,34 +117,21 @@ const formRules = reactive({
{
required
:
true
,
message
:
"
请确认密码
"
,
trigger
:
"
blur
"
},
{
validator
:
validatePass
,
trigger
:
"
blur
"
},
],
access_address
:
[{
max
:
500
,
message
:
"
访问地址最大长度为500个字符
"
,
trigger
:
"
blur
"
}],
develop_id
:
[{
required
:
true
,
message
:
"
请选择开发厂商
"
,
trigger
:
"
change
"
}],
});
const
systemRef
=
ref
(
null
);
const
emit
=
defineEmits
([
"
action
"
]);
const
roleList
=
ref
([]);
const
firmList
=
ref
([]);
const
submitForm
=
async
()
=>
{
if
(
!
systemRef
)
return
;
await
systemRef
.
value
.
validate
((
valid
,
fields
)
=>
{
if
(
valid
)
{
emit
(
"
action
"
,
systemForm
);
}
else
{
emit
(
"
action
"
,
null
);
}
});
};
const
clearForm
=
()
=>
{
if
(
!
systemRef
)
return
;
systemRef
.
value
.
resetFields
();
systemForm
.
system_role_id
=
roleList
.
value
[
0
].
role_id
;
};
watch
(
()
=>
systemForm
.
organization_id
,
(
val
)
=>
{
getRoleList
(
val
);
}
);
const
setForm
=
(
data
)
=>
{
Object
.
assign
(
systemForm
,
data
);
console
.
log
(
"
systemForm
"
,
systemForm
);
};
const
orgData
=
ref
([]);
...
...
@@ -288,62 +141,36 @@ const treeProps = {
value
:
"
organization_id
"
,
};
const
getOrgTree
=
()
=>
{
axios
.
get
(
`/
apaas/system/v5
/org/tree`
).
then
((
res
)
=>
{
axios
.
get
(
`/
v1/api
/org/tree`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
const
orgDataTemp
=
res
.
data
.
data
||
[];
orgDataTemp
.
shift
();
orgData
.
value
=
orgDataTemp
;
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
});
};
const
copyText
=
(
data
)
=>
{
navigator
.
clipboard
.
writeText
(
data
).
then
(
function
()
{
ElMessage
.
success
(
"
复制成功
"
);
},
function
()
{}
);
};
const
resetSecret
=
()
=>
{
axios
.
get
(
`/apaas/system/v5/user/reset/secret/
${
props
.
id
}
`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
systemForm
.
appsecret
=
res
.
data
.
data
;
ElMessage
.
success
(
"
重置成功!
"
);
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
});
};
const
getRoleList
=
()
=>
{
axios
.
get
(
`/apaas/system/v5/org/select/role?is_admin=1`
).
then
((
res
)
=>
{
const
getRoleList
=
(
oid
)
=>
{
axios
.
get
(
`/v1/api/user/select/role`
,
{
params
:
{
oid
}
}).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
roleList
.
value
=
res
.
data
.
data
;
systemForm
.
system_role_id
=
roleList
.
value
[
0
].
role_id
;
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
});
};
const
getFirmList
=
()
=>
{
axios
.
get
(
`/apaas/system/v5/dictionary/developer/list`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
firmList
.
value
=
res
.
data
.
data
||
[];
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
const
validateForm
=
()
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
systemRef
.
value
.
validate
((
res
)
=>
resolve
(
res
));
});
};
onBeforeMount
(()
=>
{
getOrgTree
();
getRoleList
();
getFirmList
();
});
onMounted
(()
=>
{});
defineExpose
({
s
ubmitForm
,
clearForm
,
set
Form
});
defineExpose
({
s
ystemForm
,
setForm
,
validate
Form
});
</
script
>
src/page/main/authority/user/index.vue
View file @
a1ef092e
...
...
@@ -55,11 +55,6 @@
:stripe=
"true"
:select=
"true"
@
selectAc=
"selectRows"
>
<
template
v-slot:business_name=
"{ row }"
>
<span
@
click=
"goDetail(row)"
class=
"can_click_text"
>
{{
row
.
business_name
}}
</span>
</
template
>
<
template
v-slot:state=
"{ row }"
>
<bg-switch
@
click=
"stateChange(row)"
...
...
@@ -106,7 +101,7 @@
<bg-icon
style=
"font-size: 12px; color: #a9b1c7; margin-right: 8px; vertical-align: baseline"
icon=
"#bg-ic-circle-tips"
></bg-icon>
您正在对
<span
class=
"danger_info"
>
{{ selectedRow.
business_name
}}
</span
您正在对
<span
class=
"danger_info"
>
{{ selectedRow.
system_account
}}
</span
>
做删除操作。
</div>
<
template
#footer
>
...
...
@@ -137,7 +132,7 @@
<bg-icon
style=
"font-size: 12px; color: #a9b1c7; margin-right: 8px; vertical-align: baseline"
icon=
"#bg-ic-circle-tips"
></bg-icon>
您正在对
<span
class=
"danger_info"
>
{{ selectedRow.
business_name
}}
</span
您正在对
<span
class=
"danger_info"
>
{{ selectedRow.
system_account
}}
</span
>
做修改密码操作,修改后旧密码将无法登录。
</div>
<div>
...
...
@@ -192,13 +187,13 @@ import bgBreadcrumb from "@/components/bg-breadcrumb.vue";
const
dataTable
=
ref
(
null
);
const
headers
=
ref
([
{
label
:
"
业务系统编码
"
,
prop
:
"
business_cod
e
"
,
label
:
"
姓名
"
,
prop
:
"
nam
e
"
,
minWidth
:
160
,
},
{
label
:
"
业务系统名称
"
,
prop
:
"
business_nam
e
"
,
label
:
"
手机号
"
,
prop
:
"
phon
e
"
,
minWidth
:
160
,
},
{
...
...
@@ -207,7 +202,7 @@ const headers = ref([
},
{
label
:
"
所属组织
"
,
prop
:
"
org
anization
_name
"
,
prop
:
"
org_name
"
,
minWidth
:
180
,
},
{
...
...
@@ -227,7 +222,6 @@ const headers = ref([
},
]);
const
tableRows
=
ref
([]);
const
search
=
ref
(
""
);
const
filter
=
reactive
({
search
:
""
,
page
:
1
,
...
...
@@ -281,22 +275,22 @@ const getTableRows = () => {
})
.
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
tableRows
.
value
=
res
.
data
.
data
||
[];
tableTotal
.
value
=
res
.
data
.
total
;
tableRows
.
value
=
res
.
data
.
data
?.
org_users
?.
data
||
[];
tableTotal
.
value
=
res
.
data
.
data
?.
org_users
?.
total
||
0
;
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
});
};
const
addAccount
=
(
params
)
=>
{
const
addAccount
=
()
=>
{
router
.
push
({
path
:
"
/authority/user/add
"
,
});
};
const
handleNodeClick
=
(
data
)
=>
{
if
(
data
.
data_type
==
1
)
{
if
(
data
.
data_type
>
0
)
{
selectNode
.
value
=
data
.
organization_id
;
changePage
(
1
);
}
else
{
...
...
@@ -326,7 +320,6 @@ const getOrgTree = () => {
orgData
.
value
=
res
.
data
.
data
||
[];
// orgData.value.shift();
const
orgList
=
searchOrg
(
orgData
.
value
);
console
.
log
(
"
orgList
"
,
orgList
);
if
(
route
.
query
.
organization_id
)
{
searchItem
(
orgData
.
value
,
route
.
query
.
organization_id
);
}
else
{
...
...
@@ -386,9 +379,10 @@ const filterNode = (value, data) => {
};
const
stateChange
=
(
row
)
=>
{
console
.
log
(
"
row
"
,
row
);
const
params
=
{
id
:
row
.
id
,
state
:
row
.
state
==
1
?
0
:
1
,
state
:
row
.
state
,
};
axios
.
post
(
`/v1/api/user/updateState`
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
...
...
@@ -544,7 +538,7 @@ const editConfirm = () => {
const
selectRows
=
(
data
)
=>
{
selected
.
value
=
data
.
selection
;
selectedName
.
value
=
data
.
selection
.
map
((
item
)
=>
item
.
business_name
);
selectedName
.
value
=
data
.
selection
.
map
((
item
)
=>
item
.
system_account
);
};
const
clearSelected
=
()
=>
{
...
...
src/page/main/system-admin/dict/index.vue
View file @
a1ef092e
...
...
@@ -14,11 +14,11 @@
<div
class=
"type_station bg-scroll"
>
<div
class=
"type-box"
:class=
"
{ 'current-type': nodeClassifyId == item.class
ify
_id }"
:class=
"
{ 'current-type': nodeClassifyId == item.class_id }"
@click="nodeClick(item)"
v-for="(item, index) in typeList"
:key="'type' + index + 200">
{{
item
.
class
ify
_name
}}
{{
item
.
class_name
}}
</div>
</div>
</div>
...
...
@@ -32,7 +32,7 @@
<!--
<bg-icon
style=
"font-size: 12px; color: #fff; margin-right: 8px"
icon=
"#bg-ic-add"
></bg-icon>
-->
返回上级
</el-button>
<el-button
type=
"primary"
@
click=
"register"
>
<el-button
v-if=
"nodeClassifyId !== 2"
type=
"primary"
@
click=
"register"
>
<bg-icon
style=
"font-size: 12px; color: #fff; margin-right: 8px"
icon=
"#bg-ic-add"
></bg-icon>
新增
</el-button>
...
...
@@ -42,7 +42,7 @@
<div
class=
"left-filter filter_list"
>
<div
class=
"filter_item"
>
<span
class=
"filter_title"
>
状态
</span>
<el-select
v-model=
"filter.stat
e
"
placeholder=
"请选择"
style=
"width: 300px"
>
<el-select
v-model=
"filter.stat
us
"
placeholder=
"请选择"
style=
"width: 300px"
>
<el-option
v-for=
"(item, index) in stateOptions"
:key=
"'pushOptions' + index"
...
...
@@ -69,27 +69,24 @@
{{
row
.
name
}}
</span>
</
template
>
<
template
v-slot:updated_time=
"{ row }"
>
{{
row
.
updated_time
.
split
(
"
+
"
)[
0
].
replace
(
"
T
"
,
"
"
).
replace
(
"
Z
"
,
"
"
)
}}
</
template
>
<
template
v-slot:state=
"{ row }"
>
<
template
v-slot:status=
"{ row }"
>
<bg-switch
@
click=
"changeUseRow(row)"
:labels=
"['否', '是']"
:values=
"[
0
, 1]"
v-model=
"row.stat
e
"
></bg-switch>
:values=
"[
2
, 1]"
v-model=
"row.stat
us
"
></bg-switch>
</
template
>
<
template
v-slot:action=
"{ row }"
>
<!-- 除技术类型之外的字典可以删除 -->
<bg-table-btns2
:limit=
"3"
v-if=
"nodeClassifyId !==
'263758a4-0349-4d49-a816-e8ff8d33a8bb'
"
>
<bg-table-btn
@
click=
"edit_row(row)"
:disabled=
"row.stat
e
== 1"
>
编辑
</bg-table-btn>
<bg-table-btn
@
click=
"delete_row(row)"
:disabled=
"row.stat
e
== 1"
>
删除
</bg-table-btn>
<bg-table-btns2
:limit=
"3"
v-if=
"nodeClassifyId !==
2
"
>
<bg-table-btn
@
click=
"edit_row(row)"
:disabled=
"row.stat
us
== 1"
>
编辑
</bg-table-btn>
<bg-table-btn
@
click=
"delete_row(row)"
:disabled=
"row.stat
us
== 1"
>
删除
</bg-table-btn>
<bg-table-btn
@
click=
"moveRow(row, 1)"
:disabled=
"!row.canMoveUp"
>
上移
</bg-table-btn>
<bg-table-btn
@
click=
"moveRow(row, 2)"
:disabled=
"!row.canMoveDown"
>
下移
</bg-table-btn>
</bg-table-btns2>
<!-- 技术类型字典不可删除 -->
<bg-table-btns2
:limit=
"3"
v-else
>
<bg-table-btn
@
click=
"edit_row(row)"
:disabled=
"row.stat
e
== 1"
>
编辑
</bg-table-btn>
<bg-table-btn
@
click=
"edit_row(row)"
:disabled=
"row.stat
us
== 1"
>
编辑
</bg-table-btn>
<bg-table-btn
@
click=
"moveRow(row, 1)"
:disabled=
"!row.canMoveUp"
>
上移
</bg-table-btn>
<bg-table-btn
@
click=
"moveRow(row, 2)"
:disabled=
"!row.canMoveDown"
>
下移
</bg-table-btn>
</bg-table-btns2>
...
...
@@ -111,23 +108,32 @@
<el-dialog
class=
"dialog_box"
:title=
"addType == 1 ? '新增' : '编辑'"
v-model=
"addDialog"
width=
"758px"
>
<el-form
ref=
"bgForm"
:model=
"formData"
:rules=
"rules"
label-width=
"80px"
class=
"bg_form"
>
<el-form-item
label=
"名称"
prop=
"name"
>
<el-input
v-model.trim=
"formData.name"
show-word-limit
:maxlength=
"
nodeClassifyId == 'eb9c7d70-c123-42b7-8e61-dde1b022b669'
? 6
: nodeClassifyId == 'efd9ec3b-7f18-49e2-9d88-bcca022243bb'
? 4
: nodeClassifyId == '949a1138-4995-464e-97a9-424d097eb271'
? 2
: 20
"
placeholder=
"请输入名称"
></el-input>
<el-input
v-model.trim=
"formData.name"
show-word-limit
maxlength=
"6"
placeholder=
"请输入名称"
></el-input>
</el-form-item>
<el-form-item
v-if=
"nodeClassifyId === 3"
label=
"单位"
prop=
"unit"
:rules=
"[{ required: true, message: '请输入单位', trigger: 'blur' }]"
>
<el-input
v-model.trim=
"formData.unit"
show-word-limit
maxlength=
"4"
placeholder=
"请输入单位"
></el-input>
</el-form-item>
<el-form-item
v-if=
"nodeClassifyId === 3"
label=
"值域上限"
prop=
"max_val"
:rules=
"[{ validator: validateNumber, trigger: 'blur' }]"
>
<el-input
v-model.trim=
"formData.max_val"
placeholder=
"请输入正整数"
></el-input>
</el-form-item>
<el-form-item
label=
"描述"
prop=
"describe"
>
<el-form-item
v-if=
"nodeClassifyId === 3"
label=
"值域下限"
prop=
"min_val"
:rules=
"[{ validator: validateNumber, trigger: 'blur' }]"
>
<el-input
v-model.trim=
"formData.min_val"
placeholder=
"请输入正整数"
></el-input>
</el-form-item>
<el-form-item
label=
"描述"
prop=
"description"
>
<el-input
v-model=
"formData.descri
be
"
v-model=
"formData.descri
ption
"
type=
"textarea"
:autosize=
"{ minRows: 5 }"
show-word-limit
...
...
@@ -135,12 +141,12 @@
resize=
"vertical"
placeholder=
"请输入描述"
></el-input>
</el-form-item>
<el-form-item
label=
"是否启用"
prop=
"stat
e
"
style=
"margin-bottom: 0px"
>
<el-form-item
label=
"是否启用"
prop=
"stat
us
"
style=
"margin-bottom: 0px"
>
<el-switch
class=
"bg-switch-ele"
v-model=
"formData.stat
e
"
v-model=
"formData.stat
us
"
:active-value=
"1"
:inactive-value=
"
0
"
:inactive-value=
"
2
"
inline-prompt
active-text=
"是"
inactive-text=
"否"
/>
...
...
@@ -183,6 +189,14 @@ import { Search } from "@element-plus/icons-vue";
import
bgBreadcrumb
from
"
@/components/bg-breadcrumb.vue
"
;
const
bgForm
=
ref
(
null
);
const
validateNumber
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
!==
""
&&
/^
(?:[
1-9
]\d
*
)
$/
.
test
(
value
)
==
false
)
{
callback
(
new
Error
(
"
请输入正整数
"
));
}
else
{
callback
();
}
};
const
headers
=
computed
(()
=>
{
let
_headers
=
[
{
...
...
@@ -191,17 +205,17 @@ const headers = computed(() => {
},
{
label
:
"
描述
"
,
prop
:
"
descri
be
"
,
prop
:
"
descri
ption
"
,
minWidth
:
360
,
},
{
label
:
"
更新时间
"
,
prop
:
"
updated_
time
"
,
prop
:
"
updated_
at
"
,
width
:
220
,
},
{
label
:
"
是否启用
"
,
prop
:
"
stat
e
"
,
prop
:
"
stat
us
"
,
},
{
label
:
"
操作
"
,
...
...
@@ -211,18 +225,25 @@ const headers = computed(() => {
},
];
if
(
state
.
nodeClassifyId
===
"
59315100-5c2a-4381-83fe-32934605f0a9
"
)
{
_headers
.
splice
(
1
,
0
,
{
label
:
"
版本数
"
,
prop
:
"
total_children
"
,
});
}
if
(
state
.
nodeClassifyId
===
"
b3a083ee-a8c1-8ca4-f9a1-ea01692a0f1a
"
)
{
_headers
.
splice
(
1
,
0
,
{
label
:
"
服务名称
"
,
prop
:
"
service_name
"
,
});
if
(
state
.
nodeClassifyId
===
3
)
{
_headers
.
splice
(
1
,
0
,
{
label
:
"
单位
"
,
prop
:
"
unit
"
,
},
{
label
:
"
值域上限
"
,
prop
:
"
max_val
"
,
},
{
label
:
"
值域下限
"
,
prop
:
"
min_val
"
,
}
);
}
return
_headers
;
});
const
state
=
reactive
({
...
...
@@ -230,15 +251,14 @@ const state = reactive({
typeList
:
[],
// 分类数据
typeKeyword
:
""
,
// 分类删选关键词
nodeClassifyId
:
null
,
// 当前选中分类的uuid 用于新增字典
nodeId
:
null
,
// 当前选中分类的id 用于请求列表
timer
:
null
,
// 定时器
tableRows
:
[],
// 表格数据
tableTotal
:
0
,
// 表格数据条数
filter
:
{
stat
e
:
""
,
stat
us
:
""
,
search
:
""
,
page
:
1
,
limit
:
10
,
page_size
:
10
,
},
// 表格筛选项
stateOptions
:
[
{
...
...
@@ -260,17 +280,19 @@ const state = reactive({
addDialog
:
false
,
formData
:
{
name
:
""
,
describe
:
""
,
state
:
1
,
p_dict_id
:
""
,
description
:
""
,
status
:
1
,
unit
:
""
,
max_val
:
""
,
min_val
:
""
,
},
rules
:
{
name
:
[{
required
:
true
,
message
:
"
请输入名称
"
,
trigger
:
"
blur
"
}],
descri
be
:
[
descri
ption
:
[
{
required
:
true
,
message
:
"
请输入描述
"
,
trigger
:
"
blur
"
},
{
max
:
200
,
message
:
"
描述最大为200字
"
,
trigger
:
"
blur
"
},
],
stat
e
:
[{
required
:
true
,
message
:
"
请选择是否启用
"
,
trigger
:
"
change
"
}],
stat
us
:
[{
required
:
true
,
message
:
"
请选择是否启用
"
,
trigger
:
"
change
"
}],
},
fatherRow
:
null
,
});
...
...
@@ -289,15 +311,14 @@ const backDict = () => {
changePage
(
1
);
};
const
nodeClick
=
(
item
)
=>
{
state
.
nodeId
=
item
.
id
;
dictLevel
.
value
=
1
;
state
.
fatherRow
=
null
;
state
.
nodeClassifyId
=
item
.
class
ify
_id
;
state
.
nodeClassifyId
=
item
.
class_id
;
state
.
filter
=
{
stat
e
:
""
,
stat
us
:
""
,
search
:
""
,
page
:
1
,
limit
:
10
,
page_size
:
10
,
};
changePage
(
1
);
};
// 切换字典分类
...
...
@@ -313,18 +334,15 @@ const searchType = () => {
const
getTypeList
=
()
=>
{
let
params
=
{
name
:
state
.
typeKeyword
,
class_
name
:
state
.
typeKeyword
,
};
axios
.
get
(
`/
apaas/system/v5/dictionary/classify/l
ist`
,
{
params
})
.
get
(
`/
v1/api/dict/classL
ist`
,
{
params
})
.
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
state
.
typeList
=
res
.
data
.
data
||
[];
state
.
nodeClassifyId
=
state
.
typeList
[
0
].
classify_id
||
null
;
state
.
nodeId
=
state
.
typeList
[
0
].
id
||
null
;
if
(
state
.
nodeId
)
{
getTableRows
();
}
state
.
nodeClassifyId
=
state
.
typeList
[
0
].
class_id
||
null
;
getTableRows
();
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
...
...
@@ -345,19 +363,18 @@ const filterAction = () => {
const
filterClear
=
()
=>
{
state
.
filter
=
{
stat
e
:
""
,
stat
us
:
""
,
search
:
""
,
limit
:
10
,
page_size
:
10
,
page
:
1
,
};
changePage
(
1
);
};
// 重置筛选项
const
getTableRows
=
()
=>
{
let
params
=
{
...
state
.
filter
};
params
.
id
=
state
.
nodeId
;
let
params
=
{
...
state
.
filter
,
class
:
state
.
nodeClassifyId
};
axios
.
get
(
`/
apaas/system/v5/dictionary/lis
t`
,
{
.
get
(
`/
v1/api/dic
t`
,
{
params
,
})
.
then
((
res
)
=>
{
...
...
@@ -388,13 +405,13 @@ const getTableRows = () => {
};
// 获取表格数据
const
changeUseRow
=
(
row
)
=>
{
axios
.
put
(
`/
apaas/system/v5/dictionary/state?id=
${
row
.
id
}
&state=
${
row
.
state
}
`
).
then
((
res
)
=>
{
axios
.
put
(
`/
v1/api/dict/status?id=
${
row
.
id
}
&status=
${
row
.
status
}
`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
changePage
(
1
);
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
row
.
stat
e
=
row
.
state
==
0
?
1
:
0
;
row
.
stat
us
=
row
.
status
==
2
?
1
:
2
;
}
});
};
// 启用禁用
...
...
@@ -405,16 +422,18 @@ const changePage = (page) => {
};
// 改变页码
const
changeSize
=
(
size
)
=>
{
state
.
filter
.
limit
=
size
;
state
.
filter
.
page_size
=
size
;
changePage
(
1
);
};
// 改变每页条数
const
register
=
()
=>
{
state
.
formData
=
{
name
:
""
,
describe
:
""
,
state
:
1
,
p_dict_id
:
state
.
fatherRow
?
state
.
fatherRow
.
dict_id
:
""
,
description
:
""
,
status
:
1
,
unit
:
""
,
max_val
:
""
,
min_val
:
""
,
};
if
(
state
.
bgForm
)
{
nextTick
().
then
(()
=>
{
...
...
@@ -430,24 +449,24 @@ const register = () => {
};
// 新增字典按钮
const
edit_row
=
(
row
)
=>
{
axios
.
get
(
`/apaas/system/v5/dictionary/
${
row
.
id
}
`
)
.
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
state
.
actionRow
=
res
.
data
.
data
;
state
.
formData
=
{
name
:
state
.
actionRow
.
name
,
describe
:
state
.
actionRow
.
describe
,
state
:
state
.
actionRow
.
state
,
p_dict_id
:
state
.
actionRow
.
p_dict_id
,
};
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
})
.
catch
((
err
)
=>
{
console
.
log
(
err
);
});
state
.
actionRow
=
row
;
if
(
row
.
class
===
3
)
{
state
.
formData
=
{
name
:
row
.
name
,
unit
:
row
.
unit
,
max_val
:
row
.
max_val
,
min_val
:
row
.
min_val
,
description
:
row
.
description
,
status
:
row
.
status
,
};
}
else
{
state
.
formData
=
{
name
:
row
.
name
,
description
:
row
.
description
,
status
:
row
.
status
,
};
}
if
(
state
.
bgForm
)
{
nextTick
().
then
(()
=>
{
state
.
bgForm
.
validate
((
valid
)
=>
{
...
...
@@ -467,10 +486,15 @@ const addConfirm = () => {
if
(
state
.
addType
==
1
)
{
// 新增
let
params
=
{
class
ify_id
:
state
.
nodeClassifyId
,
class
:
state
.
nodeClassifyId
,
...
state
.
formData
,
};
axios
.
post
(
`/apaas/system/v5/dictionary/add`
,
params
).
then
((
res
)
=>
{
if
(
state
.
nodeClassifyId
!==
3
)
{
delete
params
.
min_val
;
delete
params
.
max_val
;
delete
params
.
unit
;
}
axios
.
post
(
`/v1/api/dict`
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
state
.
addDialog
=
false
;
...
...
@@ -483,9 +507,15 @@ const addConfirm = () => {
// 编辑
let
params
=
{
id
:
state
.
actionRow
.
id
,
class
:
state
.
actionRow
.
class
,
...
state
.
formData
,
};
axios
.
put
(
`/apaas/system/v5/dictionary/update`
,
params
).
then
((
res
)
=>
{
if
(
state
.
actionRow
.
class
!==
3
)
{
delete
params
.
min_val
;
delete
params
.
max_val
;
delete
params
.
unit
;
}
axios
.
put
(
`/v1/api/dict`
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
state
.
addDialog
=
false
;
...
...
@@ -505,7 +535,7 @@ const delete_row = (row) => {
};
// 删除按钮
const
deleteData
=
()
=>
{
axios
.
delete
(
`/
apaas/system/v5/dictionary/
${
state
.
actionRow
.
id
}
`
).
then
((
res
)
=>
{
axios
.
delete
(
`/
v1/api/dict?id=
${
state
.
actionRow
.
id
}
`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
state
.
dialogDelete
=
false
;
...
...
@@ -542,7 +572,7 @@ const moveRow = (row, type) => {
},
];
axios
.
put
(
`/
apaas/system/v5/dictionary
/sort`
,
[...
params
])
.
put
(
`/
v1/api/dict
/sort`
,
[...
params
])
.
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment