Compare commits

...

2 Commits

Author SHA1 Message Date
caiyiling 0785219954 Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing Details
2025-03-11 11:52:52 +08:00
caiyiling b5f2cfeaff 国际化补充 2025-03-11 11:52:38 +08:00
8 changed files with 107 additions and 76 deletions

View File

@ -9,10 +9,10 @@
class="upload-temporary-file" class="upload-temporary-file"
> >
<div class="base-dialog-body"> <div class="base-dialog-body">
<el-form-item label="Code" prop="Code"> <el-form-item :label="$t('dictionary:attachment:label:code')" prop="Code">
<el-input v-model="form.Code" /> <el-input v-model="form.Code" />
</el-form-item> </el-form-item>
<el-form-item label="业务场景: " prop="BusinessScenarioEnum"> <el-form-item :label="$t('dictionary:attachment:label:businessScenario')" prop="BusinessScenarioEnum">
<el-select <el-select
v-model="form.BusinessScenarioEnum" v-model="form.BusinessScenarioEnum"
style="width:100%;" style="width:100%;"
@ -28,7 +28,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="文件: "> <el-form-item :label="$t('dictionary:attachment:export:form:file')">
<div class="upload-container"> <div class="upload-container">
<el-upload <el-upload
class="upload-demo" class="upload-demo"

View File

@ -2,7 +2,8 @@
<BaseContainer> <BaseContainer>
<template slot="search-container"> <template slot="search-container">
<el-form :inline="true" size="small"> <el-form :inline="true" size="small">
<el-form-item label="业务场景"> <!-- 业务场景 -->
<el-form-item :label="$t('dictionary:attachment:label:businessScenario')">
<el-select <el-select
v-model="searchData.BusinessScenarioEnum" v-model="searchData.BusinessScenarioEnum"
style="width:150px;" style="width:150px;"
@ -16,7 +17,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="文件名称"> <!-- 文件名称 -->
<el-form-item :label="$t('dictionary:attachment:label:name')">
<el-input <el-input
v-model="searchData.Name" v-model="searchData.Name"
style="width:130px;" style="width:130px;"
@ -57,14 +59,14 @@
<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="$t('dictionary:attachment:label:code')"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
<el-table-column <el-table-column
prop="BusinessScenarioEnum" prop="BusinessScenarioEnum"
label="业务场景" :label="$t('dictionary:attachment:label:businessScenario')"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
> >
@ -76,18 +78,18 @@
<el-table-column <el-table-column
prop="Name" prop="Name"
label="文件名称" :label="$t('dictionary:attachment:label:name')"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
<el-table-column <el-table-column
prop="Description" prop="Description"
label="描述" :label="$t('dictionary:attachment:label:description')"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column <el-table-column
prop="IsDeleted" prop="IsDeleted"
label="是否废除" :label="$t('dictionary:attachment:label:isDeleted')"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
> >
@ -98,7 +100,7 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="UpdateTime" prop="UpdateTime"
label="上传时间" :label="$t('dictionary:attachment:label:updateTime')"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
@ -109,19 +111,19 @@
type="text" type="text"
@click="handleDownload(scope.row)" @click="handleDownload(scope.row)"
> >
下载 {{ $t('common:button:download') }}
</el-button> </el-button>
<el-button <el-button
type="text" type="text"
@click="handleEdit(scope.row)" @click="handleEdit(scope.row)"
> >
编辑 {{ $t('common:action:edit') }}
</el-button> </el-button>
<el-button <el-button
type="text" type="text"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
> >
删除 {{ $t('common:button:delete') }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -176,9 +178,9 @@ export default {
}, },
methods: { methods: {
handleDelete(row) { handleDelete(row) {
this.$confirm('确定删除该文件?').then(() => { this.$confirm(this.$t('dictionary:attachment:export:confirm:delete')).then(() => {
deleteCommonDocument(row.Id).then(() => { deleteCommonDocument(row.Id).then(() => {
this.$message.success('删除成功') this.$message.success(this.$t('common:message:deletedSuccessfully'))
this.getList() this.getList()
}) })
}) })
@ -195,7 +197,7 @@ export default {
}, },
// //
handleAdd() { handleAdd() {
this.editDialog.title = 'Add' this.editDialog.title = this.$t('common:button:new')
this.currentRow = { FileTypeEnum: FileTypeEnum } this.currentRow = { FileTypeEnum: FileTypeEnum }
this.editDialog.visible = true this.editDialog.visible = true
}, },
@ -208,7 +210,7 @@ export default {
}, },
// //
handleEdit(row) { handleEdit(row) {
this.editDialog.title = 'Edit' this.editDialog.title = this.$t('common:action:edit')
this.currentRow = { ...row } this.currentRow = { ...row }
this.editDialog.visible = true this.editDialog.visible = true
}, },

View File

@ -9,7 +9,7 @@
class="upload-temporary-file" class="upload-temporary-file"
> >
<div class="base-dialog-body"> <div class="base-dialog-body">
<el-form-item label="Code" prop="Code"> <el-form-item :label="$t('dictionary:attachment:export:search:code')" prop="Code">
<el-input v-model="form.Code" /> <el-input v-model="form.Code" />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
@ -76,8 +76,9 @@
:label="$t('dictionary:attachment:export:form:isDeleted')" :label="$t('dictionary:attachment:export:form:isDeleted')"
> >
<el-radio-group v-model="form.IsDeleted"> <el-radio-group v-model="form.IsDeleted">
<el-radio :label="true"></el-radio> <el-radio v-for="item of $d.YesOrNo" :key="`IsDeleted${item.value}`" :label="item.value">
<el-radio :label="false"></el-radio> {{ item.label }}
</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item <el-form-item

View File

@ -60,7 +60,7 @@
<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="$t('dictionary:attachment:export:search:code')"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
@ -235,7 +235,7 @@ export default {
}, },
// //
handleAdd() { handleAdd() {
this.editDialog.title = 'Add' this.editDialog.title = this.$t('common:button:new')
this.currentRow = { FileTypeEnum: FileTypeEnum } this.currentRow = { FileTypeEnum: FileTypeEnum }
this.editDialog.visible = true this.editDialog.visible = true
}, },
@ -252,7 +252,7 @@ export default {
}, },
// //
handleEdit(row) { handleEdit(row) {
this.editDialog.title = 'Edit' this.editDialog.title = this.$t('common:action:edit')
this.currentRow = { ...row } this.currentRow = { ...row }
this.editDialog.visible = true this.editDialog.visible = true
}, },

