项目切换时,需要根据项目状态过滤项目
continuous-integration/drone/push Build is passing Details

uat
wangxiaoshuang 2025-04-09 13:37:39 +08:00
parent 236a565250
commit 1d6ebe6388
1 changed files with 181 additions and 559 deletions

View File

@ -9,64 +9,28 @@
</el-form-item> </el-form-item>
<!-- 研究方案号 --> <!-- 研究方案号 -->
<el-form-item :label="$t('trials:trials-list:table:researchNumber')"> <el-form-item :label="$t('trials:trials-list:table:researchNumber')">
<el-input <el-input v-model="searchData.ResearchProgramNo" style="width: 100px" clearable />
v-model="searchData.ResearchProgramNo"
style="width: 100px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 试验名称 --> <!-- 试验名称 -->
<el-form-item :label="$t('trials:trials-list:table:experimentName')"> <el-form-item :label="$t('trials:trials-list:table:experimentName')">
<el-input <el-input v-model="searchData.ExperimentName" style="width: 100px" clearable />
v-model="searchData.ExperimentName"
style="width: 100px"
clearable
/>
</el-form-item> </el-form-item>
<!-- Sponsor --> <!-- Sponsor -->
<el-form-item :label="$t('trials:trials-list:table:sponsor')"> <el-form-item :label="$t('trials:trials-list:table:sponsor')">
<el-select <el-select v-model="searchData.SponsorId" style="width: 150px" clearable>
v-model="searchData.SponsorId" <el-option v-for="item in sponsorList" :key="item.Id" :label="item.SponsorName" :value="item.Id" />
style="width: 150px"
clearable
>
<el-option
v-for="item in sponsorList"
:key="item.Id"
:label="item.SponsorName"
:value="item.Id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 阅片标准 --> <!-- 阅片标准 -->
<el-form-item <el-form-item v-if="hasPermi(['role:ir'])" :label="$t('trials:trials-list:table:IR_ReadingCriterionList')">
v-if="hasPermi(['role:ir'])" <el-select v-model="searchData.CriterionType" style="width: 150px" clearable>
:label="$t('trials:trials-list:table:IR_ReadingCriterionList')" <el-option v-for="item in $d.CriterionType" :key="item.id" :label="item.label" :value="item.value" />
>
<el-select
v-model="searchData.CriterionType"
style="width: 150px"
clearable
>
<el-option
v-for="item in $d.CriterionType"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 联系人 --> <!-- 联系人 -->
<el-form-item <el-form-item v-if="hasPermi(['role:ir'])" :label="$t('trials:trials-list:table:IR_PMEmailList')">
v-if="hasPermi(['role:ir'])" <el-input v-model="searchData.PM_EMail" style="width: 100px" clearable />
:label="$t('trials:trials-list:table:IR_PMEmailList')"
>
<el-input
v-model="searchData.PM_EMail"
style="width: 100px"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<!-- <el-button type="text" @click="isShow = !isShow">More</el-button> --> <!-- <el-button type="text" @click="isShow = !isShow">More</el-button> -->
@ -75,33 +39,19 @@
{{ $t('common:button:search') }} {{ $t('common:button:search') }}
</el-button> </el-button>
<!-- Reset --> <!-- Reset -->
<el-button <el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
type="primary"
icon="el-icon-refresh-left"
@click="handleReset"
>
{{ $t('common:button:reset') }} {{ $t('common:button:reset') }}
</el-button> </el-button>
<!-- Export --> <!-- Export -->
<el-button <el-button v-hasPermi="['trials:trials-list:export']" type="primary" icon="el-icon-download"
v-hasPermi="['trials:trials-list:export']" :loading="exportLoading" @click="handleExportTrial">
type="primary"
icon="el-icon-download"
:loading="exportLoading"
@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">
<!-- New --> <!-- New -->
<el-button <el-button v-hasPermi="['trials:trials-list:new']" icon="el-icon-plus" type="primary" @click="handleNew">
v-hasPermi="['trials:trials-list:new']"
icon="el-icon-plus"
type="primary"
@click="handleNew"
>
{{ $t('common:button:new') }} {{ $t('common:button:new') }}
</el-button> </el-button>
</span> </span>
@ -112,190 +62,88 @@
<div style="padding: 10px"> <div style="padding: 10px">
<el-form label-width="140px"> <el-form label-width="140px">
<el-form-item label="Trial ID"> <el-form-item label="Trial ID">
<el-input <el-input v-model="searchData.Code" placeholder="Trial ID" style="width: 100%" clearable />
v-model="searchData.Code"
placeholder="Trial ID"
style="width: 100%"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item label="Indication"> <el-form-item label="Indication">
<el-input <el-input v-model="searchData.Indication" placeholder="Indication" style="width: 100%" clearable />
v-model="searchData.Indication"
placeholder="Indication"
style="width: 100%"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item label="Assessment Criteria"> <el-form-item label="Assessment Criteria">
<el-select <el-select v-model="searchData.CriterionIds" placeholder="Assessment Criteria" style="width: 100%" clearable
v-model="searchData.CriterionIds" multiple>
placeholder="Assessment Criteria"
style="width: 100%"
clearable
multiple
>
<!-- <el-option <!-- <el-option
v-for="(key,value) of dictionaryList.ReadingStandard" v-for="(key,value) of dictionaryList.ReadingStandard"
:key="key" :key="key"
:label="key" :label="key"
:value="value" :value="value"
/> --> /> -->
<el-option <el-option v-for="item of dict.type.ReadingStandard" :key="item.value" :label="item.label"
v-for="item of dict.type.ReadingStandard" :value="item.value" />
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="Sponsor"> <el-form-item label="Sponsor">
<el-select <el-select v-model="searchData.SponsorId" placeholder="Sponsor" style="width: 100%" clearable>
v-model="searchData.SponsorId" <el-option v-for="item in sponsorList" :key="item.Id" :label="item.SponsorName" :value="item.Id" />
placeholder="Sponsor"
style="width: 100%"
clearable
>
<el-option
v-for="item in sponsorList"
:key="item.Id"
:label="item.SponsorName"
:value="item.Id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="CRO"> <el-form-item label="CRO">
<el-select <el-select v-model="searchData.CROId" placeholder="CRO" style="width: 100%" clearable>
v-model="searchData.CROId" <el-option v-for="item of croList" :key="item.Id" :label="item.CROName" :value="item.Id" />
placeholder="CRO"
style="width: 100%"
clearable
>
<el-option
v-for="item of croList"
:key="item.Id"
:label="item.CROName"
:value="item.Id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="Phase"> <el-form-item label="Phase">
<el-select <el-select v-model="searchData.Phase" placeholder="Phase" style="width: 100%" clearable>
v-model="searchData.Phase" <el-option v-for="item in phaseOptions" :key="item.value" :label="item.value" :value="item.value" />
placeholder="Phase"
style="width: 100%"
clearable
>
<el-option
v-for="item in phaseOptions"
:key="item.value"
:label="item.value"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="ReviewType"> <el-form-item label="ReviewType">
<el-select <el-select v-model="searchData.ReviewTypeIds" placeholder="ReviewType" style="width: 100%" clearable
v-model="searchData.ReviewTypeIds" multiple>
placeholder="ReviewType"
style="width: 100%"
clearable
multiple
>
<!-- <el-option <!-- <el-option
v-for="(key,value) of dictionaryList.ReviewType" v-for="(key,value) of dictionaryList.ReviewType"
:key="key" :key="key"
:label="key" :label="key"
:value="value" :value="value"
/> --> /> -->
<el-option <el-option v-for="item of dict.type.ReviewType" :key="item.value" :label="item.label"
v-for="item of dict.type.ReviewType" :value="item.value" />
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="Modality"> <el-form-item label="Modality">
<el-select <el-select v-model="searchData.ModalityIds" multiple placeholder="Modality" style="width: 100%" clearable>
v-model="searchData.ModalityIds"
multiple
placeholder="Modality"
style="width: 100%"
clearable
>
<!-- <el-option <!-- <el-option
v-for="(key,value) of dictionaryList.ReadingType" v-for="(key,value) of dictionaryList.ReadingType"
:key="key" :key="key"
:label="key" :label="key"
:value="value" :value="value"
/> --> /> -->
<el-option <el-option v-for="item of dict.type.ReadingType" :key="item.value" :label="item.label"
v-for="item of dict.type.ReadingType" :value="item.value" />
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="Expedited: "> <el-form-item label="Expedited: ">
<el-select <el-select v-model="searchData.Expedited" value-key="value" clearable style="width: 100%">
v-model="searchData.Expedited" <el-option v-for="item in expeditedOption" :key="item.value" :label="item.label" :value="item.value" />
value-key="value"
clearable
style="width: 100%"
>
<el-option
v-for="item in expeditedOption"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="BeginDate: "> <el-form-item label="BeginDate: ">
<el-date-picker <el-date-picker v-model="searchData.BeginDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date"
v-model="searchData.BeginDate" :picker-options="beginPickerOption" :clearable="false" style="width: 100%" />
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
type="date"
:picker-options="beginPickerOption"
:clearable="false"
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item label="EndDate: "> <el-form-item label="EndDate: ">
<el-date-picker <el-date-picker v-model="searchData.EndDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date"
v-model="searchData.EndDate" :picker-options="endpickerOption" :clearable="false" style="width: 100%" />
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
type="date"
:picker-options="endpickerOption"
:clearable="false"
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item label="Attended Reviewer Type:"> <el-form-item label="Attended Reviewer Type:">
<el-select <el-select v-model="searchData.AttendedReviewerType" placeholder="Attended Reviewer Type"
v-model="searchData.AttendedReviewerType" style="width: 100%" clearable>
placeholder="Attended Reviewer Type" <el-option v-for="item of $d.AttendedReviewerType" :key="item.value" :label="item.label"
style="width: 100%" :value="item.value" />
clearable
>
<el-option
v-for="item of $d.AttendedReviewerType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleSelectSearch" <el-button type="primary" @click="handleSelectSearch">Search</el-button>
>Search</el-button
>
<el-button type="primary" @click="handleReset">Reset</el-button> <el-button type="primary" @click="handleReset">Reset</el-button>
<el-button type="primary" @click="isShow = false">Back</el-button> <el-button type="primary" @click="isShow = false">Back</el-button>
</el-form-item> </el-form-item>
@ -305,219 +153,89 @@
<!-- 项目列表 --> <!-- 项目列表 -->
<template slot="main-container"> <template slot="main-container">
<el-table <el-table v-adaptive="{ bottomOffset: 60 }" v-loading="listLoading" :data="list" stripe height="100"
v-adaptive="{ bottomOffset: 60 }" @selection-change="handleSelectChange" @sort-change="handleSortChange" @row-click="rowClick">
v-loading="listLoading"
:data="list"
stripe
height="100"
@selection-change="handleSelectChange"
@sort-change="handleSortChange"
@row-click="rowClick"
>
<el-table-column type="selection" align="left" width="45" /> <el-table-column type="selection" align="left" width="45" />
<el-table-column type="index" width="40" align="left" /> <el-table-column type="index" width="40" align="left" />
<el-table-column <el-table-column prop="TrialCode" :label="$t('trials:trials-list:table:trialId')" show-overflow-tooltip
prop="TrialCode" sortable="custom" width="120" />
:label="$t('trials:trials-list:table:trialId')" <el-table-column prop="ResearchProgramNo" :label="$t('trials:trials-list:table:researchNumber')"
show-overflow-tooltip show-overflow-tooltip sortable="custom" min-width="160" />
sortable="custom"
width="120"
/>
<el-table-column
prop="ResearchProgramNo"
:label="$t('trials:trials-list:table:researchNumber')"
show-overflow-tooltip
sortable="custom"
min-width="160"
/>
<el-table-column <el-table-column prop="ExperimentName" :label="$t('trials:trials-list:table:experimentName')"
prop="ExperimentName" show-overflow-tooltip sortable="custom" min-width="240" />
:label="$t('trials:trials-list:table:experimentName')" <el-table-column prop="Sponsor" :label="$t('trials:trials-list:table:sponsor')" show-overflow-tooltip
show-overflow-tooltip sortable="custom" min-width="120" />
sortable="custom" <el-table-column prop="TrialStatusStr" :label="$t('trials:trials-list:table:status')" show-overflow-tooltip
min-width="240" sortable="custom" min-width="120">
/>
<el-table-column
prop="Sponsor"
:label="$t('trials:trials-list:table:sponsor')"
show-overflow-tooltip
sortable="custom"
min-width="120"
/>
<el-table-column
prop="TrialStatusStr"
:label="$t('trials:trials-list:table:status')"
show-overflow-tooltip
sortable="custom"
min-width="120"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag <el-tag v-if="scope.row.TrialStatusStr === 'Initializing'" type="info">{{ $fd('TrialStatusEnum',
v-if="scope.row.TrialStatusStr === 'Initializing'" scope.row.TrialStatusStr) }}</el-tag>
type="info" <el-tag v-if="scope.row.TrialStatusStr === 'Ongoing'" type="primary">{{ $fd('TrialStatusEnum',
>{{ $fd('TrialStatusEnum', scope.row.TrialStatusStr) }}</el-tag scope.row.TrialStatusStr) }}</el-tag>
> <el-tag v-if="scope.row.TrialStatusStr === 'Completed'" type="warning">{{ $fd('TrialStatusEnum',
<el-tag scope.row.TrialStatusStr) }}</el-tag>
v-if="scope.row.TrialStatusStr === 'Ongoing'" <el-tag v-if="scope.row.TrialStatusStr === 'Stopped'" type="danger">{{ $fd('TrialStatusEnum',
type="primary" scope.row.TrialStatusStr) }}</el-tag>
>{{ $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> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column v-if="hasPermi(['role:pm', 'role:apm'])" prop="ExpetiedTaskCount"
v-if="hasPermi(['role:pm', 'role:apm'])" :label="$t('trials:trials-list:table:ExpetiedTaskCount')" show-overflow-tooltip sortable="custom"
prop="ExpetiedTaskCount" min-width="120" />
:label="$t('trials:trials-list:table:ExpetiedTaskCount')" <el-table-column v-if="hasPermi(['role:pm', 'role:apm'])" prop="ReReadingApprovalCount"
show-overflow-tooltip :label="$t('trials:trials-list:table:ReReadingApprovalCount')" show-overflow-tooltip sortable="custom"
sortable="custom" min-width="180" />
min-width="120" <el-table-column v-if="hasPermi(['role:pm', 'role:apm'])" prop="PendingReconciliationCount"
/> :label="$t('trials:trials-list:table:PendingReconciliationCount')" show-overflow-tooltip sortable="custom"
<el-table-column min-width="140" />
v-if="hasPermi(['role:pm', 'role:apm'])" <el-table-column v-if="hasPermi(['role:pm', 'role:apm'])" prop="PendingResponseCount"
prop="ReReadingApprovalCount" :label="$t('trials:trials-list:table:PendingResponseCount')" show-overflow-tooltip sortable="custom"
:label="$t('trials:trials-list:table:ReReadingApprovalCount')" min-width="140" />
show-overflow-tooltip <el-table-column v-if="hasPermi(['role:crc', 'role:cra'])" prop="CRC_UrgentCount"
sortable="custom" :label="$t('trials:trials-list:table:CRC_UrgentCount')" show-overflow-tooltip sortable="custom"
min-width="180" min-width="160" />
/> <el-table-column v-if="hasPermi(['role:crc', 'role:cra'])" prop="CRC_QCQuestionCount"
<el-table-column :label="$t('trials:trials-list:table:CRC_QCQuestionCount')" show-overflow-tooltip sortable="custom"
v-if="hasPermi(['role:pm', 'role:apm'])" min-width="160" />
prop="PendingReconciliationCount" <el-table-column v-if="hasPermi(['role:crc', 'role:cra'])" prop="CRC_CheckQuestionCount"
:label="$t('trials:trials-list:table:PendingReconciliationCount')" :label="$t('trials:trials-list:table:CRC_CheckQuestionCount')" show-overflow-tooltip sortable="custom"
show-overflow-tooltip min-width="160" />
sortable="custom" <el-table-column v-if="hasPermi(['role:ir'])" prop="IR_ReadingCriterionList"
min-width="140" :label="$t('trials:trials-list:table:IR_ReadingCriterionList')" show-overflow-tooltip min-width="160">
/>
<el-table-column
v-if="hasPermi(['role:pm', 'role:apm'])"
prop="PendingResponseCount"
:label="$t('trials:trials-list:table:PendingResponseCount')"
show-overflow-tooltip
sortable="custom"
min-width="140"
/>
<el-table-column
v-if="hasPermi(['role:crc', 'role:cra'])"
prop="CRC_UrgentCount"
:label="$t('trials:trials-list:table:CRC_UrgentCount')"
show-overflow-tooltip
sortable="custom"
min-width="160"
/>
<el-table-column
v-if="hasPermi(['role:crc', 'role:cra'])"
prop="CRC_QCQuestionCount"
:label="$t('trials:trials-list:table:CRC_QCQuestionCount')"
show-overflow-tooltip
sortable="custom"
min-width="160"
/>
<el-table-column
v-if="hasPermi(['role:crc', 'role:cra'])"
prop="CRC_CheckQuestionCount"
:label="$t('trials:trials-list:table:CRC_CheckQuestionCount')"
show-overflow-tooltip
sortable="custom"
min-width="160"
/>
<el-table-column
v-if="hasPermi(['role:ir'])"
prop="IR_ReadingCriterionList"
:label="$t('trials:trials-list:table:IR_ReadingCriterionList')"
show-overflow-tooltip
min-width="160"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.IR_ReadingCriterionList.join(', ') }} {{ scope.row.IR_ReadingCriterionList.join(', ') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column v-if="hasPermi(['role:ir'])" prop="IR_UrgentCount"
v-if="hasPermi(['role:ir'])" :label="$t('trials:trials-list:table:IR_UrgentCount')" show-overflow-tooltip sortable="custom"
prop="IR_UrgentCount" min-width="160" />
:label="$t('trials:trials-list:table:IR_UrgentCount')" <el-table-column v-if="hasPermi(['role:ir'])" prop="IR_UnReadCount"
show-overflow-tooltip :label="$t('trials:trials-list:table:IR_UnReadCount')" show-overflow-tooltip sortable="custom"
sortable="custom" min-width="160" />
min-width="160" <el-table-column v-if="hasPermi(['role:ir'])" prop="IR_TotalReadCount"
/> :label="$t('trials:trials-list:table:IR_TotalReadCount')" show-overflow-tooltip sortable="custom"
<el-table-column min-width="170" />
v-if="hasPermi(['role:ir'])" <el-table-column v-if="hasPermi(['role:ir'])" prop="IR_PMEmailList"
prop="IR_UnReadCount" :label="$t('trials:trials-list:table:IR_PMEmailList')" show-overflow-tooltip min-width="170">
:label="$t('trials:trials-list:table:IR_UnReadCount')"
show-overflow-tooltip
sortable="custom"
min-width="160"
/>
<el-table-column
v-if="hasPermi(['role:ir'])"
prop="IR_TotalReadCount"
:label="$t('trials:trials-list:table:IR_TotalReadCount')"
show-overflow-tooltip
sortable="custom"
min-width="170"
/>
<el-table-column
v-if="hasPermi(['role:ir'])"
prop="IR_PMEmailList"
:label="$t('trials:trials-list:table:IR_PMEmailList')"
show-overflow-tooltip
min-width="170"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.IR_PMEmailList.join(', ') }} {{ scope.row.IR_PMEmailList.join(', ') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column v-if="hasPermi(['role:iqc'])" prop="IQC_UrgentCount"
v-if="hasPermi(['role:iqc'])" :label="$t('trials:trials-list:table:IQC_UrgentCount')" show-overflow-tooltip sortable="custom"
prop="IQC_UrgentCount" min-width="140" />
:label="$t('trials:trials-list:table:IQC_UrgentCount')" <el-table-column v-if="hasPermi(['role:iqc'])" prop="IQC_ToBeClaimedCount"
show-overflow-tooltip :label="$t('trials:trials-list:table:IQC_ToBeClaimedCount')" show-overflow-tooltip sortable="custom"
sortable="custom" min-width="140" />
min-width="140" <el-table-column v-if="hasPermi(['role:iqc'])" prop="IQC_AuditToBeDealedCount"
/> :label="$t('trials:trials-list:table:IQC_AuditToBeDealedCount')" show-overflow-tooltip sortable="custom"
<el-table-column min-width="140" />
v-if="hasPermi(['role:iqc'])" <el-table-column v-if="hasPermi(['role:iqc'])" prop="IQC_QuestionToBeDealedCount"
prop="IQC_ToBeClaimedCount" :label="$t('trials:trials-list:table:IQC_QuestionToBeDealedCount')" show-overflow-tooltip sortable="custom"
:label="$t('trials:trials-list:table:IQC_ToBeClaimedCount')" min-width="160" />
show-overflow-tooltip <el-table-column v-if="hasPermi(['role:mim'])" prop="MIM_UrgentCount"
sortable="custom" :label="$t('trials:trials-list:table:MIM_UrgentCount')" show-overflow-tooltip sortable="custom"
min-width="140" min-width="160" />
/>
<el-table-column
v-if="hasPermi(['role:iqc'])"
prop="IQC_AuditToBeDealedCount"
:label="$t('trials:trials-list:table:IQC_AuditToBeDealedCount')"
show-overflow-tooltip
sortable="custom"
min-width="140"
/>
<el-table-column
v-if="hasPermi(['role:iqc'])"
prop="IQC_QuestionToBeDealedCount"
:label="$t('trials:trials-list:table:IQC_QuestionToBeDealedCount')"
show-overflow-tooltip
sortable="custom"
min-width="160"
/>
<el-table-column
v-if="hasPermi(['role:mim'])"
prop="MIM_UrgentCount"
:label="$t('trials:trials-list:table:MIM_UrgentCount')"
show-overflow-tooltip
sortable="custom"
min-width="160"
/>
<!-- <el-table-column <!-- <el-table-column
v-if="hasPermi(['role:mim'])" v-if="hasPermi(['role:mim'])"
prop="MIM_UrgentCount" prop="MIM_UrgentCount"
@ -526,61 +244,23 @@
sortable="custom" sortable="custom"
min-width="160" min-width="160"
/> --> /> -->
<el-table-column <el-table-column v-if="hasPermi(['role:mim'])" prop="MIM_PendingReviewCount"
v-if="hasPermi(['role:mim'])" :label="$t('trials:trials-list:table:MIM_PendingReviewCount')" show-overflow-tooltip sortable="custom"
prop="MIM_PendingReviewCount" min-width="160" />
:label="$t('trials:trials-list:table:MIM_PendingReviewCount')" <el-table-column v-if="hasPermi(['role:mim'])" prop="MIM_PendingResponseCount"
show-overflow-tooltip :label="$t('trials:trials-list:table:MIM_PendingResponseCount')" show-overflow-tooltip sortable="custom"
sortable="custom" min-width="160" />
min-width="160" <el-table-column v-if="hasPermi(['role:spm', 'role:cpm'])" prop="SPM_ReReadingApprovalCount"
/> :label="$t('trials:trials-list:table:SPM_ReReadingApprovalCount')" show-overflow-tooltip sortable="custom"
<el-table-column min-width="160" />
v-if="hasPermi(['role:mim'])" <el-table-column v-if="hasPermi(['role:spm', 'role:cpm'])" prop="SPM_ReviewerSelectApprovalCount" :label="$t('trials:trials-list:table:SPM_ReviewerSelectApprovalCount')
prop="MIM_PendingResponseCount" " show-overflow-tooltip sortable="custom" min-width="160" />
:label="$t('trials:trials-list:table:MIM_PendingResponseCount')" <el-table-column prop="CreateTime" :label="$t('trials:trials-list:table:createDate')" show-overflow-tooltip
show-overflow-tooltip sortable="custom" width="180" />
sortable="custom" <el-table-column :label="$t('common:action:action')" width="260" align="left" fixed="right">
min-width="160"
/>
<el-table-column
v-if="hasPermi(['role:spm', 'role:cpm'])"
prop="SPM_ReReadingApprovalCount"
:label="$t('trials:trials-list:table:SPM_ReReadingApprovalCount')"
show-overflow-tooltip
sortable="custom"
min-width="160"
/>
<el-table-column
v-if="hasPermi(['role:spm', 'role:cpm'])"
prop="SPM_ReviewerSelectApprovalCount"
:label="
$t('trials:trials-list:table:SPM_ReviewerSelectApprovalCount')
"
show-overflow-tooltip
sortable="custom"
min-width="160"
/>
<el-table-column
prop="CreateTime"
:label="$t('trials:trials-list:table:createDate')"
show-overflow-tooltip
sortable="custom"
width="180"
/>
<el-table-column
:label="$t('common:action:action')"
width="260"
align="left"
fixed="right"
>
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 详情 --> <!-- 详情 -->
<el-button <el-button v-hasPermi="['trials:trials-list:panel']" circle icon="el-icon-info" :disabled="(scope.row.TrialStatusStr === 'Initializing' &&
v-hasPermi="['trials:trials-list:panel']"
circle
icon="el-icon-info"
:disabled="
(scope.row.TrialStatusStr === 'Initializing' &&
!hasPermi(['role:pm'])) || !hasPermi(['role:pm'])) ||
scope.row.IsDeleted || scope.row.IsDeleted ||
((scope.row.TrialStatusStr === 'Completed' || ((scope.row.TrialStatusStr === 'Completed' ||
@ -588,40 +268,25 @@
!( !(
hasPermi(['role:qa']) || hasPermi(['role:qa']) ||
hasPermi(['role:ea']) || hasPermi(['role:ea']) ||
hasPermi(['role:pm']) hasPermi(['role:pm']) ||
hasPermi(['role:op']) ||
hasPermi(['role:dev']) ||
hasPermi(['role:admin'])
)) ))
" " :title="$t('trials:trials-list:action:panel')" @click.stop="handleDetail(scope.row)" />
:title="$t('trials:trials-list:action:panel')"
@click.stop="handleDetail(scope.row)"
/>
<!-- 编辑项目基本信息 --> <!-- 编辑项目基本信息 -->
<el-button <el-button v-hasPermi="['trials:trials-list:edit']" circle icon="el-icon-edit-outline"
v-hasPermi="['trials:trials-list:edit']" :disabled="scope.row.IsDeleted" :title="$t('trials:trials-list:action:edit')"
circle @click.stop="handleEdit(scope.row)" />
icon="el-icon-edit-outline"
:disabled="scope.row.IsDeleted"
:title="$t('trials:trials-list:action:edit')"
@click.stop="handleEdit(scope.row)"
/>
<!-- 修改项目状态 --> <!-- 修改项目状态 -->
<el-button <el-button v-hasPermi="['trials:trials-list:status']" circle icon="el-icon-edit"
v-hasPermi="['trials:trials-list:status']" :disabled="scope.row.IsDeleted" :title="$t('trials:trials-list:action:status')"
circle @click.stop="handleStatus(scope.row)" />
icon="el-icon-edit"
:disabled="scope.row.IsDeleted"
:title="$t('trials:trials-list:action:status')"
@click.stop="handleStatus(scope.row)"
/>
<!--项目文档--> <!--项目文档-->
<el-button <el-button v-hasPermi="[
v-hasPermi="[
'trials:trials-panel:trial-summary:trial-document:inspect', 'trials:trials-panel:trial-summary:trial-document:inspect',
'trials:trials-panel:trial-summary:trial-document:manage', 'trials:trials-panel:trial-summary:trial-document:manage',
]" ]" circle icon="el-icon-folder-opened" :disabled="(scope.row.TrialStatusStr === 'Initializing' &&
circle
icon="el-icon-folder-opened"
:disabled="
(scope.row.TrialStatusStr === 'Initializing' &&
!hasPermi(['role:pm'])) || !hasPermi(['role:pm'])) ||
scope.row.IsDeleted || scope.row.IsDeleted ||
((scope.row.TrialStatusStr === 'Completed' || ((scope.row.TrialStatusStr === 'Completed' ||
@ -631,22 +296,11 @@
hasPermi(['role:ea']) || hasPermi(['role:ea']) ||
hasPermi(['role:pm']) hasPermi(['role:pm'])
)) ))
" " :title="$t('trials:trials-list:action:trialDocument')" @click.stop="toTrialDocument(scope.row)" />
:title="$t('trials:trials-list:action:trialDocument')"
@click.stop="toTrialDocument(scope.row)"
/>
<!-- 废除项目 --> <!-- 废除项目 -->
<el-button <el-button v-hasPermi="['trials:trials-list:abolish']" circle icon="el-icon-delete" :disabled="scope.row.IsDeleted ||
v-hasPermi="['trials:trials-list:abolish']"
circle
icon="el-icon-delete"
:disabled="
scope.row.IsDeleted ||
scope.row.TrialStatusStr !== 'Initializing' scope.row.TrialStatusStr !== 'Initializing'
" " :title="$t('trials:trials-list:action:abolition')" @click.stop="handleAbandon(scope.row)" />
:title="$t('trials:trials-list:action:abolition')"
@click.stop="handleAbandon(scope.row)"
/>
<!-- 代办详情--> <!-- 代办详情-->
<!-- <el-button--> <!-- <el-button-->
<!-- v-hasPermi="['trials:trials-list:abolish']"--> <!-- v-hasPermi="['trials:trials-list:abolish']"-->
@ -661,61 +315,26 @@
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination <pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
class="page" @pagination="getList" />
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
</template> </template>
<!-- 新增/编辑项目 --> <!-- 新增/编辑项目 -->
<el-dialog <el-dialog v-if="dialogVisible" :visible.sync="dialogVisible" :title="title" :fullscreen="true" append-to-body
v-if="dialogVisible" custom-class="base-dialog-wrapper">
:visible.sync="dialogVisible" <TrialForm :trial-id="currentId" @getList="getList" @closeDialog="closeDialog" />
:title="title"
:fullscreen="true"
append-to-body
custom-class="base-dialog-wrapper"
>
<TrialForm
:trial-id="currentId"
@getList="getList"
@closeDialog="closeDialog"
/>
</el-dialog> </el-dialog>
<!-- 修改项目状态 --> <!-- 修改项目状态 -->
<el-dialog <el-dialog v-if="statusVisible" :visible.sync="statusVisible" :close-on-click-modal="false"
v-if="statusVisible" :title="$t('trials:trials-list:dialogTitle:changeStatus')" width="700px" custom-class="base-dialog-wrapper"
:visible.sync="statusVisible" append-to-body>
:close-on-click-modal="false" <TrialStatusForm :data="currentRow" @closeDialog="closeStatusDialog" @getList="getList" />
:title="$t('trials:trials-list:dialogTitle:changeStatus')"
width="700px"
custom-class="base-dialog-wrapper"
append-to-body
>
<TrialStatusForm
:data="currentRow"
@closeDialog="closeStatusDialog"
@getList="getList"
/>
</el-dialog> </el-dialog>
<el-dialog <el-dialog v-if="doneDialogVisible" :visible.sync="doneDialogVisible" :title="doneTitle" :fullscreen="true"
v-if="doneDialogVisible" append-to-body custom-class="base-dialog-wrapper">
:visible.sync="doneDialogVisible" <DoneList :trial-id="currentId" @getList="getList" @closeDialog="doneDialogVisible = false" />
:title="doneTitle"
:fullscreen="true"
append-to-body
custom-class="base-dialog-wrapper"
>
<DoneList
:trial-id="currentId"
@getList="getList"
@closeDialog="doneDialogVisible = false"
/>
</el-dialog> </el-dialog>
</BaseContainer> </BaseContainer>
</template> </template>
@ -897,7 +516,7 @@ export default {
this.$confirm(res.ErrorMessage, { this.$confirm(res.ErrorMessage, {
type: 'warning', type: 'warning',
showCancelButton: false, showCancelButton: false,
callback: (action) => {}, callback: (action) => { },
}) })
} }
}) })
@ -922,7 +541,7 @@ export default {
this.currentRow = { ...row } this.currentRow = { ...row }
this.abandonTrial() this.abandonTrial()
}) })
.catch(() => {}) .catch(() => { })
}, },
// //
abandonTrial() { abandonTrial() {
@ -954,7 +573,10 @@ export default {
!( !(
this.hasPermi(['role:qa']) || this.hasPermi(['role:qa']) ||
this.hasPermi(['role:ea']) || this.hasPermi(['role:ea']) ||
this.hasPermi(['role:pm']) this.hasPermi(['role:pm']) ||
hasPermi(['role:op']) ||
hasPermi(['role:dev']) ||
hasPermi(['role:admin'])
) )
) { ) {
return return