部分问题修复
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
v-if="item.type === 'Daterange'"
v-model="searchData[item.prop]"
type="daterange"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:style="{ width: item.width }"
clearable
/>
<!-- 滑块 -->

View File

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

View File

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

View File

@ -10,39 +10,53 @@
>
<el-card class="Basic" shadow="never" size="small">
<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 label="医院编码: " prop="HospitalCode">
<el-input
v-model.trim="hospital.HospitalCode"
:disabled="disabled || hasPermi(['role:oa'])"
clearable
/>
</el-form-item>
<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 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 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 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 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 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 label="未激活项目数: " prop="TrialKeepCount">
<el-input
v-model="hospital.TrialKeepCount"
:disabled="disabled || hasPermi(['role:oa'])"
type="number"
clearable
/>
</el-form-item>
<el-form-item label="是否可以连接互联网: ">

View File

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

View File

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

View File

@ -43,6 +43,7 @@
<el-select
v-model="submitMessage.SubjectId"
clearable
filterable
:disabled="status === 'visit' || !submitMessage.TrialId"
style="width: 300px"
>
@ -131,7 +132,7 @@
clearable
@input="
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"),
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 {
let validate = await this.$refs.addSubjectForm.validate();
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 = {
SubjectCode: this.addSubjectForm.SubjectCode,
SubejctId: this.addSubjectForm.SubjectCode,

View File

@ -8,7 +8,7 @@
<el-form-item :label="$t('trials:uploadedDicoms:table:studyDate')">
<el-date-picker
v-model="dateValue"
type="daterange"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@ -60,11 +60,19 @@
stripe
height="100"
highlight-current-row
@select="handleSelect"
@selection-change="handleSelectChange"
@sort-change="handleSortByColumn"
: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
@ -180,13 +188,13 @@
</el-table>
<!-- 分页组件 -->
<pagination
<!-- <pagination
class="page"
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
/> -->
</div>
</template>
<script>
@ -207,8 +215,8 @@ const defaultSearchData = () => {
LatestStudyTime: null,
Asc: true,
SortField: "StudyTime",
PageIndex: 1,
PageSize: 20,
// PageIndex: 1,
// PageSize: 20,
};
};
export default {
@ -246,6 +254,7 @@ export default {
addLoading: false,
// 访
tableSelectData: [], //
selectFlag: false,
btnLoading2: false,
visitStatus: "confirm", // 访 confirm submit
};
@ -380,8 +389,12 @@ export default {
}
if (this.dateValue[0] && this.dateValue[1]) {
data.earliestStudyTime = this.dateValue[0].toISOString();
data.latestStudyTime = this.dateValue[1].toISOString();
data.earliestStudyTime = this.$moment(this.dateValue[0]).format(
"YYYY-MM-DD HH:mm:ss"
);
data.latestStudyTime = this.$moment(this.dateValue[1]).format(
"YYYY-MM-DD HH:mm:ss"
);
} else {
data.EarliestStudyTime = null;
data.LatestStudyTime = null;
@ -433,9 +446,43 @@ export default {
},
//
handleSelectChange(selection) {
// console.log(selection);
// console.log(selection, "handleSelectChange");
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() {
this.$refs.confirmVisitList.toggleAllSelection();

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -7,33 +7,38 @@
<el-form :inline="true">
<!-- 受试者编号 -->
<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 :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 :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
style="margin-bottom: 10px"
:label="$t('trials:adReview:table:visitName')"
>
<el-select
v-model="searchData.TaskState"
<el-input
v-model="searchData.TaskName"
style="width: 140px"
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
@ -74,11 +79,12 @@
<!-- 签名时间 -->
<el-form-item :label="$t('trials:readTask:table:signTime')">
<el-date-picker
v-model="searchData.date"
type="daterange"
v-model="dateValue"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
clearable
>
</el-date-picker>
</el-form-item>
@ -599,6 +605,7 @@ const searchDataDefault = () => {
TaskState: null,
ReadingCategory: null,
PIAuditState: null,
TaskName: null,
};
};
export default {
@ -608,6 +615,7 @@ export default {
return {
searchData: searchDataDefault(),
list: [],
dateValue: [],
total: 0,
loading: false,
btnLoading: false,
@ -701,6 +709,7 @@ export default {
},
handleReset() {
this.searchData = searchDataDefault();
this.dateValue = [];
this.getList();
},
handleReadImage(row) {

View File

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

View File

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

View File

@ -20,22 +20,38 @@
</el-form-item>
<!-- 受试者编号 -->
<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 :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 :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
style="margin-bottom: 10px"
: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 :label="$t('trials:readTask:table:taskState')">

View File

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

View File

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

View File

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

View File

@ -14,15 +14,15 @@
</el-form-item>
<!-- 受试者编号 -->
<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 :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 :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 :label="$t('trials:subject:table:gender')">
@ -42,7 +42,8 @@
type="date"
placeholder="选择日期"
style="width: 100%"
value-format="YYYY-MM-DD"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>

View File

@ -31,8 +31,6 @@
<el-select
v-model="submitMessage.SubjectId"
filterable
allow-create
default-first-option
clearable
:disabled="status === 'visit'"
style="width: 300px"
@ -147,7 +145,7 @@
clearable
@input="
addSubjectForm2.SubjectCode =
addSubjectForm2.SubjectCode.replace(/[^0-9]/g, '')
addSubjectForm2.SubjectCode.replace(/[^0-9a-zA-Z]/g, '')
"
></el-input>
</el-form-item>
@ -243,6 +241,22 @@ export default {
message: this.$t("trials:subject:format:notSubject"),
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 {
let validate = await this.$refs.addSubjectForm2.validate();
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 = {
SubjectCode: this.addSubjectForm2.SubjectCode,
SubejctId: this.addSubjectForm2.SubjectCode,

View File

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

View File

@ -9,7 +9,11 @@
</el-form-item>
<!-- 患者编号 -->
<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 :label="$t('trials:researchStaff:table:Name')">

View File

@ -9,7 +9,7 @@
</el-form-item> -->
<!-- 受试者 -->
<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 :label="$t('trials:auditRecord:table:visit')">
@ -71,11 +71,16 @@
</el-form-item>
<!-- 操作人 -->
<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 :label="$t('trials:auditRecord:table:operateTime')">
<el-date-picker
clearable
v-model="timeList"
@change="changeTimeList"
value-format="yyyy-MM-dd HH:mm:ss"
@ -294,7 +299,7 @@
/>
<el-table-column
prop="IP"
min-width="100"
min-width="130"
label="IP"
show-overflow-tooltip
sortable="custom"

View File

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

View File

@ -128,16 +128,16 @@
>
{{ otherInfo.AuthorizationDeadLineDate }}
</el-descriptions-item>
<div slot="extra">
<el-button
type="primary"
size="small"
style="margin-top: 10px"
@click.stop="putActivate"
>{{ $t("trials:activate:renewalAuthorization") }}</el-button
>
</div>
</el-descriptions>
<div slot="extra">
<el-button
type="primary"
size="small"
style="margin-top: 10px"
@click.stop="putActivate"
>{{ $t("trials:activate:renewalAuthorization") }}</el-button
>
</div>
</div>
<activate-project
v-if="activateVisible"