Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing Details

uat_us
caiyiling 2024-09-20 16:21:15 +08:00
commit 40642a4fe6
3 changed files with 670 additions and 375 deletions

View File

@ -1,11 +1,29 @@
<template> <template>
<div style="display: flex;justify-content: center"> <div style="display: flex; justify-content: center">
<div style="width: 600px;text-align: center;border: 1px solid #e6e6e6;margin-top:40px;padding:10px;"> <div
<div class="trial-myinfo-head" style="font-size: 30px;line-height: 120px;"> style="
width: 600px;
text-align: center;
border: 1px solid #e6e6e6;
margin-top: 40px;
padding: 10px;
"
>
<div
class="trial-myinfo-head"
style="font-size: 30px; line-height: 120px"
>
<!-- 首次登录修改密码 --> <!-- 首次登录修改密码 -->
{{ $t('recompose:title:init') }} {{ $t('recompose:title:init') }}
</div> </div>
<el-form ref="passwordForm" v-loading="loading" label-position="right" :model="password" :rules="passwordFormRules" label-width="200px"> <el-form
ref="passwordForm"
v-loading="loading"
label-position="right"
:model="password"
:rules="passwordFormRules"
:label-width="$i18n.locale == 'zh' ? '100px' : '200px'"
>
<!-- 邮箱 --> <!-- 邮箱 -->
<el-form-item :label="$t('recompose:form:email')" prop="Email"> <el-form-item :label="$t('recompose:form:email')" prop="Email">
<el-input v-model="password.Email" disabled /> <el-input v-model="password.Email" disabled />
@ -19,70 +37,106 @@
<el-input v-model="password.NewUserName" /> <el-input v-model="password.NewUserName" />
</el-form-item> </el-form-item>
<!-- 新密码 --> <!-- 新密码 -->
<el-form-item :label="$t('recompose:form:newPassword')" prop="NewPassWord"> <el-form-item
<el-input v-model="password.NewPassWord" type="password" show-password auto-complete="new-password" /> :label="$t('recompose:form:newPassword')"
prop="NewPassWord"
>
<el-input
v-model="password.NewPassWord"
type="password"
show-password
auto-complete="new-password"
/>
</el-form-item> </el-form-item>
<!-- 确认密码 --> <!-- 确认密码 -->
<el-form-item :label="$t('recompose:form:confirmPassword')" prop="ConfirmPassWord"> <el-form-item
<el-input v-model="password.ConfirmPassWord" type="password" show-password auto-complete="new-password" /> :label="$t('recompose:form:confirmPassword')"
prop="ConfirmPassWord"
>
<el-input
v-model="password.ConfirmPassWord"
type="password"
show-password
auto-complete="new-password"
/>
</el-form-item> </el-form-item>
<el-form-item style="text-align:right"> <el-form-item style="text-align: right">
<!-- 取消 --> <!-- 取消 -->
<el-button <el-button size="small" @click="cancel">
size="small"
@click="cancel"
>
{{ $t('recompose:button:cancel') }} {{ $t('recompose:button:cancel') }}
</el-button> </el-button>
<!-- 保存 --> <!-- 保存 -->
<el-button <el-button type="primary" size="small" @click="save">
type="primary"
size="small"
@click="save"
>
{{ $t('recompose:button:save') }} {{ $t('recompose:button:save') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { initSetUserNameAndPwd } from '@/api/admin.js' import { initSetUserNameAndPwd } from '@/api/admin.js'
import md5 from 'js-md5' import md5 from 'js-md5'
import {mapGetters, mapMutations} from "vuex"; import { mapGetters, mapMutations } from 'vuex'
export default { export default {
data() { data() {
return { return {
password: { password: {
NewUserName: null, NewUserName: null,
UserId: null UserId: null,
}, },
passwordFormRules: { passwordFormRules: {
NewUserName: [{ required: true, validator: (rule, value, callback) => {!value ? callback(new Error(this.$t('trials:researchForm:formRule:specify'))) : callback()}, trigger: 'blur' }], NewUserName: [
{
required: true,
validator: (rule, value, callback) => {
!value
? callback(
new Error(this.$t('trials:researchForm:formRule:specify'))
)
: callback()
},
trigger: 'blur',
},
],
NewPassWord: [ NewPassWord: [
{ required: true, validator: (rule, value, callback) => {!value ? callback(new Error(this.$t('trials:researchForm:formRule:specify'))) : callback()}, trigger: 'blur' }, {
required: true,
validator: (rule, value, callback) => {
!value
? callback(
new Error(this.$t('trials:researchForm:formRule:specify'))
)
: callback()
},
trigger: 'blur',
},
{ {
required: true, required: true,
trigger: 'blur', trigger: 'blur',
validator: this.$validatePassword validator: this.$validatePassword,
}, },
], ],
ConfirmPassWord: [ ConfirmPassWord: [
{ required: true, validator: (rule, value, callback) => {!value ? callback(new Error(this.$t('trials:researchForm:formRule:specify'))) : callback()}, trigger: 'blur' } {
] required: true,
validator: (rule, value, callback) => {
!value
? callback(
new Error(this.$t('trials:researchForm:formRule:specify'))
)
: callback()
},
trigger: 'blur',
},
],
}, },
userId: null, userId: null,
loading: false loading: false,
} }
}, },
computed: { computed: {
...mapGetters([ ...mapGetters(['asyncRoutes', 'routes', 'language']),
'asyncRoutes',
'routes',
'language'
])
}, },
mounted() { mounted() {
this.password.UserId = this.$route.query.UserId this.password.UserId = this.$route.query.UserId
@ -112,7 +166,7 @@ export default {
this.$updateDictionary() this.$updateDictionary()
}, },
save() { save() {
this.$refs.passwordForm.validate(valid => { this.$refs.passwordForm.validate((valid) => {
if (valid) { if (valid) {
if (this.password.NewPassWord !== this.password.ConfirmPassWord) { if (this.password.NewPassWord !== this.password.ConfirmPassWord) {
// //
@ -123,26 +177,32 @@ export default {
NewUserName: this.password.NewUserName, NewUserName: this.password.NewUserName,
UserId: this.password.UserId, UserId: this.password.UserId,
NewPwd: md5(this.password.NewPassWord), NewPwd: md5(this.password.NewPassWord),
access_token: this.password.access_token access_token: this.password.access_token,
} }
this.loading = true this.loading = true
initSetUserNameAndPwd(param).then(res => { initSetUserNameAndPwd(param)
this.loading = false .then((res) => {
if (res.IsSuccess) { this.loading = false
// , if (res.IsSuccess) {
this.$message.success(this.$t('recompose:message:updatedSuccessfully')) // ,
setTimeout(() => { this.$message.success(
this.logout() this.$t('recompose:message:updatedSuccessfully')
}, 500) )
} setTimeout(() => {
}).catch(() => { this.loading = false }) this.logout()
}, 500)
}
})
.catch(() => {
this.loading = false
})
} }
}) })
}, },
cancel() { cancel() {
this.$refs['passwordForm'].resetFields() this.$refs['passwordForm'].resetFields()
} },
} },
} }
</script> </script>
<style> <style>
@ -165,13 +225,16 @@ export default {
<style scoped> <style scoped>
input:-webkit-autofill { input:-webkit-autofill {
-webkit-text-fill-color: #ededed !important; -webkit-text-fill-color: #ededed !important;
box-shadow: 0 0 0px 1000px transparent inset !important; box-shadow: 0 0 0px 1000px transparent inset !important;
background-color:transparent; background-color: transparent;
background-image: none; background-image: none;
transition: background-color 50000s ease-in-out 0s; transition: background-color 50000s ease-in-out 0s;
} }
input { input {
background-color:transparent; background-color: transparent;
caret-color: #fff; caret-color: #fff;
} }
.el-form-item {
margin-bottom: 30px;
}
</style> </style>

View File

@ -8,7 +8,7 @@
style="float: right" style="float: right"
v-if="status === 'add'" v-if="status === 'add'"
> >
{{ $t("common:button:add") }} {{ $t('common:button:add') }}
</el-button> </el-button>
<el-table v-loading="loading" :data="list" stripe> <el-table v-loading="loading" :data="list" stripe>
<!-- AE 名称 --> <!-- AE 名称 -->
@ -44,6 +44,9 @@
prop="action" prop="action"
:label="$t('trials:sitesList:dicomAEList:table:action')" :label="$t('trials:sitesList:dicomAEList:table:action')"
min-width="120" min-width="120"
v-if="
hasPermi(['trials:trials-panel:setting:personnel-manage:edit-site'])
"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -67,9 +70,9 @@
</base-model> </base-model>
</template> </template>
<script> <script>
import BaseModel from "@/components/BaseModel"; import BaseModel from '@/components/BaseModel'
import dicomForm from "./dicomForm.vue"; import dicomForm from './dicomForm.vue'
import { getTrialSiteDicomAEList, deleteTrialSiteDicomAE } from "@/api/trials"; import { getTrialSiteDicomAEList, deleteTrialSiteDicomAE } from '@/api/trials'
const defaultSearchData = () => { const defaultSearchData = () => {
return { return {
TrialSiteId: null, TrialSiteId: null,
@ -77,88 +80,93 @@ const defaultSearchData = () => {
Ip: null, Ip: null,
Port: null, Port: null,
Description: null, Description: null,
}; }
}; }
export default { export default {
name: "dicomAE", name: 'dicomAE',
components: { BaseModel, dicomForm }, components: { BaseModel, dicomForm },
data() { data() {
return { return {
config: { config: {
visible: false, visible: false,
title: null, title: null,
width: "800px", width: '800px',
appendToBody: true, appendToBody: true,
}, },
status: "add", status: 'add',
TrialSiteId: null, TrialSiteId: null,
loading: false, loading: false,
list: [], list: [],
searchData: defaultSearchData(), searchData: defaultSearchData(),
siteData: {}, siteData: {},
}; }
}, },
methods: { methods: {
open(row, status = "add") { open(row, status = 'add') {
this.status = status; this.status = status
this.TrialSiteId = row.TrialSiteId; this.TrialSiteId = row.TrialSiteId
this.config.title = this.$t( this.config.title = this.$t(
"trials:trials-panel:setting:personnel-manage:dicomAETitle" 'trials:trials-panel:setting:personnel-manage:dicomAETitle'
).replace("xxx", `${row.TrialSiteCode}${row.TrialSiteAliasName}`); ).replace('xxx', `${row.TrialSiteCode}${row.TrialSiteAliasName}`)
this.siteData = row; this.siteData = row
this.config.visible = true; this.config.visible = true
this.getList(); this.getList()
console.log(
this.hasPermi([
'trials:trials-panel:setting:personnel-manage:edit-site',
])
)
}, },
// dicomAE // dicomAE
async getList() { async getList() {
try { try {
this.searchData.TrialSiteId = this.TrialSiteId; this.searchData.TrialSiteId = this.TrialSiteId
this.loading = true; this.loading = true
let res = await getTrialSiteDicomAEList(this.searchData); let res = await getTrialSiteDicomAEList(this.searchData)
this.loading = false; this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
this.list = res.Result; this.list = res.Result
} }
} catch (err) { } catch (err) {
console.log(err); console.log(err)
this.loading = false; this.loading = false
} }
}, },
// //
openAdd() { openAdd() {
this.$refs.dicomForm.open(this.siteData, null, "add"); this.$refs.dicomForm.open(this.siteData, null, 'add')
}, },
save() { save() {
this.$emit("getList"); this.$emit('getList')
}, },
// dicom // dicom
editDicom(row) { editDicom(row) {
this.$refs.dicomForm.open(this.siteData, row, "edit"); this.$refs.dicomForm.open(this.siteData, row, 'edit')
}, },
// dicom // dicom
async delDicom(row) { async delDicom(row) {
try { try {
let confirm = await this.$confirm( let confirm = await this.$confirm(
this.$t("trials:sitesList:dicomAEList:confirm:delMessage"), this.$t('trials:sitesList:dicomAEList:confirm:delMessage'),
{ {
type: "warning", type: 'warning',
distinguishCancelAndClose: true, distinguishCancelAndClose: true,
confirmButtonText: this.$t("common:button:confirm"), confirmButtonText: this.$t('common:button:confirm'),
cancelButtonText: this.$t("common:button:cancel"), cancelButtonText: this.$t('common:button:cancel'),
} }
); )
if (confirm !== "confirm") return; if (confirm !== 'confirm') return
let res = await deleteTrialSiteDicomAE(row.Id); let res = await deleteTrialSiteDicomAE(row.Id)
if (res.IsSuccess) { if (res.IsSuccess) {
this.getList(); this.getList()
this.save(); this.save()
this.$t("common:message:deletedSuccessfully"); this.$t('common:message:deletedSuccessfully')
} }
} catch (err) { } catch (err) {
console.log(err); console.log(err)
} }
}, },
}, },
}; }
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped></style>