部分页面接口调整、展示字段变更
parent
17da9c23b0
commit
e6ec3d3550
|
@ -27,7 +27,7 @@ VUE_APP_PASSWORD_FOR_PERMISSION = true
|
||||||
VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$!%#*?&\$~])[A-Za-z0-9-~_.@^+\$~!%#*?&]{8,32}$
|
VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$!%#*?&\$~])[A-Za-z0-9-~_.@^+\$~!%#*?&]{8,32}$
|
||||||
|
|
||||||
# 是否开启文档签署验证 true:是 false:否
|
# 是否开启文档签署验证 true:是 false:否
|
||||||
VUE_APP_WORD_FOR_PERMISSION = true
|
VUE_APP_WORD_FOR_PERMISSION = false
|
||||||
|
|
||||||
# dicom文件地址
|
# dicom文件地址
|
||||||
# VUE_APP_DICOM_PATH = 'http://101.132.193.237:7080'
|
# VUE_APP_DICOM_PATH = 'http://101.132.193.237:7080'
|
||||||
|
|
|
@ -3531,4 +3531,13 @@ export function getTrialInfoHir(id) {
|
||||||
url: `/Patient/getTrialInfo/${id}`,
|
url: `/Patient/getTrialInfo/${id}`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改受试者信息
|
||||||
|
export function addOrUpdateSubjectHir(data) {
|
||||||
|
return request({
|
||||||
|
url: `/Patient/addOrUpdateSubject`,
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
}
|
}
|
|
@ -46,9 +46,37 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="140"
|
min-width="140"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
|
<!--受试者编号-->
|
||||||
|
<el-table-column
|
||||||
|
prop="Code"
|
||||||
|
:label="$t('trials:uploadMonitor:table:subjectId')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
min-width="140"
|
||||||
|
></el-table-column>
|
||||||
|
<!--姓名-->
|
||||||
|
<el-table-column
|
||||||
|
prop="ShortName"
|
||||||
|
:label="$t('trials:researchStaff:table:Name')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
min-width="140"
|
||||||
|
></el-table-column>
|
||||||
|
<!--年龄-->
|
||||||
|
<el-table-column
|
||||||
|
prop="Age"
|
||||||
|
:label="$t('trials:subject:table:age')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
min-width="140"
|
||||||
|
></el-table-column>
|
||||||
|
<!--性别-->
|
||||||
|
<el-table-column
|
||||||
|
prop="Sex"
|
||||||
|
:label="$t('trials:subject:table:gender')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
min-width="140"
|
||||||
|
></el-table-column>
|
||||||
<!--申办方-->
|
<!--申办方-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="SponsorName"
|
prop="Sponsor"
|
||||||
:label="$t('trials:trials-list:table:sponsor')"
|
:label="$t('trials:trials-list:table:sponsor')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="140"
|
min-width="140"
|
||||||
|
@ -59,14 +87,28 @@
|
||||||
:label="$t('trials:trials-list:table:status')"
|
:label="$t('trials:trials-list:table:status')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="140"
|
min-width="140"
|
||||||
></el-table-column>
|
>
|
||||||
<!--访视数-->
|
<template slot-scope="scope">
|
||||||
<el-table-column
|
<el-tag
|
||||||
prop="Code"
|
v-if="scope.row.TrialStatusStr === 'Initializing'"
|
||||||
:label="$t('trials:selftConsistencyAnalysis:table:visitNum')"
|
type="info"
|
||||||
show-overflow-tooltip
|
>{{ $fd("TrialStatusEnum", scope.row.TrialStatusStr) }}</el-tag
|
||||||
min-width="140"
|
>
|
||||||
></el-table-column>
|
<el-tag
|
||||||
|
v-if="scope.row.TrialStatusStr === 'Ongoing'"
|
||||||
|
type="primary"
|
||||||
|
>{{ $fd("TrialStatusEnum", scope.row.TrialStatusStr) }}</el-tag
|
||||||
|
>
|
||||||
|
<el-tag
|
||||||
|
v-if="scope.row.TrialStatusStr === 'Completed'"
|
||||||
|
type="warning"
|
||||||
|
>{{ $fd("TrialStatusEnum", scope.row.TrialStatusStr) }}</el-tag
|
||||||
|
>
|
||||||
|
<el-tag v-if="scope.row.TrialStatusStr === 'Stopped'" type="danger">{{
|
||||||
|
$fd("TrialStatusEnum", scope.row.TrialStatusStr)
|
||||||
|
}}</el-tag>
|
||||||
|
</template></el-table-column
|
||||||
|
>
|
||||||
<!--创建日期-->
|
<!--创建日期-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="CreateTime"
|
prop="CreateTime"
|
||||||
|
@ -167,7 +209,7 @@ export default {
|
||||||
researchProgramNo: item.ResearchProgramNo,
|
researchProgramNo: item.ResearchProgramNo,
|
||||||
};
|
};
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: "/trials/trials-panel/study",
|
path: "/trials/trials-panel/subject/subject-list",
|
||||||
query,
|
query,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- CRO -->
|
<!-- CRO -->
|
||||||
<el-form-item :label="$t('trials:trials-list:form:cro')" prop="Cro">
|
<el-form-item :label="$t('trials:trials-list:form:cro')" prop="Cro">
|
||||||
<el-input v-model="trialForm.Cro" maxlength="200" clearable />
|
<el-input v-model="trialForm.CRO" maxlength="200" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 药物/器械名称 -->
|
<!-- 药物/器械名称 -->
|
||||||
<el-form-item :label="$t('trials:trials-list:message:D/Dname')">
|
<el-form-item :label="$t('trials:trials-list:message:D/Dname')">
|
||||||
|
@ -235,7 +235,7 @@ export default {
|
||||||
ResearchProgramNo: "",
|
ResearchProgramNo: "",
|
||||||
ExperimentName: "",
|
ExperimentName: "",
|
||||||
HeadPI: "",
|
HeadPI: "",
|
||||||
Cro: "",
|
CRO: "",
|
||||||
Sponsor: "",
|
Sponsor: "",
|
||||||
MedicineName: "",
|
MedicineName: "",
|
||||||
PhaseId: "",
|
PhaseId: "",
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
{{ $t("common:button:reset") }}
|
{{ $t("common:button:reset") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- Export -->
|
<!-- Export -->
|
||||||
<el-button
|
<!-- <el-button
|
||||||
v-hasPermi="['trials:trials-list:export']"
|
v-hasPermi="['trials:trials-list:export']"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
@click="handleExportTrial"
|
@click="handleExportTrial"
|
||||||
>
|
>
|
||||||
{{ $t("common:button:export") }}
|
{{ $t("common:button:export") }}
|
||||||
</el-button>
|
</el-button> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left: auto">
|
<span style="margin-left: auto">
|
||||||
|
@ -100,11 +100,7 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<template v-for="item of $d.TrialType">
|
<span>{{ $fd("TrialType", scope.row.TrialType) }}</span>
|
||||||
<span :key="item.id" v-if="scope.row.TrialType === item.value">{{
|
|
||||||
item.label
|
|
||||||
}}</span>
|
|
||||||
</template>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -404,7 +400,6 @@ export default {
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.initPage();
|
this.initPage();
|
||||||
console.log(this.$d.TrialType);
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
initPage() {
|
initPage() {
|
||||||
|
|
|
@ -265,7 +265,7 @@ export default {
|
||||||
Object.keys(this.searchData).forEach((key) => {
|
Object.keys(this.searchData).forEach((key) => {
|
||||||
data[key] = this.searchData[key];
|
data[key] = this.searchData[key];
|
||||||
});
|
});
|
||||||
data.PatientId = this.data.PatientList[0].PatientId;
|
data.PatientIdList = this.data.PatientList.map((item) => item.PatientId);
|
||||||
data.SujectVisitId = this.data.SubjectVisitId;
|
data.SujectVisitId = this.data.SubjectVisitId;
|
||||||
if (this.dateValue[0] && this.dateValue[1]) {
|
if (this.dateValue[0] && this.dateValue[1]) {
|
||||||
data.EarliestStudyTime = this.dateValue[0].toISOString();
|
data.EarliestStudyTime = this.dateValue[0].toISOString();
|
||||||
|
|
|
@ -141,7 +141,11 @@
|
||||||
prop="SubjectSex"
|
prop="SubjectSex"
|
||||||
:label="$t('trials:subject:table:gender')"
|
:label="$t('trials:subject:table:gender')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ $fd("sex", Number(scope.row.SubjectSex)) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- 访视名称 -->
|
<!-- 访视名称 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="VisitName"
|
prop="VisitName"
|
||||||
|
|
|
@ -1,62 +1,76 @@
|
||||||
<template>
|
<template>
|
||||||
<el-container class="participant-container">
|
<el-container class="participant-container">
|
||||||
<el-header style="height:50px">
|
<el-header style="height: 50px">
|
||||||
<div class="filter-container">
|
<div class="filter-container">
|
||||||
<!-- 姓名 -->
|
<!-- 姓名 -->
|
||||||
<span>{{ $t('trials:staff:table:name') }}:</span>
|
<span>{{ $t("trials:staff:table:name") }}:</span>
|
||||||
<el-input v-model="listQuery.UserRealName" size="mini" class="mr" clearable />
|
<el-input
|
||||||
|
v-model="listQuery.UserRealName"
|
||||||
|
size="mini"
|
||||||
|
class="mr"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
<!-- 用户名 -->
|
<!-- 用户名 -->
|
||||||
<span>{{ $t('trials:staff:table:uid') }}:</span>
|
<span>{{ $t("trials:staff:table:uid") }}:</span>
|
||||||
<el-input v-model="listQuery.UserName" size="mini" class="mr" clearable />
|
<el-input
|
||||||
|
v-model="listQuery.UserName"
|
||||||
|
size="mini"
|
||||||
|
class="mr"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
<!-- 单位 -->
|
<!-- 单位 -->
|
||||||
<span>{{ $t('trials:staff:table:organization') }}:</span>
|
<span>{{ $t("trials:staff:table:organization") }}:</span>
|
||||||
<el-input v-model="listQuery.OrganizationName" size="mini" class="mr" clearable />
|
<el-input
|
||||||
|
v-model="listQuery.OrganizationName"
|
||||||
|
size="mini"
|
||||||
|
class="mr"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
<!-- 用户类型 -->
|
<!-- 用户类型 -->
|
||||||
<span>{{ $t('trials:staff:table:userType') }}:</span>
|
<span>{{ $t("trials:staff:table:userType") }}:</span>
|
||||||
<el-select v-model="listQuery.UserTypeEnum" size="mini" clearable class="mr">
|
<el-select
|
||||||
<template v-if="hasPermi(['role:ta'])">
|
v-model="listQuery.UserTypeEnum"
|
||||||
|
size="mini"
|
||||||
<el-option
|
clearable
|
||||||
v-for="item of $d.UserType"
|
class="mr"
|
||||||
v-show="item.value === 4"
|
>
|
||||||
:key="`UserType${item.value}`"
|
<el-option
|
||||||
:label="item.label"
|
v-for="item in userTypeOptions"
|
||||||
:value="item.value"
|
|
||||||
>
|
|
||||||
{{ item.label }}
|
|
||||||
</el-option>
|
|
||||||
</template>
|
|
||||||
<template v-if="hasPermi(['role:pm'])">
|
|
||||||
<el-option
|
|
||||||
v-for="item of $d.UserType"
|
|
||||||
v-show="(!qCProcessEnum && (item.value === 11 || item.value === 12)) || (qCProcessEnum && (item.value === 11 || item.value === 7 || item.value === 12))"
|
|
||||||
:key="`UserType${item.value}`"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
>
|
|
||||||
{{ item.label }}
|
|
||||||
</el-option>
|
|
||||||
</template>
|
|
||||||
<!-- <el-option
|
|
||||||
v-for="item of userTypeOptions"
|
|
||||||
:key="item.Id"
|
:key="item.Id"
|
||||||
:label="item.UserTypeShortName"
|
:label="item.UserTypeShortName"
|
||||||
:value="item.UserTypeEnum"
|
:value="item.Id"
|
||||||
>
|
>
|
||||||
<span>{{ item.UserType }}</span>
|
</el-option>
|
||||||
</el-option> -->
|
|
||||||
</el-select>
|
</el-select>
|
||||||
<!-- 查询 -->
|
<!-- 查询 -->
|
||||||
<el-button type="primary" size="mini" icon="el-icon-search" @click="handleSearch">
|
<el-button
|
||||||
{{ $t('common:button:search') }}
|
type="primary"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-search"
|
||||||
|
@click="handleSearch"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:search") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 重置 -->
|
<!-- 重置 -->
|
||||||
<el-button size="mini" type="primary" icon="el-icon-refresh-left" @click="handleReset">
|
<el-button
|
||||||
{{ $t('common:button:reset') }}
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:reset") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-button type="primary" size="mini" style="margin-left:auto" :disabled="selectArr.length === 0" :loading="assignLoadStatus" icon="el-icon-plus" @click="handleAssign">
|
<el-button
|
||||||
{{ $t('common:button:add') }}
|
type="primary"
|
||||||
|
size="mini"
|
||||||
|
style="margin-left: auto"
|
||||||
|
:disabled="selectArr.length === 0"
|
||||||
|
:loading="assignLoadStatus"
|
||||||
|
icon="el-icon-plus"
|
||||||
|
@click="handleAssign"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:add") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-header>
|
</el-header>
|
||||||
|
@ -124,28 +138,36 @@
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
min-width="100"
|
min-width="100"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</el-main>
|
</el-main>
|
||||||
<div class="pagination" style="text-align: right;margin-top:5px;">
|
<div class="pagination" style="text-align: right; margin-top: 5px">
|
||||||
<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-container>
|
</el-container>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getTrialUserScreeningList, addTrialUsers, getUserTypeList } from '@/api/trials'
|
import {
|
||||||
import Pagination from '@/components/Pagination'
|
getTrialUserScreeningList,
|
||||||
|
addTrialUsers,
|
||||||
|
getUserTypeList,
|
||||||
|
} from "@/api/trials";
|
||||||
|
import Pagination from "@/components/Pagination";
|
||||||
const getListQueryDefault = () => {
|
const getListQueryDefault = () => {
|
||||||
return {
|
return {
|
||||||
UserRealName: '',
|
UserRealName: "",
|
||||||
UserName: '',
|
UserName: "",
|
||||||
OrganizationName: '',
|
OrganizationName: "",
|
||||||
UserTypeEnum: '',
|
UserTypeEnum: "",
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20
|
PageSize: 20,
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
export default {
|
export default {
|
||||||
components: { Pagination },
|
components: { Pagination },
|
||||||
data() {
|
data() {
|
||||||
|
@ -155,115 +177,121 @@ export default {
|
||||||
listQuery: getListQueryDefault(),
|
listQuery: getListQueryDefault(),
|
||||||
selectArr: [],
|
selectArr: [],
|
||||||
assignLoadStatus: false,
|
assignLoadStatus: false,
|
||||||
isAdmin: JSON.parse(zzSessionStorage.getItem('IsAdmin')),
|
isAdmin: JSON.parse(zzSessionStorage.getItem("IsAdmin")),
|
||||||
userTypeOptions: [],
|
userTypeOptions: [],
|
||||||
trialId: '',
|
trialId: "",
|
||||||
qCProcessEnum: null
|
qCProcessEnum: null,
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.trialId = this.$route.query.trialId
|
this.trialId = this.$route.query.trialId;
|
||||||
this.getUserType()
|
this.getUserType();
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getList() {
|
getList() {
|
||||||
const loading = this.$loading({
|
const loading = this.$loading({
|
||||||
target: document.querySelector('.participant-container'),
|
target: document.querySelector(".participant-container"),
|
||||||
fullscreen: false,
|
fullscreen: false,
|
||||||
lock: true
|
lock: true,
|
||||||
})
|
});
|
||||||
this.listQuery.TrialId = this.trialId
|
this.listQuery.TrialId = this.trialId;
|
||||||
getTrialUserScreeningList(this.listQuery).then(res => {
|
getTrialUserScreeningList(this.listQuery)
|
||||||
loading.close()
|
.then((res) => {
|
||||||
this.list = res.Result.CurrentPageData
|
loading.close();
|
||||||
this.total = res.Result.TotalCount
|
this.list = res.Result.CurrentPageData;
|
||||||
this.qCProcessEnum = res.OtherInfo.QCProcessEnum
|
this.total = res.Result.TotalCount;
|
||||||
}).catch(() => { loading.close() })
|
this.qCProcessEnum = res.OtherInfo.QCProcessEnum;
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
loading.close();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
handleAssign() {
|
handleAssign() {
|
||||||
this.$confirm(this.$t('trials:staff:message:addStaff'), {
|
this.$confirm(this.$t("trials:staff:message:addStaff"), {
|
||||||
type: 'warning',
|
type: "warning",
|
||||||
distinguishCancelAndClose: true
|
distinguishCancelAndClose: true,
|
||||||
})
|
}).then(() => {
|
||||||
.then(() => {
|
const loading = this.$loading({
|
||||||
const loading = this.$loading({
|
target: document.querySelector(".participant-container"),
|
||||||
target: document.querySelector('.participant-container'),
|
fullscreen: false,
|
||||||
fullscreen: false,
|
lock: true,
|
||||||
lock: true
|
});
|
||||||
|
this.assignLoadStatus = true;
|
||||||
|
addTrialUsers(this.selectArr)
|
||||||
|
.then((res) => {
|
||||||
|
this.assignLoadStatus = false;
|
||||||
|
loading.close();
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
this.$emit("closeDialog");
|
||||||
|
this.$message.success(
|
||||||
|
this.$t("common:message:addedSuccessfully")
|
||||||
|
);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
this.assignLoadStatus = true
|
.catch(() => {
|
||||||
addTrialUsers(this.selectArr)
|
loading.close();
|
||||||
.then(res => {
|
this.assignLoadStatus = false;
|
||||||
this.assignLoadStatus = false
|
});
|
||||||
loading.close()
|
});
|
||||||
if (res.IsSuccess) {
|
|
||||||
this.$emit('closeDialog')
|
|
||||||
this.$message.success(this.$t('common:message:addedSuccessfully'))
|
|
||||||
}
|
|
||||||
}).catch(() => {
|
|
||||||
loading.close()
|
|
||||||
this.assignLoadStatus = false
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
this.listQuery.PageIndex = 1
|
this.listQuery.PageIndex = 1;
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.listQuery = getListQueryDefault()
|
this.listQuery = getListQueryDefault();
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
handleSelectChange(val) {
|
handleSelectChange(val) {
|
||||||
this.selectArr = val
|
this.selectArr = val;
|
||||||
},
|
},
|
||||||
handleSortByColumn(column) {
|
handleSortByColumn(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();
|
||||||
},
|
},
|
||||||
handleSelectable(row) {
|
handleSelectable(row) {
|
||||||
if (!row.IsSelect) {
|
if (!row.IsSelect) {
|
||||||
return true
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false
|
return false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getUserType() {
|
getUserType() {
|
||||||
getUserTypeList(2).then(res => {
|
getUserTypeList(2).then((res) => {
|
||||||
this.userTypeOptions = res.Result
|
this.userTypeOptions = res.Result;
|
||||||
})
|
});
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.participant-container{
|
.participant-container {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
.el-header{
|
.el-header {
|
||||||
.filter-container{
|
.filter-container {
|
||||||
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 {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
}
|
}
|
||||||
.el-footer{
|
.el-footer {
|
||||||
padding: 0 20px;
|
padding: 0 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="personnel-container">
|
<div class="personnel-container">
|
||||||
<el-collapse v-model="activeNames" class="personnel-manage">
|
<el-collapse class="personnel-manage">
|
||||||
<!-- 人员 -->
|
<!-- 人员 -->
|
||||||
<Staff ref="staffList" />
|
<Staff ref="staffList" />
|
||||||
<!-- <el-collapse-item :title="$t('trials:staff:title:staff')" name="Staff">
|
<!-- <el-collapse-item :title="$t('trials:staff:title:staff')" name="Staff">
|
||||||
|
|
|
@ -146,7 +146,11 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
min-width="100"
|
min-width="100"
|
||||||
/>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ $fd("sex", Number(scope.row.SubjectSex)) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- 申请号 -->
|
<!-- 申请号 -->
|
||||||
<!-- <el-table-column
|
<!-- <el-table-column
|
||||||
prop="StudyCode"
|
prop="StudyCode"
|
||||||
|
@ -170,6 +174,7 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
min-width="100"
|
min-width="100"
|
||||||
|
v-if="activeName === 'submit'"
|
||||||
/>
|
/>
|
||||||
<!-- 检查日期 -->
|
<!-- 检查日期 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -194,7 +199,19 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
min-width="100"
|
min-width="100"
|
||||||
/>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag v-if="scope.row.SubmitState * 1 === 0" type="warning">{{
|
||||||
|
$fd("SubmitState", scope.row.SubmitState * 1)
|
||||||
|
}}</el-tag>
|
||||||
|
<el-tag v-else-if="scope.row.SubmitState * 1 === 1" type="danger">{{
|
||||||
|
$fd("SubmitState", scope.row.SubmitState * 1)
|
||||||
|
}}</el-tag>
|
||||||
|
<el-tag v-else-if="scope.row.SubmitState * 1 === 2">{{
|
||||||
|
$fd("SubmitState", scope.row.SubmitState * 1)
|
||||||
|
}}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:label="$t('common:action:action')"
|
:label="$t('common:action:action')"
|
||||||
min-width="100"
|
min-width="100"
|
||||||
|
|
|
@ -8,17 +8,42 @@
|
||||||
label-width="100px"
|
label-width="100px"
|
||||||
>
|
>
|
||||||
<div class="base-dialog-body">
|
<div class="base-dialog-body">
|
||||||
|
<!-- 患者编号 -->
|
||||||
|
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
||||||
|
<el-input v-model="form.PatientId" disabled />
|
||||||
|
</el-form-item>
|
||||||
<!-- 受试者编号 -->
|
<!-- 受试者编号 -->
|
||||||
<el-form-item :label="$t('trials:subject:table:subjectId')" prop="Code">
|
<el-form-item :label="$t('trials:subject:table:subjectId')" prop="Code">
|
||||||
<el-input v-model="form.Code" />
|
<el-input v-model="form.Code" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 患者编号 -->
|
<!-- 姓名 -->
|
||||||
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
|
||||||
<el-input v-model="form.Code" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
<!-- 患者姓名 -->
|
|
||||||
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
|
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
|
||||||
<el-input v-model="form.Code" disabled />
|
<el-input v-model="form.ShortName" />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 年龄 -->
|
||||||
|
<el-form-item :label="$t('trials:subject:table:age')">
|
||||||
|
<el-input v-model="form.Age" type="number" />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 性别 -->
|
||||||
|
<el-form-item :label="$t('trials:subject:table:gender')">
|
||||||
|
<el-select v-model="form.Sex" clearable filterable style="width: 100%">
|
||||||
|
<el-option
|
||||||
|
v-for="item of $d.sex"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 出生日期 -->
|
||||||
|
<el-form-item :label="$t('trials:inspection:table:birthdate')">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="form.BirthDate"
|
||||||
|
type="date"
|
||||||
|
placeholder="选择日期"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="base-dialog-footer" style="text-align: right; margin-top: 10px">
|
<div class="base-dialog-footer" style="text-align: right; margin-top: 10px">
|
||||||
|
@ -46,7 +71,7 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getTrialSiteSelect, addOrUpdateSubject } from "@/api/trials";
|
import { addOrUpdateSubjectHir } from "@/api/trials";
|
||||||
export default {
|
export default {
|
||||||
name: "SubjectForm",
|
name: "SubjectForm",
|
||||||
props: {
|
props: {
|
||||||
|
@ -67,24 +92,15 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
form: {
|
form: {
|
||||||
Id: "",
|
|
||||||
Code: "",
|
Code: "",
|
||||||
ShortName: "",
|
ShortName: "",
|
||||||
Height: "",
|
PatientList: [],
|
||||||
Weight: "",
|
PatientId: "",
|
||||||
Age: "",
|
TrialId: "",
|
||||||
Sex: "",
|
Id: "",
|
||||||
BirthDate: "",
|
Age: null,
|
||||||
SiteId: "",
|
Sex: null,
|
||||||
MedicalNo: "",
|
BirthDate: null,
|
||||||
Status: 1,
|
|
||||||
FirstGiveMedicineTime: "",
|
|
||||||
OutEnrollmentTime: "",
|
|
||||||
VisitOverTime: "",
|
|
||||||
Reason: "",
|
|
||||||
StudyCount: "",
|
|
||||||
SignDate: "",
|
|
||||||
IsUrgent: false,
|
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
Code: [
|
Code: [
|
||||||
|
@ -113,10 +129,6 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async initForm() {
|
async initForm() {
|
||||||
this.loading = true;
|
|
||||||
const res = await getTrialSiteSelect(this.trialId);
|
|
||||||
this.loading = false;
|
|
||||||
this.siteOptions = res.Result;
|
|
||||||
if (Object.keys(this.data).length > 0) {
|
if (Object.keys(this.data).length > 0) {
|
||||||
for (const k in this.form) {
|
for (const k in this.form) {
|
||||||
if (this.data.hasOwnProperty(k)) {
|
if (this.data.hasOwnProperty(k)) {
|
||||||
|
@ -125,12 +137,26 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.form.TrialId = this.trialId;
|
this.form.TrialId = this.trialId;
|
||||||
|
this.form.PatientList.forEach((item, index) => {
|
||||||
|
if (index === this.form.PatientList.length - 1) {
|
||||||
|
this.form.PatientId += `${item.PatientIdStr}`;
|
||||||
|
} else {
|
||||||
|
this.form.PatientId += `${item.PatientIdStr}, `;
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
handleSave() {
|
handleSave() {
|
||||||
this.$refs.subjectForm.validate((valid) => {
|
this.$refs.subjectForm.validate((valid) => {
|
||||||
if (!valid) return;
|
if (!valid) return;
|
||||||
this.btnLoading = true;
|
this.btnLoading = true;
|
||||||
addOrUpdateSubject(this.form)
|
let data = {};
|
||||||
|
Object.keys(this.form).forEach((key) => {
|
||||||
|
data[key] = this.form[key];
|
||||||
|
});
|
||||||
|
data.BirthDate = data.BirthDate.toISOString();
|
||||||
|
delete data.PatientId;
|
||||||
|
delete data.PatientList;
|
||||||
|
addOrUpdateSubjectHir(data)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.btnLoading = false;
|
this.btnLoading = false;
|
||||||
this.$emit("getList");
|
this.$emit("getList");
|
||||||
|
@ -145,11 +171,6 @@ export default {
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.$emit("close");
|
this.$emit("close");
|
||||||
},
|
},
|
||||||
getSite() {
|
|
||||||
getTrialSiteSelect(this.trialId).then((res) => {
|
|
||||||
this.siteList = res.Result;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -60,13 +60,13 @@
|
||||||
{{ $t("common:button:reset") }}
|
{{ $t("common:button:reset") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!--导出-->
|
<!--导出-->
|
||||||
<el-button
|
<!-- <el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
@click="handleExport"
|
@click="handleExport"
|
||||||
>
|
>
|
||||||
{{ $t("common:button:export") }}
|
{{ $t("common:button:export") }}
|
||||||
</el-button>
|
</el-button> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left: auto">
|
<span style="margin-left: auto">
|
||||||
|
@ -133,7 +133,11 @@
|
||||||
:label="$t('trials:trials-myinfo:form:gender')"
|
:label="$t('trials:trials-myinfo:form:gender')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ $fd("sex", Number(scope.row.Sex)) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- 出生日期 -->
|
<!-- 出生日期 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="BirthDate"
|
prop="BirthDate"
|
||||||
|
@ -207,13 +211,13 @@
|
||||||
@click="handleEdit(scope.row)"
|
@click="handleEdit(scope.row)"
|
||||||
/>
|
/>
|
||||||
<!-- 修改状态 -->
|
<!-- 修改状态 -->
|
||||||
<el-button
|
<!-- <el-button
|
||||||
v-hasPermi="['trials:trials-panel:subject:status']"
|
v-hasPermi="['trials:trials-panel:subject:status']"
|
||||||
circle
|
circle
|
||||||
:title="$t('trials:subject:action:status')"
|
:title="$t('trials:subject:action:status')"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
@click="handleEditStatus(scope.row)"
|
@click="handleEditStatus(scope.row)"
|
||||||
/>
|
/> -->
|
||||||
<!-- 删除 -->
|
<!-- 删除 -->
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPermi="['trials:trials-panel:subject:delete']"
|
v-hasPermi="['trials:trials-panel:subject:delete']"
|
||||||
|
@ -243,7 +247,7 @@
|
||||||
: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="700px"
|
width="500px"
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
>
|
>
|
||||||
<SubjectsForm
|
<SubjectsForm
|
||||||
|
|
Loading…
Reference in New Issue