国际化修改
parent
80b4f123f8
commit
b574da9edf
|
@ -129,7 +129,7 @@ export default {
|
||||||
this.fileList = []
|
this.fileList = []
|
||||||
this.$emit('getFileList', '', '')
|
this.$emit('getFileList', '', '')
|
||||||
this.$message({
|
this.$message({
|
||||||
message: 'Deleted successfully!',
|
message: this.$t('common:message:deletedSuccessfully'),
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
:file-list="fileList"
|
:file-list="fileList"
|
||||||
:accept="accept"
|
:accept="accept"
|
||||||
>
|
>
|
||||||
<el-button size="small" type="primary" :disabled="isDisabled">Upload</el-button>
|
<el-button size="small" type="primary" :disabled="isDisabled">{{ $t('common:button:upload') }}</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -143,8 +143,7 @@ export default {
|
||||||
this.$confirm('Sure to remove?', {
|
this.$confirm('Sure to remove?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
deleteAttachment(file.Id, file.Path)
|
deleteAttachment(file.Id, file.Path)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
|
@ -152,7 +151,7 @@ export default {
|
||||||
this.fileList.splice(this.fileList.findIndex(item => item.Id === file.Id), 1)
|
this.fileList.splice(this.fileList.findIndex(item => item.Id === file.Id), 1)
|
||||||
this.$emit('getFileList', this.fileList)
|
this.$emit('getFileList', this.fileList)
|
||||||
this.$message({
|
this.$message({
|
||||||
message: 'Deleted successfully!',
|
message: this.$t('common:message:deletedSuccessfully'),
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,9 +31,6 @@
|
||||||
<el-dropdown-item v-if="!isReviewer">
|
<el-dropdown-item v-if="!isReviewer">
|
||||||
<span style="display:block;" @click="editInfo">Edit Info</span>
|
<span style="display:block;" @click="editInfo">Edit Info</span>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item>
|
|
||||||
<span style="display:block;" @click="account">Account</span>
|
|
||||||
</el-dropdown-item>
|
|
||||||
<el-dropdown-item divided>
|
<el-dropdown-item divided>
|
||||||
<span style="display:block;" @click="logout">Log Out</span>
|
<span style="display:block;" @click="logout">Log Out</span>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
|
@ -93,9 +90,6 @@ export default {
|
||||||
editInfo() {
|
editInfo() {
|
||||||
this.$router.push({ name: 'BaiscInfo' })
|
this.$router.push({ name: 'BaiscInfo' })
|
||||||
},
|
},
|
||||||
account() {
|
|
||||||
this.$router.push({ name: 'Account' })
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -255,12 +255,7 @@ export const constantRoutes = [
|
||||||
children: [{
|
children: [{
|
||||||
path: 'baiscInfo',
|
path: 'baiscInfo',
|
||||||
name: 'BaiscInfo',
|
name: 'BaiscInfo',
|
||||||
component: () => import('@/views/user/editInfo')
|
component: () => import('@/views/user/myInfo')
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'account',
|
|
||||||
name: 'Account',
|
|
||||||
component: () => import('@/views/user/account')
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,137 +1,136 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container menu">
|
<div class="app-container menu">
|
||||||
<el-tree
|
<el-tree
|
||||||
:props="defaultProps"
|
:props="defaultProps"
|
||||||
:data="treeData"
|
:data="treeData"
|
||||||
node-key="Id"
|
node-key="Id"
|
||||||
:default-expand-all="true"
|
:default-expand-all="true"
|
||||||
:expand-on-click-node="false"
|
:expand-on-click-node="false"
|
||||||
style="width:80%;"
|
style="width:80%;"
|
||||||
>
|
>
|
||||||
<span slot-scope="{ node, data }" class="custom-tree-node">
|
<span slot-scope="{ node, data }" class="custom-tree-node">
|
||||||
<span v-if="data.FunctionName">{{ node.label }} --------------------(Function)</span>
|
<span v-if="data.FunctionName">{{ node.label }} --------------------(Function)</span>
|
||||||
<span v-else>{{ node.label }}</span>
|
<span v-else>{{ node.label }}</span>
|
||||||
<span>
|
<span>
|
||||||
<el-button type="text" icon="el-icon-plus" size="small" @click="() => append(data)">Append</el-button>
|
<el-button type="text" icon="el-icon-plus" size="small" @click="() => append(data)">Append</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
size="small"
|
size="small"
|
||||||
@click="() => edit(data)"
|
@click="() => edit(data)"
|
||||||
>Edit</el-button>
|
>Edit</el-button>
|
||||||
<el-button type="text" icon="el-icon-delete" size="small" @click="() => remove(data)">Delete</el-button>
|
<el-button type="text" icon="el-icon-delete" size="small" @click="() => remove(data)">Delete</el-button>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</el-tree>
|
</el-tree>
|
||||||
<menu-form v-if="model_cfg.visible" :form="currenNode" width="500px" @close="closeModel" />
|
<menu-form v-if="model_cfg.visible" :form="currenNode" width="500px" @close="closeModel" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getMenuFunction, deleteMenuFunction } from '@/api/admin'
|
import { getMenuFunction, deleteMenuFunction } from '@/api/admin'
|
||||||
import MenuForm from './components/MenuForm'
|
import MenuForm from './components/MenuForm'
|
||||||
import { model_cfg } from './menu'
|
import { model_cfg } from './menu'
|
||||||
export default {
|
export default {
|
||||||
name: 'Menu',
|
name: 'Menu',
|
||||||
components: { MenuForm },
|
components: { MenuForm },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
model_cfg,
|
model_cfg,
|
||||||
treeData: [],
|
treeData: [],
|
||||||
defaultProps: {
|
defaultProps: {
|
||||||
label: 'MenuName',
|
label: 'MenuName',
|
||||||
children: 'Children'
|
children: 'Children'
|
||||||
},
|
},
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
title: '',
|
title: '',
|
||||||
currenNode: {},
|
currenNode: {},
|
||||||
nodeId: '',
|
nodeId: '',
|
||||||
parentId: ''
|
parentId: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getlist()
|
this.getlist()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 获取菜单数据
|
// 获取菜单数据
|
||||||
getlist() {
|
getlist() {
|
||||||
const loading = this.$loading({
|
const loading = this.$loading({
|
||||||
target: document.querySelector('.menu'),
|
target: document.querySelector('.menu'),
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
lock: true,
|
lock: true,
|
||||||
text: 'Loading',
|
text: 'Loading',
|
||||||
spinner: 'el-icon-loading'
|
spinner: 'el-icon-loading'
|
||||||
})
|
})
|
||||||
getMenuFunction().then(res => {
|
getMenuFunction().then(res => {
|
||||||
loading.close()
|
loading.close()
|
||||||
this.treeData = res.Result
|
this.treeData = res.Result
|
||||||
}).catch(() => { loading.close() })
|
}).catch(() => { loading.close() })
|
||||||
},
|
},
|
||||||
// 添加菜单
|
// 添加菜单
|
||||||
append(node) {
|
append(node) {
|
||||||
this.currenNode = {}
|
this.currenNode = {}
|
||||||
this.currenNode.ParentId = node.Id
|
this.currenNode.ParentId = node.Id
|
||||||
this.currenNode.Status = 1
|
this.currenNode.Status = 1
|
||||||
// this.currenNode.ShowOrder = 0
|
// this.currenNode.ShowOrder = 0
|
||||||
this.nodeId = node.Id
|
this.nodeId = node.Id
|
||||||
this.model_cfg.title = 'Append'
|
this.model_cfg.title = 'Append'
|
||||||
this.model_cfg.visible = true
|
this.model_cfg.visible = true
|
||||||
},
|
},
|
||||||
// 编辑菜单
|
// 编辑菜单
|
||||||
edit(node) {
|
edit(node) {
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
const { Children, CreateTime, CreateUserId, UpdateTime, UpdateUserId, ...obj } = JSON.parse(JSON.stringify(node))
|
const { Children, CreateTime, CreateUserId, UpdateTime, UpdateUserId, ...obj } = JSON.parse(JSON.stringify(node))
|
||||||
obj.MetaBreadcrumb = obj.MetaBreadcrumb ? 1 : 0
|
obj.MetaBreadcrumb = obj.MetaBreadcrumb ? 1 : 0
|
||||||
obj.Hidden = obj.Hidden ? 1 : 0
|
obj.Hidden = obj.Hidden ? 1 : 0
|
||||||
this.currenNode = obj
|
this.currenNode = obj
|
||||||
this.nodeId = node.Id
|
this.nodeId = node.Id
|
||||||
this.model_cfg.title = 'Edit'
|
this.model_cfg.title = 'Edit'
|
||||||
this.model_cfg.visible = true
|
this.model_cfg.visible = true
|
||||||
},
|
},
|
||||||
// 移除菜单
|
// 移除菜单
|
||||||
remove(node) {
|
remove(node) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
})
|
||||||
})
|
.then(() => {
|
||||||
.then(() => {
|
deleteMenuFunction(node.Id)
|
||||||
deleteMenuFunction(node.Id)
|
.then(res => {
|
||||||
.then(res => {
|
if (res.IsSuccess) {
|
||||||
if (res.IsSuccess) {
|
this.getlist()
|
||||||
this.getlist()
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
this.$message.success('Deleted successfully!')
|
}
|
||||||
}
|
})
|
||||||
})
|
})
|
||||||
})
|
},
|
||||||
},
|
// 关闭弹窗
|
||||||
// 关闭弹窗
|
closeModel() {
|
||||||
closeModel() {
|
this.model_cfg.visible = false
|
||||||
this.model_cfg.visible = false
|
this.getlist()
|
||||||
this.getlist()
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
<style lang="scss">
|
||||||
<style lang="scss">
|
.menu{
|
||||||
.menu{
|
.el-tree {
|
||||||
.el-tree {
|
margin-top: 20px;
|
||||||
margin-top: 20px;
|
}
|
||||||
}
|
.el-tree-node{
|
||||||
.el-tree-node{
|
margin-top: 5px;
|
||||||
margin-top: 5px;
|
}
|
||||||
}
|
.custom-tree-node {
|
||||||
.custom-tree-node {
|
flex: 1;
|
||||||
flex: 1;
|
display: flex;
|
||||||
display: flex;
|
align-items: center;
|
||||||
align-items: center;
|
justify-content: space-between;
|
||||||
justify-content: space-between;
|
font-size: 14px;
|
||||||
font-size: 14px;
|
padding-right: 8px;
|
||||||
padding-right: 8px;
|
}
|
||||||
}
|
.el-dialog__body{
|
||||||
.el-dialog__body{
|
padding: 10px;
|
||||||
padding: 10px;
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
</style>
|
||||||
</style>
|
|
||||||
|
|
|
@ -89,16 +89,15 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDeleteRole(row) {
|
handleDeleteRole(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
deleteUserTypeRole(row.Id).then((res) => {
|
deleteUserTypeRole(row.Id).then((res) => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex((item) => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex((item) => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,39 +1,38 @@
|
||||||
<template>
|
<template>
|
||||||
<el-card class="box-card" style="width:800px;" size="small">
|
<el-card class="box-card" style="width:800px;" size="small">
|
||||||
<!-- <div slot="header" class="clearfix">
|
<!-- <div slot="header" class="clearfix">
|
||||||
<span>Security</span>
|
<span>Security</span>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div>
|
<div>
|
||||||
<el-button type="danger" @click="handleReset">Reset Password</el-button>
|
<el-button type="danger" @click="handleReset">Reset Password</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { resetPassword } from '@/api/admin'
|
import { resetPassword } from '@/api/admin'
|
||||||
export default {
|
export default {
|
||||||
name: 'Account',
|
name: 'Account',
|
||||||
props: {
|
props: {
|
||||||
userId: { type: String, default: '' }
|
userId: { type: String, default: '' }
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.$confirm('Sure to reset password?', {
|
this.$confirm('Sure to reset password?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
})
|
||||||
})
|
.then(() => {
|
||||||
.then(() => {
|
resetPassword(this.userId).then(res => {
|
||||||
resetPassword(this.userId).then(res => {
|
if (res.IsSuccess) {
|
||||||
if (res.IsSuccess) {
|
this.$message({
|
||||||
this.$message({
|
message: 'Reset password successfully',
|
||||||
message: 'Reset password successfully',
|
type: 'success'
|
||||||
type: 'success'
|
})
|
||||||
})
|
}
|
||||||
}
|
})
|
||||||
})
|
})
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
|
||||||
|
|
|
@ -113,18 +113,17 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除用户
|
// 删除用户
|
||||||
handleDeleteUser(data) {
|
handleDeleteUser(data) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteSysUser(data.Id)
|
deleteSysUser(data.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.users.splice(this.users.findIndex(item => item.Id === data.Id), 1)
|
this.users.splice(this.users.findIndex(item => item.Id === data.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -126,8 +126,7 @@ export default {
|
||||||
this.$confirm('Sure to sign out', {
|
this.$confirm('Sure to sign out', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.$store.dispatch('user/logout').then(res => {
|
this.$store.dispatch('user/logout').then(res => {
|
||||||
|
|
|
@ -244,8 +244,7 @@ export default {
|
||||||
this.$confirm('是否确认废除此文件?', {
|
this.$confirm('是否确认废除此文件?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
|
|
@ -125,18 +125,17 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除字典表配置信息
|
// 删除字典表配置信息
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteDictionary(row.Id)
|
deleteDictionary(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
this.$store.dispatch('global/setDictionary', {})
|
this.$store.dispatch('global/setDictionary', {})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -239,18 +239,17 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteEmailNoticeConfig(row.Id)
|
deleteEmailNoticeConfig(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -139,11 +139,10 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除CRO
|
// 删除CRO
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -152,7 +151,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|
|
@ -1,256 +1,255 @@
|
||||||
<template>
|
<template>
|
||||||
<box-content>
|
<box-content>
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<el-form :inline="true" size="small" class="base-search-form">
|
<el-form :inline="true" size="small" class="base-search-form">
|
||||||
<el-form-item label="Hospital:">
|
<el-form-item label="Hospital:">
|
||||||
<el-input v-model="searchData.HospitalName" style="width:100px;" />
|
<el-input v-model="searchData.HospitalName" style="width:100px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Province:">
|
<el-form-item label="Province:">
|
||||||
<el-input v-model="searchData.Province" style="width:100px;" />
|
<el-input v-model="searchData.Province" style="width:100px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="City:">
|
<el-form-item label="City:">
|
||||||
<el-input v-model="searchData.City" style="width:100px;" />
|
<el-input v-model="searchData.City" style="width:100px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">Search</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">Search</el-button>
|
||||||
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">Reset</el-button>
|
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">Reset</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left:auto;">
|
<span style="margin-left:auto;">
|
||||||
<el-button
|
<el-button
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
style="margin-left:auto;"
|
style="margin-left:auto;"
|
||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
@click="handleAddHospital"
|
@click="handleAddHospital"
|
||||||
>New</el-button>
|
>New</el-button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- hospital列表 -->
|
<!-- hospital列表 -->
|
||||||
<el-table
|
<el-table
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
v-adaptive="{bottomOffset:60}"
|
v-adaptive="{bottomOffset:60}"
|
||||||
:data="list"
|
:data="list"
|
||||||
stripe
|
stripe
|
||||||
height="100"
|
height="100"
|
||||||
@sort-change="handleSortByColumn"
|
@sort-change="handleSortByColumn"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="HospitalName"
|
prop="HospitalName"
|
||||||
label="Hospital"
|
label="Hospital"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="HospitalNameCN"
|
prop="HospitalNameCN"
|
||||||
label="Hospital CN"
|
label="Hospital CN"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="UniversityAffiliated"
|
prop="UniversityAffiliated"
|
||||||
label="University Affiliated"
|
label="University Affiliated"
|
||||||
min-width="170"
|
min-width="170"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="UniversityAffiliatedCN"
|
prop="UniversityAffiliatedCN"
|
||||||
label="University Affiliated CN"
|
label="University Affiliated CN"
|
||||||
min-width="170"
|
min-width="170"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Country"
|
prop="Country"
|
||||||
label="Country"
|
label="Country"
|
||||||
width="120"
|
width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="CountryCN"
|
prop="CountryCN"
|
||||||
label="Country CN"
|
label="Country CN"
|
||||||
width="140"
|
width="140"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Province"
|
prop="Province"
|
||||||
label="Province"
|
label="Province"
|
||||||
width="120"
|
width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ProvinceCN"
|
prop="ProvinceCN"
|
||||||
label="Province CN"
|
label="Province CN"
|
||||||
width="140"
|
width="140"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="City"
|
prop="City"
|
||||||
label="City"
|
label="City"
|
||||||
width="120"
|
width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="CityCN"
|
prop="CityCN"
|
||||||
label="City CN"
|
label="City CN"
|
||||||
width="120"
|
width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column label="Action" width="150">
|
<el-table-column label="Action" width="150">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
circle
|
circle
|
||||||
icon="el-icon-edit-outline"
|
icon="el-icon-edit-outline"
|
||||||
title="编辑"
|
title="编辑"
|
||||||
@click="handleEdit(scope.row)"
|
@click="handleEdit(scope.row)"
|
||||||
/>
|
/>
|
||||||
<el-button
|
<el-button
|
||||||
circle
|
circle
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
title="删除"
|
title="删除"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<!-- 分页组件 -->
|
<!-- 分页组件 -->
|
||||||
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
|
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="editDialog.visible"
|
v-if="editDialog.visible"
|
||||||
:visible.sync="editDialog.visible"
|
:visible.sync="editDialog.visible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:title="editDialog.title"
|
:title="editDialog.title"
|
||||||
width="600px"
|
width="600px"
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
>
|
>
|
||||||
<hospital-form v-if="editDialog.visible" :data="rowData" @close="close" @getList="getList" />
|
<hospital-form v-if="editDialog.visible" :data="rowData" @close="close" @getList="getList" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
</box-content>
|
</box-content>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import { getHospitalPageList, deleteHospital } from '@/api/dictionary'
|
import { getHospitalPageList, deleteHospital } from '@/api/dictionary'
|
||||||
import BoxContent from '@/components/BoxContent'
|
import BoxContent from '@/components/BoxContent'
|
||||||
import Pagination from '@/components/Pagination'
|
import Pagination from '@/components/Pagination'
|
||||||
import HospitalForm from './HospitalForm'
|
import HospitalForm from './HospitalForm'
|
||||||
const searchDataDefault = () => {
|
const searchDataDefault = () => {
|
||||||
return {
|
return {
|
||||||
HospitalName: '',
|
HospitalName: '',
|
||||||
Province: '',
|
Province: '',
|
||||||
City: '',
|
City: '',
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
Asc: true,
|
Asc: true,
|
||||||
SortField: ''
|
SortField: ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'Hospitals',
|
name: 'Hospitals',
|
||||||
components: { BoxContent, Pagination, HospitalForm },
|
components: { BoxContent, Pagination, HospitalForm },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
searchData: searchDataDefault(),
|
searchData: searchDataDefault(),
|
||||||
editDialog: { visible: false, title: '' },
|
editDialog: { visible: false, title: '' },
|
||||||
list: [],
|
list: [],
|
||||||
total: 0,
|
total: 0,
|
||||||
loading: false,
|
loading: false,
|
||||||
rowData: {}
|
rowData: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 获取医院列表信息
|
// 获取医院列表信息
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getHospitalPageList(this.searchData).then(res => {
|
getHospitalPageList(this.searchData).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.list = res.Result.CurrentPageData
|
this.list = res.Result.CurrentPageData
|
||||||
this.total = res.Result.TotalCount
|
this.total = res.Result.TotalCount
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 新增医院信息
|
// 新增医院信息
|
||||||
handleAddHospital() {
|
handleAddHospital() {
|
||||||
this.rowData = {}
|
this.rowData = {}
|
||||||
this.editDialog.title = 'Add'
|
this.editDialog.title = 'Add'
|
||||||
this.editDialog.visible = true
|
this.editDialog.visible = true
|
||||||
},
|
},
|
||||||
// 修改医院信息
|
// 修改医院信息
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.rowData = row
|
this.rowData = row
|
||||||
this.editDialog.title = 'Edit'
|
this.editDialog.title = 'Edit'
|
||||||
this.editDialog.visible = true
|
this.editDialog.visible = true
|
||||||
},
|
},
|
||||||
// 删除医院信息
|
// 删除医院信息
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
})
|
||||||
})
|
.then(() => {
|
||||||
.then(() => {
|
this.loading = true
|
||||||
this.loading = true
|
deleteHospital(row.Id)
|
||||||
deleteHospital(row.Id)
|
.then(res => {
|
||||||
.then(res => {
|
if (res.IsSuccess) {
|
||||||
if (res.IsSuccess) {
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
this.$message.success('Deleted successfully!')
|
}
|
||||||
}
|
this.loading = false
|
||||||
this.loading = false
|
}).catch(() => {
|
||||||
}).catch(() => {
|
this.loading = false
|
||||||
this.loading = false
|
})
|
||||||
})
|
})
|
||||||
})
|
},
|
||||||
},
|
// 查询
|
||||||
// 查询
|
handleSearch() {
|
||||||
handleSearch() {
|
this.searchData.PageIndex = 1
|
||||||
this.searchData.PageIndex = 1
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
// 重置列表
|
||||||
// 重置列表
|
handleReset() {
|
||||||
handleReset() {
|
this.searchData = searchDataDefault()
|
||||||
this.searchData = searchDataDefault()
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
// 指定排序字段,对列表进行排序
|
||||||
// 指定排序字段,对列表进行排序
|
handleSortByColumn(column) {
|
||||||
handleSortByColumn(column) {
|
if (column.order === 'ascending') {
|
||||||
if (column.order === 'ascending') {
|
this.searchData.Asc = true
|
||||||
this.searchData.Asc = true
|
} else {
|
||||||
} else {
|
this.searchData.Asc = false
|
||||||
this.searchData.Asc = false
|
}
|
||||||
}
|
this.searchData.SortField = column.prop
|
||||||
this.searchData.SortField = column.prop
|
this.searchData.PageIndex = 1
|
||||||
this.searchData.PageIndex = 1
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
// 关闭模态框
|
||||||
// 关闭模态框
|
close() {
|
||||||
close() {
|
this.editDialog.visible = false
|
||||||
this.editDialog.visible = false
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
<style lang="scss" scoped>
|
||||||
<style lang="scss" scoped>
|
.hospitals{
|
||||||
.hospitals{
|
height: 100%;
|
||||||
height: 100%;
|
}
|
||||||
}
|
</style>
|
||||||
</style>
|
|
||||||
|
|
|
@ -213,11 +213,10 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除Site
|
// 删除Site
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -227,7 +226,7 @@ export default {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$store.dispatch('global/setSite', {})
|
this.$store.dispatch('global/setSite', {})
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|
|
@ -139,11 +139,10 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除Sponsor
|
// 删除Sponsor
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -152,7 +151,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|
|
@ -182,11 +182,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -195,7 +194,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -154,11 +154,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -167,7 +166,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -183,11 +183,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -196,7 +195,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -182,11 +182,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -195,7 +194,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -153,11 +153,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -166,7 +165,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -206,11 +206,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -219,7 +218,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -183,11 +183,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -196,7 +195,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -122,11 +122,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -135,7 +134,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,162 +1,161 @@
|
||||||
<template>
|
<template>
|
||||||
<box-content>
|
<box-content>
|
||||||
<!-- 搜索框 -->
|
<!-- 搜索框 -->
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<span style="margin-left:auto;">
|
<span style="margin-left:auto;">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleAdd"
|
@click="handleAdd"
|
||||||
>
|
>
|
||||||
Add
|
Add
|
||||||
</el-button>
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 受试者列表 -->
|
<!-- 受试者列表 -->
|
||||||
<el-table
|
<el-table
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
v-adaptive="{bottomOffset:45}"
|
v-adaptive="{bottomOffset:45}"
|
||||||
:data="list"
|
:data="list"
|
||||||
stripe
|
stripe
|
||||||
height="100"
|
height="100"
|
||||||
style="width:100%"
|
style="width:100%"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Code"
|
prop="Code"
|
||||||
label="编号"
|
label="编号"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Name"
|
prop="Name"
|
||||||
label="场景类型"
|
label="场景类型"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Value"
|
prop="Value"
|
||||||
label="签名内容(EN)"
|
label="签名内容(EN)"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ValueCN"
|
prop="ValueCN"
|
||||||
label="签名内容(CN)"
|
label="签名内容(CN)"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="UpdateTime"
|
prop="UpdateTime"
|
||||||
label="更新时间"
|
label="更新时间"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="CreateTime"
|
prop="CreateTime"
|
||||||
label="创建时间"
|
label="创建时间"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column label="Action" width="200" fixed="right">
|
<el-table-column label="Action" width="200" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleEdit(scope.row)"
|
@click="handleEdit(scope.row)"
|
||||||
>
|
>
|
||||||
Edit
|
Edit
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="text" @click="handleDelete(scope.row)">Delete</el-button>
|
<el-button type="text" @click="handleDelete(scope.row)">Delete</el-button>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<!-- 场景配置 -->
|
<!-- 场景配置 -->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="editVisible"
|
v-if="editVisible"
|
||||||
:visible.sync="editVisible"
|
:visible.sync="editVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:title="title"
|
:title="title"
|
||||||
width="700px"
|
width="700px"
|
||||||
append-to-body
|
append-to-body
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
>
|
>
|
||||||
<SceneConfigForm :parent-id="parentId" :data="rowData" @closeDialog="closeDialog" @getList="getList" />
|
<SceneConfigForm :parent-id="parentId" :data="rowData" @closeDialog="closeDialog" @getList="getList" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</box-content>
|
</box-content>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getChildList, deleteSystemBasicData } from '@/api/dictionary'
|
import { getChildList, deleteSystemBasicData } from '@/api/dictionary'
|
||||||
import BoxContent from '@/components/BoxContent'
|
import BoxContent from '@/components/BoxContent'
|
||||||
import SceneConfigForm from './SceneConfigForm'
|
import SceneConfigForm from './SceneConfigForm'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SignTemplate',
|
name: 'SignTemplate',
|
||||||
components: { BoxContent, SceneConfigForm },
|
components: { BoxContent, SceneConfigForm },
|
||||||
props: {
|
props: {
|
||||||
parentId: {
|
parentId: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
list: [],
|
list: [],
|
||||||
rowData: {},
|
rowData: {},
|
||||||
title: '',
|
title: '',
|
||||||
editVisible: false
|
editVisible: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 获取受试者列表
|
// 获取受试者列表
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getChildList(this.parentId).then(res => {
|
getChildList(this.parentId).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.list = res.Result
|
this.list = res.Result
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
},
|
},
|
||||||
// 新增
|
// 新增
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.rowData = {}
|
this.rowData = {}
|
||||||
this.title = 'Add'
|
this.title = 'Add'
|
||||||
this.editVisible = true
|
this.editVisible = true
|
||||||
},
|
},
|
||||||
// 编辑
|
// 编辑
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.rowData = { ...row }
|
this.rowData = { ...row }
|
||||||
this.title = 'Edit'
|
this.title = 'Edit'
|
||||||
this.editVisible = true
|
this.editVisible = true
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
})
|
||||||
})
|
.then(() => {
|
||||||
.then(() => {
|
deleteSystemBasicData(row.Id)
|
||||||
deleteSystemBasicData(row.Id)
|
.then(res => {
|
||||||
.then(res => {
|
if (res.IsSuccess) {
|
||||||
if (res.IsSuccess) {
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
this.$message.success('Deleted successfully!')
|
}
|
||||||
}
|
})
|
||||||
})
|
})
|
||||||
})
|
},
|
||||||
},
|
// 关闭新增、编辑框
|
||||||
// 关闭新增、编辑框
|
closeDialog() {
|
||||||
closeDialog() {
|
this.editVisible = false
|
||||||
this.editVisible = false
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
|
||||||
|
|
|
@ -1,229 +1,228 @@
|
||||||
<template>
|
<template>
|
||||||
<box-content>
|
<box-content>
|
||||||
<!-- 搜索框 -->
|
<!-- 搜索框 -->
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<el-form :inline="true" size="mini" class="base-search-form">
|
<el-form :inline="true" size="mini" class="base-search-form">
|
||||||
<el-form-item label="编号:">
|
<el-form-item label="编号:">
|
||||||
<el-input v-model="searchData.Code" style="width:100px;" />
|
<el-input v-model="searchData.Code" style="width:100px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="模板:">
|
<el-form-item label="模板:">
|
||||||
<el-input v-model="searchData.Name" style="width:100px;" />
|
<el-input v-model="searchData.Name" style="width:100px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleReset">Reset</el-button>
|
<el-button type="primary" @click="handleReset">Reset</el-button>
|
||||||
<el-button type="primary" @click="handleSearch">Search</el-button>
|
<el-button type="primary" @click="handleSearch">Search</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left:auto;">
|
<span style="margin-left:auto;">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleAdd"
|
@click="handleAdd"
|
||||||
>
|
>
|
||||||
New
|
New
|
||||||
</el-button>
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 受试者列表 -->
|
<!-- 受试者列表 -->
|
||||||
<el-table
|
<el-table
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
v-adaptive="{bottomOffset:45}"
|
v-adaptive="{bottomOffset:45}"
|
||||||
:data="list"
|
:data="list"
|
||||||
stripe
|
stripe
|
||||||
height="100"
|
height="100"
|
||||||
style="width:100%"
|
style="width:100%"
|
||||||
@sort-change="handleSortByColumn"
|
@sort-change="handleSortByColumn"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Code"
|
prop="Code"
|
||||||
label="Code"
|
label="Code"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Name"
|
prop="Name"
|
||||||
label="模板"
|
label="模板"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Value"
|
prop="Value"
|
||||||
label="签名内容(EN)"
|
label="签名内容(EN)"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ValueCN"
|
prop="ValueCN"
|
||||||
label="签名内容(CN)"
|
label="签名内容(CN)"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="UpdateTime"
|
prop="UpdateTime"
|
||||||
label="更新时间"
|
label="更新时间"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="CreateTime"
|
prop="CreateTime"
|
||||||
label="创建时间"
|
label="创建时间"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column label="Action" width="200" fixed="right">
|
<el-table-column label="Action" width="200" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleEdit(scope.row)"
|
@click="handleEdit(scope.row)"
|
||||||
>
|
>
|
||||||
Edit
|
Edit
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleConfig(scope.row)"
|
@click="handleConfig(scope.row)"
|
||||||
>
|
>
|
||||||
场景配置
|
场景配置
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-button type="text" @click="handleDelete(scope.row)">Delete</el-button>
|
<el-button type="text" @click="handleDelete(scope.row)">Delete</el-button>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<!-- 分页组件 -->
|
<!-- 分页组件 -->
|
||||||
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
|
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
|
||||||
|
|
||||||
<!-- 新增、编辑 -->
|
<!-- 新增、编辑 -->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="editVisible"
|
v-if="editVisible"
|
||||||
:visible.sync="editVisible"
|
:visible.sync="editVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:title="title"
|
:title="title"
|
||||||
width="700px"
|
width="700px"
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
>
|
>
|
||||||
<SignTemplateForm :data="rowData" @closeDialog="closeDialog" @getList="getList" />
|
<SignTemplateForm :data="rowData" @closeDialog="closeDialog" @getList="getList" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 场景配置 -->
|
<!-- 场景配置 -->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="configVisible"
|
v-if="configVisible"
|
||||||
:visible.sync="configVisible"
|
:visible.sync="configVisible"
|
||||||
title="场景配置"
|
title="场景配置"
|
||||||
:fullscreen="true"
|
:fullscreen="true"
|
||||||
append-to-body
|
append-to-body
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
>
|
>
|
||||||
<SceneList :parent-id="rowData.Id" @closeDialog="closeDialog" />
|
<SceneList :parent-id="rowData.Id" @closeDialog="closeDialog" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</box-content>
|
</box-content>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getSystemBasicDataList, deleteSystemBasicData } from '@/api/dictionary'
|
import { getSystemBasicDataList, deleteSystemBasicData } from '@/api/dictionary'
|
||||||
import BoxContent from '@/components/BoxContent'
|
import BoxContent from '@/components/BoxContent'
|
||||||
import SignTemplateForm from './components/SignTemplateForm'
|
import SignTemplateForm from './components/SignTemplateForm'
|
||||||
import SceneList from './components/SceneList'
|
import SceneList from './components/SceneList'
|
||||||
import Pagination from '@/components/Pagination'
|
import Pagination from '@/components/Pagination'
|
||||||
const searchDataDefault = () => {
|
const searchDataDefault = () => {
|
||||||
return {
|
return {
|
||||||
Code: '',
|
Code: '',
|
||||||
Name: '',
|
Name: '',
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20
|
PageSize: 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'SignTemplate',
|
name: 'SignTemplate',
|
||||||
components: { BoxContent, SignTemplateForm, Pagination, SceneList },
|
components: { BoxContent, SignTemplateForm, Pagination, SceneList },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
searchData: searchDataDefault(),
|
searchData: searchDataDefault(),
|
||||||
loading: false,
|
loading: false,
|
||||||
list: [],
|
list: [],
|
||||||
total: 0,
|
total: 0,
|
||||||
rowData: {},
|
rowData: {},
|
||||||
title: '',
|
title: '',
|
||||||
editVisible: false,
|
editVisible: false,
|
||||||
configVisible: false
|
configVisible: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 获取受试者列表
|
// 获取受试者列表
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getSystemBasicDataList(this.searchData).then(res => {
|
getSystemBasicDataList(this.searchData).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.list = res.Result.CurrentPageData
|
this.list = res.Result.CurrentPageData
|
||||||
this.total = res.Result.TotalCount
|
this.total = res.Result.TotalCount
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
},
|
},
|
||||||
// 新增
|
// 新增
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.rowData = {}
|
this.rowData = {}
|
||||||
this.title = 'Add'
|
this.title = 'Add'
|
||||||
this.editVisible = true
|
this.editVisible = true
|
||||||
},
|
},
|
||||||
// 编辑
|
// 编辑
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.rowData = { ...row }
|
this.rowData = { ...row }
|
||||||
this.title = 'Edit'
|
this.title = 'Edit'
|
||||||
this.editVisible = true
|
this.editVisible = true
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
})
|
||||||
})
|
.then(() => {
|
||||||
.then(() => {
|
deleteSystemBasicData(row.Id)
|
||||||
deleteSystemBasicData(row.Id)
|
.then(res => {
|
||||||
.then(res => {
|
if (res.IsSuccess) {
|
||||||
if (res.IsSuccess) {
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
this.$message.success('Deleted successfully!')
|
}
|
||||||
}
|
})
|
||||||
})
|
})
|
||||||
})
|
},
|
||||||
},
|
// 场景配置
|
||||||
// 场景配置
|
handleConfig(row) {
|
||||||
handleConfig(row) {
|
this.rowData = { ...row }
|
||||||
this.rowData = { ...row }
|
this.configVisible = true
|
||||||
this.configVisible = true
|
},
|
||||||
},
|
// 查询
|
||||||
// 查询
|
handleSearch() {
|
||||||
handleSearch() {
|
this.searchData.PageIndex = 1
|
||||||
this.searchData.PageIndex = 1
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
// 重置
|
||||||
// 重置
|
handleReset() {
|
||||||
handleReset() {
|
this.searchData = searchDataDefault()
|
||||||
this.searchData = searchDataDefault()
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
// 排序
|
||||||
// 排序
|
handleSortByColumn(column) {
|
||||||
handleSortByColumn(column) {
|
if (column.order === 'ascending') {
|
||||||
if (column.order === 'ascending') {
|
this.searchData.Asc = true
|
||||||
this.searchData.Asc = true
|
} else {
|
||||||
} else {
|
this.searchData.Asc = false
|
||||||
this.searchData.Asc = false
|
}
|
||||||
}
|
this.searchData.SortField = column.prop
|
||||||
this.searchData.SortField = column.prop
|
this.searchData.PageIndex = 1
|
||||||
this.searchData.PageIndex = 1
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
// 关闭新增、编辑框
|
||||||
// 关闭新增、编辑框
|
closeDialog() {
|
||||||
closeDialog() {
|
this.editVisible = false
|
||||||
this.editVisible = false
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
|
||||||
|
|
|
@ -162,11 +162,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -175,7 +174,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -137,11 +137,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -150,7 +149,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -170,11 +170,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -183,7 +182,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -217,11 +217,10 @@ export default {
|
||||||
},
|
},
|
||||||
// 删除受试者
|
// 删除受试者
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -230,7 +229,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,188 +1,187 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="template-wrapper">
|
<div class="template-wrapper">
|
||||||
<div class="left-wrapper">
|
<div class="left-wrapper">
|
||||||
<box-content>
|
<box-content>
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<SearchForm
|
<SearchForm
|
||||||
size="mini"
|
size="mini"
|
||||||
:that="this"
|
:that="this"
|
||||||
:search-data="searchData"
|
:search-data="searchData"
|
||||||
:search-form="template_form"
|
:search-form="template_form"
|
||||||
:search-handle="template_handle"
|
:search-handle="template_handle"
|
||||||
@search="handleSearch"
|
@search="handleSearch"
|
||||||
@reset="handleReset"
|
@reset="handleReset"
|
||||||
/>
|
/>
|
||||||
<span style="margin-left:auto;">
|
<span style="margin-left:auto;">
|
||||||
<el-button type="primary" size="small" style="margin-left:auto;" @click="handleAdd">New</el-button>
|
<el-button type="primary" size="small" style="margin-left:auto;" @click="handleAdd">New</el-button>
|
||||||
<el-button type="primary" size="small" @click="handleSetting">Setting</el-button>
|
<el-button type="primary" size="small" @click="handleSetting">Setting</el-button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<base-table
|
<base-table
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
:columns="template_cols"
|
:columns="template_cols"
|
||||||
:list="list"
|
:list="list"
|
||||||
:search-data="searchData"
|
:search-data="searchData"
|
||||||
:total="total"
|
:total="total"
|
||||||
@getList="getList"
|
@getList="getList"
|
||||||
@items="handleView"
|
@items="handleView"
|
||||||
@edit="handleEdit"
|
@edit="handleEdit"
|
||||||
@delete="handleDelete"
|
@delete="handleDelete"
|
||||||
@sortByColumn="sortByColumn"
|
@sortByColumn="sortByColumn"
|
||||||
/>
|
/>
|
||||||
</box-content>
|
</box-content>
|
||||||
</div>
|
</div>
|
||||||
<div class="right-wrapper">
|
<div class="right-wrapper">
|
||||||
<div v-if="template.Name">
|
<div v-if="template.Name">
|
||||||
<span>Name:</span>
|
<span>Name:</span>
|
||||||
<el-input v-model="template.Name" size="small" style="width:150px;" readonly />
|
<el-input v-model="template.Name" size="small" style="width:150px;" readonly />
|
||||||
</div>
|
</div>
|
||||||
<el-table v-if="template.Name" ref="itemList" v-loading="itemLoading" :data="itmeList" class="table" size="small" @select="onTableSelect">
|
<el-table v-if="template.Name" ref="itemList" v-loading="itemLoading" :data="itmeList" class="table" size="small" @select="onTableSelect">
|
||||||
<el-table-column type="selection" width="50" />
|
<el-table-column type="selection" width="50" />
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
<el-table-column prop="Name" label="Item" show-overflow-tooltip />
|
<el-table-column prop="Name" label="Item" show-overflow-tooltip />
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<template-form v-if="template_model.visible" :data="rowData" @close="closeModel" />
|
<template-form v-if="template_model.visible" :data="rowData" @close="closeModel" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getQaTemplateList, deleteQATemplate, getQaTemplateConfigList, configQATemplateItem } from '@/api/dictionary'
|
import { getQaTemplateList, deleteQATemplate, getQaTemplateConfigList, configQATemplateItem } from '@/api/dictionary'
|
||||||
import { template_cols, template_form, template_handle, template_model } from './template'
|
import { template_cols, template_form, template_handle, template_model } from './template'
|
||||||
import BoxContent from '@/components/BoxContent'
|
import BoxContent from '@/components/BoxContent'
|
||||||
import SearchForm from '@/components/BaseForm/search-form'
|
import SearchForm from '@/components/BaseForm/search-form'
|
||||||
import BaseTable from '@/components/BaseTable'
|
import BaseTable from '@/components/BaseTable'
|
||||||
import TemplateForm from './components/TemplateForm'
|
import TemplateForm from './components/TemplateForm'
|
||||||
import tableMixins from '@/mixins/table'
|
import tableMixins from '@/mixins/table'
|
||||||
const searchDataDefault = () => {
|
const searchDataDefault = () => {
|
||||||
return {
|
return {
|
||||||
Name: '',
|
Name: '',
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20
|
PageSize: 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'TemplateList',
|
name: 'TemplateList',
|
||||||
components: { BoxContent, SearchForm, BaseTable, TemplateForm },
|
components: { BoxContent, SearchForm, BaseTable, TemplateForm },
|
||||||
mixins: [tableMixins],
|
mixins: [tableMixins],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
template_cols,
|
template_cols,
|
||||||
template_form,
|
template_form,
|
||||||
template_handle,
|
template_handle,
|
||||||
template_model,
|
template_model,
|
||||||
searchData: searchDataDefault(),
|
searchData: searchDataDefault(),
|
||||||
list: [],
|
list: [],
|
||||||
total: 0,
|
total: 0,
|
||||||
loading: false,
|
loading: false,
|
||||||
rowData: {},
|
rowData: {},
|
||||||
template: {},
|
template: {},
|
||||||
itmeList: [],
|
itmeList: [],
|
||||||
itemLoading: false
|
itemLoading: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getQaTemplateList(this.searchData).then(res => {
|
getQaTemplateList(this.searchData).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.list = res.Result.CurrentPageData
|
this.list = res.Result.CurrentPageData
|
||||||
this.total = res.Result.TotalCount
|
this.total = res.Result.TotalCount
|
||||||
this.template = {}
|
this.template = {}
|
||||||
this.itmeList = []
|
this.itmeList = []
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.rowData = {}
|
this.rowData = {}
|
||||||
this.template_model.title = 'New'
|
this.template_model.title = 'New'
|
||||||
this.template_model.visible = true
|
this.template_model.visible = true
|
||||||
},
|
},
|
||||||
handleSetting() {
|
handleSetting() {
|
||||||
this.$router.push({ name: 'TemplateOfSetting' })
|
this.$router.push({ name: 'TemplateOfSetting' })
|
||||||
},
|
},
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.rowData = row
|
this.rowData = row
|
||||||
this.template_model.title = 'Edit'
|
this.template_model.title = 'Edit'
|
||||||
this.template_model.visible = true
|
this.template_model.visible = true
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
})
|
||||||
})
|
.then(() => {
|
||||||
.then(() => {
|
deleteQATemplate(row.Id)
|
||||||
deleteQATemplate(row.Id)
|
.then(res => {
|
||||||
.then(res => {
|
if (res.IsSuccess) {
|
||||||
if (res.IsSuccess) {
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
this.$message.success('Deleted successfully!')
|
}
|
||||||
}
|
})
|
||||||
})
|
})
|
||||||
})
|
},
|
||||||
},
|
handleView(row) {
|
||||||
handleView(row) {
|
this.template = row
|
||||||
this.template = row
|
this.itemLoading = true
|
||||||
this.itemLoading = true
|
getQaTemplateConfigList(row.Id, row.ModalityId).then(res => {
|
||||||
getQaTemplateConfigList(row.Id, row.ModalityId).then(res => {
|
this.itmeList = res.Result
|
||||||
this.itmeList = res.Result
|
this.itmeList.forEach(val => {
|
||||||
this.itmeList.forEach(val => {
|
this.$nextTick(
|
||||||
this.$nextTick(
|
function() {
|
||||||
function() {
|
this.$refs.itemList.toggleRowSelection(val, val.IsSelect)
|
||||||
this.$refs.itemList.toggleRowSelection(val, val.IsSelect)
|
}.bind(this)
|
||||||
}.bind(this)
|
)
|
||||||
)
|
})
|
||||||
})
|
this.itemLoading = false
|
||||||
this.itemLoading = false
|
})
|
||||||
})
|
},
|
||||||
},
|
onTableSelect(rows, row) {
|
||||||
onTableSelect(rows, row) {
|
const param = {
|
||||||
const param = {
|
qaTemplateItemId: row.Id,
|
||||||
qaTemplateItemId: row.Id,
|
qaTemplateId: this.template.Id,
|
||||||
qaTemplateId: this.template.Id,
|
isSelect: rows.indexOf(row) !== -1
|
||||||
isSelect: rows.indexOf(row) !== -1
|
}
|
||||||
}
|
configQATemplateItem(param).then(res => {
|
||||||
configQATemplateItem(param).then(res => {
|
this.$message.success('Updated successfully')
|
||||||
this.$message.success('Updated successfully')
|
})
|
||||||
})
|
},
|
||||||
},
|
handleReset() {
|
||||||
handleReset() {
|
this.searchData = searchDataDefault()
|
||||||
this.searchData = searchDataDefault()
|
this.getList()
|
||||||
this.getList()
|
this.template = {}
|
||||||
this.template = {}
|
this.itmeList = []
|
||||||
this.itmeList = []
|
},
|
||||||
},
|
closeModel() {
|
||||||
closeModel() {
|
this.template_model.visible = false
|
||||||
this.template_model.visible = false
|
this.getList()
|
||||||
this.getList()
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
<style lang="scss">
|
||||||
<style lang="scss">
|
.template-wrapper{
|
||||||
.template-wrapper{
|
height: 100%;
|
||||||
height: 100%;
|
display: flex;
|
||||||
display: flex;
|
.left-wrapper{
|
||||||
.left-wrapper{
|
width: 0;
|
||||||
width: 0;
|
flex-grow: 4;
|
||||||
flex-grow: 4;
|
border-right: 1px solid #ccc;
|
||||||
border-right: 1px solid #ccc;
|
}
|
||||||
}
|
.right-wrapper{
|
||||||
.right-wrapper{
|
width: 0;
|
||||||
width: 0;
|
flex-grow: 3;
|
||||||
flex-grow: 3;
|
padding: 5px;
|
||||||
padding: 5px;
|
thead{
|
||||||
thead{
|
.el-table-column--selection{
|
||||||
.el-table-column--selection{
|
.cell {
|
||||||
.cell {
|
display: none;
|
||||||
display: none;
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</style>
|
||||||
</style>
|
|
||||||
|
|
|
@ -1,182 +1,181 @@
|
||||||
<template>
|
<template>
|
||||||
<box-content>
|
<box-content>
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<SearchForm
|
<SearchForm
|
||||||
size="mini"
|
size="mini"
|
||||||
:that="this"
|
:that="this"
|
||||||
:search-data="searchData"
|
:search-data="searchData"
|
||||||
:search-form="setting_form"
|
:search-form="setting_form"
|
||||||
:search-handle="setting_handle"
|
:search-handle="setting_handle"
|
||||||
@search="handleSearch"
|
@search="handleSearch"
|
||||||
@reset="handleReset"
|
@reset="handleReset"
|
||||||
/>
|
/>
|
||||||
<span style="margin-left:auto;">
|
<span style="margin-left:auto;">
|
||||||
<el-button type="primary" size="small" style="margin-left:auto;" @click="handleAdd">New</el-button>
|
<el-button type="primary" size="small" style="margin-left:auto;" @click="handleAdd">New</el-button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<base-table
|
<base-table
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
:columns="setting_cols"
|
:columns="setting_cols"
|
||||||
:list="list"
|
:list="list"
|
||||||
:search-data="searchData"
|
:search-data="searchData"
|
||||||
:total="total"
|
:total="total"
|
||||||
@getList="getList"
|
@getList="getList"
|
||||||
@edit="handleEdit"
|
@edit="handleEdit"
|
||||||
@delete="handleDelete"
|
@delete="handleDelete"
|
||||||
@sortByColumn="sortByColumn"
|
@sortByColumn="sortByColumn"
|
||||||
>
|
>
|
||||||
<!-- 选择自定义slot -->
|
<!-- 选择自定义slot -->
|
||||||
<template slot="modalitySlot" slot-scope="{scope}">
|
<template slot="modalitySlot" slot-scope="{scope}">
|
||||||
{{ scope.row.ModalityList && scope.row.ModalityList.length>0?scope.row.ModalityList.join(', '):'' }}
|
{{ scope.row.ModalityList && scope.row.ModalityList.length>0?scope.row.ModalityList.join(', '):'' }}
|
||||||
</template>
|
</template>
|
||||||
</base-table>
|
</base-table>
|
||||||
<setting-form v-if="setting_model.visible" :data="rowData" @close="closeModel" />
|
<setting-form v-if="setting_model.visible" :data="rowData" @close="closeModel" />
|
||||||
</box-content>
|
</box-content>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import { getQATemplateItemList, deleteQATemplateItem } from '@/api/dictionary'
|
import { getQATemplateItemList, deleteQATemplateItem } from '@/api/dictionary'
|
||||||
import { getBasicDataSelects } from '@/api/dictionary/dictionary'
|
import { getBasicDataSelects } from '@/api/dictionary/dictionary'
|
||||||
import { setting_cols, setting_form, setting_handle, setting_model } from './template'
|
import { setting_cols, setting_form, setting_handle, setting_model } from './template'
|
||||||
import BoxContent from '@/components/BoxContent'
|
import BoxContent from '@/components/BoxContent'
|
||||||
import SearchForm from '@/components/BaseForm/search-form'
|
import SearchForm from '@/components/BaseForm/search-form'
|
||||||
import BaseTable from '@/components/BaseTable'
|
import BaseTable from '@/components/BaseTable'
|
||||||
import SettingForm from './components/SettingForm.vue'
|
import SettingForm from './components/SettingForm.vue'
|
||||||
const searchDataDefault = () => {
|
const searchDataDefault = () => {
|
||||||
return {
|
return {
|
||||||
ModalityId: '',
|
ModalityId: '',
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20
|
PageSize: 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'TemplateSettings',
|
name: 'TemplateSettings',
|
||||||
components: { BoxContent, SearchForm, BaseTable, SettingForm },
|
components: { BoxContent, SearchForm, BaseTable, SettingForm },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
setting_cols,
|
setting_cols,
|
||||||
setting_form,
|
setting_form,
|
||||||
setting_handle,
|
setting_handle,
|
||||||
setting_model,
|
setting_model,
|
||||||
list: [],
|
list: [],
|
||||||
loading: false,
|
loading: false,
|
||||||
total: 0,
|
total: 0,
|
||||||
searchData: searchDataDefault(),
|
searchData: searchDataDefault(),
|
||||||
rowData: {},
|
rowData: {},
|
||||||
readingType: {}
|
readingType: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
this.getInfo()
|
this.getInfo()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getQATemplateItemList(this.searchData).then(res => {
|
getQATemplateItemList(this.searchData).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.list = res.Result.CurrentPageData
|
this.list = res.Result.CurrentPageData
|
||||||
this.total = res.Result.TotalCount
|
this.total = res.Result.TotalCount
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
},
|
},
|
||||||
findItemIndex(key) {
|
findItemIndex(key) {
|
||||||
return this.setting_form.findIndex(value => value.prop && value.prop === key
|
return this.setting_form.findIndex(value => value.prop && value.prop === key
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
async getInfo() {
|
async getInfo() {
|
||||||
await this.getDicData()
|
await this.getDicData()
|
||||||
if (this.readingType.length > 0) {
|
if (this.readingType.length > 0) {
|
||||||
const index = this.findItemIndex('ModalityId')
|
const index = this.findItemIndex('ModalityId')
|
||||||
this.$set(this.setting_form[index], 'options', this.readingType)
|
this.$set(this.setting_form[index], 'options', this.readingType)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getDicData() {
|
getDicData() {
|
||||||
getBasicDataSelects(['ReadingType']).then(res => {
|
getBasicDataSelects(['ReadingType']).then(res => {
|
||||||
const { ReadingType } = { ...res.Result }
|
const { ReadingType } = { ...res.Result }
|
||||||
this.readingType = ReadingType || {}
|
this.readingType = ReadingType || {}
|
||||||
}).catch(() => {})
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.rowData = {}
|
this.rowData = {}
|
||||||
this.setting_model.title = 'Add'
|
this.setting_model.title = 'Add'
|
||||||
this.setting_model.visible = true
|
this.setting_model.visible = true
|
||||||
},
|
},
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.rowData = row
|
this.rowData = row
|
||||||
this.setting_model.title = 'Add'
|
this.setting_model.title = 'Add'
|
||||||
this.setting_model.visible = true
|
this.setting_model.visible = true
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
})
|
||||||
})
|
.then(() => {
|
||||||
.then(() => {
|
deleteQATemplateItem(row.Id)
|
||||||
deleteQATemplateItem(row.Id)
|
.then(res => {
|
||||||
.then(res => {
|
if (res.IsSuccess) {
|
||||||
if (res.IsSuccess) {
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
this.$message.success('Deleted successfully!')
|
}
|
||||||
}
|
})
|
||||||
})
|
})
|
||||||
})
|
},
|
||||||
},
|
sortByColumn(column) {
|
||||||
sortByColumn(column) {
|
if (column.order === 'ascending') {
|
||||||
if (column.order === 'ascending') {
|
this.searchData.Asc = true
|
||||||
this.searchData.Asc = true
|
} else {
|
||||||
} else {
|
this.searchData.Asc = false
|
||||||
this.searchData.Asc = false
|
}
|
||||||
}
|
this.searchData.SortField = column.prop
|
||||||
this.searchData.SortField = column.prop
|
this.searchData.PageIndex = 1
|
||||||
this.searchData.PageIndex = 1
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
handleReset() {
|
||||||
handleReset() {
|
this.searchData = searchDataDefault()
|
||||||
this.searchData = searchDataDefault()
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
closeModel() {
|
||||||
closeModel() {
|
this.setting_model.visible = false
|
||||||
this.setting_model.visible = false
|
this.getList()
|
||||||
this.getList()
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
<style lang="scss">
|
||||||
<style lang="scss">
|
.template-setting{
|
||||||
.template-setting{
|
height: 100%;
|
||||||
height: 100%;
|
.el-header{
|
||||||
.el-header{
|
.filter-container{
|
||||||
.filter-container{
|
margin-top: 10px;
|
||||||
margin-top: 10px;
|
display: flex;
|
||||||
display: flex;
|
align-items: center;
|
||||||
align-items: center;
|
span{
|
||||||
span{
|
font-size:13px;
|
||||||
font-size:13px;
|
margin-right:5px;
|
||||||
margin-right:5px;
|
}
|
||||||
}
|
.mr{
|
||||||
.mr{
|
margin-right: 5px;
|
||||||
margin-right: 5px;
|
width: 120px;
|
||||||
width: 120px;
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
.el-main{
|
||||||
.el-main{
|
height:calc(100% - 40px);
|
||||||
height:calc(100% - 40px);
|
padding: 0 20px;
|
||||||
padding: 0 20px;
|
.data-table{
|
||||||
.data-table{
|
height: 100%;
|
||||||
height: 100%;
|
}
|
||||||
}
|
}
|
||||||
}
|
.el-footer{
|
||||||
.el-footer{
|
padding: 0 20px;
|
||||||
padding: 0 20px;
|
}
|
||||||
}
|
.el-dialog__header{
|
||||||
.el-dialog__header{
|
padding:10px;
|
||||||
padding:10px;
|
}
|
||||||
}
|
.el-dialog__body{
|
||||||
.el-dialog__body{
|
padding:10px;
|
||||||
padding:10px;
|
}
|
||||||
}
|
}
|
||||||
}
|
</style>
|
||||||
</style>
|
|
||||||
|
|
|
@ -1,162 +1,161 @@
|
||||||
<template>
|
<template>
|
||||||
<box-content>
|
<box-content>
|
||||||
<!-- 搜索框 -->
|
<!-- 搜索框 -->
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<span style="margin-left:auto;">
|
<span style="margin-left:auto;">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleAdd"
|
@click="handleAdd"
|
||||||
>
|
>
|
||||||
Add
|
Add
|
||||||
</el-button>
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 受试者列表 -->
|
<!-- 受试者列表 -->
|
||||||
<el-table
|
<el-table
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
v-adaptive="{bottomOffset:45}"
|
v-adaptive="{bottomOffset:45}"
|
||||||
:data="list"
|
:data="list"
|
||||||
stripe
|
stripe
|
||||||
height="100"
|
height="100"
|
||||||
style="width:100%"
|
style="width:100%"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Code"
|
prop="Code"
|
||||||
label="编号"
|
label="编号"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Name"
|
prop="Name"
|
||||||
label="场景类型"
|
label="场景类型"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Value"
|
prop="Value"
|
||||||
label="签名内容(EN)"
|
label="签名内容(EN)"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ValueCN"
|
prop="ValueCN"
|
||||||
label="签名内容(CN)"
|
label="签名内容(CN)"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="UpdateTime"
|
prop="UpdateTime"
|
||||||
label="更新时间"
|
label="更新时间"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="CreateTime"
|
prop="CreateTime"
|
||||||
label="创建时间"
|
label="创建时间"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column label="Action" width="200" fixed="right">
|
<el-table-column label="Action" width="200" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleEdit(scope.row)"
|
@click="handleEdit(scope.row)"
|
||||||
>
|
>
|
||||||
Edit
|
Edit
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="text" @click="handleDelete(scope.row)">Delete</el-button>
|
<el-button type="text" @click="handleDelete(scope.row)">Delete</el-button>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<!-- 场景配置 -->
|
<!-- 场景配置 -->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="editVisible"
|
v-if="editVisible"
|
||||||
:visible.sync="editVisible"
|
:visible.sync="editVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:title="title"
|
:title="title"
|
||||||
width="700px"
|
width="700px"
|
||||||
append-to-body
|
append-to-body
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
>
|
>
|
||||||
<SceneConfigForm :parent-id="parentId" :data="rowData" @closeDialog="closeDialog" @getList="getList" />
|
<SceneConfigForm :parent-id="parentId" :data="rowData" @closeDialog="closeDialog" @getList="getList" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</box-content>
|
</box-content>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getChildList, deleteSystemBasicData } from '@/api/dictionary'
|
import { getChildList, deleteSystemBasicData } from '@/api/dictionary'
|
||||||
import BoxContent from '@/components/BoxContent'
|
import BoxContent from '@/components/BoxContent'
|
||||||
import SceneConfigForm from './SceneConfigForm'
|
import SceneConfigForm from './SceneConfigForm'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SignTemplate',
|
name: 'SignTemplate',
|
||||||
components: { BoxContent, SceneConfigForm },
|
components: { BoxContent, SceneConfigForm },
|
||||||
props: {
|
props: {
|
||||||
parentId: {
|
parentId: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
list: [],
|
list: [],
|
||||||
rowData: {},
|
rowData: {},
|
||||||
title: '',
|
title: '',
|
||||||
editVisible: false
|
editVisible: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 获取受试者列表
|
// 获取受试者列表
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getChildList(this.parentId).then(res => {
|
getChildList(this.parentId).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.list = res.Result
|
this.list = res.Result
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
},
|
},
|
||||||
// 新增
|
// 新增
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.rowData = {}
|
this.rowData = {}
|
||||||
this.title = 'Add'
|
this.title = 'Add'
|
||||||
this.editVisible = true
|
this.editVisible = true
|
||||||
},
|
},
|
||||||
// 编辑
|
// 编辑
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.rowData = { ...row }
|
this.rowData = { ...row }
|
||||||
this.title = 'Edit'
|
this.title = 'Edit'
|
||||||
this.editVisible = true
|
this.editVisible = true
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
})
|
||||||
})
|
.then(() => {
|
||||||
.then(() => {
|
deleteSystemBasicData(row.Id)
|
||||||
deleteSystemBasicData(row.Id)
|
.then(res => {
|
||||||
.then(res => {
|
if (res.IsSuccess) {
|
||||||
if (res.IsSuccess) {
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
this.$message.success('Deleted successfully!')
|
}
|
||||||
}
|
})
|
||||||
})
|
})
|
||||||
})
|
},
|
||||||
},
|
// 关闭新增、编辑框
|
||||||
// 关闭新增、编辑框
|
closeDialog() {
|
||||||
closeDialog() {
|
this.editVisible = false
|
||||||
this.editVisible = false
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
|
||||||
|
|
|
@ -1,229 +1,228 @@
|
||||||
<template>
|
<template>
|
||||||
<box-content>
|
<box-content>
|
||||||
<!-- 搜索框 -->
|
<!-- 搜索框 -->
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<el-form :inline="true" size="mini" class="base-search-form">
|
<el-form :inline="true" size="mini" class="base-search-form">
|
||||||
<el-form-item label="编号:">
|
<el-form-item label="编号:">
|
||||||
<el-input v-model="searchData.Code" style="width:100px;" />
|
<el-input v-model="searchData.Code" style="width:100px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="模板:">
|
<el-form-item label="模板:">
|
||||||
<el-input v-model="searchData.Name" style="width:100px;" />
|
<el-input v-model="searchData.Name" style="width:100px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleReset">Reset</el-button>
|
<el-button type="primary" @click="handleReset">Reset</el-button>
|
||||||
<el-button type="primary" @click="handleSearch">Search</el-button>
|
<el-button type="primary" @click="handleSearch">Search</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left:auto;">
|
<span style="margin-left:auto;">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleAdd"
|
@click="handleAdd"
|
||||||
>
|
>
|
||||||
New
|
New
|
||||||
</el-button>
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 受试者列表 -->
|
<!-- 受试者列表 -->
|
||||||
<el-table
|
<el-table
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
v-adaptive="{bottomOffset:45}"
|
v-adaptive="{bottomOffset:45}"
|
||||||
:data="list"
|
:data="list"
|
||||||
stripe
|
stripe
|
||||||
height="100"
|
height="100"
|
||||||
style="width:100%"
|
style="width:100%"
|
||||||
@sort-change="handleSortByColumn"
|
@sort-change="handleSortByColumn"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Code"
|
prop="Code"
|
||||||
label="Code"
|
label="Code"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Name"
|
prop="Name"
|
||||||
label="模板"
|
label="模板"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Value"
|
prop="Value"
|
||||||
label="签名内容(EN)"
|
label="签名内容(EN)"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ValueCN"
|
prop="ValueCN"
|
||||||
label="签名内容(CN)"
|
label="签名内容(CN)"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="UpdateTime"
|
prop="UpdateTime"
|
||||||
label="更新时间"
|
label="更新时间"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="CreateTime"
|
prop="CreateTime"
|
||||||
label="创建时间"
|
label="创建时间"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column label="Action" width="200" fixed="right">
|
<el-table-column label="Action" width="200" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleEdit(scope.row)"
|
@click="handleEdit(scope.row)"
|
||||||
>
|
>
|
||||||
Edit
|
Edit
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleConfig(scope.row)"
|
@click="handleConfig(scope.row)"
|
||||||
>
|
>
|
||||||
场景配置
|
场景配置
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-button type="text" @click="handleDelete(scope.row)">Delete</el-button>
|
<el-button type="text" @click="handleDelete(scope.row)">Delete</el-button>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<!-- 分页组件 -->
|
<!-- 分页组件 -->
|
||||||
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
|
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
|
||||||
|
|
||||||
<!-- 新增、编辑 -->
|
<!-- 新增、编辑 -->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="editVisible"
|
v-if="editVisible"
|
||||||
:visible.sync="editVisible"
|
:visible.sync="editVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:title="title"
|
:title="title"
|
||||||
width="700px"
|
width="700px"
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
>
|
>
|
||||||
<SignTemplateForm :data="rowData" @closeDialog="closeDialog" @getList="getList" />
|
<SignTemplateForm :data="rowData" @closeDialog="closeDialog" @getList="getList" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 场景配置 -->
|
<!-- 场景配置 -->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="configVisible"
|
v-if="configVisible"
|
||||||
:visible.sync="configVisible"
|
:visible.sync="configVisible"
|
||||||
title="场景配置"
|
title="场景配置"
|
||||||
:fullscreen="true"
|
:fullscreen="true"
|
||||||
append-to-body
|
append-to-body
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
>
|
>
|
||||||
<SceneList :parent-id="rowData.Id" @closeDialog="closeDialog" />
|
<SceneList :parent-id="rowData.Id" @closeDialog="closeDialog" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</box-content>
|
</box-content>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getSystemBasicDataList, deleteSystemBasicData } from '@/api/dictionary'
|
import { getSystemBasicDataList, deleteSystemBasicData } from '@/api/dictionary'
|
||||||
import BoxContent from '@/components/BoxContent'
|
import BoxContent from '@/components/BoxContent'
|
||||||
import SignTemplateForm from './components/SignTemplateForm'
|
import SignTemplateForm from './components/SignTemplateForm'
|
||||||
import SceneList from './components/SceneList'
|
import SceneList from './components/SceneList'
|
||||||
import Pagination from '@/components/Pagination'
|
import Pagination from '@/components/Pagination'
|
||||||
const searchDataDefault = () => {
|
const searchDataDefault = () => {
|
||||||
return {
|
return {
|
||||||
Code: '',
|
Code: '',
|
||||||
Name: '',
|
Name: '',
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20
|
PageSize: 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'SignTemplate',
|
name: 'SignTemplate',
|
||||||
components: { BoxContent, SignTemplateForm, Pagination, SceneList },
|
components: { BoxContent, SignTemplateForm, Pagination, SceneList },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
searchData: searchDataDefault(),
|
searchData: searchDataDefault(),
|
||||||
loading: false,
|
loading: false,
|
||||||
list: [],
|
list: [],
|
||||||
total: 0,
|
total: 0,
|
||||||
rowData: {},
|
rowData: {},
|
||||||
title: '',
|
title: '',
|
||||||
editVisible: false,
|
editVisible: false,
|
||||||
configVisible: false
|
configVisible: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 获取受试者列表
|
// 获取受试者列表
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getSystemBasicDataList(this.searchData).then(res => {
|
getSystemBasicDataList(this.searchData).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.list = res.Result.CurrentPageData
|
this.list = res.Result.CurrentPageData
|
||||||
this.total = res.Result.TotalCount
|
this.total = res.Result.TotalCount
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
},
|
},
|
||||||
// 新增
|
// 新增
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.rowData = {}
|
this.rowData = {}
|
||||||
this.title = 'Add'
|
this.title = 'Add'
|
||||||
this.editVisible = true
|
this.editVisible = true
|
||||||
},
|
},
|
||||||
// 编辑
|
// 编辑
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.rowData = { ...row }
|
this.rowData = { ...row }
|
||||||
this.title = 'Edit'
|
this.title = 'Edit'
|
||||||
this.editVisible = true
|
this.editVisible = true
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
})
|
||||||
})
|
.then(() => {
|
||||||
.then(() => {
|
deleteSystemBasicData(row.Id)
|
||||||
deleteSystemBasicData(row.Id)
|
.then(res => {
|
||||||
.then(res => {
|
if (res.IsSuccess) {
|
||||||
if (res.IsSuccess) {
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
this.$message.success('Deleted successfully!')
|
}
|
||||||
}
|
})
|
||||||
})
|
})
|
||||||
})
|
},
|
||||||
},
|
// 场景配置
|
||||||
// 场景配置
|
handleConfig(row) {
|
||||||
handleConfig(row) {
|
this.rowData = { ...row }
|
||||||
this.rowData = { ...row }
|
this.configVisible = true
|
||||||
this.configVisible = true
|
},
|
||||||
},
|
// 查询
|
||||||
// 查询
|
handleSearch() {
|
||||||
handleSearch() {
|
this.searchData.PageIndex = 1
|
||||||
this.searchData.PageIndex = 1
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
// 重置
|
||||||
// 重置
|
handleReset() {
|
||||||
handleReset() {
|
this.searchData = searchDataDefault()
|
||||||
this.searchData = searchDataDefault()
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
// 排序
|
||||||
// 排序
|
handleSortByColumn(column) {
|
||||||
handleSortByColumn(column) {
|
if (column.order === 'ascending') {
|
||||||
if (column.order === 'ascending') {
|
this.searchData.Asc = true
|
||||||
this.searchData.Asc = true
|
} else {
|
||||||
} else {
|
this.searchData.Asc = false
|
||||||
this.searchData.Asc = false
|
}
|
||||||
}
|
this.searchData.SortField = column.prop
|
||||||
this.searchData.SortField = column.prop
|
this.searchData.PageIndex = 1
|
||||||
this.searchData.PageIndex = 1
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
// 关闭新增、编辑框
|
||||||
// 关闭新增、编辑框
|
closeDialog() {
|
||||||
closeDialog() {
|
this.editVisible = false
|
||||||
this.editVisible = false
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
|
||||||
|
|
|
@ -1,242 +1,241 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container adjustment-container data-list">
|
<div class="app-container adjustment-container data-list">
|
||||||
<div class="filter-container">
|
<div class="filter-container">
|
||||||
<el-input v-model="listQuery.Reviewer" style="width:220px" size="small" placeholder="Reviewer ID" class="mr" />
|
<el-input v-model="listQuery.Reviewer" style="width:220px" size="small" placeholder="Reviewer ID" class="mr" />
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="listQuery.BeginMonth"
|
v-model="listQuery.BeginMonth"
|
||||||
size="small"
|
size="small"
|
||||||
placeholder="Beginning date"
|
placeholder="Beginning date"
|
||||||
type="month"
|
type="month"
|
||||||
value-format="yyyy-MM"
|
value-format="yyyy-MM"
|
||||||
disabled
|
disabled
|
||||||
class="mr"
|
class="mr"
|
||||||
/>
|
/>
|
||||||
<el-button size="small" type="text" @click="handleReset">Reset</el-button>
|
<el-button size="small" type="text" @click="handleReset">Reset</el-button>
|
||||||
<el-button type="primary" size="small" @click="handleSearch">Search</el-button>
|
<el-button type="primary" size="small" @click="handleSearch">Search</el-button>
|
||||||
<el-button style="margin-left:auto" type="primary" size="small" @click="handleNew">New</el-button>
|
<el-button style="margin-left:auto" type="primary" size="small" @click="handleNew">New</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="data-table">
|
<div class="data-table">
|
||||||
<el-table
|
<el-table
|
||||||
v-loading="listLoading"
|
v-loading="listLoading"
|
||||||
stripe
|
stripe
|
||||||
:data="list"
|
:data="list"
|
||||||
height="100%"
|
height="100%"
|
||||||
size="small"
|
size="small"
|
||||||
@sort-change="sortByColumn"
|
@sort-change="sortByColumn"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="50" />
|
<el-table-column type="index" width="50" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="LastName"
|
prop="LastName"
|
||||||
label="Name"
|
label="Name"
|
||||||
min-width="100"
|
min-width="100"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">{{ scope.row.LastName + ' / ' + scope.row.FirstName }}</template>
|
<template slot-scope="scope">{{ scope.row.LastName + ' / ' + scope.row.FirstName }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ChineseName"
|
prop="ChineseName"
|
||||||
label="Name CN"
|
label="Name CN"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ReviewerCode"
|
prop="ReviewerCode"
|
||||||
label="Reviewer ID"
|
label="Reviewer ID"
|
||||||
min-width="110"
|
min-width="110"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="AdjustPaymentUSD"
|
prop="AdjustPaymentUSD"
|
||||||
label="Amount($)"
|
label="Amount($)"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">{{ scope.row.AdjustPaymentUSD | rounding }}</template>
|
<template slot-scope="scope">{{ scope.row.AdjustPaymentUSD | rounding }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="AdjustPaymentCNY"
|
prop="AdjustPaymentCNY"
|
||||||
label="Amount(¥)"
|
label="Amount(¥)"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.AdjustPaymentCNY | rounding }}</span>
|
<span>{{ scope.row.AdjustPaymentCNY | rounding }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Note" label="Note" min-width="120" show-overflow-tooltip />
|
<el-table-column prop="Note" label="Note" min-width="120" show-overflow-tooltip />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="YearMonth"
|
prop="YearMonth"
|
||||||
label="Adjust Month"
|
label="Adjust Month"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column label="Action">
|
<el-table-column label="Action">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button size="small" type="text" :disabled="scope.row.IsLock" @click="handleEdit(scope.row)">Edit</el-button>
|
<el-button size="small" type="text" :disabled="scope.row.IsLock" @click="handleEdit(scope.row)">Edit</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="small"
|
size="small"
|
||||||
type="text"
|
type="text"
|
||||||
:disabled="scope.row.IsLock"
|
:disabled="scope.row.IsLock"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>Delete</el-button>
|
>Delete</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
<pagination :total="total" :page.sync="listQuery.PageIndex" :limit.sync="listQuery.PageSize" @pagination="getList" />
|
<pagination :total="total" :page.sync="listQuery.PageIndex" :limit.sync="listQuery.PageSize" @pagination="getList" />
|
||||||
</div>
|
</div>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:title="title"
|
:title="title"
|
||||||
:visible.sync="dialogVisible"
|
:visible.sync="dialogVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
width="600px"
|
width="600px"
|
||||||
>
|
>
|
||||||
<adjustment-form
|
<adjustment-form
|
||||||
:key="timer"
|
:key="timer"
|
||||||
:row="row"
|
:row="row"
|
||||||
:date="date"
|
:date="date"
|
||||||
:exchange-rate="exchangeRate"
|
:exchange-rate="exchangeRate"
|
||||||
@closeDialog="closeDialog"
|
@closeDialog="closeDialog"
|
||||||
@getList="getList"
|
@getList="getList"
|
||||||
/>
|
/>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import Pagination from '@/components/Pagination'
|
import Pagination from '@/components/Pagination'
|
||||||
import AdjustmentForm from './components/AdjustmentForm'
|
import AdjustmentForm from './components/AdjustmentForm'
|
||||||
import { getPaymentAdjustmentList, deletePaymentAdjustment } from '@/api/financials'
|
import { getPaymentAdjustmentList, deletePaymentAdjustment } from '@/api/financials'
|
||||||
import { FormatTime } from '@/utils/formatter'
|
import { FormatTime } from '@/utils/formatter'
|
||||||
export default {
|
export default {
|
||||||
filters: {
|
filters: {
|
||||||
rounding(value) {
|
rounding(value) {
|
||||||
return value ? Number(value).toFixed(2) : value
|
return value ? Number(value).toFixed(2) : value
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: { Pagination, AdjustmentForm },
|
components: { Pagination, AdjustmentForm },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
listQuery: {
|
listQuery: {
|
||||||
TrialCode: '',
|
TrialCode: '',
|
||||||
Reviewer: '',
|
Reviewer: '',
|
||||||
BeginMonth: '',
|
BeginMonth: '',
|
||||||
EndMonth: '',
|
EndMonth: '',
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
Asc: false,
|
Asc: false,
|
||||||
SortField: ''
|
SortField: ''
|
||||||
},
|
},
|
||||||
listLoading: false,
|
listLoading: false,
|
||||||
list: [],
|
list: [],
|
||||||
total: 0,
|
total: 0,
|
||||||
exchangeRate: '',
|
exchangeRate: '',
|
||||||
date: '',
|
date: '',
|
||||||
timer: '',
|
timer: '',
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
title: '',
|
title: '',
|
||||||
row: ''
|
row: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.date = this.$router.currentRoute.query.date
|
this.date = this.$router.currentRoute.query.date
|
||||||
this.listQuery.BeginMonth = this.date
|
this.listQuery.BeginMonth = this.date
|
||||||
this.listQuery.EndMonth = this.date
|
this.listQuery.EndMonth = this.date
|
||||||
// this.exchangeRate = this.$router.currentRoute.query.exchangeRate ? parseInt(this.$router.currentRoute.query.exchangeRate) : 0
|
// this.exchangeRate = this.$router.currentRoute.query.exchangeRate ? parseInt(this.$router.currentRoute.query.exchangeRate) : 0
|
||||||
this.exchangeRate = this.$router.currentRoute.query.exchangeRate ? this.$router.currentRoute.query.exchangeRate : 0
|
this.exchangeRate = this.$router.currentRoute.query.exchangeRate ? this.$router.currentRoute.query.exchangeRate : 0
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getList() {
|
getList() {
|
||||||
this.listLoading = true
|
this.listLoading = true
|
||||||
getPaymentAdjustmentList(this.listQuery).then(res => {
|
getPaymentAdjustmentList(this.listQuery).then(res => {
|
||||||
this.listLoading = false
|
this.listLoading = false
|
||||||
this.list = res.Result.CurrentPageData
|
this.list = res.Result.CurrentPageData
|
||||||
this.total = res.Result.TotalCount
|
this.total = res.Result.TotalCount
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleNew() {
|
handleNew() {
|
||||||
this.title = 'New'
|
this.title = 'New'
|
||||||
this.row = {}
|
this.row = {}
|
||||||
this.timer = new Date().getTime()
|
this.timer = new Date().getTime()
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.title = 'Edit'
|
this.title = 'Edit'
|
||||||
this.row = JSON.parse(JSON.stringify(row))
|
this.row = JSON.parse(JSON.stringify(row))
|
||||||
this.timer = new Date().getTime()
|
this.timer = new Date().getTime()
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Confirm to delete?', {
|
this.$confirm('Confirm to delete?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
})
|
||||||
})
|
.then(() => {
|
||||||
.then(() => {
|
deletePaymentAdjustment(row.Id)
|
||||||
deletePaymentAdjustment(row.Id)
|
.then(res => {
|
||||||
.then(res => {
|
if (res.IsSuccess) {
|
||||||
if (res.IsSuccess) {
|
this.list.splice(this.list.indexOf(row), 1)
|
||||||
this.list.splice(this.list.indexOf(row), 1)
|
this.total = this.total - 1
|
||||||
this.total = this.total - 1
|
this.$message.success('Deleted successfully !')
|
||||||
this.$message.success('Deleted successfully !')
|
}
|
||||||
}
|
})
|
||||||
})
|
})
|
||||||
})
|
},
|
||||||
},
|
handleSearch() {
|
||||||
handleSearch() {
|
this.listQuery.PageIndex = 1
|
||||||
this.listQuery.PageIndex = 1
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
handleReset() {
|
||||||
handleReset() {
|
this.listQuery.PageIndex = 1
|
||||||
this.listQuery.PageIndex = 1
|
this.listQuery.Reviewer = ''
|
||||||
this.listQuery.Reviewer = ''
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
sortByColumn(column) {
|
||||||
sortByColumn(column) {
|
if (column.order === 'ascending') {
|
||||||
if (column.order === 'ascending') {
|
this.listQuery.Asc = true
|
||||||
this.listQuery.Asc = true
|
} else {
|
||||||
} else {
|
this.listQuery.Asc = false
|
||||||
this.listQuery.Asc = false
|
}
|
||||||
}
|
this.listQuery.SortField = column.prop
|
||||||
this.listQuery.SortField = column.prop
|
this.listQuery.PageIndex = 1
|
||||||
this.listQuery.PageIndex = 1
|
this.getList()
|
||||||
this.getList()
|
},
|
||||||
},
|
closeDialog() {
|
||||||
closeDialog() {
|
this.dialogVisible = false
|
||||||
this.dialogVisible = false
|
},
|
||||||
},
|
adjustMonthFormatter(row) {
|
||||||
adjustMonthFormatter(row) {
|
if (row.AdjustedYearMonth) {
|
||||||
if (row.AdjustedYearMonth) {
|
const date = new Date(row.AdjustedYearMonth)
|
||||||
const date = new Date(row.AdjustedYearMonth)
|
return FormatTime(date, 'yyyy-MM')
|
||||||
return FormatTime(date, 'yyyy-MM')
|
} else {
|
||||||
} else {
|
return ''
|
||||||
return ''
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
<style lang="scss">
|
||||||
<style lang="scss">
|
.adjustment-container{
|
||||||
.adjustment-container{
|
|
||||||
|
.filter-container{
|
||||||
.filter-container{
|
display: flex;
|
||||||
display: flex;
|
align-items: center;
|
||||||
align-items: center;
|
.mr{
|
||||||
.mr{
|
margin-right:5px;
|
||||||
margin-right:5px;
|
}
|
||||||
}
|
}
|
||||||
}
|
.list-container{
|
||||||
.list-container{
|
height: calc(100% - 80px);
|
||||||
height: calc(100% - 80px);
|
}
|
||||||
}
|
}
|
||||||
}
|
</style>
|
||||||
</style>
|
|
||||||
|
|
||||||
|
|
|
@ -1,198 +1,198 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container exchange-rate data-list">
|
<div class="app-container exchange-rate data-list">
|
||||||
<div class="filter-container">
|
<div class="filter-container">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="listQuery.SearchMonth"
|
v-model="listQuery.SearchMonth"
|
||||||
size="small"
|
size="small"
|
||||||
placeholder="Search Month"
|
placeholder="Search Month"
|
||||||
value-format="yyyy-MM"
|
value-format="yyyy-MM"
|
||||||
format="yyyy-MM"
|
format="yyyy-MM"
|
||||||
type="month"
|
type="month"
|
||||||
style="width:150px;margin-right:5px"
|
style="width:150px;margin-right:5px"
|
||||||
:picker-options="pickerOption"
|
:picker-options="pickerOption"
|
||||||
/>
|
/>
|
||||||
<el-button size="small" type="text" @click="handleReset">Reset</el-button>
|
<el-button size="small" type="text" @click="handleReset">Reset</el-button>
|
||||||
<el-button type="primary" size="small" @click="handleSearch">Search</el-button>
|
<el-button type="primary" size="small" @click="handleSearch">Search</el-button>
|
||||||
<el-button style="margin-left:auto" type="primary" size="small" @click="handleNew">New</el-button>
|
<el-button style="margin-left:auto" type="primary" size="small" @click="handleNew">New</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="list-container">
|
<div class="list-container">
|
||||||
<el-table
|
<el-table
|
||||||
v-loading="listLoading"
|
v-loading="listLoading"
|
||||||
:data="list"
|
:data="list"
|
||||||
stripe
|
stripe
|
||||||
class="table"
|
class="table"
|
||||||
height="100%"
|
height="100%"
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="50" />
|
<el-table-column type="index" width="50" />
|
||||||
|
|
||||||
<el-table-column prop="YearMonth" label="Month" min-width="60" show-overflow-tooltip />
|
<el-table-column prop="YearMonth" label="Month" min-width="60" show-overflow-tooltip />
|
||||||
<el-table-column prop="Rate" label="Rate" min-width="60" show-overflow-tooltip />
|
<el-table-column prop="Rate" label="Rate" min-width="60" show-overflow-tooltip />
|
||||||
<el-table-column prop="UpdateTime" label="Update Time" min-width="70" show-overflow-tooltip />
|
<el-table-column prop="UpdateTime" label="Update Time" min-width="70" show-overflow-tooltip />
|
||||||
|
|
||||||
<el-table-column fixed="right" label="Action" min-width="150">
|
<el-table-column fixed="right" label="Action" min-width="150">
|
||||||
<template slot-scope="scope" min-width="130">
|
<template slot-scope="scope" min-width="130">
|
||||||
<el-button
|
<el-button
|
||||||
size="small"
|
size="small"
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleEdit(scope.row)"
|
@click="handleEdit(scope.row)"
|
||||||
>Edit</el-button>
|
>Edit</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="small"
|
size="small"
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>Delete</el-button>
|
>Delete</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
<pagination :total="total" :page.sync="listQuery.PageIndex" :limit.sync="listQuery.PageSize" @pagination="getList" />
|
<pagination :total="total" :page.sync="listQuery.PageIndex" :limit.sync="listQuery.PageSize" @pagination="getList" />
|
||||||
</div>
|
</div>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:key="timer"
|
:key="timer"
|
||||||
:title="title"
|
:title="title"
|
||||||
:visible.sync="dialogVisible"
|
:visible.sync="dialogVisible"
|
||||||
width="500px"
|
width="500px"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-form ref="rateForm" label-width="150px" :rules="rules" :model="form" size="small">
|
<el-form ref="rateForm" label-width="150px" :rules="rules" :model="form" size="small">
|
||||||
<el-form-item label="Month: " prop="YearMonth">
|
<el-form-item label="Month: " prop="YearMonth">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="form.YearMonth"
|
v-model="form.YearMonth"
|
||||||
type="month"
|
type="month"
|
||||||
value-format="yyyy-MM"
|
value-format="yyyy-MM"
|
||||||
:disabled="form.Id !=''&& form.Id !=undefined"
|
:disabled="form.Id !=''&& form.Id !=undefined"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Exchange Rate: " prop="Rate">
|
<el-form-item label="Exchange Rate: " prop="Rate">
|
||||||
<el-input v-model="form.Rate" type="number" />
|
<el-input v-model="form.Rate" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button size="small" @click="dialogVisible = false">Cancel</el-button>
|
<el-button size="small" @click="dialogVisible = false">Cancel</el-button>
|
||||||
<el-button type="primary" :disabled="btnDisabled" size="small" @click="handleSave">Ok</el-button>
|
<el-button type="primary" :disabled="btnDisabled" size="small" @click="handleSave">Ok</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getRateList, addOrUpdateExchangeRate, deleteExchangeRate } from '@/api/financials'
|
import { getRateList, addOrUpdateExchangeRate, deleteExchangeRate } from '@/api/financials'
|
||||||
import Pagination from '@/components/Pagination'
|
import Pagination from '@/components/Pagination'
|
||||||
export default {
|
export default {
|
||||||
name: 'ExchangeRate',
|
name: 'ExchangeRate',
|
||||||
components: { Pagination },
|
components: { Pagination },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
listQuery: { SearchMonth: '', PageIndex: 1, PageSize: 20 },
|
listQuery: { SearchMonth: '', PageIndex: 1, PageSize: 20 },
|
||||||
list: [],
|
list: [],
|
||||||
listLoading: false,
|
listLoading: false,
|
||||||
total: 0,
|
total: 0,
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
title: '',
|
title: '',
|
||||||
timer: '',
|
timer: '',
|
||||||
form: {},
|
form: {},
|
||||||
rules: {
|
rules: {
|
||||||
Rate: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
Rate: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
YearMonth: [{ required: true, message: 'Please specify', trigger: 'blur' }]
|
YearMonth: [{ required: true, message: 'Please specify', trigger: 'blur' }]
|
||||||
},
|
},
|
||||||
btnDisabled: false,
|
btnDisabled: false,
|
||||||
pickerOption: {
|
pickerOption: {
|
||||||
disabledDate: time => {
|
disabledDate: time => {
|
||||||
return time.getTime() > Date.now()
|
return time.getTime() > Date.now()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() { this.getList() },
|
mounted() { this.getList() },
|
||||||
methods: {
|
methods: {
|
||||||
getList() {
|
getList() {
|
||||||
this.listLoading = true
|
this.listLoading = true
|
||||||
getRateList(this.listQuery).then(res => {
|
getRateList(this.listQuery).then(res => {
|
||||||
this.listLoading = false
|
this.listLoading = false
|
||||||
this.list = res.Result.CurrentPageData
|
this.list = res.Result.CurrentPageData
|
||||||
this.total = res.Result.TotalCount
|
this.total = res.Result.TotalCount
|
||||||
}).catch(() => { this.listLoading = false })
|
}).catch(() => { this.listLoading = false })
|
||||||
},
|
},
|
||||||
handleNew() {
|
handleNew() {
|
||||||
this.form = {}
|
this.form = {}
|
||||||
this.title = 'Add'
|
this.title = 'Add'
|
||||||
this.timer = new Date().getTime()
|
this.timer = new Date().getTime()
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.title = 'Edit'
|
this.title = 'Edit'
|
||||||
this.form = JSON.parse(JSON.stringify(row))
|
this.form = JSON.parse(JSON.stringify(row))
|
||||||
this.timer = new Date().getTime()
|
this.timer = new Date().getTime()
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
handleSave() {
|
handleSave() {
|
||||||
this.$refs.rateForm.validate(valid => {
|
this.$refs.rateForm.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.btnDisabled = true
|
this.btnDisabled = true
|
||||||
const param = {
|
const param = {
|
||||||
Rate: this.form.Rate,
|
Rate: this.form.Rate,
|
||||||
YearMonth: this.form.YearMonth
|
YearMonth: this.form.YearMonth
|
||||||
}
|
}
|
||||||
this.form.Id ? param.Id = this.form.Id : ''
|
this.form.Id ? param.Id = this.form.Id : ''
|
||||||
addOrUpdateExchangeRate(param).then(res => {
|
addOrUpdateExchangeRate(param).then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.getList()
|
this.getList()
|
||||||
this.$message.success('Updated successfully!')
|
this.$message.success('Updated successfully!')
|
||||||
this.dialogVisible = false
|
this.dialogVisible = false
|
||||||
}
|
}
|
||||||
this.btnDisabled = false
|
this.btnDisabled = false
|
||||||
})
|
})
|
||||||
.catch(() => { this.btnDisabled = false })
|
.catch(() => { this.btnDisabled = false })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Confirm to delete?', {
|
this.$confirm('Confirm to delete?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Yes',
|
confirmButtonText: 'Yes',
|
||||||
cancelButtonText: 'No'
|
cancelButtonText: 'No'
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteExchangeRate(row.Id)
|
deleteExchangeRate(row.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(action => {})
|
.catch(action => {})
|
||||||
},
|
},
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
this.listQuery.PageIndex = 1
|
this.listQuery.PageIndex = 1
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.listQuery.SearchMonth = ''
|
this.listQuery.SearchMonth = ''
|
||||||
this.listQuery.PageIndex = 1
|
this.listQuery.PageIndex = 1
|
||||||
this.getList()
|
this.getList()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.exchange-rate{
|
.exchange-rate{
|
||||||
padding: 0;
|
padding: 0;
|
||||||
.filter-container{
|
.filter-container{
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
.list-container{
|
.list-container{
|
||||||
height: calc(100% - 70px);
|
height: calc(100% - 70px);
|
||||||
}
|
}
|
||||||
.el-date-editor.el-input{
|
.el-date-editor.el-input{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
.el-date-editor.el-input__inner {
|
.el-date-editor.el-input__inner {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,324 +1,323 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="rates-container">
|
<div class="rates-container">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<p>Rank-Based Rates</p>
|
<p>Rank-Based Rates</p>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
class="addBtn"
|
class="addBtn"
|
||||||
size="small"
|
size="small"
|
||||||
@click="handleAdd"
|
@click="handleAdd"
|
||||||
>New</el-button>
|
>New</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
v-loading="listLoading"
|
v-loading="listLoading"
|
||||||
size="small"
|
size="small"
|
||||||
:data="list"
|
:data="list"
|
||||||
max-height="300"
|
max-height="300"
|
||||||
stripe
|
stripe
|
||||||
class="table"
|
class="table"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="40" />
|
<el-table-column type="index" width="40" />
|
||||||
<el-table-column prop="RankName" label="Rank" show-overflow-tooltip min-width="100" />
|
<el-table-column prop="RankName" label="Rank" show-overflow-tooltip min-width="100" />
|
||||||
<el-table-column prop="Training" label="Training ($)" min-width="90" show-overflow-tooltip>
|
<el-table-column prop="Training" label="Training ($)" min-width="90" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.Training | rounding }}</span>
|
<span>{{ scope.row.Training | rounding }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="RefresherTraining" label="Refresher Training ($)" min-width="130" show-overflow-tooltip>
|
<el-table-column prop="RefresherTraining" label="Refresher Training ($)" min-width="130" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.RefresherTraining | rounding }}</span>
|
<span>{{ scope.row.RefresherTraining | rounding }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Timepoint" align="center">
|
<el-table-column label="Timepoint" align="center">
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Timepoint"
|
prop="Timepoint"
|
||||||
label="Regular ($)"
|
label="Regular ($)"
|
||||||
min-width="90"
|
min-width="90"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.Timepoint | rounding }}</span>
|
<span>{{ scope.row.Timepoint | rounding }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="TimepointIn48H"
|
prop="TimepointIn48H"
|
||||||
label="48-hour ($)"
|
label="48-hour ($)"
|
||||||
min-width="90"
|
min-width="90"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.TimepointIn48H | rounding }}</span>
|
<span>{{ scope.row.TimepointIn48H | rounding }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="TimepointIn24H"
|
prop="TimepointIn24H"
|
||||||
label="24-hour ($)"
|
label="24-hour ($)"
|
||||||
min-width="90"
|
min-width="90"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.TimepointIn24H | rounding }}</span>
|
<span>{{ scope.row.TimepointIn24H | rounding }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Adjudication" align="center">
|
<el-table-column label="Adjudication" align="center">
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Adjudication"
|
prop="Adjudication"
|
||||||
label="Regular ($)"
|
label="Regular ($)"
|
||||||
min-width="90"
|
min-width="90"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.Adjudication | rounding }}</span>
|
<span>{{ scope.row.Adjudication | rounding }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="AdjudicationIn48H"
|
prop="AdjudicationIn48H"
|
||||||
label="48-hour ($)"
|
label="48-hour ($)"
|
||||||
min-width="90"
|
min-width="90"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.AdjudicationIn48H | rounding }}</span>
|
<span>{{ scope.row.AdjudicationIn48H | rounding }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="AdjudicationIn24H"
|
prop="AdjudicationIn24H"
|
||||||
label="24-hour ($)"
|
label="24-hour ($)"
|
||||||
min-width="90"
|
min-width="90"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.AdjudicationIn24H | rounding }}</span>
|
<span>{{ scope.row.AdjudicationIn24H | rounding }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="Global" label="Global ($)" min-width="100" show-overflow-tooltip>
|
<el-table-column prop="Global" label="Global ($)" min-width="100" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.Global | rounding }}</span>
|
<span>{{ scope.row.Global | rounding }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="Downtime" label="Downtime ($)" min-width="100" show-overflow-tooltip>
|
<el-table-column prop="Downtime" label="Downtime ($)" min-width="100" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.Downtime | rounding }}</span>
|
<span>{{ scope.row.Downtime | rounding }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
fixed="right"
|
fixed="right"
|
||||||
label="Action"
|
label="Action"
|
||||||
min-width="100"
|
min-width="100"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope" min-width="130">
|
<template slot-scope="scope" min-width="130">
|
||||||
<el-button
|
<el-button
|
||||||
size="small"
|
size="small"
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleEdit(scope.row)"
|
@click="handleEdit(scope.row)"
|
||||||
>Edit</el-button>
|
>Edit</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="small"
|
size="small"
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>Delete</el-button>
|
>Delete</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<pagination style="text-align:right;margin-top:5px;" :total="total" :page.sync="listQuery.PageIndex" :limit.sync="listQuery.PageSize" @pagination="getList" />
|
<pagination style="text-align:right;margin-top:5px;" :total="total" :page.sync="listQuery.PageIndex" :limit.sync="listQuery.PageSize" @pagination="getList" />
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:key="timer"
|
:key="timer"
|
||||||
:title="title"
|
:title="title"
|
||||||
:visible.sync="dialogVisible"
|
:visible.sync="dialogVisible"
|
||||||
width="500px"
|
width="500px"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
<el-form ref="baseRateForm" label-width="190px" :rules="rules" :model="baseRateForm" size="small">
|
<el-form ref="baseRateForm" label-width="190px" :rules="rules" :model="baseRateForm" size="small">
|
||||||
<el-form-item label="Rank: " prop="RankName">
|
<el-form-item label="Rank: " prop="RankName">
|
||||||
<el-input v-model="baseRateForm.RankName" />
|
<el-input v-model="baseRateForm.RankName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Training ($): " prop="Training">
|
<el-form-item label="Training ($): " prop="Training">
|
||||||
<!-- <el-input v-model="baseRateForm.Training" type="number" /> -->
|
<!-- <el-input v-model="baseRateForm.Training" type="number" /> -->
|
||||||
<el-input-number v-model="baseRateForm.Training" style="width:100%;" :min="0" />
|
<el-input-number v-model="baseRateForm.Training" style="width:100%;" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Refresher Training ($): " prop="RefresherTraining">
|
<el-form-item label="Refresher Training ($): " prop="RefresherTraining">
|
||||||
<el-input-number v-model="baseRateForm.RefresherTraining" style="width:100%;" :min="0" />
|
<el-input-number v-model="baseRateForm.RefresherTraining" style="width:100%;" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Timepoint ($): " prop="Timepoint">
|
<el-form-item label="Timepoint ($): " prop="Timepoint">
|
||||||
<!-- <el-input v-model="baseRateForm.Timepoint" type="number" /> -->
|
<!-- <el-input v-model="baseRateForm.Timepoint" type="number" /> -->
|
||||||
<el-input-number v-model="baseRateForm.Timepoint" style="width:100%;" :min="0" @input="timepointChange" />
|
<el-input-number v-model="baseRateForm.Timepoint" style="width:100%;" :min="0" @input="timepointChange" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Timepoint 48H ($): " prop="TimepointIn48H">
|
<el-form-item label="Timepoint 48H ($): " prop="TimepointIn48H">
|
||||||
<!-- <el-input v-model="baseRateForm.TimepointIn48H" type="number" /> -->
|
<!-- <el-input v-model="baseRateForm.TimepointIn48H" type="number" /> -->
|
||||||
<el-input-number v-model="baseRateForm.TimepointIn48H" style="width:100%;" :min="0" />
|
<el-input-number v-model="baseRateForm.TimepointIn48H" style="width:100%;" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Timepoint 24H ($): " prop="TimepointIn24H">
|
<el-form-item label="Timepoint 24H ($): " prop="TimepointIn24H">
|
||||||
<!-- <el-input v-model="baseRateForm.TimepointIn24H" type="number" /> -->
|
<!-- <el-input v-model="baseRateForm.TimepointIn24H" type="number" /> -->
|
||||||
<el-input-number v-model="baseRateForm.TimepointIn24H" style="width:100%;" :min="0" />
|
<el-input-number v-model="baseRateForm.TimepointIn24H" style="width:100%;" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Adjudication ($): " prop="Adjudication">
|
<el-form-item label="Adjudication ($): " prop="Adjudication">
|
||||||
<!-- <el-input v-model="baseRateForm.Adjudication" type="number" /> -->
|
<!-- <el-input v-model="baseRateForm.Adjudication" type="number" /> -->
|
||||||
<el-input-number v-model="baseRateForm.Adjudication" style="width:100%;" :min="0" />
|
<el-input-number v-model="baseRateForm.Adjudication" style="width:100%;" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Adjudication 48H ($): " prop="AdjudicationIn48H">
|
<el-form-item label="Adjudication 48H ($): " prop="AdjudicationIn48H">
|
||||||
<!-- <el-input v-model="baseRateForm.AdjudicationIn48H" type="number" /> -->
|
<!-- <el-input v-model="baseRateForm.AdjudicationIn48H" type="number" /> -->
|
||||||
<el-input-number v-model="baseRateForm.AdjudicationIn48H" style="width:100%;" :min="0" />
|
<el-input-number v-model="baseRateForm.AdjudicationIn48H" style="width:100%;" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Adjudication 24H ($): " prop="AdjudicationIn24H">
|
<el-form-item label="Adjudication 24H ($): " prop="AdjudicationIn24H">
|
||||||
<!-- <el-input v-model="baseRateForm.AdjudicationIn24H" type="number" /> -->
|
<!-- <el-input v-model="baseRateForm.AdjudicationIn24H" type="number" /> -->
|
||||||
<el-input-number v-model="baseRateForm.AdjudicationIn24H" style="width:100%;" :min="0" />
|
<el-input-number v-model="baseRateForm.AdjudicationIn24H" style="width:100%;" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Global ($): " prop="Global">
|
<el-form-item label="Global ($): " prop="Global">
|
||||||
<el-input v-model="baseRateForm.Global" disabled type="number" />
|
<el-input v-model="baseRateForm.Global" disabled type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Downtime ($): " prop="Downtime">
|
<el-form-item label="Downtime ($): " prop="Downtime">
|
||||||
<el-input-number v-model="baseRateForm.Downtime" style="width:100%;" :min="0" />
|
<el-input-number v-model="baseRateForm.Downtime" style="width:100%;" :min="0" />
|
||||||
<!-- <el-input v-model="baseRateForm.Downtime" type="number" /> -->
|
<!-- <el-input v-model="baseRateForm.Downtime" type="number" /> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button size="small" @click="dialogVisible = false">Cancel</el-button>
|
<el-button size="small" @click="dialogVisible = false">Cancel</el-button>
|
||||||
<el-button type="primary" :disabled="btnDisabled" size="small" @click="handleSave">Ok</el-button>
|
<el-button type="primary" :disabled="btnDisabled" size="small" @click="handleSave">Ok</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import Pagination from '@/components/Pagination'
|
import Pagination from '@/components/Pagination'
|
||||||
import { getRankPriceList, addOrUpdateRankPrice, deleteRankPrice } from '@/api/financials'
|
import { getRankPriceList, addOrUpdateRankPrice, deleteRankPrice } from '@/api/financials'
|
||||||
const getListQueryDefault = () => {
|
const getListQueryDefault = () => {
|
||||||
return {
|
return {
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
Asc: false,
|
Asc: false,
|
||||||
SortField: ''
|
SortField: ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'RankBasedRates',
|
name: 'RankBasedRates',
|
||||||
components: { Pagination },
|
components: { Pagination },
|
||||||
filters: {
|
filters: {
|
||||||
rounding(value) {
|
rounding(value) {
|
||||||
return value ? Number(value).toFixed(2) : value
|
return value ? Number(value).toFixed(2) : value
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
listQuery: getListQueryDefault(),
|
listQuery: getListQueryDefault(),
|
||||||
list: [],
|
list: [],
|
||||||
listLoading: false,
|
listLoading: false,
|
||||||
total: 0,
|
total: 0,
|
||||||
baseRateForm: {},
|
baseRateForm: {},
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
btnDisabled: false,
|
btnDisabled: false,
|
||||||
title: '',
|
title: '',
|
||||||
timer: '',
|
timer: '',
|
||||||
rules: {
|
rules: {
|
||||||
RankName: [
|
RankName: [
|
||||||
{ required: true, message: 'Please specify', trigger: 'blur' },
|
{ required: true, message: 'Please specify', trigger: 'blur' },
|
||||||
{ max: 50, message: 'The maximum length is 50' }
|
{ max: 50, message: 'The maximum length is 50' }
|
||||||
],
|
],
|
||||||
Training: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
Training: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
Timepoint: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
Timepoint: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
TimepointIn24H: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
TimepointIn24H: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
TimepointIn48H: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
TimepointIn48H: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
Adjudication: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
Adjudication: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
AdjudicationIn24H: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
AdjudicationIn24H: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
AdjudicationIn48H: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
AdjudicationIn48H: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
Global: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
Global: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
Downtime: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
Downtime: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
RefresherTraining: [{ required: true, message: 'Please specify', trigger: 'blur' }]
|
RefresherTraining: [{ required: true, message: 'Please specify', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() { this.getList() },
|
mounted() { this.getList() },
|
||||||
methods: {
|
methods: {
|
||||||
getList() {
|
getList() {
|
||||||
this.listLoading = true
|
this.listLoading = true
|
||||||
getRankPriceList(this.listQuery).then(res => {
|
getRankPriceList(this.listQuery).then(res => {
|
||||||
this.listLoading = false
|
this.listLoading = false
|
||||||
this.list = res.Result.CurrentPageData
|
this.list = res.Result.CurrentPageData
|
||||||
this.total = res.Result.TotalCount
|
this.total = res.Result.TotalCount
|
||||||
}).catch(() => { this.listLoading = false })
|
}).catch(() => { this.listLoading = false })
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.baseRateForm = {}
|
this.baseRateForm = {}
|
||||||
this.timer = new Date().getTime()
|
this.timer = new Date().getTime()
|
||||||
this.title = 'Add'
|
this.title = 'Add'
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.title = 'Edit'
|
this.title = 'Edit'
|
||||||
this.timer = new Date().getTime()
|
this.timer = new Date().getTime()
|
||||||
this.baseRateForm = JSON.parse(JSON.stringify(row))
|
this.baseRateForm = JSON.parse(JSON.stringify(row))
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Confirm to delete?', {
|
this.$confirm('Confirm to delete?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
})
|
||||||
})
|
.then(() => {
|
||||||
.then(() => {
|
deleteRankPrice(row.Id)
|
||||||
deleteRankPrice(row.Id)
|
.then(res => {
|
||||||
.then(res => {
|
if (res.IsSuccess) {
|
||||||
if (res.IsSuccess) {
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
this.$message.success('Deleted successfully!')
|
}
|
||||||
}
|
})
|
||||||
})
|
.catch(err => {
|
||||||
.catch(err => {
|
console.log(err)
|
||||||
console.log(err)
|
})
|
||||||
})
|
})
|
||||||
})
|
},
|
||||||
},
|
handleSave() {
|
||||||
handleSave() {
|
this.$refs.baseRateForm.validate(valid => {
|
||||||
this.$refs.baseRateForm.validate(valid => {
|
if (valid) {
|
||||||
if (valid) {
|
this.btnDisabled = true
|
||||||
this.btnDisabled = true
|
addOrUpdateRankPrice(this.baseRateForm).then(res => {
|
||||||
addOrUpdateRankPrice(this.baseRateForm).then(res => {
|
this.getList()
|
||||||
this.getList()
|
this.btnDisabled = false
|
||||||
this.btnDisabled = false
|
this.$message.success('Saved successfully!')
|
||||||
this.$message.success('Saved successfully!')
|
this.dialogVisible = false
|
||||||
this.dialogVisible = false
|
}).catch(() => { this.btnDisabled = false })
|
||||||
}).catch(() => { this.btnDisabled = false })
|
}
|
||||||
}
|
})
|
||||||
})
|
},
|
||||||
},
|
timepointChange() {
|
||||||
timepointChange() {
|
this.baseRateForm.Global = this.baseRateForm.Timepoint / 2
|
||||||
this.baseRateForm.Global = this.baseRateForm.Timepoint / 2
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
<style lang="scss" scoped>
|
||||||
<style lang="scss" scoped>
|
.rates-container {
|
||||||
.rates-container {
|
.title {
|
||||||
.title {
|
position: relative;
|
||||||
position: relative;
|
height: 35px;
|
||||||
height: 35px;
|
line-height: 35px;
|
||||||
line-height: 35px;
|
background: #e4ebf1;
|
||||||
background: #e4ebf1;
|
border-left: 3px solid #0fc8e0;
|
||||||
border-left: 3px solid #0fc8e0;
|
padding-left: 5px;
|
||||||
padding-left: 5px;
|
margin-bottom:10px;
|
||||||
margin-bottom:10px;
|
font-size: 13px;
|
||||||
font-size: 13px;
|
p{
|
||||||
p{
|
margin: 0;
|
||||||
margin: 0;
|
}
|
||||||
}
|
.addBtn {
|
||||||
.addBtn {
|
position: absolute;
|
||||||
position: absolute;
|
right: 0px;
|
||||||
right: 0px;
|
top: 50%;
|
||||||
top: 50%;
|
height: 30px;
|
||||||
height: 30px;
|
margin-top: -15px;
|
||||||
margin-top: -15px;
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
</style>
|
||||||
</style>
|
|
||||||
|
|
|
@ -340,11 +340,10 @@ export default {
|
||||||
},
|
},
|
||||||
handleView(row) { row.SowFullPath ? window.open(row.SowFullPath, '_blank') : '' },
|
handleView(row) { row.SowFullPath ? window.open(row.SowFullPath, '_blank') : '' },
|
||||||
handleDeleteSOW(row) {
|
handleDeleteSOW(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'OK',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
const param = { SowPath: row.SowPath, TrialId: row.TrialId }
|
const param = { SowPath: row.SowPath, TrialId: row.TrialId }
|
||||||
|
|
|
@ -92,7 +92,7 @@ export default {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.fileList = []
|
this.fileList = []
|
||||||
this.$message({
|
this.$message({
|
||||||
message: 'Deleted successfully!',
|
message: this.$t('common:message:deletedSuccessfully'),
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
this.$emit('getFileList', this.fileList)
|
this.$emit('getFileList', this.fileList)
|
||||||
|
|
|
@ -567,8 +567,7 @@ export default {
|
||||||
this.$confirm('Confirm to delete?', {
|
this.$confirm('Confirm to delete?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'OK',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteEducationInfo(row.Id)
|
deleteEducationInfo(row.Id)
|
||||||
|
@ -636,8 +635,7 @@ export default {
|
||||||
this.$confirm('Confirm to delete?', {
|
this.$confirm('Confirm to delete?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'OK',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deletePostgraduateInfo(row.Id)
|
deletePostgraduateInfo(row.Id)
|
||||||
|
|
|
@ -181,7 +181,7 @@ export default {
|
||||||
this.fileList = []
|
this.fileList = []
|
||||||
this.GCPID = ''
|
this.GCPID = ''
|
||||||
this.$message({
|
this.$message({
|
||||||
message: 'Deleted successfully!',
|
message: this.$t('common:message:deletedSuccessfully'),
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -266,11 +266,10 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleRemoveFile(row) {
|
handleRemoveFile(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
deleteAttachment(row.Id, row.Path)
|
deleteAttachment(row.Id, row.Path)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
|
@ -278,7 +277,7 @@ export default {
|
||||||
this.resumeList.splice(this.resumeList.findIndex(item => item.Id === row.Id), 1)
|
this.resumeList.splice(this.resumeList.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.filterByLanguage()
|
this.filterByLanguage()
|
||||||
this.$message({
|
this.$message({
|
||||||
message: 'Deleted successfully!',
|
message: this.$t('common:message:deletedSuccessfully'),
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:label="$t('system:Setting:title:Vacation')"
|
:title="$t('system:Setting:title:Vacation')"
|
||||||
:visible.sync="dialogVisible"
|
:visible.sync="dialogVisible"
|
||||||
width="50%"
|
width="50%"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
|
@ -87,6 +87,7 @@
|
||||||
<div>
|
<div>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="daterange"
|
v-model="daterange"
|
||||||
|
style="width: 360px"
|
||||||
value-format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
||||||
format="yyyy-MM-dd"
|
format="yyyy-MM-dd"
|
||||||
type="daterange"
|
type="daterange"
|
||||||
|
@ -117,7 +118,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<div class="pagination">
|
<div class="pagination" style="padding: 10px 0;text-align: right">
|
||||||
<el-pagination
|
<el-pagination
|
||||||
background
|
background
|
||||||
layout="total,sizes,prev, pager, next"
|
layout="total,sizes,prev, pager, next"
|
||||||
|
@ -258,7 +259,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
})
|
})
|
||||||
|
@ -272,7 +273,7 @@ export default {
|
||||||
this.gridData.splice(index, 1)
|
this.gridData.splice(index, 1)
|
||||||
this.totalItems = this.totalItems - 1
|
this.totalItems = this.totalItems - 1
|
||||||
}
|
}
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
this.loading2 = false
|
this.loading2 = false
|
||||||
})
|
})
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="form-container">
|
<div class="form-container">
|
||||||
<div class="title-wrapper">
|
<div class="title-wrapper">
|
||||||
<p>{{$t('system:TrialExperience:title:Clinical Trial Experience')}}</p>
|
<p>{{$t('system:TrialExperience:title:Clinical Trial Experience')}}</p>
|
||||||
<el-button :disabled="$route.query.ReviewStatus === '1'" class="add" size="small" @click="handleAddClinicalTrial">Add</el-button>
|
<el-button :disabled="$route.query.ReviewStatus === '1'" class="add" size="small" @click="handleAddClinicalTrial">{{$t('common:button:add')}}</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div style="padding:0 40px;">
|
<div style="padding:0 40px;">
|
||||||
<el-table
|
<el-table
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-form-item :label="$t('system:TrialExperience:label:Phase')" prop="PhaseId">
|
<el-form-item :label="$t('system:TrialExperience:label:Phase')" prop="PhaseId">
|
||||||
<el-select v-model="clinicalTrialForm.PhaseId" placeholder="Please select">
|
<el-select v-model="clinicalTrialForm.PhaseId">
|
||||||
<!-- <el-option
|
<!-- <el-option
|
||||||
v-for="(key,value) of dictionaryList.Phase"
|
v-for="(key,value) of dictionaryList.Phase"
|
||||||
:key="value"
|
:key="value"
|
||||||
|
@ -91,7 +91,6 @@
|
||||||
<el-form-item :label="$t('system:TrialExperience:label:Review Criteria')" prop="EvaluationCriteriaIdList">
|
<el-form-item :label="$t('system:TrialExperience:label:Review Criteria')" prop="EvaluationCriteriaIdList">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="clinicalTrialForm.EvaluationCriteriaIdList"
|
v-model="clinicalTrialForm.EvaluationCriteriaIdList"
|
||||||
placeholder="Please select"
|
|
||||||
multiple
|
multiple
|
||||||
>
|
>
|
||||||
<!-- <el-option v-for="(key,value) of dictionaryList.ReadingStandard" :key="value" :label="key" :value="value" /> -->
|
<!-- <el-option v-for="(key,value) of dictionaryList.ReadingStandard" :key="value" :label="key" :value="value" /> -->
|
||||||
|
@ -267,8 +266,7 @@ export default {
|
||||||
this.$confirm('Confirm to delete?', {
|
this.$confirm('Confirm to delete?', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'OK',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteTrialExperience(row.Id)
|
deleteTrialExperience(row.Id)
|
||||||
|
|
|
@ -69,13 +69,13 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-left:auto;">
|
<span style="margin-left:auto;">
|
||||||
<el-switch
|
<!-- <el-switch-->
|
||||||
v-model="isEN"
|
<!-- v-model="isEN"-->
|
||||||
active-text="EN"
|
<!-- active-text="EN"-->
|
||||||
inactive-text="中文"
|
<!-- inactive-text="中文"-->
|
||||||
style="margin-right:10px;"
|
<!-- style="margin-right:10px;"-->
|
||||||
@change="handleIsEnChange"
|
<!-- @change="handleIsEnChange"-->
|
||||||
/>
|
<!-- />-->
|
||||||
<el-button size="small" icon="el-icon-plus" type="primary" @click="handleNew">{{$t('common:button:new')}}</el-button>
|
<el-button size="small" icon="el-icon-plus" type="primary" @click="handleNew">{{$t('common:button:new')}}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -367,17 +367,20 @@ export default {
|
||||||
},
|
},
|
||||||
tokenKey: getToken(),
|
tokenKey: getToken(),
|
||||||
share_model: { visible: false, title: '', width: '500px' },
|
share_model: { visible: false, title: '', width: '500px' },
|
||||||
shareLink: null
|
shareLink: null,
|
||||||
|
isEnglish: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
dicts: ['ReadingType', 'Subspeciality', 'Department', 'Rank', 'Position', 'ReadingStandard'],
|
dicts: ['ReadingType', 'Subspeciality', 'Department', 'Rank', 'Position', 'ReadingStandard'],
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['hospitalList', 'reviewersQuery', 'isEnglish'])
|
...mapGetters(['hospitalList', 'reviewersQuery'])
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.isEN = this.isEnglish
|
|
||||||
this.reviewersQuery ? this.listQuery = this.reviewersQuery : ''
|
this.reviewersQuery ? this.listQuery = this.reviewersQuery : ''
|
||||||
this.initPage()
|
this.initPage()
|
||||||
|
// this.isEnglish = !!((this.$route.query.isEnglish === true || this.$route.query.isEnglish === 'true'))
|
||||||
|
this.isEnglish = this.$i18n.locale === 'zh' ? false : true
|
||||||
|
this.isEN = this.isEnglish
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
copyCode() {
|
copyCode() {
|
||||||
|
|
|
@ -43,9 +43,6 @@
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="datetimerange"
|
v-model="datetimerange"
|
||||||
type="datetimerange"
|
type="datetimerange"
|
||||||
range-separator="至"
|
|
||||||
start-placeholder="开始日期"
|
|
||||||
end-placeholder="结束日期"
|
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
:default-time="['00:00:00', '23:59:59']"
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
@change="handleDatetimeChange"
|
@change="handleDatetimeChange"
|
||||||
|
@ -77,7 +74,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:label="$t('system:loginLog:table:OptType')"
|
:label="$t('system:loginLog:table:OptType')"
|
||||||
prop="OptType"
|
prop="OptType"
|
||||||
min-width="90"
|
min-width="150"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
>
|
>
|
||||||
|
@ -88,28 +85,28 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="IP"
|
label="IP"
|
||||||
prop="IP"
|
prop="IP"
|
||||||
min-width="90"
|
min-width="150"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:label="$t('system:loginLog:table:LoginFaildName')"
|
:label="$t('system:loginLog:table:LoginFaildName')"
|
||||||
prop="LoginFaildName"
|
prop="LoginFaildName"
|
||||||
min-width="90"
|
min-width="180"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:label="$t('system:loginLog:table:LoginUserName')"
|
:label="$t('system:loginLog:table:LoginUserName')"
|
||||||
prop="LoginUserName"
|
prop="LoginUserName"
|
||||||
min-width="90"
|
min-width="140"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:label="$t('system:loginLog:table:LoginUserType')"
|
:label="$t('system:loginLog:table:LoginUserType')"
|
||||||
prop="LoginUserTypeEnum"
|
prop="LoginUserTypeEnum"
|
||||||
min-width="90"
|
min-width="120"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -120,14 +117,14 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:label="$t('system:loginLog:table:OptUserName')"
|
:label="$t('system:loginLog:table:OptUserName')"
|
||||||
prop="OptUserName"
|
prop="OptUserName"
|
||||||
min-width="90"
|
min-width="200"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:label="$t('system:loginLog:table:OptUserType')"
|
:label="$t('system:loginLog:table:OptUserType')"
|
||||||
prop="OptUserTypeEnum"
|
prop="OptUserTypeEnum"
|
||||||
min-width="90"
|
min-width="200"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -138,7 +135,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:label="$t('system:loginLog:table:CreateTime')"
|
:label="$t('system:loginLog:table:CreateTime')"
|
||||||
prop="CreateTime"
|
prop="CreateTime"
|
||||||
min-width="90"
|
min-width="180"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -136,16 +136,15 @@ export default {
|
||||||
// })
|
// })
|
||||||
},
|
},
|
||||||
handleDeleteRole(row) {
|
handleDeleteRole(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
deleteUserTypeRole(row.Id).then((res) => {
|
deleteUserTypeRole(row.Id).then((res) => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex((item) => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex((item) => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -13,23 +13,20 @@ import { resetPassword } from '@/api/admin'
|
||||||
export default {
|
export default {
|
||||||
name: 'Account',
|
name: 'Account',
|
||||||
props: {
|
props: {
|
||||||
userId: { type: String, default: '' }
|
userId: { type: String, default: '' },
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.$confirm('Sure to reset password?', {
|
this.$confirm(this.$t('system:userlist:message:ResetPassword'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
resetPassword(this.userId).then(res => {
|
resetPassword(this.userId).then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.$message({
|
let msg = this.$t('system:userlist:message:ResetPassword2')
|
||||||
message: 'Reset password successfully',
|
msg = msg.replace('xxx', this.$route.query.userName)
|
||||||
type: 'success'
|
this.$alert(msg)
|
||||||
})
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -9,13 +9,14 @@
|
||||||
:search-handle="searchHandle"
|
:search-handle="searchHandle"
|
||||||
@search="handleSearch"
|
@search="handleSearch"
|
||||||
@reset="handleReset"
|
@reset="handleReset"
|
||||||
|
@new="handleAddUser"
|
||||||
/>
|
/>
|
||||||
<el-button
|
<!-- <el-button-->
|
||||||
type="primary"
|
<!-- type="primary"-->
|
||||||
size="mini"
|
<!-- size="mini"-->
|
||||||
style="margin-left:auto;height: 28px;position: absolute;bottom: 0;right: 10px"
|
<!-- style="margin-left:auto;height: 28px;position: absolute;bottom: 0;right: 10px"-->
|
||||||
@click="handleAddUser"
|
<!-- @click="handleAddUser"-->
|
||||||
>{{$t('common:button:new')}}</el-button>
|
<!-- >{{$t('common:button:new')}}</el-button>-->
|
||||||
</div>
|
</div>
|
||||||
<base-table
|
<base-table
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
|
@ -166,8 +167,8 @@ export default {
|
||||||
label: this.$t('common:action:action'),
|
label: this.$t('common:action:action'),
|
||||||
minWidth: 200,
|
minWidth: 200,
|
||||||
operates: [
|
operates: [
|
||||||
{ name: 'Edit', type: 'primary', emitKey: 'editCb' },
|
{ name: this.$t('common:button:edit'), type: 'primary', emitKey: 'editCb' },
|
||||||
{ name: 'Delete', type: 'danger', emitKey: 'deleteCb' }
|
{ name: this.$t('common:button:delete'), type: 'danger', emitKey: 'deleteCb' }
|
||||||
] }
|
] }
|
||||||
],
|
],
|
||||||
searchForm: [
|
searchForm: [
|
||||||
|
@ -205,8 +206,8 @@ export default {
|
||||||
prop: 'IsZhiZhun',
|
prop: 'IsZhiZhun',
|
||||||
width: '100px',
|
width: '100px',
|
||||||
options: [
|
options: [
|
||||||
{ label: 'Internal', value: true },
|
{ label: this.$t('system:userlist:label:InternalOrExternal:Internal'), value: true },
|
||||||
{ label: 'External', value: false }
|
{ label: this.$t('system:userlist:label:InternalOrExternal:External'), value: false }
|
||||||
],
|
],
|
||||||
props: { label: 'label', value: 'value' },
|
props: { label: 'label', value: 'value' },
|
||||||
change: scope => '',
|
change: scope => '',
|
||||||
|
@ -218,8 +219,8 @@ export default {
|
||||||
prop: 'IsTestUser',
|
prop: 'IsTestUser',
|
||||||
width: '100px',
|
width: '100px',
|
||||||
options: [
|
options: [
|
||||||
{ label: 'Yes', value: true },
|
{ label: this.$t('system:userlist:label:IsTestUser:Yes'), value: true },
|
||||||
{ label: 'No', value: false }
|
{ label: this.$t('system:userlist:label:IsTestUser:No'), value: false }
|
||||||
],
|
],
|
||||||
props: { label: 'label', value: 'value' },
|
props: { label: 'label', value: 'value' },
|
||||||
change: scope => '',
|
change: scope => '',
|
||||||
|
@ -231,8 +232,8 @@ export default {
|
||||||
prop: 'UserState',
|
prop: 'UserState',
|
||||||
width: '100px',
|
width: '100px',
|
||||||
options: [
|
options: [
|
||||||
{ label: 'Enable', value: 1 },
|
{ label: this.$t('system:userlist:label:Status:Enable'), value: 1 },
|
||||||
{ label: 'Disable', value: 0 }
|
{ label: this.$t('system:userlist:label:Status:Disable'), value: 0 }
|
||||||
],
|
],
|
||||||
props: { label: 'label', value: 'value' },
|
props: { label: 'label', value: 'value' },
|
||||||
change: scope => '',
|
change: scope => '',
|
||||||
|
@ -250,7 +251,8 @@ export default {
|
||||||
],
|
],
|
||||||
searchHandle: [
|
searchHandle: [
|
||||||
{ label: this.$t('common:button:reset'), type: 'primary', emitKey: 'reset' },
|
{ label: this.$t('common:button:reset'), type: 'primary', emitKey: 'reset' },
|
||||||
{ label: this.$t('common:button:search'), type: 'primary', emitKey: 'search' }
|
{ label: this.$t('common:button:search'), type: 'primary', emitKey: 'search' },
|
||||||
|
{ label: this.$t('common:button:new'), type: 'primary', emitKey: 'new' }
|
||||||
],
|
],
|
||||||
userTypeOptions: [],
|
userTypeOptions: [],
|
||||||
loading: false,
|
loading: false,
|
||||||
|
@ -289,22 +291,21 @@ export default {
|
||||||
},
|
},
|
||||||
// 编辑用户
|
// 编辑用户
|
||||||
handleEditUser(data) {
|
handleEditUser(data) {
|
||||||
this.$router.push({ path: '/system/user/edit', query: { Id: data.Id }})
|
this.$router.push({ path: '/system/user/edit', query: { Id: data.Id, userName: data.UserName }})
|
||||||
},
|
},
|
||||||
// 删除用户
|
// 删除用户
|
||||||
handleDeleteUser(data) {
|
handleDeleteUser(data) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
deleteSysUser(data.Id)
|
deleteSysUser(data.Id)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.users.splice(this.users.findIndex(item => item.Id === data.Id), 1)
|
this.users.splice(this.users.findIndex(item => item.Id === data.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -94,7 +94,7 @@ export default {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.fileList = []
|
this.fileList = []
|
||||||
this.$message({
|
this.$message({
|
||||||
message: 'Deleted successfully!',
|
message: this.$t('common:message:deletedSuccessfully'),
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
this.$emit('getFileList', this.fileList)
|
this.$emit('getFileList', this.fileList)
|
||||||
|
|
|
@ -137,11 +137,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm('Sure to delete?', {
|
this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
confirmButtonText: 'Ok',
|
|
||||||
cancelButtonText: 'Cancel'
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
@ -150,7 +149,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
||||||
this.$message.success('Deleted successfully!')
|
this.$message.success(this.$t('common:message:deletedSuccessfully'))
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,30 +1,30 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-card class="Security" style="width:800px;">
|
<!-- <el-card class="Security" style="width:800px;">-->
|
||||||
<div slot="header" class="clearfix">
|
<!-- <div slot="header" class="clearfix">-->
|
||||||
<span>Security</span>
|
<!-- <span>Security</span>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<el-form
|
<!-- <el-form-->
|
||||||
ref="userAccount"
|
<!-- ref="userAccount"-->
|
||||||
:model="user"
|
<!-- :model="user"-->
|
||||||
:rules="userFormRules"
|
<!-- :rules="userFormRules"-->
|
||||||
label-width="150px"
|
<!-- label-width="150px"-->
|
||||||
style="width:600px;"
|
<!-- style="width:600px;"-->
|
||||||
>
|
<!-- >-->
|
||||||
<el-form-item label="Current Password" prop="OldPassWord">
|
<!-- <el-form-item label="Current Password" prop="OldPassWord">-->
|
||||||
<el-input v-model="user.OldPassWord" type="password" />
|
<!-- <el-input v-model="user.OldPassWord" type="password" />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="New Password" prop="NewPassWord">
|
<!-- <el-form-item label="New Password" prop="NewPassWord">-->
|
||||||
<el-input v-model="user.NewPassWord" type="password" />
|
<!-- <el-input v-model="user.NewPassWord" type="password" />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="Confirm Password" prop="ConfirmPassWord">
|
<!-- <el-form-item label="Confirm Password" prop="ConfirmPassWord">-->
|
||||||
<el-input v-model="user.ConfirmPassWord" type="password" />
|
<!-- <el-input v-model="user.ConfirmPassWord" type="password" />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item>
|
<!-- <el-form-item>-->
|
||||||
<el-button type="primary" size="small" @click="save">save</el-button>
|
<!-- <el-button type="primary" size="small" @click="save">save</el-button>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
</el-form>
|
<!-- </el-form>-->
|
||||||
</el-card>
|
<!-- </el-card>-->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -1,247 +1,265 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-form
|
<el-card class="Security" style="width:800px;">
|
||||||
ref="userForm"
|
<div slot="header" class="clearfix">
|
||||||
size="small"
|
<span>Security</span>
|
||||||
:model="user"
|
</div>
|
||||||
:rules="userFormRules"
|
<el-form
|
||||||
label-width="150px"
|
ref="userForm"
|
||||||
style="width:800px;"
|
size="small"
|
||||||
>
|
:model="user"
|
||||||
<el-card class="Basic" shadow="never" size="small">
|
:rules="userFormRules"
|
||||||
<div slot="header" class="clearfix">
|
label-width="210px"
|
||||||
<span>Basic Information</span>
|
style="width:600px;"
|
||||||
</div>
|
>
|
||||||
<el-form-item v-if="user.Code" label="ID: " prop="Code">
|
<el-form-item v-if="user.Code" label="ID: " prop="Code">
|
||||||
<el-input v-model="user.Code" disabled />
|
<el-input v-model="user.Code" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="User Name: " prop="UserName">
|
<el-form-item label="User Name: " prop="UserName">
|
||||||
<el-input v-model="user.UserName" disabled />
|
<el-input v-model="user.UserName" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item v-if="user.UserTypeEnum !== 8" label="Surname: " prop="LastName">
|
||||||
<!-- <el-form-item label="Real Name: " prop="RealName">
|
<el-input v-model="user.LastName" />
|
||||||
<el-input v-model="user.RealName" />
|
</el-form-item>
|
||||||
</el-form-item> -->
|
<el-form-item v-if="user.UserTypeEnum !== 8" label="Given Name: " prop="FirstName">
|
||||||
<el-form-item v-if="user.UserTypeEnum !== 8" label="Surname: " prop="LastName">
|
<el-input v-model="user.FirstName" />
|
||||||
<el-input v-model="user.LastName" />
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="Gender: " prop="Sex" style="margin-right:40px;">
|
||||||
<el-form-item v-if="user.UserTypeEnum !== 8" label="Given Name: " prop="FirstName">
|
<el-radio-group v-model="user.Sex">
|
||||||
<el-input v-model="user.FirstName" />
|
<el-radio :label="1">Male</el-radio>
|
||||||
</el-form-item>
|
<el-radio :label="0">Female</el-radio>
|
||||||
<el-form-item label="Gender: " prop="Sex" style="margin-right:40px;">
|
</el-radio-group>
|
||||||
<el-radio-group v-model="user.Sex">
|
</el-form-item>
|
||||||
<el-radio :label="1">Male</el-radio>
|
<el-form-item label="Email: " prop="EMail">
|
||||||
<el-radio :label="0">Female</el-radio>
|
<el-input v-model="user.EMail" />
|
||||||
</el-radio-group>
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="Phone: ">
|
||||||
<el-form-item label="Email: " prop="EMail">
|
<el-input v-model="user.Phone" />
|
||||||
<el-input v-model="user.EMail" />
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item v-if="user.UserTypeEnum !== 8" label="Disable">
|
||||||
<el-form-item label="Phone: ">
|
<el-switch v-model="user.Status" :active-value="0" :inactive-value="1" disabled />
|
||||||
<el-input v-model="user.Phone" />
|
</el-form-item>
|
||||||
</el-form-item>
|
<!-- <el-form-item label="User Type: " prop="UserTypeId">
|
||||||
<el-form-item v-if="user.UserTypeEnum !== 8" label="Disable">
|
<el-select v-model="user.UserTypeId" size="small" placeholder="Please select" disabled>
|
||||||
<el-switch v-model="user.Status" :active-value="0" :inactive-value="1" disabled />
|
<el-option
|
||||||
</el-form-item>
|
v-for="(value,key) of dictionaryList.UserType"
|
||||||
<!-- <el-form-item label="User Type: " prop="UserTypeId">
|
:key="key"
|
||||||
<el-select v-model="user.UserTypeId" size="small" placeholder="Please select" disabled>
|
:label="value"
|
||||||
<el-option
|
:value="key"
|
||||||
v-for="(value,key) of dictionaryList.UserType"
|
/>
|
||||||
:key="key"
|
</el-select>
|
||||||
:label="value"
|
</el-form-item> -->
|
||||||
:value="key"
|
<!-- <el-form-item label="User Type: " prop="UserTypeId">
|
||||||
/>
|
<el-select ref="userType" v-model="user.UserTypeId" size="small" placeholder="Please select" style="width:100%;">
|
||||||
</el-select>
|
<el-option
|
||||||
</el-form-item> -->
|
v-for="(userType,key) of userTypeOptions"
|
||||||
<!-- <el-form-item label="User Type: " prop="UserTypeId">
|
:key="key"
|
||||||
<el-select ref="userType" v-model="user.UserTypeId" size="small" placeholder="Please select" style="width:100%;">
|
:label="userType.UserType"
|
||||||
<el-option
|
:value="userType.Id"
|
||||||
v-for="(userType,key) of userTypeOptions"
|
/>
|
||||||
:key="key"
|
</el-select>
|
||||||
:label="userType.UserType"
|
</el-form-item> -->
|
||||||
:value="userType.Id"
|
|
||||||
/>
|
<el-form-item label="User Type: " prop="UserType">
|
||||||
</el-select>
|
<el-input v-model="user.UserType" disabled />
|
||||||
</el-form-item> -->
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="User Type: " prop="UserType">
|
<!-- <div slot="header" class="clearfix">-->
|
||||||
<el-input v-model="user.UserType" disabled />
|
<!-- <span>Affiliation</span>-->
|
||||||
</el-form-item>
|
<!-- </div>-->
|
||||||
</el-card>
|
<el-form-item prop="IsZhiZhun">
|
||||||
|
<el-radio-group v-model="user.IsZhiZhun">
|
||||||
<el-card v-if="user.UserTypeEnum !== 8" class="Affiliation" shadow="never" style="margin-top:10px;" size="small">
|
<el-radio :label="true">Internal</el-radio>
|
||||||
<div slot="header" class="clearfix">
|
<el-radio :label="false">External</el-radio>
|
||||||
<span>Affiliation</span>
|
</el-radio-group>
|
||||||
</div>
|
</el-form-item>
|
||||||
<el-form-item prop="IsZhiZhun">
|
<el-form-item v-show="user.IsZhiZhun === false" label="Organization Name: " prop="OrganizationName">
|
||||||
<el-radio-group v-model="user.IsZhiZhun">
|
<el-input v-model="user.OrganizationName" />
|
||||||
<el-radio :label="true">Internal</el-radio>
|
</el-form-item>
|
||||||
<el-radio :label="false">External</el-radio>
|
<!-- <el-form-item label="Orgnization Type: " prop="OrganizationTypeId">
|
||||||
</el-radio-group>
|
<el-select
|
||||||
</el-form-item>
|
v-model="user.OrganizationTypeId"
|
||||||
<el-form-item v-show="user.IsZhiZhun === false" label="Organization Name: " prop="OrganizationName">
|
placeholder="Please select"
|
||||||
<el-input v-model="user.OrganizationName" />
|
@change="handelOrgnizationTypeChange"
|
||||||
</el-form-item>
|
>
|
||||||
<!-- <el-form-item label="Orgnization Type: " prop="OrganizationTypeId">
|
<el-option
|
||||||
<el-select
|
v-for="(value,key) of dictionaryList.InstitutionalType"
|
||||||
v-model="user.OrganizationTypeId"
|
:key="key"
|
||||||
placeholder="Please select"
|
:label="value"
|
||||||
@change="handelOrgnizationTypeChange"
|
:value="key"
|
||||||
>
|
/>
|
||||||
<el-option
|
</el-select>
|
||||||
v-for="(value,key) of dictionaryList.InstitutionalType"
|
</el-form-item>
|
||||||
:key="key"
|
|
||||||
:label="value"
|
<el-form-item v-show="user.OrganizationTypeId" label="Orgnization: " prop="OrganizationId">
|
||||||
:value="key"
|
<el-select v-model="user.OrganizationId" placeholder="Please select">
|
||||||
/>
|
<el-option
|
||||||
</el-select>
|
v-for="(item) of OrganizationOptions"
|
||||||
</el-form-item>
|
:key="item.Id"
|
||||||
|
:label="item.InstitutionName"
|
||||||
<el-form-item v-show="user.OrganizationTypeId" label="Orgnization: " prop="OrganizationId">
|
:value="item.Id"
|
||||||
<el-select v-model="user.OrganizationId" placeholder="Please select">
|
/>
|
||||||
<el-option
|
</el-select>
|
||||||
v-for="(item) of OrganizationOptions"
|
</el-form-item> -->
|
||||||
:key="item.Id"
|
|
||||||
:label="item.InstitutionName"
|
<el-form-item label="Department: " prop="DepartmentName">
|
||||||
:value="item.Id"
|
<el-input v-model="user.DepartmentName" />
|
||||||
/>
|
</el-form-item>
|
||||||
</el-select>
|
<el-form-item label="Position: " prop="PositionName">
|
||||||
</el-form-item> -->
|
<el-input v-model="user.PositionName" />
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="Department: " prop="DepartmentName">
|
<el-form-item>
|
||||||
<el-input v-model="user.DepartmentName" />
|
<el-button
|
||||||
</el-form-item>
|
type="primary"
|
||||||
<el-form-item label="Position: " prop="PositionName">
|
size="small"
|
||||||
<el-input v-model="user.PositionName" />
|
:disabled="isDisabled"
|
||||||
</el-form-item>
|
style="margin:10px 15px"
|
||||||
</el-card>
|
@click="handleSave"
|
||||||
<el-form-item>
|
>Save</el-button>
|
||||||
<el-button
|
</el-form-item>
|
||||||
type="primary"
|
</el-form>
|
||||||
size="small"
|
</el-card>
|
||||||
:disabled="isDisabled"
|
<el-card class="Security" style="width:800px;">
|
||||||
style="margin:10px 15px"
|
<div slot="header" class="clearfix">
|
||||||
@click="handleSave"
|
<span>Security</span>
|
||||||
>Save</el-button>
|
</div>
|
||||||
</el-form-item>
|
<el-form
|
||||||
|
ref="userAccount"
|
||||||
</el-form>
|
:model="user"
|
||||||
</div>
|
:rules="userFormRules"
|
||||||
</template>
|
label-width="210px"
|
||||||
<script>
|
style="width:600px;"
|
||||||
import { getUserTypeList, getInstitutionList, getUser, addUser, updateUser } from '@/api/admin.js'
|
>
|
||||||
import store from '@/store'
|
<el-form-item label="Current Password" prop="OldPassWord">
|
||||||
import { mapGetters } from 'vuex'
|
<el-input v-model="user.OldPassWord" type="password" />
|
||||||
export default {
|
</el-form-item>
|
||||||
data() {
|
<el-form-item label="New Password" prop="NewPassWord">
|
||||||
return {
|
<el-input v-model="user.NewPassWord" type="password" />
|
||||||
user: {},
|
</el-form-item>
|
||||||
userFormRules: {
|
<el-form-item label="Confirm New Password" prop="ConfirmPassWord">
|
||||||
UserName: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
<el-input v-model="user.ConfirmPassWord" type="password" />
|
||||||
UserTypeId: [{ required: true, message: 'Please Select', trigger: ['blur', 'change'] }],
|
</el-form-item>
|
||||||
// OrganizationId: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
<el-form-item>
|
||||||
// OrganizationTypeId: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
<el-button type="primary" size="small" @click="save">save</el-button>
|
||||||
// RealName: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
</el-form-item>
|
||||||
IsZhiZhun: [{ required: true, message: 'Please Select', trigger: ['blur', 'change'] }],
|
</el-form>
|
||||||
OrganizationName: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
</el-card>
|
||||||
LastName: [{ required: true, message: 'Please specify', trigger: 'blur' }, { max: 50, message: 'The maximum length is 50' }],
|
</div>
|
||||||
FirstName: [{ required: true, message: 'Please specify', trigger: 'blur' }, { max: 50, message: 'The maximum length is 50' }],
|
</template>
|
||||||
|
<script>
|
||||||
// Phone: [
|
import { getUserTypeList, getInstitutionList, getUser, addUser, updateUser } from '@/api/admin.js'
|
||||||
// { max: 20, min: 7, message: 'The length is 7 to 20' }
|
import store from '@/store'
|
||||||
// ],
|
import { mapGetters } from 'vuex'
|
||||||
EMail: [
|
export default {
|
||||||
{
|
data() {
|
||||||
required: true,
|
return {
|
||||||
message: 'Please input the email address',
|
user: {},
|
||||||
trigger: 'blur'
|
userFormRules: {
|
||||||
},
|
UserName: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
{
|
UserTypeId: [{ required: true, message: 'Please Select', trigger: ['blur', 'change'] }],
|
||||||
type: 'email',
|
// OrganizationId: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
message: 'Please input the correct email address',
|
// OrganizationTypeId: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
trigger: ['blur', 'change']
|
// RealName: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
},
|
IsZhiZhun: [{ required: true, message: 'Please Select', trigger: ['blur', 'change'] }],
|
||||||
{ max: 50, message: 'The maximum length is 50' }
|
OrganizationName: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
],
|
LastName: [{ required: true, message: 'Please specify', trigger: 'blur' }, { max: 50, message: 'The maximum length is 50' }],
|
||||||
Sex: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
FirstName: [{ required: true, message: 'Please specify', trigger: 'blur' }, { max: 50, message: 'The maximum length is 50' }],
|
||||||
Status: [{ required: true, message: 'Please specify', trigger: 'blur' }]
|
|
||||||
},
|
// Phone: [
|
||||||
// OrganizationOptions: [],
|
// { max: 20, min: 7, message: 'The length is 7 to 20' }
|
||||||
userTypeOptions: [],
|
// ],
|
||||||
isDisabled: false
|
EMail: [
|
||||||
}
|
{
|
||||||
},
|
required: true,
|
||||||
computed: {
|
message: 'Please input the email address',
|
||||||
...mapGetters(['userId'])
|
trigger: 'blur'
|
||||||
},
|
},
|
||||||
mounted() {
|
{
|
||||||
// this.getUserTypeList()
|
type: 'email',
|
||||||
this.initPage()
|
message: 'Please input the correct email address',
|
||||||
},
|
trigger: ['blur', 'change']
|
||||||
methods: {
|
},
|
||||||
handleSave() {
|
{ max: 50, message: 'The maximum length is 50' }
|
||||||
this.$refs.userForm.validate(valid => {
|
],
|
||||||
if (valid) {
|
Sex: [{ required: true, message: 'Please specify', trigger: 'blur' }],
|
||||||
this.isDisabled = true
|
Status: [{ required: true, message: 'Please specify', trigger: 'blur' }]
|
||||||
const selectedUserType = this.userTypeOptions.filter((item) => {
|
},
|
||||||
return item.Id === this.user.UserTypeId
|
// OrganizationOptions: [],
|
||||||
})
|
userTypeOptions: [],
|
||||||
if (selectedUserType.length > 0) {
|
isDisabled: false
|
||||||
this.user.userTypeEnum = selectedUserType[0].UserTypeEnum
|
}
|
||||||
}
|
},
|
||||||
if (this.user.IsZhiZhun === true) {
|
computed: {
|
||||||
this.user.OrganizationName = 'ZhiZhun'
|
...mapGetters(['userId'])
|
||||||
}
|
},
|
||||||
if (this.user.Id) {
|
mounted() {
|
||||||
updateUser(this.user).then(res => {
|
// this.getUserTypeList()
|
||||||
this.isDisabled = false
|
this.initPage()
|
||||||
this.$message.success('Updated successfully')
|
},
|
||||||
}).catch(() => { this.isDisabled = false })
|
methods: {
|
||||||
} else {
|
handleSave() {
|
||||||
addUser(this.user).then(res => {
|
this.$refs.userForm.validate(valid => {
|
||||||
this.isDisabled = false
|
if (valid) {
|
||||||
this.$emit('getUserId', res.Result.Id)
|
this.isDisabled = true
|
||||||
this.$message.success('Added successfully')
|
const selectedUserType = this.userTypeOptions.filter((item) => {
|
||||||
}).catch(() => { this.isDisabled = false })
|
return item.Id === this.user.UserTypeId
|
||||||
}
|
})
|
||||||
}
|
if (selectedUserType.length > 0) {
|
||||||
})
|
this.user.userTypeEnum = selectedUserType[0].UserTypeEnum
|
||||||
},
|
}
|
||||||
getUserInfo() {
|
if (this.user.IsZhiZhun === true) {
|
||||||
getUser(this.userId).then(res => {
|
this.user.OrganizationName = 'ZhiZhun'
|
||||||
this.user = res.Result
|
}
|
||||||
// res.Result.OrganizationTypeId !== '00000000-0000-0000-0000-000000000000' ? this.getOrgnizationList(res.Result.OrganizationTypeId) : this.user.OrganizationTypeId = ''
|
if (this.user.Id) {
|
||||||
})
|
updateUser(this.user).then(res => {
|
||||||
},
|
this.isDisabled = false
|
||||||
getUserTypeList() {
|
this.$message.success('Updated successfully')
|
||||||
getUserTypeList().then(res => {
|
}).catch(() => { this.isDisabled = false })
|
||||||
if (res.IsSuccess) {
|
} else {
|
||||||
this.userTypeOptions = res.Result
|
addUser(this.user).then(res => {
|
||||||
}
|
this.isDisabled = false
|
||||||
})
|
this.$emit('getUserId', res.Result.Id)
|
||||||
},
|
this.$message.success('Added successfully')
|
||||||
handelOrgnizationTypeChange(val) {
|
}).catch(() => { this.isDisabled = false })
|
||||||
if (val) {
|
}
|
||||||
this.user.OrganizationId = ''
|
}
|
||||||
this.getOrgnizationList(val)
|
})
|
||||||
}
|
},
|
||||||
},
|
getUserInfo() {
|
||||||
getOrgnizationList(OrganizationTypeId) {
|
getUser(this.userId).then(res => {
|
||||||
getInstitutionList(OrganizationTypeId).then(res => {
|
this.user = res.Result
|
||||||
if (res.IsSuccess) {
|
// res.Result.OrganizationTypeId !== '00000000-0000-0000-0000-000000000000' ? this.getOrgnizationList(res.Result.OrganizationTypeId) : this.user.OrganizationTypeId = ''
|
||||||
this.OrganizationOptions = res.Result
|
})
|
||||||
}
|
},
|
||||||
})
|
getUserTypeList() {
|
||||||
},
|
getUserTypeList().then(res => {
|
||||||
async initPage() {
|
if (res.IsSuccess) {
|
||||||
this.userId === '' ? await store.dispatch('user/getInfo') : ''
|
this.userTypeOptions = res.Result
|
||||||
|
}
|
||||||
if (this.userId === '') {
|
})
|
||||||
await store.dispatch('user/getInfo')
|
},
|
||||||
}
|
handelOrgnizationTypeChange(val) {
|
||||||
this.getUserInfo()
|
if (val) {
|
||||||
}
|
this.user.OrganizationId = ''
|
||||||
}
|
this.getOrgnizationList(val)
|
||||||
}
|
}
|
||||||
</script>
|
},
|
||||||
|
getOrgnizationList(OrganizationTypeId) {
|
||||||
|
getInstitutionList(OrganizationTypeId).then(res => {
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
this.OrganizationOptions = res.Result
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async initPage() {
|
||||||
|
this.userId === '' ? await store.dispatch('user/getInfo') : ''
|
||||||
|
|
||||||
|
if (this.userId === '') {
|
||||||
|
await store.dispatch('user/getInfo')
|
||||||
|
}
|
||||||
|
this.getUserInfo()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
|
@ -1,11 +1,392 @@
|
||||||
<template>
|
<template>
|
||||||
<div />
|
<div class="trial-myinfo">
|
||||||
|
<div class="trial-myinfo-left">
|
||||||
|
<div class="trial-myinfo-left-top">
|
||||||
|
<div class="trial-myinfo-head">
|
||||||
|
<!-- 个人头像 -->
|
||||||
|
{{ $t('trials:trials-myinfo:title:avater') }}
|
||||||
|
</div>
|
||||||
|
<div class="trial-myinfo-body">
|
||||||
|
<div>
|
||||||
|
{{ user.LastName }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="trial-myinfo-left-bottom">
|
||||||
|
<div class="trial-myinfo-head">
|
||||||
|
<!-- 用户基本信息 -->
|
||||||
|
{{ $t('trials:trials-myinfo:title:basicInfo') }}
|
||||||
|
</div>
|
||||||
|
<el-form ref="userForm" label-position="right" :model="user" :rules="userFormRules" label-width="120px">
|
||||||
|
<el-form-item v-if="user.Code" label="ID: " prop="Code">
|
||||||
|
<el-input v-model="user.Code" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 姓 -->
|
||||||
|
<el-form-item :disabled="user.UserTypeEnum === 8" :label="$t('trials:trials-myinfo:form:surname')" prop="LastName">
|
||||||
|
<el-input v-model="user.LastName" :placeholder="$t('trials:trials-myinfo:form:surname')"/>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 名 -->
|
||||||
|
<el-form-item :disabled="user.UserTypeEnum === 8" :label="$t('trials:trials-myinfo:form:givenname')" prop="FirstName">
|
||||||
|
<el-input v-model="user.FirstName" :placeholder="$t('trials:trials-myinfo:form:givenname')"/>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 性别 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-myinfo:form:gender')" prop="Sex" style="margin-right:40px;">
|
||||||
|
<el-radio-group v-model="user.Sex">
|
||||||
|
<el-radio :label="1">Male</el-radio>
|
||||||
|
<el-radio :label="0">Female</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 单位 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-myinfo:form:organization')" prop="OrganizationName">
|
||||||
|
<el-input v-model="user.OrganizationName" :placeholder="$t('trials:trials-myinfo:form:organization')"/>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 部门 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-myinfo:form:department')" prop="DepartmentName">
|
||||||
|
<el-input v-model="user.DepartmentName" :placeholder="$t('trials:trials-myinfo:form:organization')"/>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 职位 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-myinfo:form:position')" prop="PositionName">
|
||||||
|
<el-input v-model="user.PositionName" :placeholder="$t('trials:trials-myinfo:form:position')"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<!-- 保存 -->
|
||||||
|
<el-button
|
||||||
|
class="trial-info-btn"
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="handleSave"
|
||||||
|
>
|
||||||
|
{{ $t('trials:trials-myinfo:button:save') }}
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="trial-myinfo-right">
|
||||||
|
<div class="trial-myinfo-right-box">
|
||||||
|
<div class="trial-myinfo-head">
|
||||||
|
<!-- 账号信息 -->
|
||||||
|
{{ $t('trials:trials-myinfo:title:accountInfo') }}
|
||||||
|
</div>
|
||||||
|
<el-form label-position="right" label-width="180px">
|
||||||
|
<!-- 用户名 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-myinfo:form:userName')" style="margin-bottom: 5px;" prop="UserName">
|
||||||
|
<span>{{ user.UserName }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="" style="position: relative" prop="UserName">
|
||||||
|
<el-input v-model="userForm.UserName" :placeholder="$t('trials:trials-myinfo:form:userName')"/>
|
||||||
|
<!-- 修改 -->
|
||||||
|
<el-button :disabled="!userForm.UserName" class="saveBtn" type="primary" size="small" @click="setNewUserName">
|
||||||
|
{{ $t('trials:trials-myinfo:button:update') }}
|
||||||
|
</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 电话 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-myinfo:form:phone')" style="margin-bottom: 5px;" prop="UserName">
|
||||||
|
<span>{{ user.Phone }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="" style="position: relative" prop="UserName">
|
||||||
|
<el-input v-model="userForm.Phone" :placeholder="$t('trials:trials-myinfo:form:phone')"/>
|
||||||
|
<!-- 修改 -->
|
||||||
|
<el-button :disabled="!userForm.Phone" class="saveBtn" type="primary" size="small" @click="setNewPhone">
|
||||||
|
{{ $t('trials:trials-myinfo:button:update') }}
|
||||||
|
</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 邮箱 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-myinfo:form:email')" style="margin-bottom: 5px;" prop="UserName">
|
||||||
|
<span>{{ user.EMail }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="" style="margin-bottom: 10px;position: relative" prop="EMail">
|
||||||
|
<el-input v-model="userForm.EMail" @input="handleEmailChange" :placeholder="$t('trials:trials-myinfo:form:email')"/>
|
||||||
|
<el-button class="sendCode" :disabled="sendDisabled" type="primary" size="mini" @click="sendVerificationCode">{{ sendTitle }}</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="" style="position: relative" prop="VerificationCode">
|
||||||
|
<el-input v-model="userForm.VerificationCode" :placeholder="$t('trials:researchForm:form:verifyCode')"/>
|
||||||
|
<!-- 修改 -->
|
||||||
|
<el-button :disabled="!userForm.EMail || !userForm.VerificationCode" class="saveBtn" type="primary" size="small" @click="setNewEmail">
|
||||||
|
{{ $t('trials:trials-myinfo:button:update') }}
|
||||||
|
</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<div class="trial-myinfo-right-box">
|
||||||
|
<div class="trial-myinfo-head">
|
||||||
|
<!-- 修改密码 -->
|
||||||
|
{{ $t('trials:trials-myinfo:title:updatePaasord') }}
|
||||||
|
</div>
|
||||||
|
<el-form ref="passwordForm" label-position="right" :model="password" :rules="passwordFormRules" label-width="180px">
|
||||||
|
<!-- 旧密码 -->
|
||||||
|
<el-form-item :label="$t('recompose:form:oldPassword')" prop="OldPassWord">
|
||||||
|
<el-input v-model="password.OldPassWord" type="password" show-password auto-complete="new-password" :placeholder="$t('recompose:form:oldPassword')"/>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 新密码 -->
|
||||||
|
<el-form-item class="my_new_pwd" :label="$t('recompose:form:newPassword')" prop="NewPassWord">
|
||||||
|
<el-input v-model="password.NewPassWord" type="password" show-password auto-complete="new-password" :placeholder="$t('recompose:form:newPassword')"/>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 确认密码 -->
|
||||||
|
<el-form-item :label="$t('recompose:form:confirmPassword')" prop="ConfirmPassWord">
|
||||||
|
<el-input v-model="password.ConfirmPassWord" type="password" show-password auto-complete="new-password" :placeholder="$t('recompose:form:confirmPassword')"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
class="trial-info-btn"
|
||||||
|
@click="save"
|
||||||
|
>
|
||||||
|
{{ $t('trials:trials-myinfo:button:save') }}
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {}
|
import { getUserTypeList, getUser, updateUser, modifyPassword } from '@/api/admin.js'
|
||||||
|
import { sendVerificationCode, setNewEmail, setNewPhone, setNewUserName } from '@/api/system/user.js'
|
||||||
|
import md5 from 'js-md5'
|
||||||
|
var timer = ''
|
||||||
|
var countdown = 60
|
||||||
|
import store from '@/store'
|
||||||
|
import {mapGetters, mapMutations} from 'vuex'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'TrialsMyinfo',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
userTypeOptions: [],
|
||||||
|
user: {},
|
||||||
|
password: {},
|
||||||
|
userForm: {},
|
||||||
|
sendDisabled: true,
|
||||||
|
sendTitle: this.$t('trials:trials-myinfo:button:getVCode'),
|
||||||
|
userFormRules: {
|
||||||
|
UserName: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }],
|
||||||
|
UserTypeId: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change'] }],
|
||||||
|
IsZhiZhun: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change'] }],
|
||||||
|
OrganizationName: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }],
|
||||||
|
LastName: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }, { max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }],
|
||||||
|
FirstName: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }, { max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50` }],
|
||||||
|
Sex: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }],
|
||||||
|
Status: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }]
|
||||||
|
},
|
||||||
|
passwordFormRules: {
|
||||||
|
OldPassWord: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }],
|
||||||
|
NewPassWord: [
|
||||||
|
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
trigger: 'blur',
|
||||||
|
validator: this.$validatePassword
|
||||||
|
},
|
||||||
|
],
|
||||||
|
ConfirmPassWord: [
|
||||||
|
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
trigger: 'blur',
|
||||||
|
validator: this.$validatePassword
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['userId', 'name'])
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getUserInfo()
|
||||||
|
this.getUserTypeList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapMutations({ setLanguage: 'lang/setLanguage' }),
|
||||||
|
handleSave() {
|
||||||
|
this.$refs.userForm.validate(valid => {
|
||||||
|
console.log(valid)
|
||||||
|
if (valid) {
|
||||||
|
this.isDisabled = true
|
||||||
|
const selectedUserType = this.userTypeOptions.filter((item) => {
|
||||||
|
return item.Id === this.user.UserTypeId
|
||||||
|
})
|
||||||
|
if (selectedUserType.length > 0) {
|
||||||
|
this.user.userTypeEnum = selectedUserType[0].UserTypeEnum
|
||||||
|
}
|
||||||
|
// if (this.user.IsZhiZhun === true) {
|
||||||
|
// this.user.OrganizationName = 'ZhiZhun'
|
||||||
|
// }
|
||||||
|
if (this.user.Id) {
|
||||||
|
updateUser(this.user).then(res => {
|
||||||
|
this.isDisabled = false
|
||||||
|
this.$message.success(this.$t('trials:trials-myinfo:message:updateSuccessfully'))
|
||||||
|
this.getUserInfo()
|
||||||
|
}).catch(() => { this.isDisabled = false })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleEmailChange() {
|
||||||
|
var reg = /^[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*@([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}$/
|
||||||
|
if (this.userForm.EMail && reg.test(this.userForm.EMail)) {
|
||||||
|
this.sendDisabled = false
|
||||||
|
} else {
|
||||||
|
this.sendDisabled = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sendVerificationCode() {
|
||||||
|
sendVerificationCode(this.userForm.EMail).then(() => {
|
||||||
|
this.settime(this)
|
||||||
|
// 发送成功
|
||||||
|
this.$message.success(this.$t('trials:trials-myinfo:message:sendSuccessfully'))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
save() {
|
||||||
|
this.$refs.passwordForm.validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.password.NewPassWord !== this.password.ConfirmPassWord) {
|
||||||
|
this.$alert(this.$t('passwordReset:formRule:passwordsDiffer'))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const param = {
|
||||||
|
UserId: this.userId,
|
||||||
|
NewPassWord: md5(this.password.NewPassWord),
|
||||||
|
OldPassWord: md5(this.password.OldPassWord)
|
||||||
|
}
|
||||||
|
modifyPassword(param).then(res => {
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
// 修改成功,请重新登录账号
|
||||||
|
this.$message.success(this.$t('trials:trials-myinfo:message:modifyPWSuccessfully'))
|
||||||
|
setTimeout(() => {
|
||||||
|
this.logout()
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
setNewEmail() {
|
||||||
|
setNewEmail(this.userForm.EMail, this.userForm.VerificationCode).then(() => {
|
||||||
|
this.userForm.EMail = ''
|
||||||
|
this.userForm.VerificationCode = ''
|
||||||
|
this.$message.success(this.$t('trials:trials-myinfo:message:updateSuccessfully'))
|
||||||
|
this.getUserInfo()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
setNewUserName() {
|
||||||
|
setNewUserName(this.userForm.UserName).then(() => {
|
||||||
|
this.$store.dispatch('user/changeUserName', this.userForm.UserName).then((res) => {
|
||||||
|
this.userForm.UserName = ''
|
||||||
|
this.$message.success(this.$t('trials:trials-myinfo:message:updateSuccessfully'))
|
||||||
|
this.getUserInfo()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
setNewPhone() {
|
||||||
|
setNewPhone(this.userForm.Phone).then(() => {
|
||||||
|
this.userForm.Phone = ''
|
||||||
|
this.$message.success(this.$t('trials:trials-myinfo:message:updateSuccessfully'))
|
||||||
|
this.getUserInfo()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getUserInfo() {
|
||||||
|
const loading = this.$loading({
|
||||||
|
fullscreen: false,
|
||||||
|
lock: true,
|
||||||
|
text: 'Loading',
|
||||||
|
spinner: 'el-icon-loading',
|
||||||
|
background: 'rgba(0, 0, 0, 0.07)'
|
||||||
|
})
|
||||||
|
getUser(this.userId).then(async res => {
|
||||||
|
this.user = res.Result
|
||||||
|
/* eslint-disable */
|
||||||
|
zzSessionStorage.setItem('realName', this.user.RealName)
|
||||||
|
await store.dispatch('user/updateInfo')
|
||||||
|
loading.close()
|
||||||
|
}).catch(() => { loading.close() })
|
||||||
|
},
|
||||||
|
settime(obj) {
|
||||||
|
if (countdown === 0) {
|
||||||
|
obj.sendDisabled = false
|
||||||
|
obj.sendTitle = this.$t('trials:trials-myinfo:button:getVCode')// '获取验证码'
|
||||||
|
countdown = 60
|
||||||
|
clearTimeout(timer)
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
obj.sendDisabled = true
|
||||||
|
obj.sendTitle = `${this.$t('trials:trials-myinfo:button:wait')}(${countdown}s)`
|
||||||
|
countdown--
|
||||||
|
// eslint-disable-next-line no-self-assign
|
||||||
|
countdown = countdown
|
||||||
|
timer = setTimeout(function() {
|
||||||
|
obj.settime(obj)
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getUserTypeList() {
|
||||||
|
getUserTypeList().then(res => {
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
this.userTypeOptions = res.Result
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async logout() {
|
||||||
|
/* eslint-disable */
|
||||||
|
var loginType = zzSessionStorage.getItem('loginType')
|
||||||
|
await this.$store.dispatch('user/logout')
|
||||||
|
if (loginType) {
|
||||||
|
this.$router.push(`/login?loginType=${loginType}`)
|
||||||
|
} else {
|
||||||
|
this.$router.push(`/login`)
|
||||||
|
}
|
||||||
|
this.$i18n.locale = 'zh'
|
||||||
|
this.setLanguage('zh')
|
||||||
|
this.$updateDictionary()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style lang="scss">
|
||||||
|
.trial-myinfo{
|
||||||
|
background: #f3f3f3;
|
||||||
|
flex: 1;overflow: auto;display: flex;flex-direction: row;justify-content: space-around;
|
||||||
|
.trial-myinfo-head{
|
||||||
|
position: absolute;top: 40px;left: -10%;font-size: 14px;
|
||||||
|
}
|
||||||
|
.trial-myinfo-left{
|
||||||
|
overflow: auto;
|
||||||
|
background: #fff;width: calc(50% - 9px);margin: 6px 0;
|
||||||
|
padding-bottom: 50px;
|
||||||
|
.trial-myinfo-left-top{
|
||||||
|
width: 70%;padding-top: 100px;position: relative;margin: 0 auto;margin-bottom: 10px;
|
||||||
|
.trial-myinfo-body{
|
||||||
|
width:160px;height:160px;border-radius: 50%;background: #428bca;display: flex;justify-content: center;align-items: center;
|
||||||
|
div{
|
||||||
|
color:#fff;font-size: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.saveBtn{
|
||||||
|
position: absolute;right: -10px;top:2px;transform: translateX(100%)
|
||||||
|
}
|
||||||
|
.trial-info-btn{
|
||||||
|
position: absolute;bottom: -60px;left: calc(100% + 10px);min-width: 97px;
|
||||||
|
}
|
||||||
|
.trial-myinfo-left-bottom{
|
||||||
|
width: 70%;padding-top: 100px;position: relative;margin: 0 auto;
|
||||||
|
}
|
||||||
|
.trial-myinfo-right{
|
||||||
|
overflow: auto;
|
||||||
|
background: #fff;width: calc(50% - 9px);margin: 6px 0;
|
||||||
|
padding-bottom: 50px;
|
||||||
|
.sendCode {
|
||||||
|
position: absolute;right: -10px;top: 50%;transform: translate(100%, -50%);
|
||||||
|
}
|
||||||
|
.trial-myinfo-right-box{
|
||||||
|
width: 70%;padding-top: 100px;position: relative;margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style scoped>
|
||||||
|
/deep/ .is-error.my_new_pwd{
|
||||||
|
margin-bottom: 40px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
Loading…
Reference in New Issue