部分问题修复
parent
7c56ec3c6a
commit
f4c868aa4f
230
src/App.vue
230
src/App.vue
|
@ -1,33 +1,42 @@
|
|||
<template>
|
||||
<div id="app" style="position: relative">
|
||||
<router-view />
|
||||
<div v-show="show" v-adaptive @click="openI18n" style="position: fixed;bottom: 50px;left: 50px;z-index: 100000;width: 50px;height: 50px;background: #409eff88;line-height: 50px;text-align: center;color:#fff;border-radius: 50%;cursor: pointer">
|
||||
<div
|
||||
v-show="show"
|
||||
v-adaptive
|
||||
@click="openI18n"
|
||||
style="
|
||||
position: fixed;
|
||||
bottom: 50px;
|
||||
left: 50px;
|
||||
z-index: 100000;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background: #409eff88;
|
||||
line-height: 50px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
"
|
||||
>
|
||||
i18n
|
||||
</div>
|
||||
<el-drawer
|
||||
title="国际化"
|
||||
:visible.sync="drawer"
|
||||
direction="rtl"
|
||||
size="80%">
|
||||
<el-drawer title="国际化" :visible.sync="drawer" direction="rtl" size="80%">
|
||||
<div style="width: 320px">
|
||||
<el-form
|
||||
label-width="100px"
|
||||
size="small"
|
||||
>
|
||||
<el-form label-width="100px" size="small">
|
||||
<el-form-item label="关键字">
|
||||
<el-input v-model="key" @input="keyChange"/>
|
||||
<el-input v-model="key" @input="keyChange" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
v-adaptive="{bottomOffset:50}"
|
||||
v-adaptive="{ bottomOffset: 50 }"
|
||||
height="100"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
prop="Code"
|
||||
label="标签"
|
||||
width="300">
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-table-column prop="Code" label="标签" width="300">
|
||||
</el-table-column>
|
||||
<!-- <el-table-column-->
|
||||
<!-- prop="Description"-->
|
||||
|
@ -38,131 +47,166 @@
|
|||
<!-- {{scope.row.Description}}-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column
|
||||
prop="Value"
|
||||
label="英文">
|
||||
<el-table-column prop="Value" label="英文">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.Value" @input="(e) => {$set(scope.row, 'Value', e)}" size="mini"></el-input>
|
||||
<el-input
|
||||
v-model="scope.row.Value"
|
||||
@input="
|
||||
(e) => {
|
||||
$set(scope.row, 'Value', e);
|
||||
}
|
||||
"
|
||||
size="mini"
|
||||
></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="ValueCN"
|
||||
label="中文">
|
||||
<el-table-column prop="ValueCN" label="中文">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.ValueCN" @input="(e) => {$set(scope.row, 'ValueCN', e)}" size="mini"></el-input>
|
||||
<el-input
|
||||
v-model="scope.row.ValueCN"
|
||||
@input="
|
||||
(e) => {
|
||||
$set(scope.row, 'ValueCN', e);
|
||||
}
|
||||
"
|
||||
size="mini"
|
||||
></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: right;padding-top: 10px;padding-right: 10px;">
|
||||
<el-button size="mini" @click="drawer = false">取消
|
||||
</el-button>
|
||||
<el-button size="mini" type="primary" @click="handleSave">保存</el-button>
|
||||
<div style="text-align: right; padding-top: 10px; padding-right: 10px">
|
||||
<el-button size="mini" @click="drawer = false">取消 </el-button>
|
||||
<el-button size="mini" type="primary" @click="handleSave"
|
||||
>保存</el-button
|
||||
>
|
||||
</div>
|
||||
</el-drawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { batchAddOrUpdateFrontInternationalization, getFrontInternationalizationList } from '@/api/dictionary/dictionary'
|
||||
import {
|
||||
batchAddOrUpdateFrontInternationalization,
|
||||
getFrontInternationalizationList,
|
||||
} from "@/api/dictionary/dictionary";
|
||||
import Vue from "vue";
|
||||
import i18n from "./lang";
|
||||
export default {
|
||||
name: 'App',
|
||||
data () {
|
||||
name: "App",
|
||||
data() {
|
||||
return {
|
||||
drawer: false,
|
||||
tableData: [],
|
||||
show: false,
|
||||
key: null,
|
||||
arr: []
|
||||
}
|
||||
arr: [],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
// this.show = process.env.VUE_APP_OSS_PATH === '/hir_test/dist'
|
||||
this.show = process.env.VUE_APP_OSS_PATH === "/hir_test/dist";
|
||||
},
|
||||
methods: {
|
||||
changeValue(target, attr, e) {
|
||||
this.$set(target, attr, e)
|
||||
this.$set(target, attr, e);
|
||||
},
|
||||
keyChange(v) {
|
||||
if (this.key) {
|
||||
this.tableData = Object.assign([], this.arr.filter(v => ~v.Code.indexOf(this.key) || ~v.Value.indexOf(this.key) || ~v.ValueCN.indexOf(this.key)))
|
||||
this.tableData = Object.assign(
|
||||
[],
|
||||
this.arr.filter(
|
||||
(v) =>
|
||||
~v.Code.indexOf(this.key) ||
|
||||
~v.Value.indexOf(this.key) ||
|
||||
~v.ValueCN.indexOf(this.key)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
this.tableData = Object.assign([], this.arr)
|
||||
this.tableData = Object.assign([], this.arr);
|
||||
}
|
||||
},
|
||||
handleSave() {
|
||||
this.$confirm('确定修改当前页面国际化内容?').then(() => {
|
||||
batchAddOrUpdateFrontInternationalization(this.tableData).then(async res => {
|
||||
var zhMessages = {}, enMessages = {}
|
||||
var Internationalization = await getFrontInternationalizationList()
|
||||
Vue.prototype.$tl = Internationalization.Result
|
||||
this.tableData.forEach(v => {
|
||||
// zhMessages[v.Description + '_' + v.Code] = v.ValueCN
|
||||
// enMessages[v.Description + '_' + v.Code] = v.Value
|
||||
zhMessages[v.Code] = v.ValueCN
|
||||
enMessages[v.Code] = v.Value
|
||||
})
|
||||
i18n.mergeLocaleMessage('zh', zhMessages)
|
||||
i18n.mergeLocaleMessage('en', enMessages)
|
||||
this.drawer = false
|
||||
this.$message.success('国际化修改成功')
|
||||
})
|
||||
})
|
||||
this.$confirm("确定修改当前页面国际化内容?").then(() => {
|
||||
batchAddOrUpdateFrontInternationalization(this.tableData).then(
|
||||
async (res) => {
|
||||
var zhMessages = {},
|
||||
enMessages = {};
|
||||
var Internationalization = await getFrontInternationalizationList();
|
||||
Vue.prototype.$tl = Internationalization.Result;
|
||||
this.tableData.forEach((v) => {
|
||||
// zhMessages[v.Description + '_' + v.Code] = v.ValueCN
|
||||
// enMessages[v.Description + '_' + v.Code] = v.Value
|
||||
zhMessages[v.Code] = v.ValueCN;
|
||||
enMessages[v.Code] = v.Value;
|
||||
});
|
||||
i18n.mergeLocaleMessage("zh", zhMessages);
|
||||
i18n.mergeLocaleMessage("en", enMessages);
|
||||
this.drawer = false;
|
||||
this.$message.success("国际化修改成功");
|
||||
}
|
||||
);
|
||||
});
|
||||
},
|
||||
openI18n() {
|
||||
this.tableData = []
|
||||
this.key = null
|
||||
this.drawer = true
|
||||
let arr = []
|
||||
let tableData = this.$tl.map(v => {
|
||||
let a = {...v}
|
||||
this.tableData = [];
|
||||
this.key = null;
|
||||
this.drawer = true;
|
||||
let arr = [];
|
||||
let tableData = this.$tl.map((v) => {
|
||||
let a = { ...v };
|
||||
// if (!a.Description) {
|
||||
// a.Description = this.$route.path
|
||||
// }
|
||||
return a
|
||||
})
|
||||
tableData = tableData.filter(v => {
|
||||
return a;
|
||||
});
|
||||
tableData = tableData.filter((v) => {
|
||||
// return ~this.$path.indexOf(v.Description + '_' + v.Code)
|
||||
return ~this.$path.indexOf(v.Code)
|
||||
})
|
||||
this.$path.forEach(v => {
|
||||
let o = tableData.find(a => {
|
||||
return a.Code === v
|
||||
})
|
||||
return ~this.$path.indexOf(v.Code);
|
||||
});
|
||||
this.$path.forEach((v) => {
|
||||
let o = tableData.find((a) => {
|
||||
return a.Code === v;
|
||||
});
|
||||
if (o) {
|
||||
arr.push(o)
|
||||
arr.push(o);
|
||||
} else {
|
||||
arr.push({
|
||||
Code: v,
|
||||
Description: null,
|
||||
Value: null,
|
||||
ValueCN: null
|
||||
})
|
||||
ValueCN: null,
|
||||
});
|
||||
}
|
||||
})
|
||||
this.arr = arr
|
||||
});
|
||||
this.arr = arr;
|
||||
if (this.key) {
|
||||
this.tableData = Object.assign([], this.arr.filter(v => ~v.Code.indexOf(this.key) || ~v.Value.indexOf(this.key) || ~v.ValueCN.indexOf(this.key)))
|
||||
this.tableData = Object.assign(
|
||||
[],
|
||||
this.arr.filter(
|
||||
(v) =>
|
||||
~v.Code.indexOf(this.key) ||
|
||||
~v.Value.indexOf(this.key) ||
|
||||
~v.ValueCN.indexOf(this.key)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
this.tableData = Object.assign([], this.arr)
|
||||
this.tableData = Object.assign([], this.arr);
|
||||
}
|
||||
console.log(JSON.stringify(this.$path))
|
||||
console.log(JSON.stringify(this.tableData))
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(JSON.stringify(this.$path));
|
||||
console.log(JSON.stringify(this.tableData));
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.el-tooltip__popper{
|
||||
.el-tooltip__popper {
|
||||
max-width: 400px;
|
||||
}
|
||||
.my_multiple{
|
||||
.el-input--medium .el-input__inner{
|
||||
height: 36px!important;
|
||||
.my_multiple {
|
||||
.el-input--medium .el-input__inner {
|
||||
height: 36px !important;
|
||||
}
|
||||
.el-select__tags{
|
||||
.el-select__tags {
|
||||
flex-wrap: nowrap;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
|
@ -179,21 +223,21 @@ input[type="number"] {
|
|||
-moz-appearance: textfield !important;
|
||||
}
|
||||
|
||||
.viewer-fixed.viewer-container{
|
||||
.viewer-fixed.viewer-container {
|
||||
z-index: 10000;
|
||||
}
|
||||
textarea{
|
||||
textarea {
|
||||
white-space: break-spaces;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
*{
|
||||
word-break: normal!important;
|
||||
* {
|
||||
word-break: normal !important;
|
||||
}
|
||||
.box-body .el-button.is-circle:not(.is-disabled) i:before{
|
||||
.box-body .el-button.is-circle:not(.is-disabled) i:before {
|
||||
color: #428bca;
|
||||
}
|
||||
.box-body .el-button.is-circle i.el-icon-question:before{
|
||||
.box-body .el-button.is-circle i.el-icon-question:before {
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -15,12 +15,10 @@ const doResize = async (el, binding, vnode) => {
|
|||
// 计算列表高度并设置
|
||||
const height = window.innerHeight - el.getBoundingClientRect().top - bottomOffset
|
||||
// $table.layout.setMaxHeight(height) bodyHeight
|
||||
console.log($table);
|
||||
console.log($table.layout.bodyHeight)
|
||||
$table.bodyWrapper.style.height = `${$table.layout.bodyHeight}px`
|
||||
$table.layout.setHeight(height)
|
||||
// $table.bodyWrapper.style.cssText = `height:${$table.layout.bodyHeight - 20}px`
|
||||
// $table.maxHeight = height
|
||||
$table.doLayout()
|
||||
let timer = setTimeout(() => { $table.doLayout(); timer = null; }, 500)
|
||||
}
|
||||
|
||||
export default {
|
||||
|
|
|
@ -17,22 +17,42 @@
|
|||
style="width: 100px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 患者编号 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
||||
<el-input
|
||||
v-model="searchData.PatientIdStr"
|
||||
style="width: 140px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 患者姓名 -->
|
||||
<el-form-item
|
||||
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchData.PatientName"
|
||||
style="width: 140px"
|
||||
/>
|
||||
</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-form-item>
|
||||
<!-- 任务状态 -->
|
||||
<el-form-item :label="$t('trials:readTask:table:taskState')">
|
||||
<el-select
|
||||
v-model="searchData.TaskName"
|
||||
v-model="searchData.TaskState"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 120px"
|
||||
style="width: 150px"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) of siteOptions"
|
||||
:key="index"
|
||||
:label="item.TrialSiteCode"
|
||||
:value="item.SiteId"
|
||||
v-for="item of $d.TaskState"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
@ -54,24 +74,6 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 任务状态 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:readTask:table:taskState')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.DoctorUserId"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of DoctorUserList"
|
||||
:key="'DoctorUserId' + item.DoctorUserId"
|
||||
:value="item.DoctorUserId"
|
||||
:label="`${item.UserName}(${item.FullName})`"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 审核结果 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
|
@ -96,15 +98,15 @@
|
|||
:label="$t('trials:auditRecord:table:isEnrollment')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.DoctorUserId"
|
||||
v-model="searchData.IsEnrollment"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of DoctorUserList"
|
||||
:key="'DoctorUserId' + item.DoctorUserId"
|
||||
:value="item.DoctorUserId"
|
||||
:label="`${item.UserName}(${item.FullName})`"
|
||||
v-for="item of $d.YesOrNo"
|
||||
:key="item.id"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
@ -114,15 +116,15 @@
|
|||
:label="$t('trials:auditRecord:table:isPDConfirm')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.DoctorUserId"
|
||||
v-model="searchData.IsPDConfirm"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of DoctorUserList"
|
||||
:key="'DoctorUserId' + item.DoctorUserId"
|
||||
:value="item.DoctorUserId"
|
||||
:label="`${item.UserName}(${item.FullName})`"
|
||||
v-for="item of $d.YesOrNo"
|
||||
:key="item.id"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
@ -151,16 +153,9 @@
|
|||
:data="list"
|
||||
ref="myTable"
|
||||
stripe
|
||||
height="100%"
|
||||
@sort-change="handleSortChange"
|
||||
>
|
||||
<!-- 任务编号 -->
|
||||
<el-table-column
|
||||
prop="TaskCode"
|
||||
:label="$t('trials:reviewTrack:table:taskCode')"
|
||||
width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
|
@ -169,21 +164,71 @@
|
|||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 患者编号 -->
|
||||
<el-table-column
|
||||
prop="PatientList.PatientIdStr"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
v-for="(item, index) in scope.row.PatientList"
|
||||
:key="`${index}${item.PatientId}`"
|
||||
>
|
||||
{{
|
||||
index === scope.row.PatientList.length - 1
|
||||
? item.PatientIdStr
|
||||
: `${item.PatientIdStr}, `
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 患者姓名 -->
|
||||
<el-table-column
|
||||
prop="SubjectShortName"
|
||||
:label="$t('trials:researchStaff:table:Name')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 任务名称 -->
|
||||
<el-table-column
|
||||
prop="VisitTaskNum"
|
||||
prop="TaskName"
|
||||
:label="$t('trials:reviewTrack:table:taskName')"
|
||||
width="140"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
</el-table-column>
|
||||
<!-- 任务状态 -->
|
||||
<el-table-column
|
||||
prop="TaskState"
|
||||
:label="$t('trials:readTask:table:taskState')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.TaskName }}
|
||||
<el-tag
|
||||
:type="
|
||||
['primary', 'info', 'danger', 'warning', 'danger'][
|
||||
scope.row.TaskState
|
||||
]
|
||||
"
|
||||
>{{ $fd("TaskState", scope.row.TaskState) }}</el-tag
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 阅片标准 -->
|
||||
<el-table-column
|
||||
prop="TrialReadingCriterionName"
|
||||
:label="$t('trials:reviewTrack:table:criterionName')"
|
||||
min-width="180"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 角色 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
prop="UserTypeShortName"
|
||||
:label="$t('trials:auditRecord:table:role')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
|
@ -201,22 +246,6 @@
|
|||
{{ scope.row.UserName }}({{ scope.row.FullName }})
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 任务状态 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
:label="$t('trials:readTask:table:taskState')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 阅片标准 -->
|
||||
<el-table-column
|
||||
prop="TrialReadingCriterionName"
|
||||
:label="$t('trials:reviewTrack:table:criterionName')"
|
||||
min-width="180"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 阅片完成时间 -->
|
||||
<el-table-column
|
||||
prop="SignTime"
|
||||
|
@ -225,22 +254,6 @@
|
|||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 创建人 -->
|
||||
<el-table-column
|
||||
prop="FirstAuditUserName"
|
||||
:label="$t('trials:auditRecord:table:creator')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 创建时间 -->
|
||||
<el-table-column
|
||||
prop="FirstAuditTime"
|
||||
:label="$t('trials:auditRecord:table:createTime')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 审核结果 -->
|
||||
<el-table-column
|
||||
prop="PIAuditState"
|
||||
|
@ -250,54 +263,44 @@
|
|||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{
|
||||
$fd("PIAuditState", scope.row.PIAuditState)
|
||||
}}</el-tag>
|
||||
<el-tag
|
||||
v-else-if="scope.row.PIAuditState === 1"
|
||||
type="primary"
|
||||
v-if="
|
||||
scope.row.PIAuditState >= 0 && scope.row.PIAuditState < 3
|
||||
"
|
||||
:type="
|
||||
['danger', 'primary', 'warning'][scope.row.PIAuditState]
|
||||
"
|
||||
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}</el-tag
|
||||
>
|
||||
<el-tag
|
||||
v-else-if="scope.row.PIAuditState === 2"
|
||||
type="warning"
|
||||
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}
|
||||
</el-tag>
|
||||
<span v-else>{{
|
||||
$fd("PIAuditState", scope.row.PIAuditState)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('trials:globalReview:table:evaluationRes')"
|
||||
align="center"
|
||||
v-if="QuestionList.length > 0"
|
||||
prop="item.QuestionId"
|
||||
:label="item.QuestionName"
|
||||
min-width="140"
|
||||
v-for="(item, index) of QuestionList"
|
||||
:key="'QuestionId' + index"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<el-table-column
|
||||
prop="item.QuestionId"
|
||||
:label="item.QuestionName"
|
||||
min-width="140"
|
||||
v-for="(item, index) of QuestionList"
|
||||
:key="'QuestionId' + index"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
item.DictionaryCode
|
||||
? $fd(
|
||||
item.DictionaryCode,
|
||||
parseInt(
|
||||
scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
)
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
item.DictionaryCode
|
||||
? $fd(
|
||||
item.DictionaryCode,
|
||||
parseInt(
|
||||
scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
)
|
||||
: scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
)
|
||||
: scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 是否入组 -->
|
||||
<el-table-column
|
||||
|
@ -438,6 +441,8 @@ const searchDataDefault = () => {
|
|||
ReadingTaskState: 2,
|
||||
PIAuditState: null,
|
||||
IsWaitPIAudit: null,
|
||||
IsEnrollment: null,
|
||||
IsPDConfirm: null,
|
||||
};
|
||||
};
|
||||
export default {
|
||||
|
@ -458,6 +463,8 @@ export default {
|
|||
TrialReadingCriterionId: "0",
|
||||
openWindow: null,
|
||||
QuestionList: [],
|
||||
PatientName: null,
|
||||
PatientIdStr: null,
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
|
|
|
@ -17,16 +17,44 @@
|
|||
style="width: 100px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 患者编号 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
||||
<el-input
|
||||
v-model="searchData.PatientIdStr"
|
||||
style="width: 140px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 患者姓名 -->
|
||||
<el-form-item
|
||||
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchData.PatientName"
|
||||
style="width: 140px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 任务名称 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:taskName')"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchData.TaskName"
|
||||
style="width: 100px"
|
||||
<el-input v-model="searchData.TaskName" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<!-- 任务状态 -->
|
||||
<el-form-item :label="$t('trials:readTask:table:taskState')">
|
||||
<el-select
|
||||
v-model="searchData.TaskState"
|
||||
clearable
|
||||
/>
|
||||
filterable
|
||||
style="width: 150px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.TaskState"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 阅片人 -->
|
||||
<el-form-item
|
||||
|
@ -46,28 +74,10 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 任务状态 -->
|
||||
<!-- 审核结果 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:taskStatus')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.TaskState"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.TaskState"
|
||||
:key="'TaskState' + item.label"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 审核状态 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:auditStatus')"
|
||||
:label="$t('trials:auditRecord:table:auditResult')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.PIAuditState"
|
||||
|
@ -88,13 +98,13 @@
|
|||
:label="$t('trials:auditRecord:table:isEnrollment')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.PIAuditState"
|
||||
v-model="searchData.IsEnrollment"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.PIAuditState"
|
||||
:key="'PIAuditState' + item.label"
|
||||
v-for="item of $d.YesOrNo"
|
||||
:key="item.id"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
|
@ -106,13 +116,13 @@
|
|||
:label="$t('trials:auditRecord:table:isPDConfirm')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.PIAuditState"
|
||||
v-model="searchData.IsPDConfirm"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.PIAuditState"
|
||||
:key="'PIAuditState' + item.label"
|
||||
v-for="item of $d.YesOrNo"
|
||||
:key="item.id"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
|
@ -146,75 +156,6 @@
|
|||
stripe
|
||||
@sort-change="handleSortChange"
|
||||
>
|
||||
<!-- 是否加急 -->
|
||||
<el-table-column
|
||||
prop="IsUrgent"
|
||||
:label="$t('trials:reviewTrack:table:isUrgent')"
|
||||
width="120"
|
||||
sortable="custom"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-tag v-if="scope.row.IsUrgent" type="danger">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-tag>
|
||||
<el-tag v-else type="primary">{{ $fd('YesOrNo', scope.row.IsUrgent) }}</el-tag> -->
|
||||
<el-tooltip placement="top">
|
||||
<div slot="content">
|
||||
<span>{{
|
||||
`${$t("trials:pendingReview:title:urgentReason")} ${$fd(
|
||||
"TaskUrgentType",
|
||||
scope.row.TaskUrgentType
|
||||
)}`
|
||||
}}</span
|
||||
><br />
|
||||
<span>{{
|
||||
scope.row.TaskUrgentRemake
|
||||
? `${$t("trials:pendingReview:title:urgentNote")} ${
|
||||
scope.row.TaskUrgentRemake
|
||||
}`
|
||||
: ""
|
||||
}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<el-button
|
||||
v-if="scope.row.IsUrgent"
|
||||
:disabled="
|
||||
!(
|
||||
!scope.row.TaskState &&
|
||||
(scope.row.ReadingTaskState === 0 ||
|
||||
scope.row.ReadingTaskState === 1)
|
||||
) || !scope.row.IsCanEditUrgentState
|
||||
"
|
||||
type="danger"
|
||||
size="mini"
|
||||
@click="changeUrgentStatus(scope.row)"
|
||||
>{{ $fd("YesOrNo", scope.row.IsUrgent) }}</el-button
|
||||
>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
<el-button
|
||||
v-if="!scope.row.IsUrgent"
|
||||
:disabled="
|
||||
!(
|
||||
!scope.row.TaskState &&
|
||||
(scope.row.ReadingTaskState === 0 ||
|
||||
scope.row.ReadingTaskState === 1)
|
||||
) || !scope.row.IsCanEditUrgentState
|
||||
"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="changeUrgentStatus(scope.row)"
|
||||
>{{ $fd("YesOrNo", scope.row.IsUrgent) }}</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 任务编号 -->
|
||||
<el-table-column
|
||||
prop="TaskCode"
|
||||
:label="$t('trials:reviewTrack:table:taskCode')"
|
||||
width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
|
@ -223,78 +164,76 @@
|
|||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 患者编号 -->
|
||||
<el-table-column
|
||||
prop="PatientList.PatientIdStr"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
v-for="(item, index) in scope.row.PatientList"
|
||||
:key="`${index}${item.PatientId}`"
|
||||
>
|
||||
{{
|
||||
index === scope.row.PatientList.length - 1
|
||||
? item.PatientIdStr
|
||||
: `${item.PatientIdStr}, `
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 患者姓名 -->
|
||||
<el-table-column
|
||||
prop="SubjectShortName"
|
||||
:label="$t('trials:researchStaff:table:Name')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 任务名称 -->
|
||||
<el-table-column
|
||||
prop="VisitTaskNum"
|
||||
prop="TaskName"
|
||||
:label="$t('trials:reviewTrack:table:taskName')"
|
||||
width="140"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.TaskName }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 盲态任务标识 -->
|
||||
<!-- <el-table-column
|
||||
prop="TaskBlindName"
|
||||
:label="$t('trials:reviewTrack:table:blindName')"
|
||||
width="160"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/> -->
|
||||
<!-- 任务创建时间 -->
|
||||
<el-table-column
|
||||
prop="CreateTime"
|
||||
:label="$t('trials:reviewTrack:table:createTime')"
|
||||
width="180"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 任务状态 -->
|
||||
<el-table-column
|
||||
prop="TaskState"
|
||||
:label="$t('trials:reviewTrack:table:taskStatus')"
|
||||
width="160"
|
||||
:label="$t('trials:readTask:table:taskState')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.TaskState === 0" type="primary">{{
|
||||
$fd("TaskState", scope.row.TaskState)
|
||||
}}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 1" type="info">{{
|
||||
$fd("TaskState", scope.row.TaskState)
|
||||
}}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 3" type="danger">{{
|
||||
$fd("TaskState", scope.row.TaskState)
|
||||
}}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 4" type="warning">{{
|
||||
$fd("TaskState", scope.row.TaskState)
|
||||
}}</el-tag>
|
||||
<el-tag v-if="scope.row.TaskState === 5" type="danger">{{
|
||||
$fd("TaskState", scope.row.TaskState)
|
||||
}}</el-tag>
|
||||
<el-tag
|
||||
:type="
|
||||
['primary', 'info', 'danger', 'warning', 'danger'][
|
||||
scope.row.TaskState
|
||||
]
|
||||
"
|
||||
>{{ $fd("TaskState", scope.row.TaskState) }}</el-tag
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 阅片标准 -->
|
||||
<el-table-column
|
||||
prop="TrialReadingCriterionName"
|
||||
:label="$t('trials:reviewTrack:table:criterionName')"
|
||||
min-width="180"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 角色 -->
|
||||
<el-table-column
|
||||
prop="UserTypeShortName"
|
||||
:label="$t('trials:reviewTrack:table:role')"
|
||||
width="100"
|
||||
:label="$t('trials:auditRecord:table:role')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.UserTypeShortName }}
|
||||
<!-- <el-tag v-if="scope.row.ArmEnum === 0" type="primary">{{ $fd('ArmEnum', scope.row.ArmEnum) }}</el-tag>
|
||||
<el-tag v-if="scope.row.ArmEnum === 1" type="primary">{{ $fd('ArmEnum', scope.row.ArmEnum) }}</el-tag>
|
||||
<el-tag v-if="scope.row.ArmEnum === 2" type="success">{{ $fd('ArmEnum', scope.row.ArmEnum) }}</el-tag>
|
||||
<el-tag v-if="scope.row.ArmEnum === 3" type="info">{{ $fd('ArmEnum', scope.row.ArmEnum) }}</el-tag>
|
||||
<el-tag v-if="scope.row.ArmEnum === 4" type="danger">{{ $fd('ArmEnum', scope.row.ArmEnum) }}</el-tag>
|
||||
<el-tag v-if="scope.row.ArmEnum === 5" type="warning">{{ $fd('ArmEnum', scope.row.ArmEnum) }}</el-tag> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
/>
|
||||
<!-- 阅片人 -->
|
||||
<el-table-column
|
||||
prop="UserName"
|
||||
|
@ -307,35 +246,6 @@
|
|||
{{ scope.row.UserName }}({{ scope.row.FullName }})
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 建议完成时间 -->
|
||||
<el-table-column
|
||||
prop="SuggesteFinishedTime"
|
||||
:label="$t('trials:reviewTrack:table:suggesteFinishedTime')"
|
||||
width="210"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 阅片状态 -->
|
||||
<el-table-column
|
||||
prop="ReadingTaskState"
|
||||
:label="$t('trials:reviewTrack:table:readingStatus')"
|
||||
width="160"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
v-if="scope.row.ReadingTaskState === 2"
|
||||
type="primary"
|
||||
>{{
|
||||
$fd("ReadingTaskState", scope.row.ReadingTaskState)
|
||||
}}</el-tag
|
||||
>
|
||||
<el-tag v-else type="danger">{{
|
||||
$fd("ReadingTaskState", scope.row.ReadingTaskState)
|
||||
}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 阅片完成时间 -->
|
||||
<el-table-column
|
||||
prop="SignTime"
|
||||
|
@ -344,10 +254,10 @@
|
|||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 申请状态 -->
|
||||
<!-- 审核结果 -->
|
||||
<el-table-column
|
||||
prop="ReReadingApplyState"
|
||||
:label="$t('trials:reviewTrack:table:applyStatus')"
|
||||
prop="PIAuditState"
|
||||
:label="$t('trials:auditRecord:table:auditResult')"
|
||||
min-width="140"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
|
@ -355,87 +265,42 @@
|
|||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
v-if="
|
||||
scope.row.ReReadingApplyState === 4 ||
|
||||
scope.row.ReReadingApplyState === 5
|
||||
scope.row.PIAuditState >= 0 && scope.row.PIAuditState < 3
|
||||
"
|
||||
:type="
|
||||
['danger', 'primary', 'warning'][scope.row.PIAuditState]
|
||||
"
|
||||
type="danger"
|
||||
>{{
|
||||
$fd("ReReadingApplyState", scope.row.ReReadingApplyState)
|
||||
}}</el-tag
|
||||
>
|
||||
<el-tag
|
||||
v-if="scope.row.ReReadingApplyState === 2"
|
||||
type="primary"
|
||||
>{{
|
||||
$fd("ReReadingApplyState", scope.row.ReReadingApplyState)
|
||||
}}</el-tag
|
||||
>
|
||||
<el-tag
|
||||
v-if="scope.row.ReReadingApplyState === 3"
|
||||
type="warning"
|
||||
>{{
|
||||
$fd("ReReadingApplyState", scope.row.ReReadingApplyState)
|
||||
}}</el-tag
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 审核结果 -->
|
||||
<el-table-column
|
||||
prop="PIAuditState"
|
||||
:label="$t('trials:pendingReview:table:auditResult')"
|
||||
min-width="110"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{
|
||||
$fd("PIAuditState", scope.row.PIAuditState)
|
||||
}}</el-tag>
|
||||
<el-tag
|
||||
v-else-if="scope.row.PIAuditState === 1"
|
||||
type="primary"
|
||||
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}</el-tag
|
||||
>
|
||||
<el-tag
|
||||
v-else-if="scope.row.PIAuditState === 2"
|
||||
type="warning"
|
||||
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}
|
||||
</el-tag>
|
||||
<span v-else>{{
|
||||
$fd("PIAuditState", scope.row.PIAuditState)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('trials:globalReview:table:evaluationRes')"
|
||||
align="center"
|
||||
v-if="QuestionList.length > 0"
|
||||
prop="item.QuestionId"
|
||||
:label="item.QuestionName"
|
||||
min-width="140"
|
||||
v-for="(item, index) of QuestionList"
|
||||
:key="'QuestionId' + index"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<el-table-column
|
||||
prop="item.QuestionId"
|
||||
:label="item.QuestionName"
|
||||
min-width="140"
|
||||
v-for="(item, index) of QuestionList"
|
||||
:key="'QuestionId1' + index"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
item.DictionaryCode
|
||||
? $fd(
|
||||
item.DictionaryCode,
|
||||
parseInt(
|
||||
scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
)
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
item.DictionaryCode
|
||||
? $fd(
|
||||
item.DictionaryCode,
|
||||
parseInt(
|
||||
scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
)
|
||||
: scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
)
|
||||
: scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 是否入组 -->
|
||||
<el-table-column
|
||||
|
@ -648,14 +513,12 @@ import PdForm from "./components/PdForm";
|
|||
import ChatForm from "./components/ChatForm";
|
||||
const searchDataDefault = () => {
|
||||
return {
|
||||
SubjectCode: "",
|
||||
TaskCode: "",
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
Asc: true,
|
||||
SortField: "",
|
||||
TrialId: null,
|
||||
SiteId: null,
|
||||
SubjectId: null,
|
||||
SubjectCode: null,
|
||||
IsUrgent: null,
|
||||
TaskName: null,
|
||||
TaskState: null,
|
||||
|
@ -663,6 +526,10 @@ const searchDataDefault = () => {
|
|||
ReadingTaskState: 2,
|
||||
PIAuditState: null,
|
||||
IsWaitPIAudit: null,
|
||||
IsEnrollment: null,
|
||||
IsPDConfirm: null,
|
||||
PatientIdStr: null,
|
||||
PatientName: null,
|
||||
};
|
||||
};
|
||||
export default {
|
||||
|
|
|
@ -5,21 +5,17 @@
|
|||
>
|
||||
<div slot="search-container" style="position: relative">
|
||||
<el-form :inline="true">
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
|
||||
<el-input v-model="searchData.SubjectCode" style="width: 100px" />
|
||||
</el-form-item>
|
||||
<!-- 患者编号 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
||||
<el-input
|
||||
v-model="searchData.SubjectCode"
|
||||
style="width: 130px"
|
||||
clearable
|
||||
/>
|
||||
<el-input v-model="searchData.PatientIdStr" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<!-- 患者姓名 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
|
||||
<el-input
|
||||
v-model="searchData.SubjectCode"
|
||||
style="width: 130px"
|
||||
clearable
|
||||
/>
|
||||
<el-input v-model="searchData.PatientName" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<!-- 访视名称 -->
|
||||
<el-form-item
|
||||
|
@ -110,21 +106,41 @@
|
|||
height="100"
|
||||
@sort-change="handleSortChange"
|
||||
>
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
min-width="100"
|
||||
:label="$t('trials:reviewTrack:table:subjectCode')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 患者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
prop="PatientIdStr"
|
||||
min-width="100"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
v-for="(item, index) in scope.row.PatientList"
|
||||
:key="`${index}${item.PatientId}`"
|
||||
>
|
||||
{{
|
||||
index === scope.row.PatientList.length - 1
|
||||
? item.PatientIdStr
|
||||
: `${item.PatientIdStr}, `
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 患者姓名 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
prop="SubjectShortName"
|
||||
min-width="100"
|
||||
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 访视名称 -->
|
||||
<el-table-column
|
||||
|
@ -567,6 +583,8 @@ import { getToken } from "@/utils/auth";
|
|||
const searchDataDefault = () => {
|
||||
return {
|
||||
SubjectCode: "",
|
||||
PatientIdStr: null,
|
||||
PatientName: null,
|
||||
SortField: "",
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
|
|
|
@ -5,21 +5,17 @@
|
|||
>
|
||||
<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-form-item>
|
||||
<!-- 患者编号 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
||||
<el-input
|
||||
v-model="searchData.SubjectCode"
|
||||
style="width: 130px"
|
||||
clearable
|
||||
/>
|
||||
<el-input v-model="searchData.PatientIdStr" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<!-- 患者姓名 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
|
||||
<el-input
|
||||
v-model="searchData.SubjectCode"
|
||||
style="width: 130px"
|
||||
clearable
|
||||
/>
|
||||
<el-input v-model="searchData.PatientName" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<!-- 查询 -->
|
||||
|
@ -46,17 +42,37 @@
|
|||
@sort-change="handleSortChange"
|
||||
>
|
||||
<el-table-column type="index" width="40" align="left" />
|
||||
<!-- 患者编号 -->
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
min-width="100"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
:label="$t('trials:reviewTrack:table:subjectCode')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 患者编号 -->
|
||||
<el-table-column
|
||||
prop="PatientIdStr"
|
||||
min-width="100"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
v-for="(item, index) in scope.row.PatientList"
|
||||
:key="`${index}${item.PatientId}`"
|
||||
>
|
||||
{{
|
||||
index === scope.row.PatientList.length - 1
|
||||
? item.PatientIdStr
|
||||
: `${item.PatientIdStr}, `
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 患者姓名 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
prop="SubjectShortName"
|
||||
min-width="100"
|
||||
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||
show-overflow-tooltip
|
||||
|
@ -147,6 +163,8 @@ import { getToken } from "@/utils/auth";
|
|||
const searchDataDefault = () => {
|
||||
return {
|
||||
SubjectCode: "",
|
||||
PatientIdStr: null,
|
||||
PatientName: null,
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
};
|
||||
|
|
|
@ -2,42 +2,129 @@
|
|||
<BaseContainer>
|
||||
<div slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!-- 中心编号 -->
|
||||
<el-form-item :label="$t('trials:rereadTask:table:siteCode')">
|
||||
<!-- 阅片标准 -->
|
||||
<el-form-item :label="$t('trials:processCfg:form:criterion')">
|
||||
<el-select
|
||||
v-model="searchData.SiteId"
|
||||
v-model="searchData.TrialReadingCriterionId"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 120px"
|
||||
style="width: 150px"
|
||||
>
|
||||
<el-option
|
||||
v-for="(i, index) of siteOptions"
|
||||
:key="index"
|
||||
:label="i.TrialSiteCode"
|
||||
:value="i.SiteId"
|
||||
v-for="item of trialCriterionList"
|
||||
:key="item.TrialReadingCriterionId"
|
||||
:label="item.TrialReadingCriterionName"
|
||||
:value="item.TrialReadingCriterionId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:rereadTask:table:subjectCode')">
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
|
||||
<el-input v-model="searchData.SubjectCode" style="width: 100px" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item style="margin-bottom:10px" label="访视/阅片期名称">
|
||||
<el-input
|
||||
v-model="searchData.TaskName"
|
||||
style="width:100px;"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<!-- 任务编号 -->
|
||||
<el-form-item :label="$t('trials:rereadTask:table:taskCode')">
|
||||
<el-input
|
||||
v-model="searchData.TaskCode"
|
||||
style="width: 130px"
|
||||
clearable
|
||||
/>
|
||||
<!-- 患者编号 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
||||
<el-input v-model="searchData.PatientIdStr" style="width: 140px" />
|
||||
</el-form-item>
|
||||
<!-- 患者姓名 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:patientName')">
|
||||
<el-input v-model="searchData.PatientName" style="width: 140px" />
|
||||
</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-form-item>
|
||||
<!-- 任务状态 -->
|
||||
<el-form-item :label="$t('trials:readTask:table:taskState')">
|
||||
<el-select
|
||||
v-model="searchData.TaskState"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 150px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.TaskState"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 阅片人 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:reader')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.DoctorUserId"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of DoctorUserList"
|
||||
:key="'DoctorUserId' + item.DoctorUserId"
|
||||
:value="item.DoctorUserId"
|
||||
:label="`${item.UserName}(${item.FullName})`"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 审核结果 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:auditRecord:table:auditResult')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.PIAuditState"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.PIAuditState"
|
||||
:key="'PIAuditState' + item.label"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 是否入组 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:auditRecord:table:isEnrollment')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.IsEnrollment"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.YesOrNo"
|
||||
:key="item.id"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 是否PD -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:auditRecord:table:isPDConfirm')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.IsPDConfirm"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.YesOrNo"
|
||||
:key="item.id"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<!-- 查询 -->
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||
|
@ -64,52 +151,42 @@
|
|||
@sort-change="handleSortChange"
|
||||
>
|
||||
<el-table-column type="index" width="40" align="left" />
|
||||
<!-- 是否加急 -->
|
||||
<el-table-column
|
||||
prop="OriginalReReadingTask.IsUrgent"
|
||||
:label="$t('trials:rereadTask:table:isUrgent')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
v-if="scope.row.OriginalReReadingTask.IsUrgent"
|
||||
type="danger"
|
||||
>{{
|
||||
$fd("YesOrNo", scope.row.OriginalReReadingTask.IsUrgent)
|
||||
}}</el-tag
|
||||
>
|
||||
<el-tag v-else type="primary">{{
|
||||
$fd("YesOrNo", scope.row.OriginalReReadingTask.IsUrgent)
|
||||
}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 任务编号 -->
|
||||
<el-table-column
|
||||
prop="OriginalReReadingTask.TaskCode"
|
||||
min-width="100"
|
||||
:label="$t('trials:rereadTask:table:taskCode')"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 中心编号 -->
|
||||
<el-table-column
|
||||
prop="OriginalReReadingTask.TrialSiteCode"
|
||||
:label="$t('trials:rereadTask:table:siteCode')"
|
||||
min-width="100"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="OriginalReReadingTask.SubjectCode"
|
||||
prop="SubjectCode"
|
||||
min-width="100"
|
||||
:label="$t('trials:rereadTask:table:subjectCode')"
|
||||
sortable="custom"
|
||||
:label="$t('trials:reviewTrack:table:subjectCode')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 患者编号 -->
|
||||
<el-table-column
|
||||
prop="PatientIdStr"
|
||||
min-width="100"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
v-for="(item, index) in scope.row.PatientList"
|
||||
:key="`${index}${item.PatientId}`"
|
||||
>
|
||||
{{
|
||||
index === scope.row.PatientList.length - 1
|
||||
? item.PatientIdStr
|
||||
: `${item.PatientIdStr}, `
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 患者姓名 -->
|
||||
<el-table-column
|
||||
prop="SubjectShortName"
|
||||
min-width="100"
|
||||
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
|
||||
<!-- 任务名称 -->
|
||||
<el-table-column
|
||||
prop="OriginalReReadingTask.TaskName"
|
||||
|
@ -118,14 +195,6 @@
|
|||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 阅片标准 -->
|
||||
<el-table-column
|
||||
prop="OriginalReReadingTask.TrialReadingCriterionName"
|
||||
:label="$t('trials:rereadTask:table:criterionName')"
|
||||
min-width="100"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 任务状态 -->
|
||||
<el-table-column
|
||||
prop="OriginalReReadingTask.TaskState"
|
||||
|
@ -172,8 +241,17 @@
|
|||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 任务类型 -->
|
||||
<!-- 阅片标准 -->
|
||||
<el-table-column
|
||||
prop="OriginalReReadingTask.TrialReadingCriterionName"
|
||||
:label="$t('trials:rereadTask:table:criterionName')"
|
||||
min-width="100"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
|
||||
<!-- 任务类型 -->
|
||||
<!-- <el-table-column
|
||||
prop="OriginalReReadingTask.ReadingCategory"
|
||||
min-width="100"
|
||||
:label="$t('trials:rereadTask:table:readingCategory')"
|
||||
|
@ -222,7 +300,7 @@
|
|||
}}</el-tag
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<!-- 完成阅片时间 -->
|
||||
<el-table-column
|
||||
prop="OriginalReReadingTask.SignTime"
|
||||
|
@ -232,7 +310,7 @@
|
|||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 重阅申请类型 -->
|
||||
<el-table-column
|
||||
<!-- <el-table-column
|
||||
prop="RequestReReadingType"
|
||||
min-width="100"
|
||||
:label="$t('trials:rereadTask:table:requestReReadingType')"
|
||||
|
@ -253,7 +331,7 @@
|
|||
}}</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<!-- 申请时间 -->
|
||||
<el-table-column
|
||||
prop="RequestReReadingTime"
|
||||
|
@ -325,13 +403,13 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<!-- 新任务编号 -->
|
||||
<el-table-column
|
||||
<!-- <el-table-column
|
||||
prop="ReReadingNewTaskCode"
|
||||
:label="$t('trials:rereadTask:table:reReadingNewTaskCode')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
/> -->
|
||||
</el-table>
|
||||
<!-- 分页组件 -->
|
||||
<pagination
|
||||
|
@ -417,6 +495,20 @@ const searchDataDefault = () => {
|
|||
TaskCode: "",
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
Asc: true,
|
||||
SortField: "",
|
||||
IsUrgent: null,
|
||||
TaskName: null,
|
||||
TaskState: null,
|
||||
DoctorUserId: null,
|
||||
ReadingTaskState: null,
|
||||
PIAuditState: null,
|
||||
IsWaitPIAudit: null,
|
||||
IsEnrollment: null,
|
||||
IsPDConfirm: null,
|
||||
TrialReadingCriterionId: null,
|
||||
PatientIdStr: null,
|
||||
PatientName: null,
|
||||
};
|
||||
};
|
||||
export default {
|
||||
|
|
|
@ -1,80 +1,160 @@
|
|||
<template>
|
||||
<BaseContainer>
|
||||
<el-tabs v-model="TrialReadingCriterionId" type="border-card">
|
||||
<el-tab-pane v-for="item of trialCriterionList" :key="item.TrialReadingCriterionId" :label="item.TrialReadingCriterionName" :name="item.TrialReadingCriterionId">
|
||||
<el-tab-pane
|
||||
v-for="item of trialCriterionList"
|
||||
:key="item.TrialReadingCriterionId"
|
||||
:label="item.TrialReadingCriterionName"
|
||||
:name="item.TrialReadingCriterionId"
|
||||
>
|
||||
<div>
|
||||
<div slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!-- 中心编号 -->
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:siteCode')">
|
||||
<el-select v-model="searchData.SiteId" clearable filterable style="width:120px;">
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
|
||||
<el-input
|
||||
v-model="searchData.SubjectCode"
|
||||
style="width: 100px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 患者编号 -->
|
||||
<el-form-item :label="$t('trials:uploadDicomList:table:pId')">
|
||||
<el-input
|
||||
v-model="searchData.PatientIdStr"
|
||||
style="width: 140px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 患者姓名 -->
|
||||
<el-form-item
|
||||
:label="$t('trials:uploadDicomList:table:patientName')"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchData.PatientName"
|
||||
style="width: 140px"
|
||||
/>
|
||||
</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-form-item>
|
||||
<!-- 任务状态 -->
|
||||
<el-form-item :label="$t('trials:readTask:table:taskState')">
|
||||
<el-select
|
||||
v-model="searchData.TaskState"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 150px"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item,index) of siteOptions"
|
||||
:key="index"
|
||||
:label="item.TrialSiteCode"
|
||||
:value="item.SiteId"
|
||||
v-for="item of $d.TaskState"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
|
||||
<el-input v-model="searchData.SubjectCode" style="width:100px;" />
|
||||
</el-form-item>
|
||||
<!-- 任务名称 -->
|
||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:taskName')">
|
||||
<el-input
|
||||
v-model="searchData.TaskName"
|
||||
style="width:100px;"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 阅片人 -->
|
||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:reader')">
|
||||
<el-select v-model="searchData.DoctorUserId" clearable style="width:120px;">
|
||||
<el-option v-for="item of DoctorUserList" :key="'DoctorUserId' + item.DoctorUserId" :value="item.DoctorUserId" :label="`${item.UserName}(${item.FullName})`" />
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:reviewTrack:table:reader')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.DoctorUserId"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of DoctorUserList"
|
||||
:key="'DoctorUserId' + item.DoctorUserId"
|
||||
:value="item.DoctorUserId"
|
||||
:label="`${item.UserName}(${item.FullName})`"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 审核状态 -->
|
||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:auditStatus')">
|
||||
<el-select v-model="searchData.PIAuditState" clearable style="width:120px;">
|
||||
<el-option v-for="item of $d.PIAuditState" :key="'PIAuditState' + item.label" :value="item.value" :label="item.label" />
|
||||
<!-- 审核结果 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:auditRecord:table:auditResult')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.PIAuditState"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.PIAuditState"
|
||||
:key="'PIAuditState' + item.label"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item style="margin-bottom:10px">
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||
{{ $t('common:button:search') }}
|
||||
<!-- 是否入组 -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:auditRecord:table:isEnrollment')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.IsEnrollment"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.YesOrNo"
|
||||
:key="item.id"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 是否PD -->
|
||||
<el-form-item
|
||||
style="margin-bottom: 10px"
|
||||
:label="$t('trials:auditRecord:table:isPDConfirm')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.IsPDConfirm"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.YesOrNo"
|
||||
:key="item.id"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item style="margin-bottom: 10px">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleSearch"
|
||||
>
|
||||
{{ $t("common:button:search") }}
|
||||
</el-button>
|
||||
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
|
||||
{{ $t('common:button:reset') }}
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-refresh-left"
|
||||
@click="handleReset"
|
||||
>
|
||||
{{ $t("common:button:reset") }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div slot="main-container">
|
||||
<el-table
|
||||
v-adaptive="{bottomOffset:60}"
|
||||
v-adaptive="{ bottomOffset: 60 }"
|
||||
v-loading="loading"
|
||||
:data="list"
|
||||
stripe
|
||||
height="100"
|
||||
@sort-change="handleSortChange"
|
||||
>
|
||||
<!-- 任务编号 -->
|
||||
<el-table-column
|
||||
prop="TaskCode"
|
||||
:label="$t('trials:reviewTrack:table:taskCode')"
|
||||
width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 中心编号 -->
|
||||
<el-table-column
|
||||
prop="TrialSiteCode"
|
||||
:label="$t('trials:reviewTrack:table:siteCode')"
|
||||
width="100"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column
|
||||
prop="SubjectCode"
|
||||
|
@ -83,18 +163,76 @@
|
|||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 患者编号 -->
|
||||
<el-table-column
|
||||
prop="PatientList.PatientIdStr"
|
||||
:label="$t('trials:uploadDicomList:table:pId')"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
v-for="(item, index) in scope.row.PatientList"
|
||||
:key="`${index}${item.PatientId}`"
|
||||
>
|
||||
{{
|
||||
index === scope.row.PatientList.length - 1
|
||||
? item.PatientIdStr
|
||||
: `${item.PatientIdStr}, `
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 患者姓名 -->
|
||||
<el-table-column
|
||||
prop="SubjectShortName"
|
||||
:label="$t('trials:researchStaff:table:Name')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<!-- 任务名称 -->
|
||||
<el-table-column
|
||||
prop="VisitTaskNum"
|
||||
prop="TaskName"
|
||||
:label="$t('trials:reviewTrack:table:taskName')"
|
||||
width="140"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
</el-table-column>
|
||||
<!-- 任务状态 -->
|
||||
<el-table-column
|
||||
prop="TaskState"
|
||||
:label="$t('trials:readTask:table:taskState')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.TaskName }}
|
||||
<el-tag
|
||||
:type="
|
||||
['primary', 'info', 'danger', 'warning', 'danger'][
|
||||
scope.row.TaskState
|
||||
]
|
||||
"
|
||||
>{{ $fd("TaskState", scope.row.TaskState) }}</el-tag
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 阅片标准 -->
|
||||
<el-table-column
|
||||
prop="TrialReadingCriterionName"
|
||||
:label="$t('trials:reviewTrack:table:criterionName')"
|
||||
min-width="180"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 角色 -->
|
||||
<el-table-column
|
||||
prop="UserTypeShortName"
|
||||
:label="$t('trials:auditRecord:table:role')"
|
||||
min-width="120"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 阅片人 -->
|
||||
<el-table-column
|
||||
prop="UserName"
|
||||
|
@ -107,14 +245,6 @@
|
|||
{{ scope.row.UserName }}({{ scope.row.FullName }})
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 阅片标准 -->
|
||||
<el-table-column
|
||||
prop="TrialReadingCriterionName"
|
||||
:label="$t('trials:reviewTrack:table:criterionName')"
|
||||
min-width="180"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 阅片完成时间 -->
|
||||
<el-table-column
|
||||
prop="SignTime"
|
||||
|
@ -123,36 +253,52 @@
|
|||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 创建人 -->
|
||||
<el-table-column
|
||||
prop="FirstAuditUserName"
|
||||
:label="$t('trials:auditRecord:table:creator')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 创建时间 -->
|
||||
<el-table-column
|
||||
prop="FirstAuditTime"
|
||||
:label="$t('trials:auditRecord:table:createTime')"
|
||||
width="130"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<!-- 审核状态 -->
|
||||
<!-- 审核结果 -->
|
||||
<el-table-column
|
||||
prop="PIAuditState"
|
||||
:label="$t('trials:reviewTrack:table:auditStatus')"
|
||||
:label="$t('trials:auditRecord:table:auditResult')"
|
||||
min-width="140"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
|
||||
<el-tag v-else-if="scope.row.PIAuditState === 1" type="primary">{{ $fd('PIAuditState', scope.row.PIAuditState) }}</el-tag>
|
||||
<el-tag v-else-if="scope.row.PIAuditState === 2" type="warning">{{ $fd('PIAuditState', scope.row.PIAuditState) }}
|
||||
</el-tag>
|
||||
<span v-else>{{ $fd('PIAuditState', scope.row.PIAuditState) }}</span>
|
||||
<el-tag
|
||||
v-if="
|
||||
scope.row.PIAuditState >= 0 && scope.row.PIAuditState < 3
|
||||
"
|
||||
:type="
|
||||
['danger', 'primary', 'warning'][scope.row.PIAuditState]
|
||||
"
|
||||
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}</el-tag
|
||||
>
|
||||
<span v-else>{{
|
||||
$fd("PIAuditState", scope.row.PIAuditState)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="item.QuestionId"
|
||||
:label="item.QuestionName"
|
||||
min-width="140"
|
||||
v-for="(item, index) of QuestionList"
|
||||
:key="'QuestionId' + index"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
item.DictionaryCode
|
||||
? $fd(
|
||||
item.DictionaryCode,
|
||||
parseInt(
|
||||
scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
)
|
||||
)
|
||||
: scope.row.PIReadingResultList.find(
|
||||
(v) => v.QuestionId === item.QuestionId
|
||||
).Answer
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 是否入组 -->
|
||||
|
@ -165,9 +311,13 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
|
||||
{{ $fd('YesOrNo', scope.row.IsEnrollment) }}
|
||||
{{ $fd("YesOrNo", scope.row.IsEnrollment) }}
|
||||
</el-tag>
|
||||
<el-tag v-else-if="scope.row.IsEnrollment === false" type="danger">{{ $fd('YesOrNo', scope.row.IsEnrollment) }}</el-tag>
|
||||
<el-tag
|
||||
v-else-if="scope.row.IsEnrollment === false"
|
||||
type="danger"
|
||||
>{{ $fd("YesOrNo", scope.row.IsEnrollment) }}</el-tag
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 是否PD -->
|
||||
|
@ -180,9 +330,13 @@
|
|||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary">
|
||||
{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}
|
||||
{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}
|
||||
</el-tag>
|
||||
<el-tag v-else-if="scope.row.IsPDConfirm === false" type="danger">{{ $fd('YesOrNo', scope.row.IsPDConfirm) }}</el-tag>
|
||||
<el-tag
|
||||
v-else-if="scope.row.IsPDConfirm === false"
|
||||
type="danger"
|
||||
>{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}</el-tag
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 创建人 -->
|
||||
|
@ -226,7 +380,13 @@
|
|||
</el-table-column>
|
||||
</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"
|
||||
/>
|
||||
<!-- 审核记录 -->
|
||||
<el-dialog
|
||||
v-if="auditRecordVisible"
|
||||
|
@ -234,13 +394,15 @@
|
|||
append-to-body
|
||||
:close-on-click-modal="false"
|
||||
custom-class="base-dialog-wrapper"
|
||||
:title="`${$t('trials:auditRecord:table:auditRecords')}(${currentRow.SubjectCode} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
:title="`${$t('trials:auditRecord:table:auditRecords')}(${
|
||||
currentRow.SubjectCode
|
||||
} | ${currentRow.TaskName} | ${currentRow.UserName})`"
|
||||
width="600px"
|
||||
>
|
||||
<ChatForm
|
||||
:row-data="currentRow"
|
||||
@getList="getList"
|
||||
@close="auditRecordVisible=false"
|
||||
@close="auditRecordVisible = false"
|
||||
/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
@ -250,34 +412,39 @@
|
|||
</BaseContainer>
|
||||
</template>
|
||||
<script>
|
||||
import { getPIReadingAuditList } from '@/api/reading'
|
||||
import { getTrialCriterionList, getDoctorUserSelectList } from '@/api/trials/reading'
|
||||
import { getTrialSiteSelect } from '@/api/trials'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import BaseContainer from '@/components/BaseContainer'
|
||||
import Pagination from '@/components/Pagination'
|
||||
import ChatForm from './components/ChatForm'
|
||||
import { getPIReadingAuditList } from "@/api/reading";
|
||||
import {
|
||||
getTrialCriterionList,
|
||||
getDoctorUserSelectList,
|
||||
} from "@/api/trials/reading";
|
||||
import { getTrialSiteSelect } from "@/api/trials";
|
||||
import { getToken } from "@/utils/auth";
|
||||
import BaseContainer from "@/components/BaseContainer";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import ChatForm from "./components/ChatForm";
|
||||
const searchDataDefault = () => {
|
||||
return {
|
||||
SubjectCode: "",
|
||||
TaskCode: "",
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
Asc: true,
|
||||
SortField: '',
|
||||
TrialId: null,
|
||||
SiteId: null,
|
||||
SubjectId: null,
|
||||
SubjectCode: null,
|
||||
SortField: "",
|
||||
IsUrgent: null,
|
||||
TaskName: null,
|
||||
TaskState: null,
|
||||
DoctorUserId: null,
|
||||
ReadingTaskState: 2,
|
||||
PIAuditState: null,
|
||||
IsWaitPIAudit: false
|
||||
}
|
||||
}
|
||||
IsWaitPIAudit: null,
|
||||
IsEnrollment: null,
|
||||
IsPDConfirm: null,
|
||||
PatientIdStr: null,
|
||||
PatientName: null,
|
||||
};
|
||||
};
|
||||
export default {
|
||||
name: 'Reviewed',
|
||||
name: "Reviewed",
|
||||
components: { BaseContainer, Pagination, ChatForm },
|
||||
data() {
|
||||
return {
|
||||
|
@ -285,101 +452,109 @@ export default {
|
|||
list: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
userListLoading: '',
|
||||
trialId: '',
|
||||
userListLoading: "",
|
||||
trialId: "",
|
||||
trialCriterionList: [],
|
||||
siteOptions: [],
|
||||
DoctorUserList: [],
|
||||
auditRecordVisible: false,
|
||||
openWindow: null,
|
||||
TrialReadingCriterionId: '0'
|
||||
}
|
||||
TrialReadingCriterionId: "0",
|
||||
QuestionList:[]
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
TrialReadingCriterionId(v) {
|
||||
if (v) {
|
||||
this.getList()
|
||||
this.getList();
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.trialId = this.$route.query.trialId
|
||||
this.getTrialCriterionList()
|
||||
this.getSite()
|
||||
this.getDoctorUserSelectList()
|
||||
this.trialId = this.$route.query.trialId;
|
||||
this.getTrialCriterionList();
|
||||
this.getSite();
|
||||
this.getDoctorUserSelectList();
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
this.loading = true
|
||||
this.searchData.TrialId = this.trialId
|
||||
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
|
||||
getPIReadingAuditList(this.searchData).then(res => {
|
||||
this.loading = false
|
||||
this.QuestionList = res.OtherInfo.OtherObj
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
this.list = res.Result.CurrentPageData
|
||||
}, 100)
|
||||
this.total = res.Result.TotalCount
|
||||
if(this.$refs.myTable){
|
||||
this.$refs.myTable.doLayout()
|
||||
}
|
||||
this.loading = true;
|
||||
this.searchData.TrialId = this.trialId;
|
||||
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId;
|
||||
getPIReadingAuditList(this.searchData)
|
||||
.then((res) => {
|
||||
this.loading = false;
|
||||
this.QuestionList = res.OtherInfo.OtherObj;
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
this.list = res.Result.CurrentPageData;
|
||||
}, 100);
|
||||
this.total = res.Result.TotalCount;
|
||||
if (this.$refs.myTable) {
|
||||
this.$refs.myTable.doLayout();
|
||||
}
|
||||
});
|
||||
})
|
||||
}).catch(() => { this.loading = false })
|
||||
.catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
handleAuditRecords(row) {
|
||||
this.currentRow = { ...row }
|
||||
this.auditRecordVisible = true
|
||||
this.currentRow = { ...row };
|
||||
this.auditRecordVisible = true;
|
||||
},
|
||||
// 查看阅片结果
|
||||
handleView(row) {
|
||||
if (this.openWindow) {
|
||||
this.openWindow.close()
|
||||
this.openWindow.close();
|
||||
}
|
||||
var token = getToken()
|
||||
var path
|
||||
var token = getToken();
|
||||
var path;
|
||||
if (row.ReadingTool === 0) {
|
||||
path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
|
||||
path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`;
|
||||
} else {
|
||||
path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
|
||||
path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`;
|
||||
}
|
||||
this.openWindow = window.open(path, '_blank')
|
||||
this.openWindow = window.open(path, "_blank");
|
||||
},
|
||||
getTrialCriterionList() {
|
||||
getTrialCriterionList(this.trialId).then(res => {
|
||||
this.trialCriterionList = res.Result
|
||||
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
|
||||
}).catch(() => {})
|
||||
getTrialCriterionList(this.trialId)
|
||||
.then((res) => {
|
||||
this.trialCriterionList = res.Result;
|
||||
this.TrialReadingCriterionId =
|
||||
this.trialCriterionList[0].TrialReadingCriterionId;
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
getDoctorUserSelectList() {
|
||||
getDoctorUserSelectList(this.$route.query.trialId).then(res => {
|
||||
this.DoctorUserList = res.Result
|
||||
})
|
||||
getDoctorUserSelectList(this.$route.query.trialId).then((res) => {
|
||||
this.DoctorUserList = res.Result;
|
||||
});
|
||||
},
|
||||
getSite() {
|
||||
getTrialSiteSelect(this.trialId).then(res => {
|
||||
this.siteOptions = res.Result
|
||||
})
|
||||
getTrialSiteSelect(this.trialId).then((res) => {
|
||||
this.siteOptions = res.Result;
|
||||
});
|
||||
},
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1
|
||||
this.getList()
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
handleReset() {
|
||||
this.searchData = searchDataDefault()
|
||||
this.getList()
|
||||
this.searchData = searchDataDefault();
|
||||
this.getList();
|
||||
},
|
||||
// 排序
|
||||
handleSortChange(column) {
|
||||
if (column.order === 'ascending') {
|
||||
this.searchData.Asc = true
|
||||
if (column.order === "ascending") {
|
||||
this.searchData.Asc = true;
|
||||
} else {
|
||||
this.searchData.Asc = false
|
||||
this.searchData.Asc = false;
|
||||
}
|
||||
this.searchData.SortField = column.prop
|
||||
this.searchData.PageIndex = 1
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
this.searchData.SortField = column.prop;
|
||||
this.searchData.PageIndex = 1;
|
||||
this.getList();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -107,7 +107,6 @@ import {
|
|||
addSubjectPatientStudyBinding,
|
||||
addOrUpdateSubjectVisit,
|
||||
} from "@/api/inspection.js";
|
||||
import { getVisitStudyVerifyTime } from "@/api/trials/visit.js";
|
||||
import visitSelect from "@/components/visitSelect";
|
||||
export default {
|
||||
name: "editVisitDialog",
|
||||
|
|
Loading…
Reference in New Issue