Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
zhu
dataease
Commits
c6373445
提交
c6373445
authored
5月 18, 2021
作者:
taojinlong
浏览文件
操作
浏览文件
下载
差异文件
resolve conflict
上级
776fa22c
867ae7cb
显示空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
374 行增加
和
63 行删除
+374
-63
DefaultLicenseService.java
...va/io/dataease/commons/license/DefaultLicenseService.java
+2
-2
AboutController.java
...src/main/java/io/dataease/controller/AboutController.java
+32
-0
AboutService.java
backend/src/main/java/io/dataease/service/AboutService.java
+54
-0
about.js
frontend/src/api/system/about.js
+24
-0
DataEase-color.png
frontend/src/assets/DataEase-color.png
+0
-0
license_header.png
frontend/src/assets/license_header.png
+0
-0
en.js
frontend/src/lang/en.js
+5
-2
tw.js
frontend/src/lang/tw.js
+5
-2
zh.js
frontend/src/lang/zh.js
+5
-2
Licbar.vue
frontend/src/layout/components/Licbar.vue
+5
-1
Topbar.vue
frontend/src/layout/components/Topbar.vue
+3
-31
index.vue
frontend/src/layout/index.vue
+5
-5
AddExcel.vue
frontend/src/views/dataset/add/AddExcel.vue
+5
-0
index.vue
frontend/src/views/link/generate/index.vue
+1
-1
index.vue
frontend/src/views/login/index.vue
+12
-12
index.vue
frontend/src/views/system/about/index.vue
+211
-0
index.vue
frontend/src/views/system/menu/index.vue
+2
-2
index.vue
frontend/src/views/system/user/index.vue
+3
-3
没有找到文件。
backend/src/main/java/io/dataease/commons/license/DefaultLicenseService.java
浏览文件 @
c6373445
...
...
@@ -21,8 +21,8 @@ public class DefaultLicenseService {
private
static
final
String
LICENSE_ID
=
"fit2cloud_license"
;
private
static
final
String
validatorUtil
=
"/usr/bin/validator"
;
private
static
final
String
product
=
"
cmp
"
;
private
static
final
String
[]
NO_PLU_LIMIT_MODULES
=
new
String
[]{
"dashboard"
,
"gateway"
};
private
static
final
String
product
=
"
dataease
"
;
/*private static final String[] NO_PLU_LIMIT_MODULES = new String[]{"dashboard", "gateway"};*/
public
F2CLicenseResponse
validateLicense
(
String
product
,
String
licenseKey
){
List
<
String
>
command
=
new
ArrayList
<
String
>();
...
...
backend/src/main/java/io/dataease/controller/AboutController.java
0 → 100644
浏览文件 @
c6373445
package
io
.
dataease
.
controller
;
import
io.dataease.commons.license.F2CLicenseResponse
;
import
io.dataease.service.AboutService
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
java.util.Map
;
@RequestMapping
(
"/about"
)
@RestController
public
class
AboutController
{
@Resource
private
AboutService
aboutService
;
@PostMapping
(
"/license/update"
)
public
F2CLicenseResponse
updateLicense
(
@RequestBody
Map
<
String
,
String
>
map
)
{
return
aboutService
.
updateLicense
(
map
.
get
(
"license"
));
}
@PostMapping
(
"/license/validate"
)
public
F2CLicenseResponse
validateLicense
(
@RequestBody
Map
<
String
,
String
>
map
)
{
return
aboutService
.
validateLicense
(
map
.
get
(
"license"
));
}
@GetMapping
(
"/build/version"
)
public
Object
getBuildVersion
()
{
return
aboutService
.
getBuildVersion
();
}
}
backend/src/main/java/io/dataease/service/AboutService.java
0 → 100644
浏览文件 @
c6373445
package
io
.
dataease
.
service
;
import
io.dataease.commons.license.DefaultLicenseService
;
import
io.dataease.commons.license.F2CLicenseResponse
;
import
io.dataease.commons.utils.CommonBeanFactory
;
import
io.dataease.commons.utils.LogUtil
;
import
org.apache.commons.io.FileUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.core.env.Environment
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.io.File
;
import
java.util.Optional
;
@Service
public
class
AboutService
{
private
static
final
String
BUILD_VERSION
=
"/opt/fit2cloud/conf/version"
;
private
static
final
String
product
=
"dataease"
;
@Resource
private
DefaultLicenseService
defaultLicenseService
;
public
F2CLicenseResponse
updateLicense
(
String
licenseKey
)
{
F2CLicenseResponse
f2CLicenseResponse
=
defaultLicenseService
.
updateLicense
(
product
,
licenseKey
);
return
f2CLicenseResponse
;
}
public
F2CLicenseResponse
validateLicense
(
String
licenseKey
)
{
if
(
StringUtils
.
isNotBlank
(
licenseKey
))
{
return
defaultLicenseService
.
validateLicense
(
product
,
licenseKey
);
}
else
{
return
defaultLicenseService
.
validateLicense
();
}
}
public
String
getBuildVersion
()
{
try
{
File
file
=
new
File
(
BUILD_VERSION
);
if
(
file
.
exists
())
{
String
version
=
FileUtils
.
readFileToString
(
file
,
"UTF-8"
);
if
(
StringUtils
.
isNotBlank
(
version
))
{
return
version
;
}
}
String
property
=
CommonBeanFactory
.
getBean
(
Environment
.
class
).
getProperty
(
"cmp.version"
);
String
result
=
Optional
.
ofNullable
(
property
).
orElse
(
"V1.0"
);
return
result
;
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
"failed to get build version."
,
e
);
}
return
"unknown"
;
}
}
frontend/src/api/system/about.js
0 → 100644
浏览文件 @
c6373445
import
request
from
'@/utils/request'
export
function
validate
(
data
)
{
return
request
({
url
:
'/about/license/validate'
,
method
:
'post'
,
data
})
}
export
function
buildVersion
()
{
return
request
({
url
:
'/about/build/version'
,
method
:
'get'
})
}
export
function
updateInfo
(
data
)
{
return
request
({
url
:
'/about/license/update'
,
method
:
'post'
,
data
})
}
frontend/src/assets/DataEase-color.png
0 → 100644
浏览文件 @
c6373445
12.7 KB
frontend/src/assets/license_header.png
0 → 100644
浏览文件 @
c6373445
31.8 KB
frontend/src/lang/en.js
浏览文件 @
c6373445
...
...
@@ -82,7 +82,9 @@ export default {
thirdparty
:
'Or connect with'
,
thirdpartyTips
:
'Can not be simulated on local, so please combine you own business simulation! ! !'
,
expires
:
'Login token expired, please login again'
,
tokenError
:
'Token error, please login again'
tokenError
:
'Token error, please login again'
,
username_error
:
'Please enter the correct user name'
,
password_error
:
'The password can not be less than 6 digits'
},
commons
:
{
icon
:
'Icon'
,
...
...
@@ -776,7 +778,8 @@ export default {
edit_custom_table
:
'Edit self help dataset'
,
edit_field
:
'Edit Field'
,
preview_100_data
:
'Show 100 lines data'
,
invalid_table_check
:
'Please sync data first.'
invalid_table_check
:
'Please sync data first.'
,
parse_error
:
'Parse Error'
},
datasource
:
{
datasource
:
'Data Source'
,
...
...
frontend/src/lang/tw.js
浏览文件 @
c6373445
...
...
@@ -82,7 +82,9 @@ export default {
thirdparty
:
'第三方登陸'
,
thirdpartyTips
:
'本地不能模拟,请结合自己业务进行模拟!!!'
,
expires
:
'登陸信息过期,请重新登陸'
,
tokenError
:
'信息错误,请重新登陸'
tokenError
:
'信息错误,请重新登陸'
,
username_error
:
'請輸入正確的用戶名'
,
password_error
:
'密碼不小於6位'
},
commons
:
{
icon
:
'圖標'
,
...
...
@@ -776,7 +778,8 @@ export default {
edit_custom_table
:
'編輯自助數據集'
,
edit_field
:
'編輯自斷'
,
preview_100_data
:
'顯示前100行數據'
,
invalid_table_check
:
'非直連數據集請先完成數據同步'
invalid_table_check
:
'非直連數據集請先完成數據同步'
,
parse_error
:
'解析錯誤'
},
datasource
:
{
datasource
:
'數據源'
,
...
...
frontend/src/lang/zh.js
浏览文件 @
c6373445
...
...
@@ -82,7 +82,9 @@ export default {
thirdparty
:
'第三方登录'
,
thirdpartyTips
:
'本地不能模拟,请结合自己业务进行模拟!!!'
,
expires
:
'登录token过期,请重新登录'
,
tokenError
:
'token错误,请重新登录'
tokenError
:
'token错误,请重新登录'
,
username_error
:
'请输入正确的用户名'
,
password_error
:
'密码不小于6位'
},
commons
:
{
icon
:
'图标'
,
...
...
@@ -776,7 +778,8 @@ export default {
edit_custom_table
:
'编辑自助数据集'
,
edit_field
:
'编辑字段'
,
preview_100_data
:
'显示前100行数据'
,
invalid_table_check
:
'非直连数据集请先完成数据同步'
invalid_table_check
:
'非直连数据集请先完成数据同步'
,
parse_error
:
'解析错误'
},
datasource
:
{
datasource
:
'数据源'
,
...
...
frontend/src/layout/components/Licbar.vue
浏览文件 @
c6373445
...
...
@@ -50,7 +50,11 @@ export default {
background-color
:
#c92100
;
color
:
#fff
;
text-align
:
center
;
padding
:
6px
11px
;
/* padding: 6px 11px; */
position
:
fixed
;
z-index
:
1002
;
top
:
0
;
width
:
100%
;
}
</
style
>
frontend/src/layout/components/Topbar.vue
浏览文件 @
c6373445
...
...
@@ -43,51 +43,23 @@
{{ name }}
<i
class=
"el-icon-arrow-down el-icon--right"
/>
</span>
<el-dropdown-menu
slot=
"dropdown"
>
<router-link
to=
"/person-info/index"
>
<el-dropdown-item>
{{ $t('commons.personal_info') }}
</el-dropdown-item>
</router-link>
<router-link
to=
"/person-pwd/index"
>
<el-dropdown-item>
{{ $t('user.reset_password') }}
</el-dropdown-item>
</router-link>
<a
href=
"https://panjiachen.github.io/vue-element-admin-site/#/"
target=
"_blank"
>
<el-dropdown-item>
{{ $t('commons.help_documentation') }}
</el-dropdown-item>
</a>
<a
href=
"https://fit2cloud.com/"
target=
"_blank"
>
<el-dropdown-item>
{{ $t('commons.about_us') }}
</el-dropdown-item>
</a>
<router-link
to=
"/system/about"
>
<el-dropdown-item>
{{ $t('commons.about_us') }}
</el-dropdown-item>
</router-link>
<el-dropdown-item
divided
@
click
.
native=
"logout"
>
<span
style=
"display:block;"
>
{{ $t('commons.exit_system') }}
</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!-- <el-dropdown class="avatar-container" trigger="click">
<div class="avatar-wrapper">
<div class="de-user-avatar">
<span>
{{ name }}
</span>
</div>
</div>
<el-dropdown-menu slot="dropdown" class="user-dropdown">
<router-link to="/">
<el-dropdown-item>Home</el-dropdown-item>
</router-link>
<a href="https://github.com/PanJiaChen/vue-admin-template/" target="_blank">
<el-dropdown-item>Github</el-dropdown-item>
</a>
<a href="https://panjiachen.github.io/vue-element-admin-site/#/" target="_blank">
<el-dropdown-item>Docs</el-dropdown-item>
</a>
<el-dropdown-item divided @click.native="logout">
<span style="display:block;">Log Out</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown> -->
</div>
</div>
</template>
...
...
frontend/src/layout/index.vue
浏览文件 @
c6373445
<
template
>
<div
:class=
"classObj"
class=
"app-wrapper"
>
<
!--
<licbar
/>
--
>
<
licbar
/
>
<topbar
/>
<div
v-if=
"device==='mobile'&&sidebar.opened"
class=
"drawer-bg"
@
click=
"handleClickOutside"
/>
<sidebar
v-if=
"!sidebar.hide"
class=
"sidebar-container"
/>
...
...
@@ -18,8 +18,8 @@
<
script
>
import
RightPanel
from
'@/components/RightPanel'
//
import { Sidebar, Settings, AppMain, Topbar, Licbar } from './components'
import
{
Sidebar
,
Settings
,
AppMain
,
Topbar
}
from
'./components'
import
{
Sidebar
,
Settings
,
AppMain
,
Topbar
,
Licbar
}
from
'./components'
//
import { Sidebar, Settings, AppMain, Topbar } from './components'
import
ResizeMixin
from
'./mixin/ResizeHandler'
export
default
{
...
...
@@ -29,8 +29,8 @@ export default {
Sidebar
,
Settings
,
AppMain
,
Topbar
//
Licbar
Topbar
,
Licbar
},
mixins
:
[
ResizeMixin
],
computed
:
{
...
...
frontend/src/views/dataset/add/AddExcel.vue
浏览文件 @
c6373445
...
...
@@ -132,6 +132,11 @@ export default {
},
uploadFail
(
response
,
file
,
fileList
)
{
this
.
uploading
=
false
this
.
$message
({
type
:
'error'
,
message
:
this
.
$t
(
'dataset.parse_error'
),
showClose
:
true
})
},
uploadSuccess
(
response
,
file
,
fileList
)
{
// console.log(response)
...
...
frontend/src/views/link/generate/index.vue
浏览文件 @
c6373445
...
...
@@ -32,7 +32,7 @@
<div
v-if=
"valid"
class=
"auth-root-class"
>
<span
slot=
"footer"
>
<el-button
v-if=
"!form.enablePwd"
v-clipboard:copy=
"form.uri"
v-clipboard:success=
"onCopy"
v-clipboard:error=
"onError"
type=
"primary"
>
复制链接
及
</el-button>
<el-button
v-if=
"!form.enablePwd"
v-clipboard:copy=
"form.uri"
v-clipboard:success=
"onCopy"
v-clipboard:error=
"onError"
type=
"primary"
>
复制链接
</el-button>
<el-button
v-if=
"form.enablePwd"
v-clipboard:copy=
"form.uri + ' 密码: '+ form.pwd"
v-clipboard:success=
"onCopy"
v-clipboard:error=
"onError"
type=
"primary"
>
复制链接及密码
</el-button>
</span>
...
...
frontend/src/views/login/index.vue
浏览文件 @
c6373445
...
...
@@ -5,12 +5,12 @@
<el-col
:span=
"12"
>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"loginRules"
size=
"default"
>
<div
class=
"login-logo"
>
<img
v-if=
"!loginLogoUrl"
src=
"@/assets/DataEase-
black
.png"
alt=
""
>
<img
v-if=
"!loginLogoUrl"
src=
"@/assets/DataEase-
color
.png"
alt=
""
>
<img
v-else
:src=
"loginLogoUrl"
alt=
""
>
</div>
<
div
class=
"login-title"
>
{{
uiInfo
&&
uiInfo
[
'ui.loginTitle'
]
&&
uiInfo
[
'ui.loginTitle'
].
paramValue
||
$t
(
'login.title'
)
}}
<
/div
>
<
!--
<div
class=
"login-title"
>
--
>
<!-- <!–
{{
uiInfo
&&
uiInfo
[
'ui.loginTitle'
]
&&
uiInfo
[
'ui.loginTitle'
].
paramValue
||
$t
(
'login.title'
)
}}
–>
-->
<
!--
</div>
--
>
<div
class=
"login-border"
/>
<div
class=
"login-welcome"
>
{{
$t
(
'login.welcome'
)
+
(
uiInfo
&&
uiInfo
[
'ui.title'
]
&&
uiInfo
[
'ui.title'
].
paramValue
||
'DATAEASE'
)
}}
...
...
@@ -64,10 +64,10 @@ export default {
if
(
res
.
data
)
{
callback
()
}
else
{
callback
(
new
Error
(
'Please enter the correct user name
'
))
callback
(
this
.
$t
(
'login.username_error
'
))
}
}).
catch
(()
=>
{
callback
(
new
Error
(
'Please enter the correct user name
'
))
callback
(
this
.
$t
(
'login.username_error
'
))
})
// if (!validUsername(value)) {
// callback(new Error('Please enter the correct user name'))
...
...
@@ -77,7 +77,7 @@ export default {
}
const
validatePassword
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
.
length
<
6
)
{
callback
(
new
Error
(
'The password can not be less than 6 digits
'
))
callback
(
this
.
$t
(
'login.password_error
'
))
}
else
{
callback
()
}
...
...
@@ -178,8 +178,8 @@ export default {
}
.login-logo
{
margin-top
:
3
0px
;
margin-left
:
30px
;
margin-top
:
5
0px
;
text-align
:
center
;
@media
only
screen
and
(
max-width
:
1280px
)
{
margin-top
:
20px
;
}
...
...
@@ -208,7 +208,7 @@ export default {
width
:
80px
;
background
:
$--color-primary
;
@media
only
screen
and
(
max-width
:
1280px
)
{
margin
:
10px
auto
1
0px
;
margin
:
20px
auto
2
0px
;
}
}
...
...
@@ -225,11 +225,11 @@ export default {
}
.login-form
{
margin-top
:
3
0px
;
margin-top
:
4
0px
;
padding
:
0
40px
;
@media
only
screen
and
(
max-width
:
1280px
)
{
margin-top
:
1
0px
;
margin-top
:
2
0px
;
}
&
:
:
v-deep
.
el-input__inner
{
...
...
frontend/src/views/system/about/index.vue
0 → 100644
浏览文件 @
c6373445
<
template
>
<layout-content>
<div>
<el-card
class=
"box-card about-card"
>
<div
slot=
"header"
class=
"clearfix license-header"
>
<img
src=
"@/assets/DataEase-white.png"
alt=
""
style=
"height: 80px;width: 400px;padding-top: 15px;"
>
</div>
<div
class=
"license-content"
>
<div
v-if=
"license.status === 'Fail'"
>
License 无效
</div>
<div
v-if=
"license.status !== 'Fail'"
>
<table>
<tr>
<th>
授权给
</th>
<td>
{{
license
.
corporation
}}
</td>
</tr>
<tr>
<th>
过期时间
</th>
<td>
<label
v-if=
"license.status === 'expired'"
style=
"color: red"
>
{{
license
.
expired
}}
(已过期)
</label>
<label
v-if=
"license.status === 'valid'"
>
{{
license
.
expired
}}
</label>
</td>
</tr>
<tr>
<th>
授权数量
</th>
<td>
{{
license
.
count
}}
</td>
</tr>
<tr>
<th>
版本
</th>
<td>
<span
v-if=
"license.edition"
>
<span
v-if=
"license.edition === 'Standard'"
>
标准版
</span>
<span
v-if=
"license.edition === 'Enterprise'"
>
企业版
</span>
</span>
</td>
</tr>
<tr>
<th>
版本号
</th>
<td>
<span>
{{
build
}}
</span>
</td>
</tr>
</table>
</div>
<div
class=
"md-padding"
/>
<div
layout=
"row"
layout-align=
"space-between center"
class=
"lic_rooter"
>
<el-upload
action=
""
:multiple=
"false"
:show-file-list=
"false"
:file-list=
"fileList"
accept=
".key"
name=
"file"
:before-upload=
"beforeUpload"
>
<a
class=
"md-primary pointer"
>
更新 License
</a>
</el-upload>
<a
class=
"md-primary pointer"
@
click=
"support"
>
获取技术支持
</a>
</div>
</div>
</el-card>
</div>
</layout-content>
</
template
>
<
script
>
import
LayoutContent
from
'@/components/business/LayoutContent'
import
{
validate
,
buildVersion
,
updateInfo
}
from
'@/api/system/about'
import
{
getToken
}
from
'@/utils/auth'
export
default
{
components
:
{
LayoutContent
},
data
()
{
return
{
license
:
{},
version
:
null
,
build
:
null
,
licenseKey
:
''
,
fileList
:
[],
headers
:
{
Authorization
:
getToken
()
}
}
},
created
()
{
this
.
initVersion
()
this
.
getLicenseInfo
()
},
methods
:
{
initVersion
()
{
buildVersion
().
then
(
res
=>
{
this
.
build
=
res
.
data
})
},
getLicenseInfo
()
{
// validate({}).then(res => {
// this.license = this.getLicense(res.data)
// console.log(this.license)
// })
this
.
validateHandler
({},
res
=>
{
this
.
license
=
this
.
getLicense
(
res
.
data
)
})
},
validateHandler
(
param
,
success
)
{
validate
(
param
).
then
(
success
)
},
getLicense
(
result
)
{
return
{
status
:
result
.
status
,
corporation
:
result
.
license
?
result
.
license
.
corporation
:
''
,
expired
:
result
.
license
?
result
.
license
.
expired
:
''
,
count
:
result
.
license
?
result
.
license
.
count
:
''
,
version
:
result
.
license
?
result
.
license
.
version
:
''
,
edition
:
result
.
license
?
result
.
license
.
edition
:
''
}
},
importLic
(
file
)
{
const
reader
=
new
FileReader
()
reader
.
onload
=
function
(
e
)
{
this
.
licenseKey
=
e
.
target
.
result
this
.
validateHandler
({
license
:
this
.
licenseKey
},
response
=>
{
this
.
updateLicense
=
this
.
getLicense
(
response
.
data
)
this
.
update
()
})
}.
bind
(
this
)
reader
.
readAsText
(
file
)
},
update
()
{
const
param
=
{
license
:
this
.
licenseKey
}
updateInfo
(
param
).
then
(
response
=>
{
if
(
response
.
data
.
status
===
'valid'
)
{
this
.
$success
(
this
.
$t
(
'i18n_mc_update_success'
))
this
.
license
=
this
.
getLicense
(
response
.
data
)
}
else
{
this
.
$warning
(
response
.
data
.
message
)
}
})
},
support
()
{
const
url
=
'https://support.fit2cloud.com/'
window
.
open
(
url
,
'_blank'
)
},
beforeUpload
(
file
)
{
// console.log(file)
this
.
importLic
(
file
)
return
false
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.about-card
{
background
:
inherit
;
margin-top
:
5%
;
flex-direction
:
row
;
margin-left
:
20%
;
margin-right
:
20%
;
width
:
640px
;
height
:
400px
;
position
:
relative
;
>>>
div
.el-card__header
{
padding
:
0
;
}
}
.license-header
{
height
:
100px
;
background-image
:
url('../../../assets/license_header.png')
;
text-align
:
center
;
padding
:
20px
0
;
background-size
:
100%
100%
;
}
.license-content
{
font-size
:
16px
;
padding
:
50px
;
>>>
table
{
width
:
100%
;
}
>>>
th
{
text-align
:
left
;
width
:
45%
;
}
>>>
td
{
display
:
table-cell
;
vertical-align
:
inherit
;
}
}
.md-padding
{
padding
:
10px
;
}
.lic_rooter
{
flex-direction
:
row
;
box-sizing
:
border-box
;
display
:
flex
;
align-items
:
center
;
align-content
:
center
;
max-width
:
100%
;
justify-content
:
space-between
;
>>>
a
{
color
:
rgb
(
10
,
123
,
224
);
cursor
:
pointer
;
}
}
</
style
>
frontend/src/views/system/menu/index.vue
浏览文件 @
c6373445
...
...
@@ -27,7 +27,7 @@
<svg-icon
:icon-class=
"scope.row.icon ? scope.row.icon : ''"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"createTime"
:label=
"$t('menu.create_time')"
>
<el-table-column
prop=
"createTime"
:label=
"$t('menu.create_time')"
>
<
template
v-slot:default=
"scope"
>
<span>
{{
scope
.
row
.
createTime
|
timestampFormatDate
}}
</span>
</
template
>
...
...
@@ -85,7 +85,7 @@
<el-input-number
v-model
.
number=
"form.menuSort"
:min=
"0"
:max=
"999"
controls-position=
"right"
style=
"width: 179px;"
/>
</el-form-item>
<el-form-item
v-show=
"!form.iframe && form.type === 1"
:label=
"$t('menu.module_name')"
prop=
"componentName"
>
<el-input
v-model=
"form.componentName"
:disabled=
"formType!=='add'"
style=
"width: 179px;"
:
placeholder=
"匹配组件内Name字段"
/>
<el-input
v-model=
"form.componentName"
:disabled=
"formType!=='add'"
style=
"width: 179px;"
placeholder=
"匹配组件内Name字段"
/>
</el-form-item>
<el-form-item
v-show=
"!form.iframe && form.type === 1"
label=
"$t('menu.path')"
prop=
"component"
>
<el-input
v-model=
"form.component"
:disabled=
"formType!=='add'"
style=
"width: 179px;"
:placeholder=
"$t('menu.path')"
/>
...
...
frontend/src/views/system/user/index.vue
浏览文件 @
c6373445
...
...
@@ -22,10 +22,10 @@
<el-table-column
:show-overflow-tooltip=
"true"
prop=
"email"
:label=
"$t('commons.email')"
/>
<el-table-column
:show-overflow-tooltip=
"true"
prop=
"dept"
:label=
"$t('commons.organization')"
>
<
template
slot-scope=
"scope"
>
<div>
{{
scope
.
row
.
dept
.
deptName
}}
</div>
<div>
{{
scope
.
row
.
dept
&&
scope
.
row
.
dept
.
deptName
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"status"
:label=
"$t('commons.status')"
>
<el-table-column
prop=
"status"
:label=
"$t('commons.status')"
>
<
template
v-slot:default=
"scope"
>
<el-switch
v-model=
"scope.row.enabled"
:active-value=
"1"
:inactive-value=
"0"
inactive-color=
"#DCDFE6"
@
change=
"changeSwitch(scope.row)"
/>
</
template
>
...
...
@@ -68,7 +68,7 @@
<el-radio
:label=
"$t('commons.woman')"
>
{{ $t('commons.woman') }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
:label=
"$t('commons.status')"
>
<el-form-item
:label=
"$t('commons.status')"
>
<el-radio-group
v-model=
"form.enabled"
style=
"width: 140px"
>
<el-radio
:label=
"1"
>
{{ $t('commons.enable') }}
</el-radio>
<el-radio
:label=
"0"
>
{{ $t('commons.disable') }}
</el-radio>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论