中心数据中三个表格添加调研状态字段和查询条件
continuous-integration/drone/push Build is passing Details

uat_us^2
wangxiaoshuang 2026-08-14 13:24:36 +08:00
parent 31c268450a
commit e497a31608
3 changed files with 181 additions and 149 deletions

View File

@ -14,6 +14,20 @@
<el-form-item :label="$t('trials:researchStaff:table:siteName')"> <el-form-item :label="$t('trials:researchStaff:table:siteName')">
<el-input v-model="searchData.TrialSiteName" class="mr" clearable style="width:120px;" /> <el-input v-model="searchData.TrialSiteName" class="mr" clearable style="width:120px;" />
</el-form-item> </el-form-item>
<!-- 状态 -->
<el-form-item :label="$t('trials:researchRecord:table:status')">
<el-select v-model="searchData.State" clearable filterable style="width: 120px">
<el-option v-for="(item, index) of $d.ResearchRecord" :key="index" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
<!-- 是否废除 -->
<!-- <el-form-item :label="$t('trials:researchRecord:table:isDeleted')">
<el-select v-model="searchData.IsDeleted" clearable filterable style="width: 120px">
<el-option v-for="item of $d.YesOrNo" v-show="item.raw.ValueCN !== ''" :key="`IsDeleted${item.value}`"
:label="item.label" :value="item.value" />
</el-select>
</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">
@ -47,6 +61,36 @@
<el-table-column prop="TrialSiteName" :label="$t('trials:researchStaff:table:siteName')" show-overflow-tooltip <el-table-column prop="TrialSiteName" :label="$t('trials:researchStaff:table:siteName')" show-overflow-tooltip
sortable="custom" min-width="120"> sortable="custom" min-width="120">
</el-table-column> </el-table-column>
<!-- 状态 -->
<el-table-column prop="State" :label="$t('trials:researchRecord:table:status')" min-width="150"
sortable="custom" show-overflow-tooltip>
<template slot-scope="scope">
<el-tag v-if="scope.row.State === 0" type="primary">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
<el-tag v-if="scope.row.State === 1" type="info">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
<el-tag v-if="scope.row.State === 2" type="warning">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
<el-tag v-if="scope.row.State === 3" type="danger">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
</template>
</el-table-column>
<!-- 是否废除 -->
<!-- <el-table-column prop="IsDeleted" :label="$t('trials:researchRecord:table:isDeleted')" min-width="100"
sortable="custom" show-overflow-tooltip>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsDeleted" type="danger">{{
$fd('YesOrNo', scope.row.IsDeleted)
}}</el-tag>
<el-tag v-else type="primary">{{
$fd('YesOrNo', scope.row.IsDeleted)
}}</el-tag>
</template>
</el-table-column> -->
<!-- 联系人 --> <!-- 联系人 -->
<el-table-column prop="UserName" :label="$t('trials:researchForm:form:contactor')" show-overflow-tooltip <el-table-column prop="UserName" :label="$t('trials:researchForm:form:contactor')" show-overflow-tooltip
sortable="custom" min-width="100" /> sortable="custom" min-width="100" />
@ -174,6 +218,7 @@ import { getSiteSurveyEquipmentList_Export } from '@/api/export'
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
SortField: '', SortField: '',
State: "",
Asc: true, Asc: true,
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,

View File

