部分问题修复
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2024-04-28 17:08:38 +08:00
parent 06b7149b26
commit 99318cdf3b
30 changed files with 331 additions and 158 deletions

View File

@ -124,10 +124,11 @@
<el-date-picker <el-date-picker
v-if="item.type === 'Daterange'" v-if="item.type === 'Daterange'"
v-model="searchData[item.prop]" v-model="searchData[item.prop]"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
:style="{ width: item.width }"
clearable clearable
/> />
<!-- 滑块 --> <!-- 滑块 -->

View File

@ -123,14 +123,19 @@ export default {
type: "warning", type: "warning",
showCancelButton: false, showCancelButton: false,
} }
).then(() => { )
.then(() => {
this.$emit("update:modelData", this.visit); this.$emit("update:modelData", this.visit);
let data = { let data = {
StudyId: this.studyData.StudyId || this.studyData.SCPStudyId, StudyId: this.studyData.StudyId || this.studyData.SCPStudyId,
VisitId: this.visit, VisitId: this.visit,
}; };
this.$emit("putVisit", data); this.$emit("putVisit", data);
})
.catch((err) => {
this.visit = this.modelData;
}); });
return false;
} }
return true; return true;
} catch (err) { } catch (err) {

View File

@ -6,6 +6,7 @@ import 'nprogress/nprogress.css'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import Vue from 'vue' import Vue from 'vue'
import { OSSclient } from './utils/oss' import { OSSclient } from './utils/oss'
import moment from "moment";
// import getPageTitle from '@/utils/get-page-title' // import getPageTitle from '@/utils/get-page-title'
NProgress.configure({ showSpinner: false }) NProgress.configure({ showSpinner: false })
@ -19,6 +20,8 @@ Vue.prototype.$setOpenWindow = (openWindow) => {
} }
Vue.prototype.$openWindow = openWindow; Vue.prototype.$openWindow = openWindow;
} }
// 时间格式化
Vue.prototype.$moment = moment;
router.beforeEach(async (to, from, next) => { router.beforeEach(async (to, from, next) => {
NProgress.start() NProgress.start()
Vue.prototype.$setOpenWindow(); Vue.prototype.$setOpenWindow();

View File

@ -10,39 +10,53 @@
> >
<el-card class="Basic" shadow="never" size="small"> <el-card class="Basic" shadow="never" size="small">
<el-form-item label="医院名称: " prop="HospitalName"> <el-form-item label="医院名称: " prop="HospitalName">
<el-input v-model.trim="hospital.HospitalName" :disabled="disabled" /> <el-input
v-model.trim="hospital.HospitalName"
:disabled="disabled"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item label="医院编码: " prop="HospitalCode"> <el-form-item label="医院编码: " prop="HospitalCode">
<el-input <el-input
v-model.trim="hospital.HospitalCode" v-model.trim="hospital.HospitalCode"
:disabled="disabled || hasPermi(['role:oa'])" :disabled="disabled || hasPermi(['role:oa'])"
clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="医院别称: " prop="HospitalAliasName"> <el-form-item label="医院别称: " prop="HospitalAliasName">
<el-input v-model="hospital.HospitalAliasName" :disabled="disabled" /> <el-input
v-model="hospital.HospitalAliasName"
:disabled="disabled"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item label="国家: " prop="Country"> <el-form-item label="国家: " prop="Country">
<el-input v-model="hospital.Country" :disabled="disabled" /> <el-input v-model="hospital.Country" :disabled="disabled" clearable />
</el-form-item> </el-form-item>
<el-form-item label="省份: " prop="Province"> <el-form-item label="省份: " prop="Province">
<el-input v-model="hospital.Province" :disabled="disabled" /> <el-input
v-model="hospital.Province"
:disabled="disabled"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item label="城市: " prop="City"> <el-form-item label="城市: " prop="City">
<el-input v-model="hospital.City" :disabled="disabled" /> <el-input v-model="hospital.City" :disabled="disabled" clearable />
</el-form-item> </el-form-item>
<el-form-item label="地址: " prop="Address"> <el-form-item label="地址: " prop="Address">
<el-input v-model="hospital.Address" :disabled="disabled" /> <el-input v-model="hospital.Address" :disabled="disabled" clearable />
</el-form-item> </el-form-item>
<el-form-item label="联系方式: " prop="Phone"> <el-form-item label="联系方式: " prop="Phone">
<el-input v-model="hospital.Phone" :disabled="disabled" /> <el-input v-model="hospital.Phone" :disabled="disabled" clearable />
</el-form-item> </el-form-item>
<el-form-item label="未激活项目数: " prop="TrialKeepCount"> <el-form-item label="未激活项目数: " prop="TrialKeepCount">
<el-input <el-input
v-model="hospital.TrialKeepCount" v-model="hospital.TrialKeepCount"
:disabled="disabled || hasPermi(['role:oa'])" :disabled="disabled || hasPermi(['role:oa'])"
type="number" type="number"
clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="是否可以连接互联网: "> <el-form-item label="是否可以连接互联网: ">

View File

@ -24,20 +24,20 @@
class="my_new_pwd" class="my_new_pwd"
prop="UserName" prop="UserName"
> >
<el-input v-model="user.UserName" /> <el-input v-model="user.UserName" clearable />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="$t('system:userlist:table:LastName')" :label="$t('system:userlist:table:LastName')"
prop="LastName" prop="LastName"
> >
<el-input v-model="user.LastName" /> <el-input v-model="user.LastName" clearable />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="$t('system:userlist:table:FirstName')" :label="$t('system:userlist:table:FirstName')"
prop="FirstName" prop="FirstName"
> >
<el-input v-model="user.FirstName" /> <el-input v-model="user.FirstName" clearable />
</el-form-item> </el-form-item>
<!-- <el-form-item <!-- <el-form-item
:label="$t('system:userlist:table:Gender')" :label="$t('system:userlist:table:Gender')"
@ -50,10 +50,10 @@
</el-radio-group> </el-radio-group>
</el-form-item> --> </el-form-item> -->
<el-form-item :label="$t('system:userlist:table:Email')" prop="EMail"> <el-form-item :label="$t('system:userlist:table:Email')" prop="EMail">
<el-input v-model="user.EMail" /> <el-input v-model="user.EMail" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('system:userlist:table:Phone')" prop="Phone"> <el-form-item :label="$t('system:userlist:table:Phone')" prop="Phone">
<el-input v-model="user.Phone" /> <el-input v-model="user.Phone" clearable />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
v-if="type == 1" v-if="type == 1"
@ -79,6 +79,7 @@
placeholder="" placeholder=""
style="width: 100%" style="width: 100%"
:disabled="user.CanEditUserType === false" :disabled="user.CanEditUserType === false"
clearable
> >
<template v-for="(userType, key) of userTypeOptions"> <template v-for="(userType, key) of userTypeOptions">
<el-option <el-option
@ -128,6 +129,7 @@
<el-input <el-input
v-model="user.OrganizationName" v-model="user.OrganizationName"
:disabled="user.IsZhiZhun === true" :disabled="user.IsZhiZhun === true"
clearable
/> />
</el-form-item> </el-form-item>
@ -135,13 +137,13 @@
:label="$t('system:userlist:table:Department')" :label="$t('system:userlist:table:Department')"
prop="DepartmentName" prop="DepartmentName"
> >
<el-input v-model="user.DepartmentName" /> <el-input v-model="user.DepartmentName" clearable />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="$t('system:userlist:table:Position')" :label="$t('system:userlist:table:Position')"
prop="PositionName" prop="PositionName"
> >
<el-input v-model="user.PositionName" /> <el-input v-model="user.PositionName" clearable />
</el-form-item> </el-form-item>
</el-card> </el-card>
<el-form-item> <el-form-item>

View File

@ -223,7 +223,7 @@ export default {
type: "Select", type: "Select",
label: this.$t("system:userlist:label:InternalOrExternal"), label: this.$t("system:userlist:label:InternalOrExternal"),
prop: "IsZhiZhun", prop: "IsZhiZhun",
width: "100px", width: "150px",
options: [ options: [
{ {
label: this.$t( label: this.$t(
@ -246,7 +246,7 @@ export default {
type: "Select", type: "Select",
label: this.$t("system:userlist:label:Status"), label: this.$t("system:userlist:label:Status"),
prop: "UserState", prop: "UserState",
width: "100px", width: "150px",
options: [ options: [
{ label: this.$t("system:userlist:label:Status:Enable"), value: 1 }, { label: this.$t("system:userlist:label:Status:Enable"), value: 1 },
{ {
@ -262,7 +262,7 @@ export default {
type: "Select", type: "Select",
label: this.$t("system:userlist:label:UserType"), label: this.$t("system:userlist:label:UserType"),
prop: "UserType", prop: "UserType",
width: "100px", width: "150px",
options: [], // options: [], //
props: { label: "UserType", value: "Id" }, // props: { label: "UserType", value: "Id" }, //
placeholder: "", placeholder: "",
@ -271,7 +271,7 @@ export default {
type: "Daterange", type: "Daterange",
label: this.$t("system:userlist:label:CreateTime"), label: this.$t("system:userlist:label:CreateTime"),
prop: "CreateTimeArr", prop: "CreateTimeArr",
width: "100px", width: "400px",
placeholder: "", placeholder: "",
}, },
], ],
@ -311,9 +311,9 @@ export default {
this.searchData.CreateTimeArr[1] this.searchData.CreateTimeArr[1]
) { ) {
this.searchData.BeginCreateTime = this.searchData.BeginCreateTime =
this.searchData.CreateTimeArr[0].toISOString(); this.searchData.CreateTimeArr[0];
this.searchData.EndCreateTime = this.searchData.EndCreateTime =
this.searchData.CreateTimeArr[1].toISOString(); this.searchData.CreateTimeArr[1];
} else { } else {
this.searchData.BeginCreateTime = null; this.searchData.BeginCreateTime = null;
this.searchData.EndCreateTime = null; this.searchData.EndCreateTime = null;

View File

@ -43,6 +43,7 @@
<el-select <el-select
v-model="submitMessage.SubjectId" v-model="submitMessage.SubjectId"
clearable clearable
filterable
:disabled="status === 'visit' || !submitMessage.TrialId" :disabled="status === 'visit' || !submitMessage.TrialId"
style="width: 300px" style="width: 300px"
> >
@ -131,7 +132,7 @@
clearable clearable
@input=" @input="
addSubjectForm.SubjectCode = addSubjectForm.SubjectCode.replace( addSubjectForm.SubjectCode = addSubjectForm.SubjectCode.replace(
/[^0-9]/g, /[^0-9a-zA-Z]/g,
'' ''
) )
" "
@ -223,6 +224,22 @@ export default {
message: this.$t("trials:subject:format:notSubject"), message: this.$t("trials:subject:format:notSubject"),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
{
validator: (rule, value, callback) => {
let flag = this.subjectIdList.some(
(item) => item.SubjectCode === value
);
if (flag) {
callback(
new Error(this.$t("trials:addSubject:format:hasSubject"))
);
} else {
callback();
}
},
message: this.$t("trials:addSubject:format:hasSubject"),
trigger: ["blur", "change"],
},
], ],
}, },
}; };
@ -271,13 +288,6 @@ export default {
try { try {
let validate = await this.$refs.addSubjectForm.validate(); let validate = await this.$refs.addSubjectForm.validate();
if (!validate) return; if (!validate) return;
let flag = this.subjectIdList.some(
(item) => item.SubjectCode === this.addSubjectForm.SubjectCode
);
if (flag)
return this.$message.warning(
this.$t("trials:addSubject:format:hasSubject")
);
let subject = { let subject = {
SubjectCode: this.addSubjectForm.SubjectCode, SubjectCode: this.addSubjectForm.SubjectCode,
SubejctId: this.addSubjectForm.SubjectCode, SubejctId: this.addSubjectForm.SubjectCode,

View File

@ -8,7 +8,7 @@
<el-form-item :label="$t('trials:uploadedDicoms:table:studyDate')"> <el-form-item :label="$t('trials:uploadedDicoms:table:studyDate')">
<el-date-picker <el-date-picker
v-model="dateValue" v-model="dateValue"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -60,11 +60,19 @@
stripe stripe
height="100" height="100"
highlight-current-row highlight-current-row
@select="handleSelect"
@selection-change="handleSelectChange" @selection-change="handleSelectChange"
@sort-change="handleSortByColumn" @sort-change="handleSortByColumn"
:default-sort="{ prop: 'StudyTime', order: 'ascending' }" :default-sort="{ prop: 'StudyTime', order: 'ascending' }"
> >
<el-table-column type="selection" align="center" width="45" /> <el-table-column
type="selection"
align="center"
:selectable="
(row) => row.SubjectVisitId && Number(row.SubmitState) <= 1
"
width="45"
/>
<el-table-column type="index" width="40" /> <el-table-column type="index" width="40" />
<!--患者编号--> <!--患者编号-->
<el-table-column <el-table-column
@ -180,13 +188,13 @@
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination <!-- <pagination
class="page" class="page"
:total="total" :total="total"
:page.sync="searchData.PageIndex" :page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize" :limit.sync="searchData.PageSize"
@pagination="getList" @pagination="getList"
/> /> -->
</div> </div>
</template> </template>
<script> <script>
@ -207,8 +215,8 @@ const defaultSearchData = () => {
LatestStudyTime: null, LatestStudyTime: null,
Asc: true, Asc: true,
SortField: "StudyTime", SortField: "StudyTime",
PageIndex: 1, // PageIndex: 1,
PageSize: 20, // PageSize: 20,
}; };
}; };
export default { export default {
@ -246,6 +254,7 @@ export default {
addLoading: false, addLoading: false,
// 访 // 访
tableSelectData: [], // tableSelectData: [], //
selectFlag: false,
btnLoading2: false, btnLoading2: false,
visitStatus: "confirm", // 访 confirm submit visitStatus: "confirm", // 访 confirm submit
}; };
@ -380,8 +389,12 @@ export default {
} }
if (this.dateValue[0] && this.dateValue[1]) { if (this.dateValue[0] && this.dateValue[1]) {
data.earliestStudyTime = this.dateValue[0].toISOString(); data.earliestStudyTime = this.$moment(this.dateValue[0]).format(
data.latestStudyTime = this.dateValue[1].toISOString(); "YYYY-MM-DD HH:mm:ss"
);
data.latestStudyTime = this.$moment(this.dateValue[1]).format(
"YYYY-MM-DD HH:mm:ss"
);
} else { } else {
data.EarliestStudyTime = null; data.EarliestStudyTime = null;
data.LatestStudyTime = null; data.LatestStudyTime = null;
@ -433,9 +446,43 @@ export default {
}, },
// //
handleSelectChange(selection) { handleSelectChange(selection) {
// console.log(selection); // console.log(selection, "handleSelectChange");
this.tableSelectData = selection; this.tableSelectData = selection;
}, },
//
handleSelect(selection, row) {
if (this.selectFlag) return;
this.selectFlag = true;
// console.log(selection, row, "handleSelect");
//
let flag = selection.some((item) => item.SCPStudyId === row.SCPStudyId);
let arr = [...selection];
if (flag) {
this.list.forEach((item) => {
if (
item.SubjectVisitId === row.SubjectVisitId &&
!arr.some((data) => data.SCPStudyId === item.SCPStudyId)
) {
arr.push(item);
}
});
} else {
for (let i = 0; i < arr.length; i++) {
let item = arr[i];
if (item.SubjectVisitId === row.SubjectVisitId) {
arr.splice(i, 1);
i--;
}
}
}
this.$refs.confirmVisitList.clearSelection();
arr.forEach((item, index) => {
this.$refs.confirmVisitList.toggleRowSelection(item, true);
if (index === arr.length - 1) {
this.selectFlag = false;
}
});
},
// //
handleAllSelect() { handleAllSelect() {
this.$refs.confirmVisitList.toggleAllSelection(); this.$refs.confirmVisitList.toggleAllSelection();

View File

@ -81,7 +81,7 @@
{{ item.ResearchProgramNo }} {{ item.ResearchProgramNo }}
<br /> <br />
{{ $t("trials:trials-list:table:sponsor") }}: {{ $t("trials:trials-list:table:sponsor") }}:
{{ item.SponsorName }} {{ item.Sponsor }}
<br /> <br />
{{ $t("trials:trials-list:table:experimentName") }}: {{ $t("trials:trials-list:table:experimentName") }}:
{{ item.ExperimentName }} {{ item.ExperimentName }}
@ -114,7 +114,7 @@
width: 80px; width: 80px;
" "
> >
{{ item.SponsorName }} {{ item.Sponsor }}
</div> </div>
<div <div
style=" style="
@ -144,7 +144,7 @@
{{ data.ExperimentName }} {{ data.ExperimentName }}
<br /> <br />
{{ $t("trials:trials-list:table:sponsor") }}: {{ $t("trials:trials-list:table:sponsor") }}:
{{ data.SponsorName }} {{ data.Sponsor }}
</div> </div>
<span> {{ data.ResearchProgramNo }}</span> <span> {{ data.ResearchProgramNo }}</span>
</el-tooltip> </el-tooltip>
@ -236,7 +236,7 @@ export default {
return ( return (
reg.test(o.ResearchProgramNo) || reg.test(o.ResearchProgramNo) ||
reg.test(o.ExperimentName) || reg.test(o.ExperimentName) ||
reg.test(o.SponsorName) reg.test(o.Sponsor)
); );
}); });
}, },
@ -272,7 +272,8 @@ export default {
} }
.trials-select-box { .trials-select-box {
width: 100%; width: 100%;
height: 400px; max-height: 400px;
height: auto;
overflow-y: auto; overflow-y: auto;
padding-top: 76px; padding-top: 76px;
} }

View File

@ -33,7 +33,7 @@
<el-form-item :label="$t('trials:uploadedDicoms:table:studyDate')"> <el-form-item :label="$t('trials:uploadedDicoms:table:studyDate')">
<el-date-picker <el-date-picker
v-model="dateValue" v-model="dateValue"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -218,8 +218,8 @@ export default {
}); });
data.PatientId = this.Patient.PatientId; data.PatientId = this.Patient.PatientId;
if (this.dateValue[0] && this.dateValue[1]) { if (this.dateValue[0] && this.dateValue[1]) {
data.EarliestStudyTime = this.dateValue[0].toISOString(); data.EarliestStudyTime = this.dateValue[0];
data.LatestStudyTime = this.dateValue[1].toISOString(); data.LatestStudyTime = this.dateValue[1];
} else { } else {
data.EarliestStudyTime = null; data.EarliestStudyTime = null;
data.LatestStudyTime = null; data.LatestStudyTime = null;

View File

@ -69,7 +69,7 @@
<el-form-item :label="$t('trials:inspection:table:latestReceiveTime')"> <el-form-item :label="$t('trials:inspection:table:latestReceiveTime')">
<el-date-picker <el-date-picker
v-model="dateValue" v-model="dateValue"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -396,8 +396,8 @@ export default {
data[key] = this.searchData[key]; data[key] = this.searchData[key];
}); });
if (this.dateValue[0] && this.dateValue[1]) { if (this.dateValue[0] && this.dateValue[1]) {
data.BeginPushTime = this.dateValue[0].toISOString(); data.BeginPushTime = this.dateValue[0];
data.EndPushTime = this.dateValue[1].toISOString(); data.EndPushTime = this.dateValue[1];
} else { } else {
data.BeginPushTime = null; data.BeginPushTime = null;
data.EndPushTime = null; data.EndPushTime = null;

View File

@ -123,7 +123,7 @@
<el-form-item :label="$t('trials:uploadedDicoms:table:studyDate')"> <el-form-item :label="$t('trials:uploadedDicoms:table:studyDate')">
<el-date-picker <el-date-picker
v-model="dateValue" v-model="dateValue"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -315,8 +315,8 @@ export default {
data.SujectVisitId = this.data.SubjectVisitId; data.SujectVisitId = this.data.SubjectVisitId;
data.TrialId = this.$route.query.trialId; data.TrialId = this.$route.query.trialId;
if (this.dateValue[0] && this.dateValue[1]) { if (this.dateValue[0] && this.dateValue[1]) {
data.EarliestStudyTime = this.dateValue[0].toISOString(); data.EarliestStudyTime = this.dateValue[0];
data.LatestStudyTime = this.dateValue[0].toISOString(); data.LatestStudyTime = this.dateValue[1];
} }
try { try {
this.bottomLoading = true; this.bottomLoading = true;

View File

@ -47,7 +47,7 @@
<el-form-item :label="$t('trials:trials-panel:table:ScanDate')"> <el-form-item :label="$t('trials:trials-panel:table:ScanDate')">
<el-date-picker <el-date-picker
v-model="dateValue" v-model="dateValue"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -377,8 +377,8 @@ export default {
}); });
data.TrialId = this.$route.query.trialId; data.TrialId = this.$route.query.trialId;
if (this.dateValue[0] && this.dateValue[1]) { if (this.dateValue[0] && this.dateValue[1]) {
data.BeginStudyTime = this.dateValue[0].toISOString(); data.BeginStudyTime = this.dateValue[0];
data.EndStudyTime = this.dateValue[1].toISOString(); data.EndStudyTime = this.dateValue[1];
} else { } else {
data.BeginStudyTime = null; data.BeginStudyTime = null;
data.EndStudyTime = null; data.EndStudyTime = null;

View File

@ -67,7 +67,7 @@
<el-form-item :label="$t('trials:reviewTrack:table:signTime')"> <el-form-item :label="$t('trials:reviewTrack:table:signTime')">
<el-date-picker <el-date-picker
v-model="dateValue" v-model="dateValue"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -278,8 +278,8 @@ export default {
}); });
data.TrialId = this.$route.query.trialId; data.TrialId = this.$route.query.trialId;
if (this.dateValue[0] && this.dateValue[1]) { if (this.dateValue[0] && this.dateValue[1]) {
data.earliestStudyTime = this.dateValue[0].toISOString(); data.earliestStudyTime = this.dateValue[0];
data.latestStudyTime = this.dateValue[1].toISOString(); data.latestStudyTime = this.dateValue[1];
} else { } else {
data.EarliestStudyTime = null; data.EarliestStudyTime = null;
data.LatestStudyTime = null; data.LatestStudyTime = null;

View File

@ -13,6 +13,7 @@
<!-- 受试者编号 --> <!-- 受试者编号 -->
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')"> <el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
<el-input <el-input
clearable
v-model="searchData.SubjectCode" v-model="searchData.SubjectCode"
style="width: 100px" style="width: 100px"
/> />
@ -20,6 +21,7 @@
<!-- 患者编号 --> <!-- 患者编号 -->
<el-form-item :label="$t('trials:uploadDicomList:table:pId')"> <el-form-item :label="$t('trials:uploadDicomList:table:pId')">
<el-input <el-input
clearable
v-model="searchData.PatientIdStr" v-model="searchData.PatientIdStr"
style="width: 140px" style="width: 140px"
/> />
@ -29,6 +31,7 @@
:label="$t('trials:uploadDicomList:table:patientName')" :label="$t('trials:uploadDicomList:table:patientName')"
> >
<el-input <el-input
clearable
v-model="searchData.PatientName" v-model="searchData.PatientName"
style="width: 140px" style="width: 140px"
/> />
@ -38,7 +41,11 @@
style="margin-bottom: 10px" style="margin-bottom: 10px"
:label="$t('trials:reviewTrack:table:taskName')" :label="$t('trials:reviewTrack:table:taskName')"
> >
<el-input v-model="searchData.TaskName" style="width: 140px" /> <el-input
clearable
v-model="searchData.TaskName"
style="width: 140px"
/>
</el-form-item> </el-form-item>
<!-- 任务状态 --> <!-- 任务状态 -->
<el-form-item :label="$t('trials:readTask:table:taskState')"> <el-form-item :label="$t('trials:readTask:table:taskState')">

View File

@ -377,8 +377,9 @@ export default {
this.viewVisible = true; this.viewVisible = true;
let href = this.OSSclientConfig.basePath + res.Result; let href = this.OSSclientConfig.basePath + res.Result;
let fileName = // let fileName =
res.Result.split("/")[res.Result.split("/").length - 1]; // res.Result.split("/")[res.Result.split("/").length - 1];
let fileName = '评估报告.pdf';
this.fileData = { this.fileData = {
path:href, path:href,
name:fileName name:fileName

View File

@ -7,33 +7,38 @@
<el-form :inline="true"> <el-form :inline="true">
<!-- 受试者编号 --> <!-- 受试者编号 -->
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')"> <el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
<el-input v-model="searchData.SubjectCode" style="width: 100px" /> <el-input
v-model="searchData.SubjectCode"
style="width: 100px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 患者编号 --> <!-- 患者编号 -->
<el-form-item :label="$t('trials:uploadDicomList:table:pId')"> <el-form-item :label="$t('trials:uploadDicomList:table:pId')">
<el-input v-model="searchData.PatientIdStr" style="width: 140px" /> <el-input
v-model="searchData.PatientIdStr"
style="width: 140px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 患者姓名 --> <!-- 患者姓名 -->
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')"> <el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
<el-input v-model="searchData.PatientName" style="width: 140px" /> <el-input
v-model="searchData.PatientName"
style="width: 140px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 访视名称 --> <!-- 访视名称 -->
<el-form-item <el-form-item
style="margin-bottom: 10px" style="margin-bottom: 10px"
:label="$t('trials:adReview:table:visitName')" :label="$t('trials:adReview:table:visitName')"
> >
<el-select <el-input
v-model="searchData.TaskState" v-model="searchData.TaskName"
style="width: 140px"
clearable clearable
style="width: 120px"
>
<el-option
v-for="i of $d.TaskState"
:key="'TaskState' + i.label"
:value="i.value"
:label="i.label"
/> />
</el-select>
</el-form-item> </el-form-item>
<!-- 任务状态 --> <!-- 任务状态 -->
<el-form-item <el-form-item
@ -74,11 +79,12 @@
<!-- 签名时间 --> <!-- 签名时间 -->
<el-form-item :label="$t('trials:readTask:table:signTime')"> <el-form-item :label="$t('trials:readTask:table:signTime')">
<el-date-picker <el-date-picker
v-model="searchData.date" v-model="dateValue"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
clearable
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
@ -599,6 +605,7 @@ const searchDataDefault = () => {
TaskState: null, TaskState: null,
ReadingCategory: null, ReadingCategory: null,
PIAuditState: null, PIAuditState: null,
TaskName: null,
}; };
}; };
export default { export default {
@ -608,6 +615,7 @@ export default {
return { return {
searchData: searchDataDefault(), searchData: searchDataDefault(),
list: [], list: [],
dateValue: [],
total: 0, total: 0,
loading: false, loading: false,
btnLoading: false, btnLoading: false,
@ -701,6 +709,7 @@ export default {
}, },
handleReset() { handleReset() {
this.searchData = searchDataDefault(); this.searchData = searchDataDefault();
this.dateValue = [];
this.getList(); this.getList();
}, },
handleReadImage(row) { handleReadImage(row) {

View File

@ -1,21 +1,30 @@
<template> <template>
<BaseContainer <BaseContainer v-loading="loading" style="background-color: #fff">
v-loading="loading"
style="background-color: #fff"
>
<div slot="search-container"> <div slot="search-container">
<el-form :inline="true"> <el-form :inline="true">
<!-- 受试者编号 --> <!-- 受试者编号 -->
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')"> <el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
<el-input v-model="searchData.SubjectCode" style="width: 100px" /> <el-input
v-model="searchData.SubjectCode"
style="width: 150px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 患者编号 --> <!-- 患者编号 -->
<el-form-item :label="$t('trials:uploadDicomList:table:pId')"> <el-form-item :label="$t('trials:uploadDicomList:table:pId')">
<el-input v-model="searchData.PatientIdStr" style="width: 140px" /> <el-input
v-model="searchData.PatientIdStr"
style="width: 150px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 患者姓名 --> <!-- 患者姓名 -->
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')"> <el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
<el-input v-model="searchData.PatientName" style="width: 140px" /> <el-input
v-model="searchData.SubjectName"
style="width: 150px"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<!-- 查询 --> <!-- 查询 -->
@ -72,7 +81,7 @@
</el-table-column> </el-table-column>
<!-- 患者姓名 --> <!-- 患者姓名 -->
<el-table-column <el-table-column
prop="SubjectShortName" prop="SubjectName"
min-width="100" min-width="100"
:label="$t('trials:uploadDicomList:table:patientName')" :label="$t('trials:uploadDicomList:table:patientName')"
show-overflow-tooltip show-overflow-tooltip
@ -155,7 +164,6 @@ import {
getIRUnReadSubjectTaskList, getIRUnReadSubjectTaskList,
verifyReadingRestTime, verifyReadingRestTime,
} from "@/api/trials"; } from "@/api/trials";
import { getTrialCriterionList } from "@/api/trials/reading";
import { claimOrCancelSubject } from "@/api/reading"; import { claimOrCancelSubject } from "@/api/reading";
import BaseContainer from "@/components/BaseContainer"; import BaseContainer from "@/components/BaseContainer";
import Pagination from "@/components/Pagination"; import Pagination from "@/components/Pagination";
@ -164,7 +172,7 @@ const searchDataDefault = () => {
return { return {
SubjectCode: "", SubjectCode: "",
PatientIdStr: null, PatientIdStr: null,
PatientName: null, SubjectName: null,
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,
}; };
@ -174,8 +182,8 @@ export default {
props: { props: {
trialCriterionInfo: { trialCriterionInfo: {
type: Object, type: Object,
required: true required: true,
} },
}, },
components: { BaseContainer, Pagination }, components: { BaseContainer, Pagination },
data() { data() {
@ -198,7 +206,7 @@ export default {
mounted() { mounted() {
window.addEventListener("message", this.receiveMsg); window.addEventListener("message", this.receiveMsg);
this.trialId = this.$route.query.trialId; this.trialId = this.$route.query.trialId;
this.getList() this.getList();
}, },
beforeDestroy() { beforeDestroy() {
window.removeEventListener("message", this.receiveMsg); window.removeEventListener("message", this.receiveMsg);
@ -210,7 +218,8 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
this.searchData.TrialId = this.trialId; this.searchData.TrialId = this.trialId;
this.searchData.TrialReadingCriterionId = this.trialCriterionInfo.TrialReadingCriterionId; this.searchData.TrialReadingCriterionId =
this.trialCriterionInfo.TrialReadingCriterionId;
this.isRender = false; this.isRender = false;
getIRUnReadSubjectTaskList(this.searchData) getIRUnReadSubjectTaskList(this.searchData)
.then((res) => { .then((res) => {
@ -239,7 +248,8 @@ export default {
isInOrder: true, isInOrder: true,
subejctId: row.SubjectId, subejctId: row.SubjectId,
isClaim: false, isClaim: false,
trialReadingCriterionId: this.trialCriterionInfo.TrialReadingCriterionId trialReadingCriterionId:
this.trialCriterionInfo.TrialReadingCriterionId,
}; };
claimOrCancelSubject(params) claimOrCancelSubject(params)
.then((res) => { .then((res) => {
@ -286,6 +296,7 @@ export default {
var routeData = this.$router.resolve({ path }); var routeData = this.$router.resolve({ path });
this.openWindow = window.open(routeData.href, "_blank"); this.openWindow = window.open(routeData.href, "_blank");
this.$setOpenWindow(this.openWindow);
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;

View File

@ -21,21 +21,34 @@
</el-form-item> </el-form-item>
<!-- 受试者编号 --> <!-- 受试者编号 -->
<el-form-item :label="$t('trials:uploadMonitor:table:subjectId')"> <el-form-item :label="$t('trials:uploadMonitor:table:subjectId')">
<el-input v-model="searchData.SubjectCode" style="width: 140px" /> <el-input
v-model="searchData.SubjectCode"
clearable
style="width: 140px"
/>
</el-form-item> </el-form-item>
<!-- 患者编号 --> <!-- 患者编号 -->
<el-form-item :label="$t('trials:uploadDicomList:table:pId')"> <el-form-item :label="$t('trials:uploadDicomList:table:pId')">
<el-input v-model="searchData.PatientIdStr" style="width: 140px" /> <el-input
v-model="searchData.PatientIdStr"
clearable
style="width: 140px"
/>
</el-form-item> </el-form-item>
<!-- 患者姓名 --> <!-- 患者姓名 -->
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')"> <el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
<el-input v-model="searchData.SubjectName" style="width: 140px" /> <el-input
v-model="searchData.SubjectShortName"
clearable
style="width: 140px"
/>
</el-form-item> </el-form-item>
<!-- 任务创建时间 --> <!-- 任务创建时间 -->
<el-form-item :label="$t('trials:reviewTrack:table:createTime')"> <el-form-item :label="$t('trials:reviewTrack:table:createTime')">
<el-date-picker <el-date-picker
clearable
v-model="dateValue2" v-model="dateValue2"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -77,8 +90,9 @@
<!-- 阅片完成时间 --> <!-- 阅片完成时间 -->
<el-form-item :label="$t('trials:reviewTrack:table:signTime')"> <el-form-item :label="$t('trials:reviewTrack:table:signTime')">
<el-date-picker <el-date-picker
clearable
v-model="dateValue" v-model="dateValue"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -143,7 +157,7 @@
> >
<!-- 患者姓名 --> <!-- 患者姓名 -->
<el-table-column <el-table-column
prop="SubjectName" prop="SubjectShortName"
:label="$t('trials:researchStaff:table:Name')" :label="$t('trials:researchStaff:table:Name')"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
@ -300,7 +314,7 @@ const defaultSearchData = () => {
PatientSex: null, PatientSex: null,
BeginTaskCreateTime: null, BeginTaskCreateTime: null,
EndTaskCreateTime: null, EndTaskCreateTime: null,
SubjectName: null, SubjectShortName: null,
}; };
}; };
export default { export default {
@ -409,15 +423,15 @@ export default {
}); });
data.TrialId = this.$route.query.trialId; data.TrialId = this.$route.query.trialId;
if (this.dateValue[0] && this.dateValue[1]) { if (this.dateValue[0] && this.dateValue[1]) {
data.earliestStudyTime = this.dateValue[0].toISOString(); data.earliestStudyTime = this.dateValue[0];
data.latestStudyTime = this.dateValue[1].toISOString(); data.latestStudyTime = this.dateValue[1];
} else { } else {
data.EarliestStudyTime = null; data.EarliestStudyTime = null;
data.LatestStudyTime = null; data.LatestStudyTime = null;
} }
if (this.dateValue2[0] && this.dateValue2[1]) { if (this.dateValue2[0] && this.dateValue2[1]) {
data.BeginTaskCreateTime = this.dateValue2[0].toISOString(); data.BeginTaskCreateTime = this.dateValue2[0];
data.EndTaskCreateTime = this.dateValue2[1].toISOString(); data.EndTaskCreateTime = this.dateValue2[1];
} else { } else {
data.BeginTaskCreateTime = null; data.BeginTaskCreateTime = null;
data.EndTaskCreateTime = null; data.EndTaskCreateTime = null;

View File

@ -20,22 +20,38 @@
</el-form-item> </el-form-item>
<!-- 受试者编号 --> <!-- 受试者编号 -->
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')"> <el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
<el-input v-model="searchData.SubjectCode" style="width: 100px" /> <el-input
v-model="searchData.SubjectCode"
style="width: 100px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 患者编号 --> <!-- 患者编号 -->
<el-form-item :label="$t('trials:uploadDicomList:table:pId')"> <el-form-item :label="$t('trials:uploadDicomList:table:pId')">
<el-input v-model="searchData.PatientIdStr" style="width: 140px" /> <el-input
v-model="searchData.PatientIdStr"
style="width: 140px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 患者姓名 --> <!-- 患者姓名 -->
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')"> <el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
<el-input v-model="searchData.PatientName" style="width: 140px" /> <el-input
v-model="searchData.PatientName"
style="width: 140px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 任务名称 --> <!-- 任务名称 -->
<el-form-item <el-form-item
style="margin-bottom: 10px" style="margin-bottom: 10px"
:label="$t('trials:reviewTrack:table:taskName')" :label="$t('trials:reviewTrack:table:taskName')"
> >
<el-input v-model="searchData.TaskName" style="width: 140px" /> <el-input
v-model="searchData.TaskName"
style="width: 140px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 任务状态 --> <!-- 任务状态 -->
<el-form-item :label="$t('trials:readTask:table:taskState')"> <el-form-item :label="$t('trials:readTask:table:taskState')">

View File

@ -13,21 +13,21 @@
:label="$t('trials:externalStaff:table:lastName')" :label="$t('trials:externalStaff:table:lastName')"
prop="LastName" prop="LastName"
> >
<el-input v-model="form.LastName" /> <el-input v-model="form.LastName" clearable />
</el-form-item> </el-form-item>
<!-- --> <!-- -->
<el-form-item <el-form-item
:label="$t('trials:externalStaff:table:firstName')" :label="$t('trials:externalStaff:table:firstName')"
prop="FirstName" prop="FirstName"
> >
<el-input v-model="form.FirstName" /> <el-input v-model="form.FirstName" clearable />
</el-form-item> </el-form-item>
<!-- 用户类型 --> <!-- 用户类型 -->
<el-form-item <el-form-item
:label="$t('trials:externalStaff:table:userType')" :label="$t('trials:externalStaff:table:userType')"
prop="UserTypeId" prop="UserTypeId"
> >
<el-select v-model="form.UserTypeId" style="width: 100%"> <el-select v-model="form.UserTypeId" style="width: 100%" clearable>
<el-option <el-option
v-for="item of userTypeOptions" v-for="item of userTypeOptions"
:key="item.Id" :key="item.Id"
@ -43,21 +43,21 @@
:label="$t('trials:externalStaff:table:phone')" :label="$t('trials:externalStaff:table:phone')"
prop="Phone" prop="Phone"
> >
<el-input v-model="form.Phone" /> <el-input v-model="form.Phone" clearable />
</el-form-item> </el-form-item>
<!-- 邮箱 --> <!-- 邮箱 -->
<el-form-item <el-form-item
:label="$t('trials:externalStaff:table:email')" :label="$t('trials:externalStaff:table:email')"
prop="Email" prop="Email"
> >
<el-input v-model="form.Email" /> <el-input v-model="form.Email" clearable />
</el-form-item> </el-form-item>
<!-- 单位 --> <!-- 单位 -->
<el-form-item <el-form-item
:label="$t('trials:externalStaff:table:organization')" :label="$t('trials:externalStaff:table:organization')"
prop="OrganizationName" prop="OrganizationName"
> >
<el-input v-model="form.OrganizationName" /> <el-input v-model="form.OrganizationName" clearable />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div v-if="errorMsg" style="font-size: 12px; color: #f66"> <div v-if="errorMsg" style="font-size: 12px; color: #f66">

View File

@ -5,15 +5,23 @@
<el-form :inline="true"> <el-form :inline="true">
<!-- 受试者编号 --> <!-- 受试者编号 -->
<el-form-item :label="$t('trials:subject:table:subjectId')"> <el-form-item :label="$t('trials:subject:table:subjectId')">
<el-input v-model="searchData.SubjectCode" style="width: 140px" /> <el-input
v-model="searchData.SubjectCode"
style="width: 140px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 患者编号 --> <!-- 患者编号 -->
<el-form-item :label="$t('trials:uploadDicomList:table:pId')"> <el-form-item :label="$t('trials:uploadDicomList:table:pId')">
<el-input v-model="searchData.PatientIdStr" style="width: 140px" /> <el-input
v-model="searchData.PatientIdStr"
style="width: 140px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 性别 --> <!-- 性别 -->
<el-form-item :label="$t('trials:subject:table:gender')"> <el-form-item :label="$t('trials:subject:table:gender')">
<el-select v-model="searchData.PatientSex" clearable> <el-select v-model="searchData.SubjectSex" clearable>
<el-option <el-option
v-for="item of $d.sex" v-for="item of $d.sex"
:key="item.id" :key="item.id"
@ -42,7 +50,7 @@
<el-form-item :label="$t('trials:audit:table:studyDate')"> <el-form-item :label="$t('trials:audit:table:studyDate')">
<el-date-picker <el-date-picker
v-model="dateValue" v-model="dateValue"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -278,6 +286,7 @@ const defaultSearchData = () => {
SubjectCode: null, SubjectCode: null,
PatientIdStr: null, PatientIdStr: null,
PatientSex: null, PatientSex: null,
SubjectSex: null,
BeginStudyTime: null, BeginStudyTime: null,
EndStudyTime: null, EndStudyTime: null,
IsBindedVisit: null, IsBindedVisit: null,
@ -384,8 +393,8 @@ export default {
}); });
data.TrialId = this.$route.query.trialId; data.TrialId = this.$route.query.trialId;
if (this.dateValue[0] && this.dateValue[1]) { if (this.dateValue[0] && this.dateValue[1]) {
data.BeginStudyTime = this.dateValue[0].toISOString(); data.BeginStudyTime = this.dateValue[0];
data.EndStudyTime = this.dateValue[1].toISOString(); data.EndStudyTime = this.dateValue[1];
} else { } else {
data.BeginStudyTime = null; data.BeginStudyTime = null;
data.EndStudyTime = null; data.EndStudyTime = null;

View File

@ -55,7 +55,7 @@
<el-form-item :label="$t('trials:audit:table:studyDate')"> <el-form-item :label="$t('trials:audit:table:studyDate')">
<el-date-picker <el-date-picker
v-model="dateValue" v-model="dateValue"
type="daterange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -303,8 +303,8 @@ export default {
}); });
data.TrialId = this.$route.query.trialId; data.TrialId = this.$route.query.trialId;
if (this.dateValue[0] && this.dateValue[1]) { if (this.dateValue[0] && this.dateValue[1]) {
data.BeginStudyTime = this.dateValue[0].toISOString(); data.BeginStudyTime = this.dateValue[0];
data.EndStudyTime = this.dateValue[1].toISOString(); data.EndStudyTime = this.dateValue[1];
} else { } else {
data.BeginStudyTime = null; data.BeginStudyTime = null;
data.EndStudyTime = null; data.EndStudyTime = null;

View File

@ -14,15 +14,15 @@
</el-form-item> </el-form-item>
<!-- 受试者编号 --> <!-- 受试者编号 -->
<el-form-item :label="$t('trials:subject:table:subjectId')" prop="Code"> <el-form-item :label="$t('trials:subject:table:subjectId')" prop="Code">
<el-input v-model="form.Code" /> <el-input v-model="form.Code" clearable />
</el-form-item> </el-form-item>
<!-- 姓名 --> <!-- 姓名 -->
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')"> <el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
<el-input v-model="form.ShortName" /> <el-input v-model="form.ShortName" clearable />
</el-form-item> </el-form-item>
<!-- 年龄 --> <!-- 年龄 -->
<el-form-item :label="$t('trials:subject:table:age')"> <el-form-item :label="$t('trials:subject:table:age')">
<el-input v-model="form.Age" type="number" /> <el-input v-model="form.Age" type="number" clearable />
</el-form-item> </el-form-item>
<!-- 性别 --> <!-- 性别 -->
<el-form-item :label="$t('trials:subject:table:gender')"> <el-form-item :label="$t('trials:subject:table:gender')">
@ -42,7 +42,8 @@
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
style="width: 100%" style="width: 100%"
value-format="YYYY-MM-DD" format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>

View File

@ -31,8 +31,6 @@
<el-select <el-select
v-model="submitMessage.SubjectId" v-model="submitMessage.SubjectId"
filterable filterable
allow-create
default-first-option
clearable clearable
:disabled="status === 'visit'" :disabled="status === 'visit'"
style="width: 300px" style="width: 300px"
@ -147,7 +145,7 @@
clearable clearable
@input=" @input="
addSubjectForm2.SubjectCode = addSubjectForm2.SubjectCode =
addSubjectForm2.SubjectCode.replace(/[^0-9]/g, '') addSubjectForm2.SubjectCode.replace(/[^0-9a-zA-Z]/g, '')
" "
></el-input> ></el-input>
</el-form-item> </el-form-item>
@ -243,6 +241,22 @@ export default {
message: this.$t("trials:subject:format:notSubject"), message: this.$t("trials:subject:format:notSubject"),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
{
validator: (rule, value, callback) => {
let flag = this.subjectIdList.some(
(item) => item.SubjectCode === value
);
if (flag) {
callback(
new Error(this.$t("trials:addSubject:format:hasSubject"))
);
} else {
callback();
}
},
message: this.$t("trials:addSubject:format:hasSubject"),
trigger: ["blur", "change"],
},
], ],
}, },
}; };
@ -283,13 +297,6 @@ export default {
try { try {
let validate = await this.$refs.addSubjectForm2.validate(); let validate = await this.$refs.addSubjectForm2.validate();
if (!validate) return; if (!validate) return;
let flag = this.subjectIdList.some(
(item) => item.SubjectCode === this.addSubjectForm2.SubjectCode
);
if (flag)
return this.$message.warning(
this.$t("trials:addSubject:format:hasSubject")
);
let subject = { let subject = {
SubjectCode: this.addSubjectForm2.SubjectCode, SubjectCode: this.addSubjectForm2.SubjectCode,
SubejctId: this.addSubjectForm2.SubjectCode, SubejctId: this.addSubjectForm2.SubjectCode,

View File

@ -126,7 +126,7 @@ export default {
this.$emit("update:list", list); this.$emit("update:list", list);
} }
} catch (err) { } catch (err) {
this.btnLoading = false; this.loading = false;
console.log(err); console.log(err);
} }
}, },

View File

@ -9,7 +9,11 @@
</el-form-item> </el-form-item>
<!-- 患者编号 --> <!-- 患者编号 -->
<el-form-item :label="$t('trials:uploadDicomList:table:pId')"> <el-form-item :label="$t('trials:uploadDicomList:table:pId')">
<el-input v-model="searchData.PatientIdStr" style="width: 130px" /> <el-input
v-model="searchData.PatientIdStr"
style="width: 130px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 姓名 --> <!-- 姓名 -->
<el-form-item :label="$t('trials:researchStaff:table:Name')"> <el-form-item :label="$t('trials:researchStaff:table:Name')">

View File

@ -9,7 +9,7 @@
</el-form-item> --> </el-form-item> -->
<!-- 受试者 --> <!-- 受试者 -->
<el-form-item :label="$t('trials:auditRecord:table:subject')"> <el-form-item :label="$t('trials:auditRecord:table:subject')">
<el-input v-model="searchData.SubjectInfo" /> <el-input v-model="searchData.SubjectInfo" clearable />
</el-form-item> </el-form-item>
<!-- 访视 --> <!-- 访视 -->
<el-form-item :label="$t('trials:auditRecord:table:visit')"> <el-form-item :label="$t('trials:auditRecord:table:visit')">
@ -71,11 +71,16 @@
</el-form-item> </el-form-item>
<!-- 操作人 --> <!-- 操作人 -->
<el-form-item :label="$t('trials:auditRecord:table:operator')"> <el-form-item :label="$t('trials:auditRecord:table:operator')">
<el-input v-model="searchData.OpByUserName" style="width: 120px" /> <el-input
v-model="searchData.OpByUserName"
style="width: 120px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 操作时间 --> <!-- 操作时间 -->
<el-form-item :label="$t('trials:auditRecord:table:operateTime')"> <el-form-item :label="$t('trials:auditRecord:table:operateTime')">
<el-date-picker <el-date-picker
clearable
v-model="timeList" v-model="timeList"
@change="changeTimeList" @change="changeTimeList"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
@ -294,7 +299,7 @@
/> />
<el-table-column <el-table-column
prop="IP" prop="IP"
min-width="100" min-width="130"
label="IP" label="IP"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"

View File

@ -30,6 +30,7 @@
<el-form-item <el-form-item
:label="$t('trials:loginLog:table:incorrectUserName')" :label="$t('trials:loginLog:table:incorrectUserName')"
prop="LoginFaildName" prop="LoginFaildName"
v-if="!isMine"
> >
<el-input <el-input
v-model="searchData.LoginFaildName" v-model="searchData.LoginFaildName"
@ -70,6 +71,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('trials:loginLog:table:createTime')"> <el-form-item :label="$t('trials:loginLog:table:createTime')">
<el-date-picker <el-date-picker
clearable
v-model="datetimerange" v-model="datetimerange"
type="datetimerange" type="datetimerange"
:default-time="['00:00:00', '23:59:59']" :default-time="['00:00:00', '23:59:59']"
@ -124,6 +126,7 @@
sortable="custom" sortable="custom"
/> />
<el-table-column <el-table-column
v-if="!isMine"
:label="$t('trials:loginLog:table:incorrectUserName')" :label="$t('trials:loginLog:table:incorrectUserName')"
prop="LoginFaildName" prop="LoginFaildName"
min-width="90" min-width="90"
@ -149,6 +152,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
v-if="!isMine"
:label="$t('trials:loginLog:table:optUserName')" :label="$t('trials:loginLog:table:optUserName')"
prop="optUserName" prop="optUserName"
min-width="90" min-width="90"
@ -156,6 +160,7 @@
sortable="custom" sortable="custom"
/> />
<el-table-column <el-table-column
v-if="!isMine"
:label="$t('trials:loginLog:table:optUserType')" :label="$t('trials:loginLog:table:optUserType')"
prop="OptUserTypeEnum" prop="OptUserTypeEnum"
min-width="90" min-width="90"
@ -287,6 +292,7 @@ export default {
// //
handleReset() { handleReset() {
this.searchData = searchDataDefault(); this.searchData = searchDataDefault();
this.datetimerange = [];
this.getList(); this.getList();
}, },
// //

View File

@ -128,6 +128,7 @@
> >
{{ otherInfo.AuthorizationDeadLineDate }} {{ otherInfo.AuthorizationDeadLineDate }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions>
<div slot="extra"> <div slot="extra">
<el-button <el-button
type="primary" type="primary"
@ -137,7 +138,6 @@
>{{ $t("trials:activate:renewalAuthorization") }}</el-button >{{ $t("trials:activate:renewalAuthorization") }}</el-button
> >
</div> </div>
</el-descriptions>
</div> </div>
<activate-project <activate-project
v-if="activateVisible" v-if="activateVisible"