Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
commit
b195e6d7ce
|
@ -8,6 +8,7 @@
|
||||||
type="primary"
|
type="primary"
|
||||||
:disabled="approveIdArr.length==0"
|
:disabled="approveIdArr.length==0"
|
||||||
@click="handleApprove()"
|
@click="handleApprove()"
|
||||||
|
v-hasPermi="['trials:trials-panel:attachments:SPMEnrollment:button-agree']"
|
||||||
>
|
>
|
||||||
{{ $t('trials:seletctedReviews:button:approve') }}
|
{{ $t('trials:seletctedReviews:button:approve') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -61,7 +62,7 @@
|
||||||
min-width="120"
|
min-width="120"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.SubspecialityIds.map(v => {return $fd('Subspeciality', v, 'id')}).toString() }}
|
{{ scope.row.SubspecialityIds.map(v => {return $fd('Subspeciality', v, 'id')}).join(", ") }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -110,6 +111,7 @@
|
||||||
/>
|
/>
|
||||||
<!-- 同意 -->
|
<!-- 同意 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
v-hasPermi="['trials:trials-panel:attachments:SPMEnrollment:button-agree']"
|
||||||
:disabled="scope.row.DoctorTrialState === 8"
|
:disabled="scope.row.DoctorTrialState === 8"
|
||||||
icon="el-icon-check"
|
icon="el-icon-check"
|
||||||
circle
|
circle
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="div-col">
|
<div class="div-col">
|
||||||
<label class="el-label">{{ $t('trials:trials-list:form:typeofReviewers:') }}</label>
|
<label class="el-label">{{ $t('trials:trials-list:form:typeofReviewers:') }}</label>
|
||||||
<span>{{ trialInfo.AttendedReviewerTypeEnumList.map(v => $fd('AttendedReviewerType', v)).toString() }}</span>
|
<span>{{ trialInfo.AttendedReviewerTypeEnumList.map(v => $fd('AttendedReviewerType', v)).join(", ") }}</span>
|
||||||
<!-- <span>{{ $fd('AttendedReviewerType', trialInfo.AttendedReviewerType) }}</span>-->
|
<!-- <span>{{ $fd('AttendedReviewerType', trialInfo.AttendedReviewerType) }}</span>-->
|
||||||
</div>
|
</div>
|
||||||
<div class="div-col">
|
<div class="div-col">
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="div-col">
|
<div class="div-col">
|
||||||
<label class="el-label">{{ $t('trials:trials-list:form:typeofReviewers:') }}</label>
|
<label class="el-label">{{ $t('trials:trials-list:form:typeofReviewers:') }}</label>
|
||||||
<span>{{ trialInfo.AttendedReviewerTypeEnumList.map(v => $fd('AttendedReviewerType', v)).toString() }}</span>
|
<span>{{ trialInfo.AttendedReviewerTypeEnumList.map(v => $fd('AttendedReviewerType', v)).join(', ') }}</span>
|
||||||
<!-- <span>{{ $fd('AttendedReviewerType', trialInfo.AttendedReviewerType) }}</span>-->
|
<!-- <span>{{ $fd('AttendedReviewerType', trialInfo.AttendedReviewerType) }}</span>-->
|
||||||
</div>
|
</div>
|
||||||
<div class="div-col">
|
<div class="div-col">
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
width="150"
|
width="150"
|
||||||
prop="FirstName"
|
prop="FirstName"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
|
v-if="!hasPermi(['role:ea'])"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" @click="go(`/trialsResume?doctorId=${scope.row.DoctorId}&token=${token}`)">{{ scope.row.LastName }} / {{ scope.row.FirstName }}</el-button>
|
<el-button type="text" @click="go(`/trialsResume?doctorId=${scope.row.DoctorId}&token=${token}`)">{{ scope.row.LastName }} / {{ scope.row.FirstName }}</el-button>
|
||||||
|
@ -39,6 +40,7 @@
|
||||||
prop="ChineseName"
|
prop="ChineseName"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
:label="$t('trials:enrolledReviews:table:nameCN')"
|
:label="$t('trials:enrolledReviews:table:nameCN')"
|
||||||
|
v-if="!hasPermi(['role:ea'])"
|
||||||
width="120"
|
width="120"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
|
@ -46,7 +48,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="UserName"
|
prop="UserName"
|
||||||
:label="$t('trials:enrolledReviews:table:userName')"
|
:label="$t('trials:enrolledReviews:table:userName')"
|
||||||
width="150"
|
:width="hasPermi(['role:ea'])?300:150"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
|
@ -54,7 +56,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="EnrollTimeStr"
|
prop="EnrollTimeStr"
|
||||||
:label="$t('trials:enrolledReviews:table:enrollmentTime')"
|
:label="$t('trials:enrolledReviews:table:enrollmentTime')"
|
||||||
width="200"
|
:width="hasPermi(['role:ea'])?320:200"
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
|
@ -77,6 +79,7 @@
|
||||||
:active-value="true"
|
:active-value="true"
|
||||||
:inactive-value="false"
|
:inactive-value="false"
|
||||||
@change="(v) => {return isEnableChange(scope.row, v)}"
|
@change="(v) => {return isEnableChange(scope.row, v)}"
|
||||||
|
:disabled="!hasPermi(['trials:trials-panel:enrolled-reviewers:list:edit'])"
|
||||||
/>
|
/>
|
||||||
<span>{{$fd('IsEnable', scope.row.IsEnable)}}</span>
|
<span>{{$fd('IsEnable', scope.row.IsEnable)}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -84,6 +87,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-for="ite of TrialReadingCriterionList"
|
v-for="ite of TrialReadingCriterionList"
|
||||||
|
:key="ite"
|
||||||
:label="ite.TrialReadingCriterionName"
|
:label="ite.TrialReadingCriterionName"
|
||||||
width="360"
|
width="360"
|
||||||
header-align="center"
|
header-align="center"
|
||||||
|
@ -95,7 +99,7 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-for="item of scope.row.CriterionCategoryList.find(v => {return v.TrialReadingCriterionId === ite.TrialReadingCriterionId}) ? scope.row.CriterionCategoryList.find(v => {return v.TrialReadingCriterionId === ite.TrialReadingCriterionId}).ReadingCategorys : []">
|
<span v-for="item of scope.row.CriterionCategoryList.find(v => {return v.TrialReadingCriterionId === ite.TrialReadingCriterionId}) ? scope.row.CriterionCategoryList.find(v => {return v.TrialReadingCriterionId === ite.TrialReadingCriterionId}).ReadingCategorys : []" :key="item">
|
||||||
<el-tag v-if="item === 1" type="primary">{{ $fd('ReadingCategory', item) + ' & ' + $fd('ReadingCategory', 2) }}</el-tag>
|
<el-tag v-if="item === 1" type="primary">{{ $fd('ReadingCategory', item) + ' & ' + $fd('ReadingCategory', 2) }}</el-tag>
|
||||||
<!-- <el-tag v-if="item === 2" type="info">{{ $fd('ReadingCategory', item) }}</el-tag>-->
|
<!-- <el-tag v-if="item === 2" type="info">{{ $fd('ReadingCategory', item) }}</el-tag>-->
|
||||||
<el-tag v-if="item === 4" type="danger">{{ $fd('ReadingCategory', item) }}</el-tag>
|
<el-tag v-if="item === 4" type="danger">{{ $fd('ReadingCategory', item) }}</el-tag>
|
||||||
|
@ -121,6 +125,7 @@
|
||||||
:active-value="true"
|
:active-value="true"
|
||||||
:inactive-value="false"
|
:inactive-value="false"
|
||||||
@change="(v) => {return isConsistencyChange(scope.row, ite, v, true)}"
|
@change="(v) => {return isConsistencyChange(scope.row, ite, v, true)}"
|
||||||
|
:disabled="!hasPermi(['trials:trials-panel:enrolled-reviewers:list:edit'])"
|
||||||
/>
|
/>
|
||||||
<span v-if="scope.row.CriterionCategoryList.find(v => {return v.TrialReadingCriterionId === ite.TrialReadingCriterionId}).IsJoinAnalysis">{{$fd('YesOrNo', scope.row.CriterionCategoryList.find(v => {return v.TrialReadingCriterionId === ite.TrialReadingCriterionId}).IsJoinAnalysis)}}</span>
|
<span v-if="scope.row.CriterionCategoryList.find(v => {return v.TrialReadingCriterionId === ite.TrialReadingCriterionId}).IsJoinAnalysis">{{$fd('YesOrNo', scope.row.CriterionCategoryList.find(v => {return v.TrialReadingCriterionId === ite.TrialReadingCriterionId}).IsJoinAnalysis)}}</span>
|
||||||
<span v-else>{{$fd('YesOrNo',false)}}</span>
|
<span v-else>{{$fd('YesOrNo',false)}}</span>
|
||||||
|
@ -253,9 +258,15 @@
|
||||||
default-first-option
|
default-first-option
|
||||||
style="width: 70%"
|
style="width: 70%"
|
||||||
>
|
>
|
||||||
<el-option v-for="item of $d.ReadingCategory" v-if="item.value === 1" :key="item.id" :value="1" :label="$fd('ReadingCategory', 1) + ' & ' + $fd('ReadingCategory', 2)" />
|
<template v-for="item of $d.ReadingCategory">
|
||||||
<el-option v-for="item of $d.ReadingCategory" v-if="item.value === 4 && IsArbitrationReading" :key="item.id" :value="item.value" :label="$fd('ReadingCategory', 4)" />
|
<el-option v-if="item.value === 1" :key="item.id" :value="1" :label="$fd('ReadingCategory', 1) + ' & ' + $fd('ReadingCategory', 2)" />
|
||||||
<el-option v-for="item of $d.ReadingCategory" v-if="item.value === 5 && IsOncologyReading" :key="item.id" :value="item.value" :label="$fd('ReadingCategory', 5)" />
|
</template>
|
||||||
|
<template v-for="item of $d.ReadingCategory">
|
||||||
|
<el-option v-if="item.value === 4 && IsArbitrationReading" :key="item.id" :value="item.value" :label="$fd('ReadingCategory', 4)" />
|
||||||
|
</template>
|
||||||
|
<template v-for="item of $d.ReadingCategory">
|
||||||
|
<el-option v-if="item.value === 5 && IsOncologyReading" :key="item.id" :value="item.value" :label="$fd('ReadingCategory', 5)" />
|
||||||
|
</template>
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
<template slot="dialog-footer">
|
<template slot="dialog-footer">
|
||||||
|
@ -486,7 +497,7 @@ export default {
|
||||||
return {
|
return {
|
||||||
EnrollId: v.EnrollId,
|
EnrollId: v.EnrollId,
|
||||||
TrialReadingCriterionId: v.TrialReadingCriterionId,
|
TrialReadingCriterionId: v.TrialReadingCriterionId,
|
||||||
IsJoinAnalysis: false
|
IsJoinAnalysis: value
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -494,6 +505,7 @@ export default {
|
||||||
if (showMessage) {
|
if (showMessage) {
|
||||||
this.$message.success(this.$t('trials:enrolledReviews:message:batchSetCriterionJoinJoinAnalysis1'))
|
this.$message.success(this.$t('trials:enrolledReviews:message:batchSetCriterionJoinJoinAnalysis1'))
|
||||||
}
|
}
|
||||||
|
this.initPage()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
go(path) {
|
go(path) {
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
>
|
>
|
||||||
{{ $t('common:button:cancel') }}
|
{{ $t('common:button:cancel') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button size="small" type="primary" :loading="btnLoading" @click="save(true)">
|
<el-button size="small" type="primary" :disabled="!IsAllowAutoAllocate" :loading="btnLoading" @click="save(true)">
|
||||||
{{$t('trials:grouptConsistencyAnalysis:button:RandomCreate')}}
|
{{$t('trials:grouptConsistencyAnalysis:button:RandomCreate')}}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 生成 -->
|
<!-- 生成 -->
|
||||||
|
@ -129,7 +129,8 @@ export default {
|
||||||
loading: false,
|
loading: false,
|
||||||
trialId: this.$route.query.trialId,
|
trialId: this.$route.query.trialId,
|
||||||
SelectList: [],
|
SelectList: [],
|
||||||
btnLoading: false
|
btnLoading: false,
|
||||||
|
IsAllowAutoAllocate: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -157,7 +158,8 @@ export default {
|
||||||
var params = {
|
var params = {
|
||||||
TrialId: this.$route.query.trialId,
|
TrialId: this.$route.query.trialId,
|
||||||
SubejctIdList: this.SelectList.map(v => v.SubjectId),
|
SubejctIdList: this.SelectList.map(v => v.SubjectId),
|
||||||
IsAutoAllocateGenerateTask: IsAutoAllocateGenerateTask
|
IsAutoAllocateGenerateTask: IsAutoAllocateGenerateTask,
|
||||||
|
TrialReadingCriterionId: this.TrialReadingCriterionId
|
||||||
}
|
}
|
||||||
confirmGenerateGroupConsistentTask(params).then(res => {
|
confirmGenerateGroupConsistentTask(params).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
@ -176,11 +178,12 @@ export default {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
|
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
|
||||||
getGroupConsistentRuleSubjectList(this.searchData).then(res => {
|
getGroupConsistentRuleSubjectList(this.searchData).then(res => {
|
||||||
if (res.OtherInfo) {
|
if (res.OtherInfo.Rule) {
|
||||||
this.$emit('setReaderRulesFormVisible', false)
|
this.$emit('setReaderRulesFormVisible', false)
|
||||||
} else {
|
} else {
|
||||||
this.$emit('setReaderRulesFormVisible', true)
|
this.$emit('setReaderRulesFormVisible', true)
|
||||||
}
|
}
|
||||||
|
this.IsAllowAutoAllocate = res.OtherInfo.IsAllowAutoAllocate
|
||||||
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
|
||||||
|
|
|
@ -128,6 +128,9 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.$emit('getList')
|
this.$emit('getList')
|
||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
|
}).catch(() => {
|
||||||
|
this.loading = false
|
||||||
|
this.btnLoading = false
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
|
@ -355,6 +355,7 @@
|
||||||
circle
|
circle
|
||||||
:title="$t('trials:pmMedicalReview:action:failure')"
|
:title="$t('trials:pmMedicalReview:action:failure')"
|
||||||
:disabled="scope.row.IsInvalid || !!scope.row.AuditSignTime"
|
:disabled="scope.row.IsInvalid || !!scope.row.AuditSignTime"
|
||||||
|
v-hasPermi="['trials:trials-panel:reading:pm-medical-feedback:failure']"
|
||||||
icon="el-icon-close"
|
icon="el-icon-close"
|
||||||
@click="setMedicalReviewInvalid(scope.row)"
|
@click="setMedicalReviewInvalid(scope.row)"
|
||||||
/>
|
/>
|
||||||
|
@ -363,6 +364,7 @@
|
||||||
:title="$t('trials:pmMedicalReview:action:assign')"
|
:title="$t('trials:pmMedicalReview:action:assign')"
|
||||||
:disabled="!!scope.row.MedicalManagerUser || scope.row.IsInvalid || !!scope.row.AuditSignTime"
|
:disabled="!!scope.row.MedicalManagerUser || scope.row.IsInvalid || !!scope.row.AuditSignTime"
|
||||||
icon="el-icon-thumb"
|
icon="el-icon-thumb"
|
||||||
|
v-hasPermi="['trials:trials-panel:reading:pm-medical-feedback:assign']"
|
||||||
@click="assignMedicalReviewTask(scope.row, 1)"
|
@click="assignMedicalReviewTask(scope.row, 1)"
|
||||||
/>
|
/>
|
||||||
<el-button
|
<el-button
|
||||||
|
@ -370,6 +372,7 @@
|
||||||
:title="$t('trials:pmMedicalReview:action:cancelAssign')"
|
:title="$t('trials:pmMedicalReview:action:cancelAssign')"
|
||||||
:disabled="!scope.row.MedicalManagerUser || scope.row.IsInvalid || !!scope.row.AuditSignTime"
|
:disabled="!scope.row.MedicalManagerUser || scope.row.IsInvalid || !!scope.row.AuditSignTime"
|
||||||
icon="el-icon-refresh-left"
|
icon="el-icon-refresh-left"
|
||||||
|
v-hasPermi="['trials:trials-panel:reading:pm-medical-feedback:cancelAssign']"
|
||||||
@click="assignMedicalReviewTask(scope.row, 3)"
|
@click="assignMedicalReviewTask(scope.row, 3)"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<div slot="search-container">
|
<div slot="search-container">
|
||||||
<el-form :inline="true">
|
<el-form :inline="true">
|
||||||
<el-form-item :label="$t('trials:reviewAssign:table:siteCode')">
|
<el-form-item :label="$t('trials:reviewAssign:table:siteCode')">
|
||||||
<el-select v-model="searchData.SiteId" clearable filterable style="width:120px;">
|
<el-select v-model="searchData.SiteId" clearable filterable style="width:240px;">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(item,index) of siteOptions"
|
v-for="(item,index) of siteOptions"
|
||||||
:key="'taskSearchData' + index"
|
:key="'taskSearchData' + index"
|
||||||
|
@ -18,13 +18,25 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 受试者编号 -->
|
<!-- 受试者编号 -->
|
||||||
<el-form-item :label="$t('trials:reviewAssign:table:subjectCode')">
|
<el-form-item :label="$t('trials:reviewAssign:table:subjectCode')">
|
||||||
<el-input v-model="searchData.SubjectCode" style="width:100px;" />
|
<el-input v-model="searchData.SubjectCode" style="width:240px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 阅片人 -->
|
<!-- 阅片人 -->
|
||||||
<el-form-item :label="$t('trials:reviewAssign:searchForm:reader')">
|
<el-form-item :label="$t('trials:reviewAssign:searchForm:reader')">
|
||||||
<el-select v-model="searchData.DoctorUserId" clearable style="width:120px;">
|
<el-select v-model="searchData.DoctorUserId" clearable style="width:240px;">
|
||||||
<el-option v-for="item of DoctorUserList" :key="'taskSearchData' + item.DoctorUserId" :value="item.DoctorUserId" :label="`${item.UserName}(${item.FullName})`" />
|
<el-option v-for="item of DoctorUserList" :key="'taskSearchData' + item.DoctorUserId" :value="item.DoctorUserId" :label="`${item.UserName}(${item.FullName})`" />
|
||||||
</el-select>
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 分配状态 -->
|
||||||
|
<el-form-item :label="$t('trials:reviewAssign:searchForm:status')">
|
||||||
|
<el-select v-model="searchData.SubjectAllocateState" clearable style="width:240px;">
|
||||||
|
<el-option v-for="item of $d.SubjectAllocateState" :key=" item.id" :value="item.value" :label="item.label" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 分配角色 -->
|
||||||
|
<el-form-item :label="$t('trials:reviewAssign:searchForm:role')">
|
||||||
|
<el-select v-model="searchData.ArmList" clearable style="width:240px;" multiple>
|
||||||
|
<el-option v-for="item of $d.ArmEnum" :key="item.id" :value="item.value" :label="item.label" />
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 查询 -->
|
<!-- 查询 -->
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -494,7 +506,9 @@ const searchDataDefault = () => {
|
||||||
DoctorUserId: null,
|
DoctorUserId: null,
|
||||||
IsHaveAssigned: null,
|
IsHaveAssigned: null,
|
||||||
IsAssignConfirmed: null,
|
IsAssignConfirmed: null,
|
||||||
TrialReadingCriterionId: null
|
TrialReadingCriterionId: null,
|
||||||
|
SubjectAllocateState:null,
|
||||||
|
ArmList:[]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const taskSearchDataDefault = () => {
|
const taskSearchDataDefault = () => {
|
||||||
|
@ -514,7 +528,9 @@ const taskSearchDataDefault = () => {
|
||||||
ReadingCategory: null,
|
ReadingCategory: null,
|
||||||
TaskAllocationState: null,
|
TaskAllocationState: null,
|
||||||
BeginAllocateDate: null,
|
BeginAllocateDate: null,
|
||||||
EndAllocateDate: null
|
EndAllocateDate: null,
|
||||||
|
SubjectAllocateState:null,
|
||||||
|
ArmList:[]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
|
@ -585,7 +601,15 @@ export default {
|
||||||
if (v) {
|
if (v) {
|
||||||
this.getList()
|
this.getList()
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
// "searchData.SubjectAllocateState":{
|
||||||
|
// handler(){
|
||||||
|
// if(!this.searchData.SubjectAllocateState){
|
||||||
|
// this.searchData.ArmList = [];
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// // immediate:true
|
||||||
|
// }
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getDoctorUserSelectList()
|
this.getDoctorUserSelectList()
|
||||||
|
|
|
@ -323,7 +323,7 @@
|
||||||
</box-content>
|
</box-content>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { batchDeteteCriterionMedicineQuestion, getReadingMedicineTrialQuestionList, deleteReadingMedicineTrialQuestion, confirmReadingMedicineQuestion, verifyReadingMedicineQuestion } from '@/api/trials'
|
import { batchDeteteCriterionMedicineQuestion, getReadingMedicineTrialQuestionList, deleteReadingMedicineTrialQuestion, confirmReadingMedicineQuestion, verifyReadingMedicineQuestion, verifyIsCanConfirm } from '@/api/trials'
|
||||||
import { getTrialCriterionList } from '@/api/trials/reading'
|
import { getTrialCriterionList } from '@/api/trials/reading'
|
||||||
import BoxContent from '@/components/BoxContent'
|
import BoxContent from '@/components/BoxContent'
|
||||||
import DefaultQS from './components/DefaultQsLang'
|
import DefaultQS from './components/DefaultQsLang'
|
||||||
|
@ -489,11 +489,16 @@ export default {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.loading = true
|
this.loading = true
|
||||||
verifyReadingMedicineQuestion({ trialId: this.trialId, TrialReadingCriterionId: this.trialReadingCriterionId }).then(res => {
|
verifyIsCanConfirm({
|
||||||
this.loading = false
|
TrialReadingCriterionId: this.trialReadingCriterionId
|
||||||
const { MedicalAuditConfirmation } = const_.processSignature
|
}).then(res => {
|
||||||
this.signCode = MedicalAuditConfirmation
|
console.log(res)
|
||||||
this.signVisible = true
|
verifyReadingMedicineQuestion({ trialId: this.trialId, TrialReadingCriterionId: this.trialReadingCriterionId }).then(res => {
|
||||||
|
this.loading = false
|
||||||
|
const { MedicalAuditConfirmation } = const_.processSignature
|
||||||
|
this.signCode = MedicalAuditConfirmation
|
||||||
|
this.signVisible = true
|
||||||
|
}).catch(() => { this.loading = false })
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
},
|
},
|
||||||
// 关闭签名框并设置确认状态
|
// 关闭签名框并设置确认状态
|
||||||
|
|
|
@ -17,21 +17,21 @@
|
||||||
v-model="form.QuestionName"
|
v-model="form.QuestionName"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<!-- <el-form-item-->
|
||||||
:label="$t('common:title:languageType')"
|
<!-- :label="$t('common:title:languageType')"-->
|
||||||
prop="LanguageType"
|
<!-- prop="LanguageType"-->
|
||||||
>
|
<!-- >-->
|
||||||
<el-select
|
<!-- <el-select-->
|
||||||
v-model="form.LanguageType"
|
<!-- v-model="form.LanguageType"-->
|
||||||
>
|
<!-- >-->
|
||||||
<el-option
|
<!-- <el-option-->
|
||||||
v-for="item of $d.LanguageType"
|
<!-- v-for="item of $d.LanguageType"-->
|
||||||
:key="item.value"
|
<!-- :key="item.value"-->
|
||||||
:value="item.value"
|
<!-- :value="item.value"-->
|
||||||
:label="item.label"
|
<!-- :label="item.label"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<!-- 类型 -->
|
<!-- 类型 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('trials:qcCfg:table:type')"
|
:label="$t('trials:qcCfg:table:type')"
|
||||||
|
@ -223,6 +223,7 @@ export default {
|
||||||
mounted() {
|
mounted() {
|
||||||
this.trialId = this.$route.query.trialId
|
this.trialId = this.$route.query.trialId
|
||||||
this.initForm()
|
this.initForm()
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async initForm() {
|
async initForm() {
|
||||||
|
@ -236,6 +237,11 @@ export default {
|
||||||
this.parentTriggerValOptions = this.parentOptions[index].TypeValue.split('|')
|
this.parentTriggerValOptions = this.parentOptions[index].TypeValue.split('|')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (this.$i18n.locale === 'zh') {
|
||||||
|
this.form.LanguageType = 0
|
||||||
|
} else {
|
||||||
|
this.form.LanguageType = 1
|
||||||
|
}
|
||||||
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)) {
|
||||||
|
|
|
@ -8,23 +8,23 @@
|
||||||
<el-input v-model="searchData.QuestionName" clearable style="width:120px;" />
|
<el-input v-model="searchData.QuestionName" clearable style="width:120px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 语言类型 -->
|
<!-- 语言类型 -->
|
||||||
<el-form-item
|
<!-- <el-form-item-->
|
||||||
:label="$t('common:title:languageType')"
|
<!-- :label="$t('common:title:languageType')"-->
|
||||||
style="margin-top: 10px"
|
<!-- style="margin-top: 10px"-->
|
||||||
>
|
<!-- >-->
|
||||||
<el-select
|
<!-- <el-select-->
|
||||||
v-model="searchData.LanguageType"
|
<!-- v-model="searchData.LanguageType"-->
|
||||||
clearable
|
<!-- clearable-->
|
||||||
style="width:120px;"
|
<!-- style="width:120px;"-->
|
||||||
>
|
<!-- >-->
|
||||||
<el-option
|
<!-- <el-option-->
|
||||||
v-for="item of $d.LanguageType"
|
<!-- v-for="item of $d.LanguageType"-->
|
||||||
:key="item.value"
|
<!-- :key="item.value"-->
|
||||||
:value="item.value"
|
<!-- :value="item.value"-->
|
||||||
:label="item.label"
|
<!-- :label="item.label"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<!-- 类型 -->
|
<!-- 类型 -->
|
||||||
<el-form-item :label="$t('trials:qcCfg:table:type')" style="margin-top: 10px">
|
<el-form-item :label="$t('trials:qcCfg:table:type')" style="margin-top: 10px">
|
||||||
<el-select v-model="searchData.Type" clearable style="width:120px;">
|
<el-select v-model="searchData.Type" clearable style="width:120px;">
|
||||||
|
@ -120,16 +120,16 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<!-- 审核问题 -->
|
<!-- 审核问题 -->
|
||||||
<el-table-column
|
<!-- <el-table-column-->
|
||||||
prop="LanguageType"
|
<!-- prop="LanguageType"-->
|
||||||
:label="$t('common:title:languageType')"
|
<!-- :label="$t('common:title:languageType')"-->
|
||||||
show-overflow-tooltip
|
<!-- show-overflow-tooltip-->
|
||||||
width="100"
|
<!-- width="100"-->
|
||||||
>
|
<!-- >-->
|
||||||
<template slot-scope="scope">
|
<!-- <template slot-scope="scope">-->
|
||||||
{{ $fd('LanguageType', scope.row.LanguageType) }}
|
<!-- {{ $fd('LanguageType', scope.row.LanguageType) }}-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
<!-- 类型 -->
|
<!-- 类型 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Type"
|
prop="Type"
|
||||||
|
|
|
@ -538,7 +538,7 @@
|
||||||
:data="$d.Bodypart"
|
:data="$d.Bodypart"
|
||||||
stripe
|
stripe
|
||||||
height="450"
|
height="450"
|
||||||
row-key="Id"
|
row-key="id"
|
||||||
@select="handleBodyPartSelectionChange"
|
@select="handleBodyPartSelectionChange"
|
||||||
>
|
>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -589,7 +589,7 @@
|
||||||
:data="$d.Modality"
|
:data="$d.Modality"
|
||||||
stripe
|
stripe
|
||||||
height="450"
|
height="450"
|
||||||
row-key="Id"
|
row-key="id"
|
||||||
class="criterion-table"
|
class="criterion-table"
|
||||||
@select="handleSelectionChange"
|
@select="handleSelectionChange"
|
||||||
>
|
>
|
||||||
|
|
|
@ -120,8 +120,8 @@ export default {
|
||||||
Description: '',
|
Description: '',
|
||||||
IsBaseLine: false,
|
IsBaseLine: false,
|
||||||
// BlindName: '',
|
// BlindName: '',
|
||||||
VisitWindowLeft: -3,
|
VisitWindowLeft: -5,
|
||||||
VisitWindowRight: 3,
|
VisitWindowRight: 5,
|
||||||
IsConfirmed: false,
|
IsConfirmed: false,
|
||||||
IsDeleted: false,
|
IsDeleted: false,
|
||||||
IsHaveFirstConfirmed: false
|
IsHaveFirstConfirmed: false
|
||||||
|
|
|
@ -103,7 +103,7 @@
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-show="scope.row.VisitWindowLeft!==0 || scope.row.VisitWindowRight!==0">
|
<span v-show="scope.row.VisitWindowLeft!==0 || scope.row.VisitWindowRight!==0">
|
||||||
{{ `${scope.row.VisitWindowLeft}${$t('trials:visitPlan:table:day')} ~ ${scope.row.VisitWindowRight}${$t('trials:visitPlan:table:day')}` }}
|
{{ `${scope.row.VisitWindowLeft} ${$t('trials:visitPlan:table:day')} ~ ${scope.row.VisitWindowRight} ${$t('trials:visitPlan:table:day')}` }}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -286,7 +286,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.row = { TrialId: this.trialId, Id: '', IsBaseLine: false, BlindName: '', VisitWindowLeft: -3, VisitWindowRight: 3, Description: '' }
|
this.row = { TrialId: this.trialId, Id: '', IsBaseLine: false, BlindName: '', VisitWindowLeft: -5, VisitWindowRight: 5, Description: '' }
|
||||||
this.timer = new Date().getTime()
|
this.timer = new Date().getTime()
|
||||||
if (this.list.length === 0) {
|
if (this.list.length === 0) {
|
||||||
this.row.VisitName = 'Baseline'
|
this.row.VisitName = 'Baseline'
|
||||||
|
@ -300,6 +300,10 @@ export default {
|
||||||
this.row.VisitName = this.list[this.list.length - 1].VisitName.split(' ')[0] + ' ' + (this.list[this.list.length - 1].VisitNum + 1)
|
this.row.VisitName = this.list[this.list.length - 1].VisitName.split(' ')[0] + ' ' + (this.list[this.list.length - 1].VisitNum + 1)
|
||||||
this.row.VisitNum = this.list[this.list.length - 1].VisitNum + 1
|
this.row.VisitNum = this.list[this.list.length - 1].VisitNum + 1
|
||||||
this.row.VisitDay = this.list[this.list.length - 1].VisitDay - this.list[this.list.length - 2].VisitDay + this.list[this.list.length - 1].VisitDay
|
this.row.VisitDay = this.list[this.list.length - 1].VisitDay - this.list[this.list.length - 2].VisitDay + this.list[this.list.length - 1].VisitDay
|
||||||
|
if (this.list[this.list.length - 1].VisitWindowLeft && this.list[this.list.length - 1].VisitWindowRight) {
|
||||||
|
this.row.VisitWindowLeft = this.list[this.list.length - 1].VisitWindowLeft
|
||||||
|
this.row.VisitWindowRight = this.list[this.list.length - 1].VisitWindowRight
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.visit_model.title = this.$t('common:button:add')
|
this.visit_model.title = this.$t('common:button:add')
|
||||||
this.visit_model.visible = true
|
this.visit_model.visible = true
|
||||||
|
|
|
@ -70,11 +70,11 @@
|
||||||
<div style="padding: 12px">
|
<div style="padding: 12px">
|
||||||
<div class="user-profile-wrapper" style="padding: 24px 0 24px 12px;">
|
<div class="user-profile-wrapper" style="padding: 24px 0 24px 12px;">
|
||||||
<div style="display: flex;align-items: center;margin-bottom: 20px;" class="user-info">
|
<div style="display: flex;align-items: center;margin-bottom: 20px;" class="user-info">
|
||||||
<div style="margin-right: 0.75rem;background: #428bca;width: 44px;height: 44px;border-radius: 50%;line-height: 44px;text-align: center;font-size: 12px;color:#fff;">
|
<div style="margin-right: 0.75rem;background: #428bca;width: 44px;height: 44px;border-radius: 50%;line-height: 44px;text-align: center;font-size: 12px;color:#fff;overflow: hidden">
|
||||||
{{ user.LastName }}
|
{{ user.LastName }}
|
||||||
</div>
|
</div>
|
||||||
<div class="user-description" style="">
|
<div class="user-description" style="">
|
||||||
<div style="font-size: .875rem;color: #333;line-height: 22px;display: flex;margin-bottom: 0.25rem;"><span style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;max-width: 75px">{{user.RealName}}</span></div>
|
<div style="font-size: .875rem;color: #333;line-height: 22px;display: flex;margin-bottom: 0.25rem;"><span style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;max-width: 150px">{{user.RealName}}</span></div>
|
||||||
<div style="font-size: .75rem;line-height: 18px;color:#999">{{new Date().getFullYear()}}{{$t('common:date:today')}}{{new Date().getMonth() + 1}}{{$t('common:date:month')}}{{new Date().getDate()}}{{$t('common:date:day')}},{{ dayOfWeek }}</div>
|
<div style="font-size: .75rem;line-height: 18px;color:#999">{{new Date().getFullYear()}}{{$t('common:date:today')}}{{new Date().getMonth() + 1}}{{$t('common:date:month')}}{{new Date().getDate()}}{{$t('common:date:day')}},{{ dayOfWeek }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<div class="thy-divider" style="border-top: 1px solid #eee;margin: 0;"></div>
|
<div class="thy-divider" style="border-top: 1px solid #eee;margin: 0;"></div>
|
||||||
<div class="my_select_title">{{ $t('trials:workbench:title:padding') }}</div>
|
<div class="my_select_title" style="font-size: 18px">{{ $t('trials:workbench:title:padding') }}</div>
|
||||||
<div class="my_select">
|
<div class="my_select">
|
||||||
<!-- PM/APM -->
|
<!-- PM/APM -->
|
||||||
<!-- 阅片期 -->
|
<!-- 阅片期 -->
|
||||||
|
@ -123,10 +123,10 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 中心调研 -->
|
<!-- 中心调研 -->
|
||||||
<div class="my_select_box" :class="{selected: selected === 'SiteResearch'}" tab-data="SiteResearch" @click="selected = 'SiteResearch'" v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])">
|
<div class="my_select_box" :class="{selected: selected === 'SiteResearch'}" tab-data="SiteResearch" @click="selected = 'SiteResearch'" v-if="hasPermi(['trials:trials-workbench:attachments:site-research'])">
|
||||||
<div class="my_select_box_content">
|
<div class="my_select_box_content">
|
||||||
<span class="el-icon-edit-outline" style="padding: 4px;margin: 4px;color: #6698ff"></span>
|
<span class="el-icon-edit-outline" style="padding: 4px;margin: 4px;color: #6698ff"></span>
|
||||||
<span class="my_select_box_content_text">{{ $t('trials:workbench:title:pendingSiteResearch') }}</span><span style="margin:0 0.25rem">·</span><span>{{ tabList.PM_SiteSurveryCount }}</span>
|
<span class="my_select_box_content_text">{{ $t('trials:workbench:title:pendingSiteResearch') }}</span><span style="margin:0 0.25rem">·</span><span>{{hasPermi(['role:pm'])? tabList.PM_SiteSurveryCount : tabList.SPM_SiteSurveryCount }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- SPM/CPM -->
|
<!-- SPM/CPM -->
|
||||||
|
@ -227,7 +227,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="thy-divider" style="border-top: 1px solid #eee;margin: 0;"></div>
|
<div class="thy-divider" style="border-top: 1px solid #eee;margin: 0;"></div>
|
||||||
<div class="my_select_title">{{ $t('trials:workbench:title:my') }}</div>
|
<div class="my_select_title" style="font-size: 18px">{{ $t('trials:workbench:title:my') }}</div>
|
||||||
<div class="my_select">
|
<div class="my_select">
|
||||||
<!-- 项目已签署文件 -->
|
<!-- 项目已签署文件 -->
|
||||||
<div class="my_select_box" :class="{selected: selected === 'NeedSignedTrialDoc'}" tab-data="NeedSignedTrialDoc" @click="selected = 'NeedSignedTrialDoc'" v-if="!hasPermi(['role:zys'])">
|
<div class="my_select_box" :class="{selected: selected === 'NeedSignedTrialDoc'}" tab-data="NeedSignedTrialDoc" @click="selected = 'NeedSignedTrialDoc'" v-if="!hasPermi(['role:zys'])">
|
||||||
|
|
Loading…
Reference in New Issue