View File

@ -247,7 +247,7 @@ export default {
}, },
// //
handleAdd() { handleAdd() {
this.title = 'Add' this.title = this.$t('common:button:new')
this.currentRow = {} this.currentRow = {}
this.editVisible = true this.editVisible = true
}, },
@ -262,7 +262,7 @@ export default {
}, },
// //
handleEdit(row) { handleEdit(row) {
this.title = 'Edit' this.title = this.$t('common:action:edit')
this.currentRow = { ...row } this.currentRow = { ...row }
this.editVisible = true this.editVisible = true
}, },

View File

@ -8,32 +8,36 @@
label-width="160px" label-width="160px"
size="small" size="small"
> >
<el-form-item label="Group: " prop="Group"> <el-form-item :label="$t('template:anonymization:label:group')" prop="Group">
<el-input v-model="form.Group" /> <el-input v-model="form.Group" />
</el-form-item> </el-form-item>
<el-form-item label="Element: " prop="Group"> <el-form-item :label="$t('template:anonymization:label:element')" prop="Group">
<el-input v-model="form.Element" /> <el-input v-model="form.Element" />
</el-form-item> </el-form-item>
<el-form-item label="tag Description: " prop="Group"> <!-- tag Description -->
<el-form-item :label="$t('template:anonymization:label:tagDescription')" prop="Group">
<el-input v-model="form.TagDescription" /> <el-input v-model="form.TagDescription" />
</el-form-item> </el-form-item>
<el-form-item label="Tag DescriptionCN: " prop="Group"> <!-- Tag DescriptionCN -->
<el-form-item :label="$t('template:anonymization:label:tagDescriptionCN')" prop="Group">
<el-input v-model="form.TagDescriptionCN" /> <el-input v-model="form.TagDescriptionCN" />
</el-form-item> </el-form-item>
<el-form-item label="Value Representation: " prop="Group"> <!-- Value Representation -->
<el-form-item :label="$t('template:anonymization:label:valueRepresentation')" prop="Group">
<el-input v-model="form.ValueRepresentation" /> <el-input v-model="form.ValueRepresentation" />
</el-form-item> </el-form-item>
<el-form-item label="Is Fixed: "> <!-- Is Fixed -->
<el-form-item :label="$t('template:anonymization:label:isFixed')">
<el-switch <el-switch
v-model="form.IsFixed" v-model="form.IsFixed"
:active-value="true" :active-value="true"
:inactive-value="false" :inactive-value="false"
/> />
</el-form-item> </el-form-item>
<el-form-item label="Replace Value: "> <el-form-item :label="$t('template:anonymization:label:valueReplace')">
<el-input v-model="form.ReplaceValue" /> <el-input v-model="form.ReplaceValue" />
</el-form-item> </el-form-item>
<el-form-item label="Is Enable: "> <el-form-item :label="$t('template:anonymization:label:isEnable')">
<el-switch <el-switch
v-model="form.IsEnable" v-model="form.IsEnable"
:active-value="true" :active-value="true"
@ -43,8 +47,8 @@
</el-form> </el-form>
</template> </template>
<template slot="dialog-footer"> <template slot="dialog-footer">
<el-button :disabled="btnLoading" size="small" type="primary" @click="handleCancle">Cancel</el-button> <el-button :disabled="btnLoading" size="small" type="primary" @click="handleCancle">{{ $t('common:button:cancel') }}</el-button>
<el-button size="small" type="primary" :loading="btnLoading" @click="handleSave">Save</el-button> <el-button size="small" type="primary" :loading="btnLoading" @click="handleSave">{{ $t('common:button:save') }}</el-button>
</template> </template>
</base-model> </base-model>
</template> </template>
@ -82,7 +86,7 @@ export default {
IsAdd: false IsAdd: false
}, },
rules: { rules: {
Group: [{ required: true, message: 'Please specify', trigger: 'blur' }] Group: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }]
}, },
model_cfg: { visible: false, showClose: true, width: '600px', title: '' } model_cfg: { visible: false, showClose: true, width: '600px', title: '' }
} }
@ -108,7 +112,7 @@ export default {
this.btnLoading = true this.btnLoading = true
addOrUpdateSystemAnonymization(this.form).then(res => { addOrUpdateSystemAnonymization(this.form).then(res => {
this.btnLoading = false this.btnLoading = false
this.$message.success('Saved successfully!') this.$message.success(this.$t('common:message:savedSuccessfully'))
this.model_cfg.visible = false this.model_cfg.visible = false
this.$emit('getList') this.$emit('getList')
}).catch(() => { }).catch(() => {

View File

@ -3,16 +3,20 @@
<!-- 搜索框 --> <!-- 搜索框 -->
<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="Group:"> <!-- Group -->
<el-form-item :label="$t('template:anonymization:label:group')">
<el-input v-model="searchData.Group" clearable style="width:120px;" /> <el-input v-model="searchData.Group" clearable style="width:120px;" />
</el-form-item> </el-form-item>
<el-form-item label="Element:"> <!-- Element -->
<el-form-item :label="$t('template:anonymization:label:element')">
<el-input v-model="searchData.Element" clearable style="width:120px;" /> <el-input v-model="searchData.Element" clearable style="width:120px;" />
</el-form-item> </el-form-item>
<el-form-item label="Tag Description:"> <!-- Tag Description -->
<el-form-item :label="$t('template:anonymization:label:tagDescription')">
<el-input v-model="searchData.TagDescription" clearable style="width:120px;" /> <el-input v-model="searchData.TagDescription" clearable style="width:120px;" />
</el-form-item> </el-form-item>
<el-form-item label="Tag DescriptionCN:"> <!-- Tag DescriptionCN -->
<el-form-item :label="$t('template:anonymization:label:tagDescriptionCN')">
<el-input v-model="searchData.TagDescriptionCN" clearable style="width:120px;" /> <el-input v-model="searchData.TagDescriptionCN" clearable style="width:120px;" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -29,7 +33,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<span style="margin-left:auto"> <span style="margin-left:auto">
<el-button type="primary" size="mini" @click="handleAdd">New</el-button> <el-button type="primary" size="mini" @click="handleAdd">{{ $t('common:button:new') }}</el-button>
</span> </span>
</div> </div>
@ -42,33 +46,39 @@
height="100" height="100"
> >
<el-table-column type="index" width="60" /> <el-table-column type="index" width="60" />
<!-- Group -->
<el-table-column <el-table-column
prop="Group" prop="Group"
label="Group" :label="$t('template:anonymization:label:group')"
show-overflow-tooltip show-overflow-tooltip
/> />
<!-- Element -->
<el-table-column <el-table-column
prop="Element" prop="Element"
label="Element" :label="$t('template:anonymization:label:element')"
show-overflow-tooltip show-overflow-tooltip
min-width="110" min-width="110"
/> />
<!-- Tag Description -->
<el-table-column <el-table-column
prop="TagDescription" prop="TagDescription"
label="Tag Description" :label="$t('template:anonymization:label:tagDescription')"
min-width="110" min-width="110"
/> />
<!-- Tag DescriptionCN -->
<el-table-column <el-table-column
prop="TagDescriptionCN" prop="TagDescriptionCN"
label="Tag DescriptionCN" :label="$t('template:anonymization:label:tagDescriptionCN')"
min-width="110" min-width="110"
/> />
<!-- Value Representation -->
<el-table-column <el-table-column
prop="ValueRepresentation" prop="ValueRepresentation"
label="Value Representation" :label="$t('template:anonymization:label:valueRepresentation')"
min-width="110" min-width="110"
/> />
<el-table-column label="Is Fixed" width="100"> <!-- Is Fixed -->
<el-table-column :label="$t('template:anonymization:label:isFixed')" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch
v-model="scope.row.IsFixed" v-model="scope.row.IsFixed"
@ -78,12 +88,14 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<!-- Value Replace -->
<el-table-column <el-table-column
prop="ReplaceValue" prop="ReplaceValue"
label="Value Replace" :label="$t('template:anonymization:label:valueReplace')"
min-width="110" min-width="110"
/> />
<el-table-column label="Is Enable" width="100" fixed="right"> <!-- Is Enable -->
<el-table-column :label="$t('template:anonymization:label:isEnable')" width="100" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch
v-model="scope.row.IsEnable" v-model="scope.row.IsEnable"
@ -93,21 +105,21 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="Action" width="200" fixed="right"> <el-table-column :label="$t('common:action:action')" width="200" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
type="primary" type="primary"
size="mini" size="mini"
@click="handleEdit(scope.row)" @click="handleEdit(scope.row)"
> >
Edit {{ $t('common:button:edit') }}
</el-button> </el-button>
<el-button <el-button
type="danger" type="danger"
size="mini" size="mini"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
> >
Delete {{ $t('common:button:delete') }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -153,7 +165,7 @@ export default {
switchChange(event, item) { switchChange(event, item) {
this.loading = true this.loading = true
addOrUpdateSystemAnonymization(item).then(res => { addOrUpdateSystemAnonymization(item).then(res => {
this.$message.success('Saved successfully!') this.$message.success(this.$t('common:message:savedSuccessfully'))
this.loading = false this.loading = false
}).catch(() => { }).catch(() => {
this.loading = false this.loading = false
@ -161,12 +173,12 @@ export default {
}, },
handleAdd() { handleAdd() {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['AddDICOMConfig'].openDialog('New Anonymization', {}) this.$refs['AddDICOMConfig'].openDialog(this.$t('common:button:new'), {})
}) })
}, },
handleEdit(row) { handleEdit(row) {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['AddDICOMConfig'].openDialog('Edit Anonymization', row) this.$refs['AddDICOMConfig'].openDialog(this.$t('common:action:edit'), row)
}) })
}, },
handleDelete(row) { handleDelete(row) {

View File

@ -3,16 +3,20 @@
<!-- 搜索框 --> <!-- 搜索框 -->
<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="Group:"> <!-- Group -->
<el-form-item :label="$t('template:anonymization:label:group')">
<el-input v-model="searchData.Group" clearable style="width:120px;" /> <el-input v-model="searchData.Group" clearable style="width:120px;" />
</el-form-item> </el-form-item>
<el-form-item label="Element:"> <!-- Element -->
<el-form-item :label="$t('template:anonymization:label:element')">
<el-input v-model="searchData.Element" clearable style="width:120px;" /> <el-input v-model="searchData.Element" clearable style="width:120px;" />
</el-form-item> </el-form-item>
<el-form-item label="Tag Description:"> <!-- Tag Description -->
<el-form-item :label="$t('template:anonymization:label:tagDescription')">
<el-input v-model="searchData.TagDescription" clearable style="width:120px;" /> <el-input v-model="searchData.TagDescription" clearable style="width:120px;" />
</el-form-item> </el-form-item>
<el-form-item label="Tag DescriptionCN:"> <!-- Tag DescriptionCN -->
<el-form-item :label="$t('template:anonymization:label:tagDescriptionCN')">
<el-input v-model="searchData.TagDescriptionCN" clearable style="width:120px;" /> <el-input v-model="searchData.TagDescriptionCN" clearable style="width:120px;" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -29,7 +33,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<span style="margin-left:auto"> <span style="margin-left:auto">
<el-button type="primary" size="mini" @click="handleAdd">New</el-button> <el-button type="primary" size="mini" @click="handleAdd">{{ $t('common:button:new') }}</el-button>
</span> </span>
</div> </div>
@ -42,33 +46,39 @@
height="100" height="100"
> >
<el-table-column type="index" width="60" /> <el-table-column type="index" width="60" />
<!-- Group -->
<el-table-column <el-table-column
prop="Group" prop="Group"
label="Group" :label="$t('template:anonymization:label:group')"
show-overflow-tooltip show-overflow-tooltip
/> />
<!-- Element -->
<el-table-column <el-table-column
prop="Element" prop="Element"
label="Element" :label="$t('template:anonymization:label:element')"
show-overflow-tooltip show-overflow-tooltip
min-width="110" min-width="110"
/> />
<!-- Tag Description -->
<el-table-column <el-table-column
prop="TagDescription" prop="TagDescription"
label="Tag Description" :label="$t('template:anonymization:label:tagDescription')"
min-width="110" min-width="110"
/> />
<!-- Tag DescriptionCN -->
<el-table-column <el-table-column
prop="TagDescriptionCN" prop="TagDescriptionCN"
label="Tag DescriptionCN" :label="$t('template:anonymization:label:tagDescriptionCN')"
min-width="110" min-width="110"
/> />
<!-- Value Representation -->
<el-table-column <el-table-column
prop="ValueRepresentation" prop="ValueRepresentation"
label="Value Representation" :label="$t('template:anonymization:label:valueRepresentation')"
min-width="110" min-width="110"
/> />
<el-table-column label="Is Fixed" width="100"> <!-- Is Fixed -->
<el-table-column :label="$t('template:anonymization:label:isFixed')" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch
v-model="scope.row.IsFixed" v-model="scope.row.IsFixed"
@ -78,12 +88,14 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<!-- Value Replace -->
<el-table-column <el-table-column
prop="ReplaceValue" prop="ReplaceValue"
label="Value Replace" :label="$t('template:anonymization:label:valueReplace')"
min-width="110" min-width="110"
/> />
<el-table-column label="Is Enable" width="100" fixed="right"> <!-- Is Enable -->
<el-table-column :label="$t('template:anonymization:label:isEnable')" width="100" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch
v-model="scope.row.IsEnable" v-model="scope.row.IsEnable"
@ -93,21 +105,21 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="Action" width="200" fixed="right"> <el-table-column :label="$t('common:action:action')" width="200" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
type="primary" type="primary"
size="mini" size="mini"
@click="handleEdit(scope.row)" @click="handleEdit(scope.row)"
> >
Edit {{ $t('common:action:edit') }}
</el-button> </el-button>
<el-button <el-button
type="danger" type="danger"
size="mini" size="mini"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
> >
Delete {{ $t('common:button:delete') }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -152,7 +164,7 @@ export default {
switchChange(event, item) { switchChange(event, item) {
this.loading = true this.loading = true
addOrUpdateSystemAnonymization(item).then(res => { addOrUpdateSystemAnonymization(item).then(res => {
this.$message.success('Saved successfully!') this.$message.success(this.$t('common:message:savedSuccessfully'))
this.loading = false this.loading = false
}).catch(() => { }).catch(() => {
this.loading = false this.loading = false
@ -160,12 +172,12 @@ export default {
}, },
handleEdit(row) { handleEdit(row) {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['AddDICOMConfig'].openDialog('Edit Anonymization', row) this.$refs['AddDICOMConfig'].openDialog(this.$t('common:action:edit'), row)
}) })
}, },
handleAdd() { handleAdd() {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['AddDICOMConfig'].openDialog('New IncreaseFields', { this.$refs['AddDICOMConfig'].openDialog(this.$t('common:button:new'), {
Group: '', Group: '',
Element: '', Element: '',
TagDescription: '', TagDescription: '',