Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is running
Details
continuous-integration/drone/push Build is running
Details
commit
7d2f95cba5
|
@ -3667,3 +3667,11 @@ export function getDicomSeriesInfo(param) {
|
||||||
data: param
|
data: param
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getTrialSiteSelectList(params) {
|
||||||
|
return request({
|
||||||
|
url: `/trialMaintenance/getTrialSiteSelectList`,
|
||||||
|
method: 'get',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 中心名称 -->
|
<!-- 中心名称 -->
|
||||||
<el-form-item :label="$t('trials:sitesList:table:siteName')">
|
<el-form-item :label="$t('trials:sitesList:table:siteName')">
|
||||||
<el-input v-model="listQuery.Site" class="mr" clearable />
|
<el-input v-model="listQuery.TrialSiteName" class="mr" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 中心别名 -->
|
<!-- 中心别名 -->
|
||||||
<!-- <el-form-item :label="$t('trials:sitesList:table:siteAliasName')">
|
<!-- <el-form-item :label="$t('trials:sitesList:table:siteAliasName')">
|
||||||
|
@ -27,35 +27,48 @@
|
||||||
<!-- 状态 -->
|
<!-- 状态 -->
|
||||||
<el-form-item :label="$t('trials:sitesList:table:status')">
|
<el-form-item :label="$t('trials:sitesList:table:status')">
|
||||||
<el-select v-model="listQuery.IsDeleted" clearable class="mr">
|
<el-select v-model="listQuery.IsDeleted" clearable class="mr">
|
||||||
<el-option v-for="item of $d.IsSiteDisable" :key="item.label" :label="item.label" :value="item.value" />
|
<el-option
|
||||||
|
v-for="item of $d.IsSiteDisable"
|
||||||
|
:key="item.label"
|
||||||
|
: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" icon="el-icon-search" @click="handleSearch">
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
{{ $t('common:button:search') }}
|
{{ $t("common:button:search") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 重置 -->
|
<!-- 重置 -->
|
||||||
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
|
<el-button
|
||||||
{{ $t('common:button:reset') }}
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:reset") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 中心调研 -->
|
<!-- 中心调研 -->
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPermi="['trials:trials-panel:setting:personnel-manage:questionnaire-record']"
|
v-hasPermi="[
|
||||||
|
'trials:trials-panel:setting:personnel-manage:questionnaire-record',
|
||||||
|
]"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-info"
|
icon="el-icon-info"
|
||||||
@click="handleResearchList"
|
@click="handleResearchList"
|
||||||
>
|
>
|
||||||
{{ $t('trials:sitesList:button:siteResearch') }}
|
{{ $t("trials:sitesList:button:siteResearch") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 添加中心 -->
|
<!-- 添加中心 -->
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPermi="['trials:trials-panel:setting:personnel-manage:add-site']"
|
v-hasPermi="[
|
||||||
|
'trials:trials-panel:setting:personnel-manage:add-site',
|
||||||
|
]"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
@click="handleAdd"
|
@click="handleAdd"
|
||||||
>
|
>
|
||||||
{{ $t('trials:sitesList:dialogTitle:assignSite') }}
|
{{ $t("trials:sitesList:dialogTitle:assignSite") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
@ -63,7 +76,7 @@
|
||||||
:disabled="list.length === 0"
|
:disabled="list.length === 0"
|
||||||
@click="handleResearchListExport"
|
@click="handleResearchListExport"
|
||||||
>
|
>
|
||||||
{{ $t('common:button:export') }}
|
{{ $t("common:button:export") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 下载模板 -->
|
<!-- 下载模板 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
@ -71,15 +84,17 @@
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
@click="handleDownload"
|
@click="handleDownload"
|
||||||
>
|
>
|
||||||
{{ $t('common:button:downloadTpl') }}
|
{{ $t("common:button:downloadTpl") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPermi="['trials:trials-panel:setting:personnel-manage:add-site']"
|
v-hasPermi="[
|
||||||
|
'trials:trials-panel:setting:personnel-manage:add-site',
|
||||||
|
]"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-upload2"
|
icon="el-icon-upload2"
|
||||||
@click="handleUpload"
|
@click="handleUpload"
|
||||||
>
|
>
|
||||||
{{ $t('common:button:upload') }}
|
{{ $t("common:button:upload") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
@ -100,18 +115,19 @@
|
||||||
width="120"
|
width="120"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="!!scope.row.TrialSiteCode">{{ scope.row.TrialSiteCode }}</span>
|
<span v-if="!!scope.row.TrialSiteCode">{{
|
||||||
|
scope.row.TrialSiteCode
|
||||||
|
}}</span>
|
||||||
<i
|
<i
|
||||||
v-else
|
v-else
|
||||||
class="el-icon-warning"
|
class="el-icon-warning"
|
||||||
style="color: #f44336;font-size: 14px;"
|
style="color: #f44336; font-size: 14px"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 中心名称 -->
|
<!-- 中心名称 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Site"
|
prop="TrialSiteName"
|
||||||
:label="$t('trials:sitesList:table:siteName')"
|
:label="$t('trials:sitesList:table:siteName')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
|
@ -125,22 +141,6 @@
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
/>
|
/>
|
||||||
<!-- 城市 -->
|
|
||||||
<!-- <el-table-column
|
|
||||||
prop="City"
|
|
||||||
:label="$t('trials:sitesList:table:city')"
|
|
||||||
sortable="custom"
|
|
||||||
show-overflow-tooltip
|
|
||||||
width="100"
|
|
||||||
/> -->
|
|
||||||
<!-- 国家 -->
|
|
||||||
<!-- <el-table-column
|
|
||||||
prop="Country"
|
|
||||||
:label="$t('trials:sitesList:table:country')"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable="custom"
|
|
||||||
width="120"
|
|
||||||
/> -->
|
|
||||||
<!-- 参与者 -->
|
<!-- 参与者 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="UserNameList"
|
prop="UserNameList"
|
||||||
|
@ -149,8 +149,17 @@
|
||||||
min-width="100"
|
min-width="100"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button v-if="scope.row.UserCount > 0" size="small" type="text" @click="getCrcList(scope.row)">
|
<el-button
|
||||||
{{ scope.row.UserNameList.length>0 ? scope.row.UserNameList.join(', ') :'' }}
|
v-if="scope.row.UserCount > 0"
|
||||||
|
size="small"
|
||||||
|
type="text"
|
||||||
|
@click="getCrcList(scope.row)"
|
||||||
|
>
|
||||||
|
{{
|
||||||
|
scope.row.UserNameList.length > 0
|
||||||
|
? scope.row.UserNameList.join(", ")
|
||||||
|
: ""
|
||||||
|
}}
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -179,8 +188,12 @@
|
||||||
min-width="100"
|
min-width="100"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.IsDeleted" type="danger">{{ $fd('IsSiteDisable', scope.row.IsDeleted) }}</el-tag>
|
<el-tag v-if="scope.row.IsDeleted" type="danger">{{
|
||||||
<el-tag v-else>{{ $fd('IsSiteDisable', scope.row.IsDeleted) }}</el-tag>
|
$fd("IsSiteDisable", scope.row.IsDeleted)
|
||||||
|
}}</el-tag>
|
||||||
|
<el-tag v-else>{{
|
||||||
|
$fd("IsSiteDisable", scope.row.IsDeleted)
|
||||||
|
}}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 授权时间 -->
|
<!-- 授权时间 -->
|
||||||
|
@ -191,46 +204,18 @@
|
||||||
sortable
|
sortable
|
||||||
min-width="150"
|
min-width="150"
|
||||||
/>
|
/>
|
||||||
<!-- 禁用时间 -->
|
|
||||||
<!-- <el-table-column
|
|
||||||
prop="DeletedTime"
|
|
||||||
:label="$t('trials:sitesList:table:timeDeleted')"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable
|
|
||||||
width="210"
|
|
||||||
/> -->
|
|
||||||
<!-- <el-table-column
|
|
||||||
prop="CreateTime"
|
|
||||||
:label="$t('trials:internalStaff:table:CreateTime')"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable
|
|
||||||
width="210"
|
|
||||||
/> -->
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-if="hasPermi(['trials:trials-panel:setting:personnel-manage:edit-site','trials:trials-panel:setting:personnel-manage:remove-site'])"
|
v-if="
|
||||||
|
hasPermi([
|
||||||
|
'trials:trials-panel:setting:personnel-manage:edit-site',
|
||||||
|
'trials:trials-panel:setting:personnel-manage:remove-site',
|
||||||
|
])
|
||||||
|
"
|
||||||
:label="$t('common:action:action')"
|
:label="$t('common:action:action')"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<!-- Assign -->
|
|
||||||
<!-- <el-button
|
|
||||||
v-hasPermi="['trials:trials-panel:setting:personnel-manage:assign-staff']"
|
|
||||||
circle
|
|
||||||
:title="$t('trials:sitesList:action:assign')"
|
|
||||||
icon="el-icon-user"
|
|
||||||
:disabled="scope.row.IsDeleted"
|
|
||||||
@click="handleAssignCRC(scope.row)"
|
|
||||||
/>
|
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPermi="['trials:trials-panel:setting:personnel-manage:assign-staff']"
|
|
||||||
circle
|
|
||||||
:title="$t('common:button:edit')"
|
|
||||||
icon="el-icon-minus"
|
|
||||||
:disabled="scope.row.UserCount === 0"
|
|
||||||
@click="getCrcList(scope.row)"
|
|
||||||
/> -->
|
|
||||||
<el-button
|
|
||||||
|
|
||||||
circle
|
circle
|
||||||
:title="$t('trials:sitesList:action:assign')"
|
:title="$t('trials:sitesList:action:assign')"
|
||||||
icon="el-icon-user"
|
icon="el-icon-user"
|
||||||
|
@ -240,7 +225,9 @@
|
||||||
|
|
||||||
<!-- Edit -->
|
<!-- Edit -->
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPermi="['trials:trials-panel:setting:personnel-manage:edit-site']"
|
v-hasPermi="[
|
||||||
|
'trials:trials-panel:setting:personnel-manage:edit-site',
|
||||||
|
]"
|
||||||
circle
|
circle
|
||||||
:title="$t('common:button:edit')"
|
:title="$t('common:button:edit')"
|
||||||
icon="el-icon-edit-outline"
|
icon="el-icon-edit-outline"
|
||||||
|
@ -250,16 +237,14 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<div class="pagination" style="text-align: right">
|
<div class="pagination" style="text-align: right">
|
||||||
<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>
|
||||||
|
|
||||||
<!-- 给项目分配site -->
|
|
||||||
<base-model v-if="site_model.visible" :config="site_model">
|
|
||||||
<template slot="dialog-body">
|
|
||||||
<SiteForm @closeDialog="closeSiteDialog" />
|
|
||||||
</template>
|
|
||||||
</base-model>
|
|
||||||
|
|
||||||
<!-- 给site分配crc -->
|
<!-- 给site分配crc -->
|
||||||
<base-model v-if="crc_model.visible" :config="crc_model">
|
<base-model v-if="crc_model.visible" :config="crc_model">
|
||||||
<template slot="dialog-body">
|
<template slot="dialog-body">
|
||||||
|
@ -270,59 +255,96 @@
|
||||||
<!-- 修改site信息 -->
|
<!-- 修改site信息 -->
|
||||||
<base-model v-if="edit_model.visible" :config="edit_model">
|
<base-model v-if="edit_model.visible" :config="edit_model">
|
||||||
<template slot="dialog-body">
|
<template slot="dialog-body">
|
||||||
<el-form ref="editForm" :model="form" label-width="100px" :rules="rules">
|
<el-form
|
||||||
|
ref="editForm"
|
||||||
|
:model="form"
|
||||||
|
label-width="100px"
|
||||||
|
:rules="rules"
|
||||||
|
>
|
||||||
<!-- 中心编号 -->
|
<!-- 中心编号 -->
|
||||||
<el-form-item :label="$t('trials:sitesList:table:siteId')" prop="TrialSiteCode">
|
<el-form-item
|
||||||
|
:label="$t('trials:sitesList:table:siteId')"
|
||||||
|
prop="TrialSiteCode"
|
||||||
|
>
|
||||||
<el-input v-model="form.TrialSiteCode" />
|
<el-input v-model="form.TrialSiteCode" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 中心名称 -->
|
<!-- 中心名称 -->
|
||||||
<el-form-item :label="$t('trials:sitesList:table:siteName')">
|
<el-form-item
|
||||||
<el-input v-model="form.Site" disabled />
|
:label="$t('trials:sitesList:table:siteName')"
|
||||||
|
prop="TrialSiteName"
|
||||||
|
>
|
||||||
|
<el-autocomplete
|
||||||
|
clearable
|
||||||
|
class="inline-input"
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="form.TrialSiteName"
|
||||||
|
:fetch-suggestions="querySearch"
|
||||||
|
@select="handleSelect"
|
||||||
|
placeholder=""
|
||||||
|
></el-autocomplete>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 中心别称 -->
|
<!-- 中心别称 -->
|
||||||
<el-form-item :label="$t('trials:sitesList:table:siteAliasName')" prop="TrialSiteAliasName">
|
<el-form-item
|
||||||
|
:label="$t('trials:sitesList:table:siteAliasName')"
|
||||||
|
prop="TrialSiteAliasName"
|
||||||
|
>
|
||||||
<el-input v-model="form.TrialSiteAliasName" />
|
<el-input v-model="form.TrialSiteAliasName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 城市 -->
|
|
||||||
<el-form-item :label="$t('trials:sitesList:table:city')">
|
|
||||||
<el-input v-model="form.City" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
<!-- 国家 -->
|
|
||||||
<el-form-item :label="$t('trials:sitesList:table:country')">
|
|
||||||
<el-input v-model="form.Country" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
<!-- 状态 -->
|
<!-- 状态 -->
|
||||||
<el-form-item :label="$t('trials:sitesList:table:status')">
|
<el-form-item :label="$t('trials:sitesList:table:status')">
|
||||||
<el-switch v-model="form.IsDeleted" :active-value="false" :inactive-value="true" />
|
<el-switch v-model="form.IsDeleted" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
<template slot="dialog-footer">
|
<template slot="dialog-footer">
|
||||||
<el-button type="primary" size="small" :disabled="saveBtnLoading" @click="edit_model.visible = false">
|
<el-button
|
||||||
{{ $t('common:button:cancel') }}
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
:disabled="saveBtnLoading"
|
||||||
|
@click="edit_model.visible = false"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:cancel") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" size="small" :loading="saveBtnLoading" @click="handleUpdateSiteID">
|
<el-button
|
||||||
{{ $t('common:button:save') }}
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
:loading="saveBtnLoading"
|
||||||
|
@click="handleUpdateSiteID"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:save") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</base-model>
|
</base-model>
|
||||||
|
|
||||||
<!-- 修改参与者人员状态 -->
|
<!-- 修改参与者人员状态 -->
|
||||||
<base-model v-if="status_model.visible" :config="status_model">
|
<base-model v-if="status_model.visible" :config="status_model">
|
||||||
<template slot="dialog-body">
|
<template slot="dialog-body">
|
||||||
<span>{{ $t('trials:internalStaff:table:status') }}:</span>
|
<span>{{ $t("trials:internalStaff:table:status") }}:</span>
|
||||||
<el-radio-group v-model="staffStatus">
|
<el-radio-group v-model="staffStatus">
|
||||||
<el-radio v-for="item of $d.IsUserExitTrial" :key="item.label" :label="item.value">{{ item.label }}</el-radio>
|
<el-radio
|
||||||
|
v-for="item of $d.IsUserExitTrial"
|
||||||
|
:key="item.label"
|
||||||
|
:label="item.value"
|
||||||
|
>{{ item.label }}</el-radio
|
||||||
|
>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</template>
|
</template>
|
||||||
<template slot="dialog-footer">
|
<template slot="dialog-footer">
|
||||||
<el-button :disabled="btnLoading" size="small" type="primary" @click="status_model.visible = false">
|
<el-button
|
||||||
{{ $t('common:button:cancel') }}
|
:disabled="btnLoading"
|
||||||
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
@click="status_model.visible = false"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:cancel") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button size="small" type="primary" :loading="btnLoading" @click="saveStatus">
|
<el-button
|
||||||
{{ $t('common:button:save') }}
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
:loading="btnLoading"
|
||||||
|
@click="saveStatus"
|
||||||
|
>
|
||||||
|
{{ $t("common:button:save") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</base-model>
|
</base-model>
|
||||||
|
@ -330,18 +352,25 @@
|
||||||
<!-- site下的crc/cra -->
|
<!-- site下的crc/cra -->
|
||||||
<base-model v-if="siteOfcrc_model.visible" :config="siteOfcrc_model">
|
<base-model v-if="siteOfcrc_model.visible" :config="siteOfcrc_model">
|
||||||
<template slot="dialog-body">
|
<template slot="dialog-body">
|
||||||
<div style="text-align:right;">
|
<div style="text-align: right">
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPermi="['trials:trials-panel:setting:personnel-manage:assign-staff']"
|
v-hasPermi="[
|
||||||
|
'trials:trials-panel:setting:personnel-manage:assign-staff',
|
||||||
|
]"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
size="small"
|
size="small"
|
||||||
@click="crc_model.visible = true"
|
@click="crc_model.visible = true"
|
||||||
>
|
>
|
||||||
{{ $t('common:button:add') }}
|
{{ $t("common:button:add") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table v-loading="userListLoading" :data="userList" height="400" size="small">
|
<el-table
|
||||||
|
v-loading="userListLoading"
|
||||||
|
:data="userList"
|
||||||
|
height="400"
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
<!-- 姓名 -->
|
<!-- 姓名 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="UserRealName"
|
prop="UserRealName"
|
||||||
|
@ -391,8 +420,12 @@
|
||||||
width="100"
|
width="100"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.IsDeleted" type="danger">{{ $fd('IsUserExitTrial', scope.row.IsDeleted) }}</el-tag>
|
<el-tag v-if="scope.row.IsDeleted" type="danger">{{
|
||||||
<el-tag v-else>{{ $fd('IsUserExitTrial', scope.row.IsDeleted) }}</el-tag>
|
$fd("IsUserExitTrial", scope.row.IsDeleted)
|
||||||
|
}}</el-tag>
|
||||||
|
<el-tag v-else>{{
|
||||||
|
$fd("IsUserExitTrial", scope.row.IsDeleted)
|
||||||
|
}}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -410,13 +443,17 @@
|
||||||
width="210"
|
width="210"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-hasPermi="['trials:trials-panel:setting:personnel-manage:assign-staff']"
|
v-hasPermi="[
|
||||||
|
'trials:trials-panel:setting:personnel-manage:assign-staff',
|
||||||
|
]"
|
||||||
:label="$t('common:action:action')"
|
:label="$t('common:action:action')"
|
||||||
width="100"
|
width="100"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPermi="['trials:trials-panel:setting:personnel-manage:assign-staff']"
|
v-hasPermi="[
|
||||||
|
'trials:trials-panel:setting:personnel-manage:assign-staff',
|
||||||
|
]"
|
||||||
circle
|
circle
|
||||||
:title="$t('trials:internalStaff:action:status')"
|
:title="$t('trials:internalStaff:action:status')"
|
||||||
icon="el-icon-edit-outline"
|
icon="el-icon-edit-outline"
|
||||||
|
@ -424,57 +461,96 @@
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
</el-table>
|
</el-table>
|
||||||
</template>
|
</template>
|
||||||
</base-model>
|
</base-model>
|
||||||
<!-- 导入 -->
|
<!-- 导入 -->
|
||||||
<base-model v-if="upload_model.visible" :config="upload_model">
|
<base-model v-if="upload_model.visible" :config="upload_model">
|
||||||
<template slot="dialog-body">
|
<template slot="dialog-body">
|
||||||
<UploadExcel @closeDialog="upload_model.visible = false" @getList="getList" />
|
<UploadExcel
|
||||||
|
@closeDialog="upload_model.visible = false"
|
||||||
|
@getList="getList"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
</base-model>
|
</base-model>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getSiteCRCSimpleList, deleteTrialSite, deleteSiteCRC, editTrialSite, getTrialSiteCRCList, trialSiteUserListExport } from '@/api/trials'
|
import {
|
||||||
import { DownloadCommonDoc } from '@/api/dictionary'
|
getSiteCRCSimpleList,
|
||||||
import Pagination from '@/components/Pagination'
|
deleteTrialSite,
|
||||||
import SiteForm from './siteForm'
|
deleteSiteCRC,
|
||||||
import CRCForm from './crcForm'
|
editTrialSite,
|
||||||
import BaseModel from '@/components/BaseModel'
|
getTrialSiteCRCList,
|
||||||
import UploadExcel from './uploadExcel'
|
trialSiteUserListExport,
|
||||||
import moment from 'moment'
|
addTrialSites,
|
||||||
|
getTrialSiteSelectList,
|
||||||
|
} from "@/api/trials";
|
||||||
|
import { DownloadCommonDoc } from "@/api/dictionary";
|
||||||
|
import Pagination from "@/components/Pagination";
|
||||||
|
import CRCForm from "./crcForm";
|
||||||
|
import BaseModel from "@/components/BaseModel";
|
||||||
|
import UploadExcel from "./uploadExcel";
|
||||||
|
import moment from "moment";
|
||||||
const getListQueryDefault = () => {
|
const getListQueryDefault = () => {
|
||||||
return {
|
return {
|
||||||
UserKeyInfo: '',
|
UserKeyInfo: "",
|
||||||
TrialSiteCode: '',
|
TrialSiteCode: "",
|
||||||
TrialSiteAliasName: '',
|
TrialSiteAliasName: "",
|
||||||
|
TrialSiteName: null,
|
||||||
IsDeleted: null,
|
IsDeleted: null,
|
||||||
SortField: 'TrialSiteCode',
|
SortField: "TrialSiteCode",
|
||||||
Asc: true,
|
Asc: true,
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20
|
PageSize: 20,
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
export default {
|
export default {
|
||||||
name: 'Participant',
|
name: "Participant",
|
||||||
components: { Pagination, SiteForm, CRCForm, BaseModel, UploadExcel },
|
components: { Pagination, CRCForm, BaseModel, UploadExcel },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
list: [],
|
list: [],
|
||||||
listQuery: getListQueryDefault(),
|
listQuery: getListQueryDefault(),
|
||||||
listLoading: false,
|
listLoading: false,
|
||||||
total: 0,
|
total: 0,
|
||||||
currentSiteId: '',
|
currentSiteId: "",
|
||||||
site_model: { visible: false, title: this.$t('trials:sitesList:dialogTitle:assignSite'), width: '60%' },
|
site_model: {
|
||||||
crc_model: { visible: false, title: this.$t('trials:sitesList:dialogTitle:assignStaff').replace('xxx', this.$route.query.trialCode), width: '60%' },
|
visible: false,
|
||||||
edit_model: { visible: false, title: this.$t('trials:sitesList:dialogTitle:editSite'), width: '600px' },
|
title: this.$t("trials:sitesList:dialogTitle:assignSite"),
|
||||||
status_model: { visible: false, title: this.$t('trials:sitesList:dialogTitle:editStaffStauts'), width: '500px' },
|
width: "60%",
|
||||||
siteOfcrc_model: { visible: false, title: '', width: '70%' },
|
},
|
||||||
form: { TrialSiteCode: '', Site: '', City: '', Country: '', IsDeleted: false },
|
crc_model: {
|
||||||
upload_model: { visible: false, title: this.$t('common:button:upload'), width: '500px' },
|
visible: false,
|
||||||
|
title: this.$t("trials:sitesList:dialogTitle:assignStaff").replace(
|
||||||
|
"xxx",
|
||||||
|
this.$route.query.trialCode
|
||||||
|
),
|
||||||
|
width: "60%",
|
||||||
|
},
|
||||||
|
edit_model: {
|
||||||
|
visible: false,
|
||||||
|
title: this.$t("trials:sitesList:dialogTitle:editSite"),
|
||||||
|
width: "600px",
|
||||||
|
model_type: "add",
|
||||||
|
},
|
||||||
|
status_model: {
|
||||||
|
visible: false,
|
||||||
|
title: this.$t("trials:sitesList:dialogTitle:editStaffStauts"),
|
||||||
|
width: "500px",
|
||||||
|
},
|
||||||
|
siteOfcrc_model: { visible: false, title: "", width: "70%" },
|
||||||
|
form: {
|
||||||
|
TrialSiteCode: "",
|
||||||
|
TrialSiteName: "",
|
||||||
|
TrialSiteAliasName: "",
|
||||||
|
IsDeleted: true,
|
||||||
|
},
|
||||||
|
upload_model: {
|
||||||
|
visible: false,
|
||||||
|
title: this.$t("common:button:upload"),
|
||||||
|
width: "500px",
|
||||||
|
},
|
||||||
saveBtnLoading: false,
|
saveBtnLoading: false,
|
||||||
staffStatus: null,
|
staffStatus: null,
|
||||||
currentRow: {},
|
currentRow: {},
|
||||||
|
@ -484,190 +560,327 @@ export default {
|
||||||
moment,
|
moment,
|
||||||
rules: {
|
rules: {
|
||||||
TrialSiteCode: [
|
TrialSiteCode: [
|
||||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
{
|
||||||
{ max: 100, message: `${this.$t('common:ruleMessage:maxLength')} 100`, trigger: 'blur' }
|
required: true,
|
||||||
|
message: this.$t("common:ruleMessage:specify"),
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
max: 100,
|
||||||
|
message: `${this.$t("common:ruleMessage:maxLength")} 100`,
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
TrialSiteName: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t("common:ruleMessage:specify"),
|
||||||
|
trigger: ["blur", "change"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
max: 500,
|
||||||
|
message: `${this.$t("common:ruleMessage:maxLength")} 500`,
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
TrialSiteAliasName: [
|
TrialSiteAliasName: [
|
||||||
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
{
|
||||||
]
|
required: true,
|
||||||
|
message: this.$t("common:ruleMessage:specify"),
|
||||||
|
trigger: "blur",
|
||||||
},
|
},
|
||||||
trialId: ''
|
{
|
||||||
}
|
max: 500,
|
||||||
|
message: `${this.$t("common:ruleMessage:maxLength")} 500`,
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
trialId: "",
|
||||||
|
TrialSiteSelectList: [],
|
||||||
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.trialId = this.$route.query.trialId
|
this.trialId = this.$route.query.trialId;
|
||||||
this.getList()
|
this.getList();
|
||||||
|
this.getTrialSiteSelectList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleSelect(item) {
|
||||||
|
this.form.TrialSiteName = item.SiteName;
|
||||||
|
this.form.TrialSiteAliasName = item.AliasName
|
||||||
|
? item.AliasName
|
||||||
|
: this.form.TrialSiteAliasName;
|
||||||
|
this.form.SiteId = item.SiteId;
|
||||||
|
},
|
||||||
|
querySearch(queryString, cb) {
|
||||||
|
var TrialSiteSelectList = this.TrialSiteSelectList;
|
||||||
|
var results = queryString
|
||||||
|
? TrialSiteSelectList.filter(this.createFilter(queryString))
|
||||||
|
: TrialSiteSelectList;
|
||||||
|
// 调用 callback 返回建议列表的数据
|
||||||
|
cb(results);
|
||||||
|
},
|
||||||
|
createFilter(queryString) {
|
||||||
|
return (TrialSiteSelectList) => {
|
||||||
|
return (
|
||||||
|
TrialSiteSelectList.SiteName.toLowerCase().indexOf(
|
||||||
|
queryString.toLowerCase()
|
||||||
|
) === 0 ||
|
||||||
|
TrialSiteSelectList.AliasName.toLowerCase().indexOf(
|
||||||
|
queryString.toLowerCase()
|
||||||
|
) === 0
|
||||||
|
);
|
||||||
|
};
|
||||||
|
},
|
||||||
|
// 获取site可选列表
|
||||||
|
async getTrialSiteSelectList() {
|
||||||
|
try {
|
||||||
|
let res = await getTrialSiteSelectList();
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
this.TrialSiteSelectList = res.Result.map((item) => {
|
||||||
|
return {
|
||||||
|
value: item.SiteName + " " + item.AliasName,
|
||||||
|
...item,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
},
|
||||||
// 获取site列表
|
// 获取site列表
|
||||||
getList() {
|
getList() {
|
||||||
this.listLoading = true
|
this.listLoading = true;
|
||||||
this.listQuery.TrialId = this.trialId
|
this.listQuery.TrialId = this.trialId;
|
||||||
getSiteCRCSimpleList(this.listQuery).then(res => {
|
getSiteCRCSimpleList(this.listQuery)
|
||||||
this.listLoading = false
|
.then((res) => {
|
||||||
this.list = res.Result.CurrentPageData
|
this.listLoading = false;
|
||||||
this.total = res.Result.TotalCount
|
this.list = res.Result.CurrentPageData;
|
||||||
}).catch(() => { this.listLoading = false })
|
this.total = res.Result.TotalCount;
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.listLoading = false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 打开添加site弹窗
|
// 打开添加site弹窗
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.site_model.visible = true
|
this.edit_model.title = this.$t(
|
||||||
|
"trials:sitesList:dialogTitle:assignSite"
|
||||||
|
);
|
||||||
|
this.edit_model.model_type = "add";
|
||||||
|
Object.keys(this.form).forEach((key) => {
|
||||||
|
this.form[key] = "";
|
||||||
|
if (key === "IsDeleted") {
|
||||||
|
this.form[key] = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.edit_model.visible = true;
|
||||||
},
|
},
|
||||||
// 给site分配CRC
|
// 给site分配CRC
|
||||||
handleAssignCRC(row) {
|
handleAssignCRC(row) {
|
||||||
if (!row.TrialSiteCode) {
|
if (!row.TrialSiteCode) {
|
||||||
this.$alert(this.$t('trials:sitesList:message:setSiteId'))
|
this.$alert(this.$t("trials:sitesList:message:setSiteId"));
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
this.currentSiteId = row.TrialSiteId
|
this.currentSiteId = row.TrialSiteId;
|
||||||
var title = this.$t('trials:sitesList:dialogTitle:assignStaff')
|
var title = this.$t("trials:sitesList:dialogTitle:assignStaff");
|
||||||
console.log(title)
|
console.log(title);
|
||||||
this.crc_model.title = title.replace('xxx', this.$route.query.trialCode)
|
this.crc_model.title = title.replace("xxx", this.$route.query.trialCode);
|
||||||
this.crc_model.visible = true
|
this.crc_model.visible = true;
|
||||||
},
|
},
|
||||||
// 编辑site信息
|
// 编辑site信息
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
if (Object.keys(row).length) {
|
if (Object.keys(row).length) {
|
||||||
this.form = { ...row }
|
this.form = { ...row };
|
||||||
}
|
}
|
||||||
this.edit_model.visible = true
|
this.edit_model.title = this.$t("trials:sitesList:dialogTitle:editSite");
|
||||||
|
this.edit_model.model_type = "edit";
|
||||||
|
this.edit_model.visible = true;
|
||||||
},
|
},
|
||||||
// 更新site信息
|
// 更新site信息
|
||||||
handleUpdateSiteID() {
|
handleUpdateSiteID() {
|
||||||
this.$refs['editForm'].validate(valid => {
|
this.$refs["editForm"].validate((valid) => {
|
||||||
if (!valid) return
|
if (!valid) return;
|
||||||
this.saveBtnLoading = true
|
this.saveBtnLoading = true;
|
||||||
const param = {
|
const param = {
|
||||||
trialId: this.trialId,
|
trialId: this.trialId,
|
||||||
id: this.form.Id,
|
id: this.form.Id,
|
||||||
|
SiteId: this.form.SiteId,
|
||||||
|
TrialSiteName: this.form.TrialSiteName,
|
||||||
trialSiteCode: this.form.TrialSiteCode,
|
trialSiteCode: this.form.TrialSiteCode,
|
||||||
trialSiteAliasName: this.form.TrialSiteAliasName,
|
trialSiteAliasName: this.form.TrialSiteAliasName,
|
||||||
isDeleted: this.form.IsDeleted
|
isDeleted: this.form.IsDeleted,
|
||||||
}
|
};
|
||||||
editTrialSite(param).then(res => {
|
if (this.edit_model.model_type === "add") {
|
||||||
this.saveBtnLoading = false
|
addTrialSites([param])
|
||||||
|
.then((res) => {
|
||||||
|
this.saveBtnLoading = false;
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.edit_model.visible = false
|
this.edit_model.visible = false;
|
||||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
this.$message.success(
|
||||||
this.getList()
|
this.$t("common:message:savedSuccessfully")
|
||||||
|
);
|
||||||
|
this.getList();
|
||||||
|
this.getTrialSiteSelectList();
|
||||||
}
|
}
|
||||||
}).catch(() => { this.saveBtnLoading = false })
|
|
||||||
})
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.saveBtnLoading = false;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
editTrialSite(param)
|
||||||
|
.then((res) => {
|
||||||
|
this.saveBtnLoading = false;
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
this.edit_model.visible = false;
|
||||||
|
this.$message.success(
|
||||||
|
this.$t("common:message:savedSuccessfully")
|
||||||
|
);
|
||||||
|
this.getList();
|
||||||
|
this.getTrialSiteSelectList();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.saveBtnLoading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 移除site
|
// 移除site
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
this.$confirm(this.$t('trials:sitesList:message:removeSite'), {
|
this.$confirm(this.$t("trials:sitesList:message:removeSite"), {
|
||||||
type: 'warning',
|
type: "warning",
|
||||||
distinguishCancelAndClose: true
|
distinguishCancelAndClose: true,
|
||||||
})
|
}).then(() => {
|
||||||
.then(() => {
|
deleteTrialSite(row.Id, this.trialId).then((res) => {
|
||||||
deleteTrialSite(row.Id, this.trialId)
|
|
||||||
.then(res => {
|
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1)
|
this.list.splice(
|
||||||
this.$message.success(this.$t('trials:sitesList:message:removedSuccessfully'))
|
this.list.findIndex((item) => item.Id === row.Id),
|
||||||
|
1
|
||||||
|
);
|
||||||
|
this.$message.success(
|
||||||
|
this.$t("trials:sitesList:message:removedSuccessfully")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
handleStatus(row) {
|
handleStatus(row) {
|
||||||
const { IsDeleted } = { ...row }
|
const { IsDeleted } = { ...row };
|
||||||
this.currentRow = { ...row }
|
this.currentRow = { ...row };
|
||||||
this.staffStatus = IsDeleted
|
this.staffStatus = IsDeleted;
|
||||||
this.status_model.visible = true
|
this.status_model.visible = true;
|
||||||
},
|
},
|
||||||
// 修改某个site下的CRC状态
|
// 修改某个site下的CRC状态
|
||||||
saveStatus() {
|
saveStatus() {
|
||||||
this.btnLoading = true
|
this.btnLoading = true;
|
||||||
deleteSiteCRC(this.currentRow.Id, this.trialId, this.staffStatus)
|
deleteSiteCRC(this.currentRow.Id, this.trialId, this.staffStatus)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
this.btnLoading = false
|
this.btnLoading = false;
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.status_model.visible = false
|
this.status_model.visible = false;
|
||||||
this.getTrialSiteCRCList()
|
this.getTrialSiteCRCList();
|
||||||
this.getList()
|
this.getList();
|
||||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
this.$message.success(this.$t("common:message:savedSuccessfully"));
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
|
||||||
this.btnLoading = false
|
|
||||||
})
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.btnLoading = false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 获取某个site下的crc列表
|
// 获取某个site下的crc列表
|
||||||
getCrcList(row) {
|
getCrcList(row) {
|
||||||
this.currentRow = { ...row }
|
this.currentRow = { ...row };
|
||||||
this.currentSiteId = row.TrialSiteId
|
this.currentSiteId = row.TrialSiteId;
|
||||||
var title = this.$t('trials:sitesList:dialogTitle:staff')
|
var title = this.$t("trials:sitesList:dialogTitle:staff");
|
||||||
this.siteOfcrc_model.title = title.replace('xxx', row.TrialSiteCode)
|
this.siteOfcrc_model.title = title.replace("xxx", row.TrialSiteCode);
|
||||||
this.siteOfcrc_model.visible = true
|
this.siteOfcrc_model.visible = true;
|
||||||
this.getTrialSiteCRCList()
|
this.getTrialSiteCRCList();
|
||||||
},
|
},
|
||||||
getTrialSiteCRCList() {
|
getTrialSiteCRCList() {
|
||||||
this.userListLoading = true
|
this.userListLoading = true;
|
||||||
getTrialSiteCRCList(this.trialId, this.currentRow.TrialSiteId).then(res => {
|
getTrialSiteCRCList(this.trialId, this.currentRow.TrialSiteId)
|
||||||
this.userListLoading = false
|
.then((res) => {
|
||||||
this.userList = res.Result
|
this.userListLoading = false;
|
||||||
}).catch(() => { this.userListLoading = false })
|
this.userList = res.Result;
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.userListLoading = false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 导出
|
// 导出
|
||||||
handleResearchListExport() {
|
handleResearchListExport() {
|
||||||
this.listQuery.TrialId = this.trialId
|
this.listQuery.TrialId = this.trialId;
|
||||||
this.listLoading = true
|
this.listLoading = true;
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
const { SortField, Asc, PageIndex, PageSize, ...param } = { ...this.listQuery }
|
const { SortField, Asc, PageIndex, PageSize, ...param } = {
|
||||||
trialSiteUserListExport({ ...param }).then(data => {
|
...this.listQuery,
|
||||||
this.listLoading = false
|
};
|
||||||
}).catch(() => { this.listLoading = false })
|
trialSiteUserListExport({ ...param })
|
||||||
|
.then((data) => {
|
||||||
|
this.listLoading = false;
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.listLoading = false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
handleResearchList() {
|
handleResearchList() {
|
||||||
this.$router.push({ path: `/trials/trials-panel/attachments/site-research?trialId=${this.$route.query.trialId}&trialCode=${this.$route.query.trialCode}&researchProgramNo=${this.$route.query.researchProgramNo}` })
|
this.$router.push({
|
||||||
|
path: `/trials/trials-panel/attachments/site-research?trialId=${this.$route.query.trialId}&trialCode=${this.$route.query.trialCode}&researchProgramNo=${this.$route.query.researchProgramNo}`,
|
||||||
|
});
|
||||||
},
|
},
|
||||||
handleUpload() {
|
handleUpload() {
|
||||||
this.upload_model.visible = true
|
this.upload_model.visible = true;
|
||||||
},
|
},
|
||||||
handleDownload() {
|
handleDownload() {
|
||||||
this.loading = true
|
this.loading = true;
|
||||||
DownloadCommonDoc('TrialSiteSurveyImportUser_Template').then(data => {
|
DownloadCommonDoc("TrialSiteSurveyImportUser_Template")
|
||||||
this.loading = false
|
.then((data) => {
|
||||||
}).catch(() => { this.loading = false })
|
this.loading = false;
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// site列表排序
|
// site列表排序
|
||||||
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();
|
||||||
},
|
},
|
||||||
// 查询
|
// 查询
|
||||||
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();
|
||||||
},
|
},
|
||||||
// 关闭添加分配crc模态框
|
// 关闭添加分配crc模态框
|
||||||
closeDialog(isReresh) {
|
closeDialog(isReresh) {
|
||||||
this.crc_model.visible = false
|
this.crc_model.visible = false;
|
||||||
if (isReresh) {
|
if (isReresh) {
|
||||||
this.listQuery = getListQueryDefault()
|
this.listQuery = getListQueryDefault();
|
||||||
this.getList()
|
this.getList();
|
||||||
this.getTrialSiteCRCList()
|
this.getTrialSiteCRCList();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 关闭添加site模态框
|
// 关闭添加site模态框
|
||||||
closeSiteDialog() {
|
closeSiteDialog() {
|
||||||
this.site_model.visible = false
|
this.site_model.visible = false;
|
||||||
this.listQuery = getListQueryDefault()
|
this.listQuery = getListQueryDefault();
|
||||||
this.getList()
|
this.getList();
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.assign-site {
|
.assign-site {
|
||||||
|
|
|
@ -215,38 +215,6 @@
|
||||||
:disabled="form.IsTrialBasicLogicConfirmed && !isEdit"
|
:disabled="form.IsTrialBasicLogicConfirmed && !isEdit"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 临床信息传输 -->
|
|
||||||
<!-- <el-form-item
|
|
||||||
:label="$t('trials:logincCfg:form:clinicalInforTransfer')"
|
|
||||||
prop="ClinicalInformationTransmissionEnum"
|
|
||||||
>
|
|
||||||
<el-radio-group
|
|
||||||
v-model="form.ClinicalInformationTransmissionEnum"
|
|
||||||
:disabled="form.IsTrialBasicLogicConfirmed && !isEdit"
|
|
||||||
>
|
|
||||||
<el-radio
|
|
||||||
v-for="item of $d.ClinicalInformationTransmissionEnum"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.value"
|
|
||||||
>
|
|
||||||
{{ item.label }}
|
|
||||||
</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.ClinicalInformationTransmissionEnum === 1"
|
|
||||||
label="临床数据配置"
|
|
||||||
prop="ClinicalDataSetNamesStr"
|
|
||||||
>
|
|
||||||
<el-input
|
|
||||||
v-model="form.ClinicalDataSetNamesStr"
|
|
||||||
type="textarea"
|
|
||||||
:autosize="{ minRows: 1, maxRows: 3}"
|
|
||||||
style="width:80%;"
|
|
||||||
disabled
|
|
||||||
/>
|
|
||||||
<el-button icon="el-icon-plus" circle :disabled="form.IsTrialBasicLogicConfirmed && !isEdit" @click="handleSetCD" />
|
|
||||||
</el-form-item> -->
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<!-- 保存 -->
|
<!-- 保存 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
@ -643,10 +611,27 @@
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:title="$t('trials:logincCfg:form:modality')"
|
:title="$t('trials:logincCfg:form:modality')"
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
width="400px"
|
width="800px"
|
||||||
>
|
>
|
||||||
<div class="base-dialog-body">
|
<div class="base-dialog-body" style="height: 400px; text-align: center">
|
||||||
<el-table
|
<el-transfer
|
||||||
|
filterable
|
||||||
|
:filter-method="filterMethod"
|
||||||
|
filter-placeholder=""
|
||||||
|
v-model="selectedList"
|
||||||
|
:data="$d.Modality"
|
||||||
|
:titles="[
|
||||||
|
$t('trials:logincCfg:transfer:notCheck'),
|
||||||
|
$t('trials:logincCfg:transfer:check'),
|
||||||
|
]"
|
||||||
|
:props="{
|
||||||
|
key: 'value',
|
||||||
|
label: 'value',
|
||||||
|
}"
|
||||||
|
:render-content="renderFunc"
|
||||||
|
>
|
||||||
|
</el-transfer>
|
||||||
|
<!-- <el-table
|
||||||
ref="multipleTable"
|
ref="multipleTable"
|
||||||
:data="$d.Modality"
|
:data="$d.Modality"
|
||||||
stripe
|
stripe
|
||||||
|
@ -665,7 +650,7 @@
|
||||||
prop="value"
|
prop="value"
|
||||||
:label="$t('trials:logincCfg:form:modality')"
|
:label="$t('trials:logincCfg:form:modality')"
|
||||||
/>
|
/>
|
||||||
</el-table>
|
</el-table> -->
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="base-dialog-footer"
|
class="base-dialog-footer"
|
||||||
|
@ -908,6 +893,15 @@ export default {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
errMessage: null,
|
errMessage: null,
|
||||||
|
|
||||||
|
renderFunc(h, option) {
|
||||||
|
return (
|
||||||
|
<span>
|
||||||
|
{option.value} <span style="color:#ddd">-</span>{" "}
|
||||||
|
{option.raw.Description}
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -917,7 +911,7 @@ export default {
|
||||||
handleConfirmModality() {
|
handleConfirmModality() {
|
||||||
this.form.ModalityList = Object.assign(
|
this.form.ModalityList = Object.assign(
|
||||||
[],
|
[],
|
||||||
this.selectedList.map((v) => v.value)
|
this.selectedList.map((v) => v)
|
||||||
);
|
);
|
||||||
this.form.ModalityListStr = this.form.ModalityList.toString().replaceAll(
|
this.form.ModalityListStr = this.form.ModalityList.toString().replaceAll(
|
||||||
",",
|
",",
|
||||||
|
@ -937,16 +931,17 @@ export default {
|
||||||
this.$refs.multipleTable.clearSelection();
|
this.$refs.multipleTable.clearSelection();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
filterMethod(query, item) {
|
||||||
|
return item.value.toLowerCase().indexOf(query.toLowerCase()) > -1;
|
||||||
|
},
|
||||||
handleSetModality() {
|
handleSetModality() {
|
||||||
this.modalityListVisible = true;
|
this.modalityListVisible = true;
|
||||||
this.$nextTick(() => {
|
|
||||||
var a = this.$d.Modality.filter((v) => {
|
var a = this.$d.Modality.filter((v) => {
|
||||||
return !!this.form.ModalityList.find((v1) => {
|
return !!this.form.ModalityList.find((v1) => {
|
||||||
return v1 === v.value;
|
return v1 === v.value;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this.toggleSelection(a);
|
this.selectedList = a.map((item) => item.value);
|
||||||
});
|
|
||||||
},
|
},
|
||||||
handleBodyPartSelectionChange(val) {
|
handleBodyPartSelectionChange(val) {
|
||||||
this.selectedBodyParts = val;
|
this.selectedBodyParts = val;
|
||||||
|
@ -1424,4 +1419,18 @@ export default {
|
||||||
top: 100%;
|
top: 100%;
|
||||||
left: 0;
|
left: 0;
|
||||||
}
|
}
|
||||||
|
::v-deep .el-transfer-panel__body {
|
||||||
|
height: calc(100% - 50px);
|
||||||
|
.el-transfer-panel__list.is-filterable {
|
||||||
|
height: calc(100% - 55px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::v-deep .el-transfer {
|
||||||
|
height: 100%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
::v-deep .el-transfer-panel {
|
||||||
|
height: 100%;
|
||||||
|
width: calc(50% - 100px);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
Loading…
Reference in New Issue