@ -14,6 +14,20 @@
<el-form-item :label="$t('trials:researchStaff:table:siteName')"> <el-form-item :label="$t('trials:researchStaff:table:siteName')">
<el-input v-model="searchData.TrialSiteName" class="mr" clearable style="width:120px;" /> <el-input v-model="searchData.TrialSiteName" class="mr" clearable style="width:120px;" />
</el-form-item> </el-form-item>
<!-- 状态 -->
<el-form-item :label="$t('trials:researchRecord:table:status')">
<el-select v-model="searchData.State" clearable filterable style="width: 120px">
<el-option v-for="(item, index) of $d.ResearchRecord" :key="index" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
<!-- 是否废除 -->
<!-- <el-form-item :label="$t('trials:researchRecord:table:isDeleted')">
<el-select v-model="searchData.IsDeleted" clearable filterable style="width: 120px">
<el-option v-for="item of $d.YesOrNo" v-show="item.raw.ValueCN !== ''" :key="`IsDeleted${item.value}`"
:label="item.label" :value="item.value" />
</el-select>
</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">
@ -36,8 +50,8 @@
</template> </template>
<template slot="main-container"> <template slot="main-container">
<el-table ref="questionsList" v-loading="loading" v-adaptive="{ bottomOffset: 55 }" :data="list" stripe height="100" <el-table ref="questionsList" v-loading="loading" v-adaptive="{ bottomOffset: 55 }" :data="list" stripe
@sort-change="handleSortByColumn"> height="100" @sort-change="handleSortByColumn">
<el-table-column type="index" width="50" /> <el-table-column type="index" width="50" />
<!-- 项目编号 --> <!-- 项目编号 -->
@ -87,6 +101,36 @@
<!-- 中心名称 --> <!-- 中心名称 -->
<el-table-column prop="SiteName" :label="$t('trials:researchStaff:table:siteName')" show-overflow-tooltip <el-table-column prop="SiteName" :label="$t('trials:researchStaff:table:siteName')" show-overflow-tooltip
sortable="custom" min-width="100" /> sortable="custom" min-width="100" />
<!-- 状态 -->
<el-table-column prop="State" :label="$t('trials:researchRecord:table:status')" min-width="150"
sortable="custom" show-overflow-tooltip>
<template slot-scope="scope">
<el-tag v-if="scope.row.State === 0" type="primary">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
<el-tag v-if="scope.row.State === 1" type="info">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
<el-tag v-if="scope.row.State === 2" type="warning">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
<el-tag v-if="scope.row.State === 3" type="danger">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
</template>
</el-table-column>
<!-- 是否废除 -->
<!-- <el-table-column prop="IsDeleted" :label="$t('trials:researchRecord:table:isDeleted')" min-width="100"
sortable="custom" show-overflow-tooltip>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsDeleted" type="danger">{{
$fd('YesOrNo', scope.row.IsDeleted)
}}</el-tag>
<el-tag v-else type="primary">{{
$fd('YesOrNo', scope.row.IsDeleted)
}}</el-tag>
</template>
</el-table-column> -->
<!-- 联系人 --> <!-- 联系人 -->
<el-table-column prop="UserName" :label="$t('trials:researchForm:form:contactor')" show-overflow-tooltip <el-table-column prop="UserName" :label="$t('trials:researchForm:form:contactor')" show-overflow-tooltip
sortable="custom" min-width="100" /> sortable="custom" min-width="100" />
@ -165,7 +209,11 @@
<template v-if="!notShowFieldList.includes('EfficacyEvaluatorType')"> <template v-if="!notShowFieldList.includes('EfficacyEvaluatorType')">
<!-- 研究单位疗效评估人员类型 --> <!-- 研究单位疗效评估人员类型 -->
<el-table-column prop="EfficacyEvaluatorType" :label="$t('trials:researchForm:form:staffType')" <el-table-column prop="EfficacyEvaluatorType" :label="$t('trials:researchForm:form:staffType')"
show-overflow-tooltip /> show-overflow-tooltip>
<template slot-scope="scope">
{{ $fd('EfficacyEvaluatorType', scope.row.EfficacyEvaluatorType) }}
</template>
</el-table-column>
</template> </template>
<template v-if="!notShowFieldList.includes('IsFollowStudyParameters')"> <template v-if="!notShowFieldList.includes('IsFollowStudyParameters')">
<!-- 是否严格按照研究单位影像手册参数完成图像采集 --> <!-- 是否严格按照研究单位影像手册参数完成图像采集 -->
@ -213,6 +261,7 @@ const searchDataDefault = () => {
return { return {
SortField: '', SortField: '',
Asc: true, Asc: true,
State: "",
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,
TrialId: '', TrialId: '',

View File

@ -6,31 +6,33 @@
<!-- 中心编号 --> <!-- 中心编号 -->
<el-form-item :label="$t('trials:researchStaff:table:siteId')"> <el-form-item :label="$t('trials:researchStaff:table:siteId')">
<el-select v-model="searchData.TrialSiteId" clearable filterable style="width:120px;"> <el-select v-model="searchData.TrialSiteId" clearable filterable style="width:120px;">
<el-option <el-option v-for="(item, index) of siteOptions" :key="index" :label="item.TrialSiteCode"
v-for="(item,index) of siteOptions" :value="item.TrialSiteId" />
:key="index"
:label="item.TrialSiteCode"
:value="item.TrialSiteId"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 状态 -->
<el-form-item :label="$t('trials:researchRecord:table:status')">
<el-select v-model="searchData.State" clearable filterable style="width: 120px">
<el-option v-for="(item, index) of $d.ResearchRecord" :key="index" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
<!-- 是否废除 -->
<!-- <el-form-item :label="$t('trials:researchRecord:table:isDeleted')">
<el-select v-model="searchData.IsDeleted" clearable filterable style="width: 120px">
<el-option v-for="item of $d.YesOrNo" v-show="item.raw.ValueCN !== ''" :key="`IsDeleted${item.value}`"
:label="item.label" :value="item.value" />
</el-select>
</el-form-item> -->
<!-- 姓名 --> <!-- 姓名 -->
<el-form-item :label="$t('trials:researchStaff:table:Name')"> <el-form-item :label="$t('trials:researchStaff:table:Name')">
<el-input v-model="searchData.UserName" class="mr" clearable style="width:120px;" /> <el-input v-model="searchData.UserName" class="mr" clearable style="width:120px;" />
</el-form-item> </el-form-item>
<!-- 角色 --> <!-- 角色 -->
<el-form-item :label="$t('trials:researchStaff:table:role')"> <el-form-item :label="$t('trials:researchStaff:table:role')">
<el-select <el-select v-model="searchData.TrialRoleCode" style="width:120px;" clearable>
v-model="searchData.TrialRoleCode" <el-option v-for="item of dict.type.SiteSurvey_UserRoles" :key="item.value" :label="item.label"
style="width:120px;" :value="parseInt(item.raw.Code)" />
clearable
>
<el-option
v-for="item of dict.type.SiteSurvey_UserRoles"
:key="item.value"
:label="item.label"
:value="parseInt(item.raw.Code)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 单位 --> <!-- 单位 -->
@ -39,42 +41,19 @@
</el-form-item> </el-form-item>
<!-- 是否生成账号 --> <!-- 是否生成账号 -->
<el-form-item :label="$t('trials:researchStaff:table:isGenerateAccount')"> <el-form-item :label="$t('trials:researchStaff:table:isGenerateAccount')">
<el-select <el-select v-model="searchData.IsGenerateAccount" style="width:120px;" clearable>
v-model="searchData.IsGenerateAccount" <el-option v-for="item of $d.YesOrNo" :key="`IsGenerateAccount${item.value}`" :label="item.label"
style="width:120px;" :value="item.value" />
clearable
>
<el-option v-for="item of $d.YesOrNo" :key="`IsGenerateAccount${item.value}`" :label="item.label" :value="item.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 用户类型 --> <!-- 用户类型 -->
<el-form-item :label="$t('trials:researchStaff:table:userType')"> <el-form-item :label="$t('trials:researchStaff:table:userType')">
<el-select <el-select v-model="searchData.UserTypeId" style="width:120px;" clearable>
v-model="searchData.UserTypeId" <el-option v-for="item of userTypeOptions" :key="item.Id" :label="item.UserTypeShortName" :value="item.Id">
style="width:120px;"
clearable
>
<el-option
v-for="item of userTypeOptions"
:key="item.Id"
:label="item.UserTypeShortName"
:value="item.Id"
>
<span>{{ item.UserType }}</span> <span>{{ item.UserType }}</span>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 状态 -->
<!-- <el-form-item :label="$t('trials:researchStaff:table:status')">
<el-select v-model="searchData.State" clearable filterable style="width:120px;">
<el-option
v-for="(item,index) of researchUserState"
:key="index"
:label="item.label"
:value="item.value"
/>
</el-select>
</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">
@ -89,25 +68,15 @@
</el-form-item> </el-form-item>
<!-- 发邮件 --> <!-- 发邮件 -->
<el-form-item> <el-form-item>
<el-button <el-button v-hasPermi="['trials:trials-panel:attachments:site-research:summary-record:sendEmail']"
v-hasPermi="['trials:trials-panel:attachments:site-research:summary-record:sendEmail']" type="primary" icon="el-icon-message" :loading="sendEmailLoading" :disabled="selectArr.length === 0"
type="primary" @click="handleSendEmail">
icon="el-icon-message"
:loading="sendEmailLoading"
:disabled="selectArr.length === 0"
@click="handleSendEmail"
>
{{ $t('trials:researchRecord:dialogButton:sendEmail') }} {{ $t('trials:researchRecord:dialogButton:sendEmail') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
<!-- 导出 --> <!-- 导出 -->
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-download" :disabled="list.length === 0" @click="handleExport">
type="primary"
icon="el-icon-download"
:disabled="list.length === 0"
@click="handleExport"
>
{{ $t('common:button:export') }} {{ $t('common:button:export') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
@ -116,96 +85,74 @@
<template slot="main-container"> <template slot="main-container">
<!-- 系统文件列表 --> <!-- 系统文件列表 -->
<el-table <el-table ref="researchUsers" v-loading="loading" v-adaptive="{ bottomOffset: 55 }" :data="list" stripe
ref="researchUsers" height="100" @selection-change="handleSelectChange" @sort-change="handleSortByColumn">
v-loading="loading" <el-table-column type="selection" width="50" :selectable="handleSelectTable" />
v-adaptive="{bottomOffset:55}"
:data="list"
stripe
height="100"
@selection-change="handleSelectChange"
@sort-change="handleSortByColumn"
>
<el-table-column
type="selection"
width="50"
:selectable="handleSelectTable"
/>
<el-table-column type="index" width="50" /> <el-table-column type="index" width="50" />
<!-- 中心编号 --> <!-- 中心编号 -->
<el-table-column <el-table-column prop="TrialSiteSurvey.TrialSiteCode" :label="$t('trials:researchStaff:table:siteId')"
prop="TrialSiteSurvey.TrialSiteCode" show-overflow-tooltip sortable="custom" min-width="100">
:label="$t('trials:researchStaff:table:siteId')"
show-overflow-tooltip
sortable="custom"
min-width="100"
>
<template slot-scope="scope">{{ `${scope.row.TrialSiteSurvey.TrialSiteCode}` }}</template> <template slot-scope="scope">{{ `${scope.row.TrialSiteSurvey.TrialSiteCode}` }}</template>
</el-table-column> </el-table-column>
<!-- 中心名称 --> <!-- 中心名称 -->
<el-table-column <el-table-column prop="TrialSiteSurvey.SiteName" :label="$t('trials:researchStaff:table:siteName')"
prop="TrialSiteSurvey.SiteName" show-overflow-tooltip sortable="custom" min-width="120">
:label="$t('trials:researchStaff:table:siteName')"
show-overflow-tooltip
sortable="custom"
min-width="120"
>
<template slot-scope="scope">{{ `${scope.row.TrialSiteSurvey.SiteName}` }}</template> <template slot-scope="scope">{{ `${scope.row.TrialSiteSurvey.SiteName}` }}</template>
</el-table-column> </el-table-column>
<!-- 状态 -->
<el-table-column prop="State" :label="$t('trials:researchRecord:table:status')" min-width="150"
sortable="custom" show-overflow-tooltip>
<template slot-scope="scope">
<el-tag v-if="scope.row.State === 0" type="primary">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
<el-tag v-if="scope.row.State === 1" type="info">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
<el-tag v-if="scope.row.State === 2" type="warning">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
<el-tag v-if="scope.row.State === 3" type="danger">{{
$fd('ResearchRecord', scope.row.State)
}}</el-tag>
</template>
</el-table-column>
<!-- 是否废除 -->
<!-- <el-table-column prop="IsDeleted" :label="$t('trials:researchRecord:table:isDeleted')" min-width="100"
sortable="custom" show-overflow-tooltip>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsDeleted" type="danger">{{
$fd('YesOrNo', scope.row.IsDeleted)
}}</el-tag>
<el-tag v-else type="primary">{{
$fd('YesOrNo', scope.row.IsDeleted)
}}</el-tag>
</template>
</el-table-column> -->
<!-- 姓名 --> <!-- 姓名 -->
<el-table-column <el-table-column prop="LastName" :label="$t('trials:researchStaff:table:Name')" show-overflow-tooltip
prop="LastName" sortable="custom" min-width="100">
:label="$t('trials:researchStaff:table:Name')"
show-overflow-tooltip
sortable="custom"
min-width="100"
>
<template slot-scope="scope">{{ `${scope.row.LastName} / ${scope.row.FirstName}` }}</template> <template slot-scope="scope">{{ `${scope.row.LastName} / ${scope.row.FirstName}` }}</template>
</el-table-column> </el-table-column>
<!-- 角色 --> <!-- 角色 -->
<el-table-column <el-table-column prop="TrialRoleCode" :label="$t('trials:researchStaff:table:role')" show-overflow-tooltip
prop="TrialRoleCode" sortable="custom" min-width="100">
:label="$t('trials:researchStaff:table:role')"
show-overflow-tooltip
sortable="custom"
min-width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('SiteSurvey_UserRoles',scope.row.TrialRoleCode) }} {{ $fd('SiteSurvey_UserRoles', scope.row.TrialRoleCode) }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 电话号码 --> <!-- 电话号码 -->
<el-table-column <el-table-column prop="Phone" :label="$t('trials:researchStaff:table:phone')" show-overflow-tooltip
prop="Phone" sortable="custom" min-width="120" />
:label="$t('trials:researchStaff:table:phone')"
show-overflow-tooltip
sortable="custom"
min-width="120"
/>
<!-- 邮箱 --> <!-- 邮箱 -->
<el-table-column <el-table-column prop="Email" :label="$t('trials:researchStaff:table:email')" show-overflow-tooltip
prop="Email" sortable="custom" min-width="150" />
:label="$t('trials:researchStaff:table:email')"
show-overflow-tooltip
sortable="custom"
min-width="150"
/>
<!-- 单位 --> <!-- 单位 -->
<el-table-column <el-table-column prop="OrganizationName" :label="$t('trials:researchStaff:table:organization')"
prop="OrganizationName" show-overflow-tooltip sortable="custom" min-width="100" />
:label="$t('trials:researchStaff:table:organization')"
show-overflow-tooltip
sortable="custom"
min-width="100"
/>
<!-- 是否生成账号 --> <!-- 是否生成账号 -->
<el-table-column <el-table-column prop="IsGenerateAccount" :label="$t('trials:researchStaff:table:isGenerateAccount')"
prop="IsGenerateAccount" show-overflow-tooltip sortable="custom" min-width="130">
:label="$t('trials:researchStaff:table:isGenerateAccount')"
show-overflow-tooltip
sortable="custom"
min-width="130"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('YesOrNo', scope.row.IsGenerateAccount) }} {{ $fd('YesOrNo', scope.row.IsGenerateAccount) }}
</template> </template>
@ -223,21 +170,11 @@
<!-- </el-table-column>--> <!-- </el-table-column>-->
<!-- 用户类型 --> <!-- 用户类型 -->
<el-table-column <el-table-column prop="UserType" :label="$t('trials:researchStaff:table:userType')" show-overflow-tooltip
prop="UserType" sortable="custom" min-width="100" />
:label="$t('trials:researchStaff:table:userType')"
show-overflow-tooltip
sortable="custom"
min-width="100"
/>
<!-- 是否加入 --> <!-- 是否加入 -->
<el-table-column <el-table-column prop="IsJoin" :label="$t('trials:researchStaff:table:isJoin')" show-overflow-tooltip
prop="IsJoin" sortable="custom" min-width="100">
:label="$t('trials:researchStaff:table:isJoin')"
show-overflow-tooltip
sortable="custom"
min-width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.IsJoin" type="info">{{ $fd('IsJoin', scope.row.IsJoin) }}</el-tag> <el-tag v-if="scope.row.IsJoin" type="info">{{ $fd('IsJoin', scope.row.IsJoin) }}</el-tag>
<el-tag v-else type="danger">{{ $fd('IsJoin', scope.row.IsJoin) }}</el-tag> <el-tag v-else type="danger">{{ $fd('IsJoin', scope.row.IsJoin) }}</el-tag>
@ -246,7 +183,8 @@
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" /> <pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
@pagination="getList" />
</template> </template>
</BaseContainer> </BaseContainer>
</template> </template>