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-08-02 13:12:26 +08:00
commit 132af31c1b
6 changed files with 121 additions and 61 deletions

View File

@ -124,12 +124,12 @@
:active-text="$fd('FeedBackStatus', 1)" :active-text="$fd('FeedBackStatus', 1)"
:inactive-text="$fd('FeedBackStatus', 0)" :inactive-text="$fd('FeedBackStatus', 0)"
:disabled="level < 8 || !isStateChange || form.State === 1" :disabled="level < 8 || !isStateChange || form.State === 1"
@change="changeState" @change="visitTaskId ? () => false : changeState"
> >
</el-switch> </el-switch>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" v-if="type !== 'detail'"> <div slot="footer" v-if="type !== 'detail' || visitTaskId">
<!-- 取消 --> <!-- 取消 -->
<el-button size="small" @click.stop="cancel"> <el-button size="small" @click.stop="cancel">
{{ $t("feedBack:button:cancel") }} {{ $t("feedBack:button:cancel") }}
@ -138,7 +138,7 @@
<el-button <el-button
type="primary" type="primary"
size="small" size="small"
@click.stop="save" @click.stop="visitTaskId ? changeState : save"
:loading="loading" :loading="loading"
> >
{{ $t("feedBack:button:save") }} {{ $t("feedBack:button:save") }}
@ -290,7 +290,7 @@ export default {
try { try {
let data = { let data = {
IdList: [this.Id], IdList: [this.Id],
State: 1, State: this.form.State,
}; };
let res = await batchUpdateFeedBackState(data); let res = await batchUpdateFeedBackState(data);
if (res.IsSuccess) { if (res.IsSuccess) {

View File

@ -1,30 +1,66 @@
<template> <template>
<base-model v-if="config.visible" :config="config"> <base-model v-if="config.visible" :config="config">
<template slot="dialog-body"> <template slot="dialog-body">
<el-button type="primary" icon="el-icon-plus" @click="openAdd" style="float: right" v-if="status === 'add'"> <el-button
type="primary"
icon="el-icon-plus"
@click="openAdd"
style="float: right"
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 名称 -->
<el-table-column prop="CallingAE" :label="$t('trials:sitesList:dicomAEList:table:AEName')" show-overflow-tooltip <el-table-column
min-width="120" /> prop="CallingAE"
:label="$t('trials:sitesList:dicomAEList:table:AEName')"
show-overflow-tooltip
min-width="120"
/>
<!-- IP地址 --> <!-- IP地址 -->
<el-table-column prop="IP" :label="$t('trials:sitesList:dicomAEList:table:ip')" show-overflow-tooltip <el-table-column
min-width="120" /> prop="IP"
:label="$t('trials:sitesList:dicomAEList:table:ip')"
show-overflow-tooltip
min-width="120"
/>
<!-- 端口 --> <!-- 端口 -->
<el-table-column prop="Port" :label="$t('trials:sitesList:dicomAEList:table:port')" show-overflow-tooltip <el-table-column
min-width="120" /> prop="Port"
:label="$t('trials:sitesList:dicomAEList:table:port')"
show-overflow-tooltip
min-width="120"
/>
<!-- 说明 --> <!-- 说明 -->
<el-table-column prop="Description" :label="$t('trials:sitesList:dicomAEList:table:description')" <el-table-column
show-overflow-tooltip min-width="120" /> prop="Description"
:label="$t('trials:sitesList:dicomAEList:table:description')"
show-overflow-tooltip
min-width="120"
/>
<!-- 操作 --> <!-- 操作 -->
<!-- <el-table-column prop="action" :label="$t('trials:sitesList:dicomAEList:table:action')" min-width="120"> <el-table-column
prop="action"
:label="$t('trials:sitesList:dicomAEList:table:action')"
min-width="120"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button circle :title="$t('trials:sitesList:dicomAEList:action:del')" icon="el-icon-delete" <el-button
:disabled="scope.row.IsDeleted" @click="delDicom(scope.row)" /> circle
:title="$t('trials:sitesList:dicomAEList:action:edit')"
icon="el-icon-edit-outline"
@click="editDicom(scope.row)"
/>
<el-button
circle
:title="$t('trials:sitesList:dicomAEList:action:del')"
icon="el-icon-delete"
:disabled="scope.row.IsDeleted"
@click="delDicom(scope.row)"
/>
</template> </template>
</el-table-column> --> </el-table-column>
</el-table> </el-table>
<dicomForm ref="dicomForm" @getList="getList" @save="save" /> <dicomForm ref="dicomForm" @getList="getList" @save="save" />
</template> </template>
@ -33,10 +69,7 @@
<script> <script>
import BaseModel from "@/components/BaseModel"; import BaseModel from "@/components/BaseModel";
import dicomForm from "./dicomForm.vue"; import dicomForm from "./dicomForm.vue";
import { import { getTrialSiteDicomAEList, deleteTrialSiteDicomAE } from "@/api/trials";
getTrialSiteDicomAEList,
deleteTrialSiteDicomAE
} from "@/api/trials";
const defaultSearchData = () => { const defaultSearchData = () => {
return { return {
TrialSiteId: null, TrialSiteId: null,
@ -55,7 +88,7 @@ export default {
visible: false, visible: false,
title: null, title: null,
width: "800px", width: "800px",
appendToBody: true appendToBody: true,
}, },
status: "add", status: "add",
TrialSiteId: null, TrialSiteId: null,
@ -93,11 +126,15 @@ export default {
}, },
// //
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
editDicom(row) {
this.$refs.dicomForm.open(this.siteData, row, "edit");
},
// dicom // dicom
async delDicom(row) { async delDicom(row) {
try { try {
@ -115,12 +152,12 @@ export default {
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>

View File

@ -3,33 +3,50 @@
<template slot="dialog-body"> <template slot="dialog-body">
<el-form ref="dicomForm" :model="form" label-width="100px" :rules="rules"> <el-form ref="dicomForm" :model="form" label-width="100px" :rules="rules">
<!-- 中心编号 --> <!-- 中心编号 -->
<el-form-item :label="$t('trials:sitesList:table:siteId')" prop="TrialSiteCode"> <el-form-item
:label="$t('trials:sitesList:table:siteId')"
prop="TrialSiteCode"
>
<el-input v-model="siteData.TrialSiteCode" disabled /> <el-input v-model="siteData.TrialSiteCode" disabled />
</el-form-item> </el-form-item>
<!-- 中心别称 --> <!-- 中心别称 -->
<el-form-item :label="$t('trials:sitesList:table:siteName')" prop="TrialSiteAliasName"> <el-form-item
:label="$t('trials:sitesList:table:siteName')"
prop="TrialSiteAliasName"
>
<el-input v-model="siteData.TrialSiteAliasName" disabled /> <el-input v-model="siteData.TrialSiteAliasName" disabled />
</el-form-item> </el-form-item>
<!-- AE --> <!-- AE -->
<el-form-item :label="$t('trials:setting:siteList:dicomForm:dicomAE')" prop="CallingAE"> <el-form-item
:label="$t('trials:setting:siteList:dicomForm:dicomAE')"
prop="CallingAE"
>
<el-input v-model="form.CallingAE" clearable maxlength="16" /> <el-input v-model="form.CallingAE" clearable maxlength="16" />
</el-form-item> </el-form-item>
<!-- IP --> <!-- IP -->
<el-form-item :label="$t('trials:setting:siteList:dicomForm:ip')" prop="Ip"> <el-form-item :label="$t('trials:setting:siteList:dicomForm:ip')">
<el-input v-model="form.Ip" clearable /> <el-input v-model="form.Ip" clearable />
</el-form-item> </el-form-item>
<!-- PORT --> <!-- PORT -->
<el-form-item :label="$t('trials:setting:siteList:dicomForm:port')" prop="Port"> <el-form-item :label="$t('trials:setting:siteList:dicomForm:port')">
<el-input v-model.number="form.Port" type="number" clearable /> <el-input v-model.number="form.Port" type="number" clearable />
</el-form-item> </el-form-item>
<!-- 说明 --> <!-- 说明 -->
<el-form-item :label="$t('trials:setting:siteList:dicomForm:description')" prop="Description"> <el-form-item
:label="$t('trials:setting:siteList:dicomForm:description')"
prop="Description"
>
<el-input v-model="form.Description" clearable /> <el-input v-model="form.Description" clearable />
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
<template slot="dialog-footer"> <template slot="dialog-footer">
<el-button type="primary" size="small" :disabled="loading" @click="config.visible = false"> <el-button
type="primary"
size="small"
:disabled="loading"
@click="config.visible = false"
>
{{ $t("common:button:cancel") }} {{ $t("common:button:cancel") }}
</el-button> </el-button>
<el-button type="primary" size="small" :loading="loading" @click="save"> <el-button type="primary" size="small" :loading="loading" @click="save">
@ -39,9 +56,7 @@
</base-model> </base-model>
</template> </template>
<script> <script>
import { import { addOrUpdateTrialSiteDicomAE } from "@/api/trials";
addOrUpdateTrialSiteDicomAE,
} from "@/api/trials";
import BaseModel from "@/components/BaseModel"; import BaseModel from "@/components/BaseModel";
export default { export default {
name: "dicomForm", name: "dicomForm",
@ -59,7 +74,7 @@ export default {
CallingAE: null, CallingAE: null,
Ip: null, Ip: null,
Port: null, Port: null,
Description: null Description: null,
}, },
rules: { rules: {
CallingAE: [ CallingAE: [
@ -139,21 +154,25 @@ export default {
}, },
siteData: {}, siteData: {},
loading: false, loading: false,
status: 'add' status: "add",
}; };
}, },
methods: { methods: {
open(siteData, data = null, status = 'add') { open(siteData, data = null, status = "add") {
this.siteData = siteData; this.siteData = siteData;
this.status = status; this.status = status;
if (data) { if (data) {
Object.keys(this.form).forEach(key => { Object.keys(this.form).forEach((key) => {
this.form[key] = data[key]; this.form[key] = data[key];
}) });
this.form.Ip = data.IP;
} }
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", `${siteData.TrialSiteCode}${siteData.TrialSiteAliasName}`); ).replace(
"xxx",
`${siteData.TrialSiteCode}${siteData.TrialSiteAliasName}`
);
this.config.visible = true; this.config.visible = true;
}, },
// //
@ -167,8 +186,10 @@ export default {
let res = await addOrUpdateTrialSiteDicomAE(this.form); let res = await addOrUpdateTrialSiteDicomAE(this.form);
this.loading = false; this.loading = false;
if (res.IsSuccess) { if (res.IsSuccess) {
this.status === 'add' ? this.$t('common:message:savedSuccessfully') : this.$t('common:message:savedFail'); this.status === "add"
this.$emit('getList'); ? this.$t("common:message:savedSuccessfully")
: this.$t("common:message:savedFail");
this.$emit("getList");
this.$emit("save"); this.$emit("save");
this.config.visible = false; this.config.visible = false;
} }
@ -176,8 +197,8 @@ export default {
console.log(err); console.log(err);
this.loading = false; this.loading = false;
} }
} },
} },
}; };
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped></style>

View File

@ -65,6 +65,7 @@
<el-form-item <el-form-item
:label="$t('trials:dicomCfg:form:IsTestOK')" :label="$t('trials:dicomCfg:form:IsTestOK')"
prop="IsTestOK" prop="IsTestOK"
style="position: relative"
> >
<el-tag <el-tag
:type="form.IsTestOK ? 'success' : 'danger'" :type="form.IsTestOK ? 'success' : 'danger'"
@ -73,21 +74,22 @@
> >
{{ $fd("DicomTest", form.IsTestOK) }} {{ $fd("DicomTest", form.IsTestOK) }}
</el-tag> </el-tag>
<!-- 测试DICOM AE -->
<el-button
v-if="
isEdit &&
hasPermi(['trials:trials-panel:setting:trial-config:save']) &&
form.IsPACSConnect
"
type="primary"
style="position: absolute; right: 100px; top: 0"
@click.stop="testSCPServerConnect"
>
{{ $t("common:button:DicomTest") }}
</el-button>
</el-form-item> </el-form-item>
</template> </template>
<el-form-item> <el-form-item>
<!-- 测试DICOM AE -->
<el-button
v-if="
isEdit &&
hasPermi(['trials:trials-panel:setting:trial-config:save']) &&
form.IsPACSConnect
"
type="primary"
@click.stop="testSCPServerConnect"
>
{{ $t("common:button:DicomTest") }}
</el-button>
<!-- 保存 --> <!-- 保存 -->
<el-button <el-button
v-if=" v-if="

View File

@ -258,7 +258,7 @@ const searchDataDefault = () => {
TrialSiteKeyInfo: null, TrialSiteKeyInfo: null,
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,
Asc: true, Asc: false,
SortField: "LatestPushTime", SortField: "LatestPushTime",
}; };
}; };

View File

@ -208,7 +208,7 @@ const searchDataDefault = () => {
TrialSiteKeyInfo: null, TrialSiteKeyInfo: null,
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,
Asc: true, Asc: false,
SortField: "StartTime", SortField: "StartTime",
}; };
}; };