irc_web/.svn/pristine/6c/6c05c10ec60d0f0af6a9fa83d6c...

962 lines
33 KiB
Plaintext

/* eslint-disable */
<template>
<BaseContainer>
<template slot="search-container">
<el-form :inline="true">
<div style="margin-bottom: 15px;">
<el-form-item label="研究方案号:">
<el-input v-model="ResearchProgramNo" disabled />
</el-form-item>
<el-form-item label="中心:">
<el-select v-model="searchData.SiteId" clearable filterable>
<el-option
v-for="(item,index) of siteOptions"
:key="index"
:label="item.TrialSiteCode"
:value="item.SiteId"
/>
</el-select>
</el-form-item>
<el-form-item label="受试者:">
<el-input v-model="searchData.SubjectInfo" placeholder="受试者" />
</el-form-item>
<el-form-item label="访视:">
<el-select
v-model="searchData.VisitPlanInfo"
clearable
filterable
>
<el-option
v-for="(item, index) of visitPlanOptions"
:key="index"
:label="item.VisitName"
:value="item.VisitNum"
/>
<el-option
key="Other"
label="OutPlan"
value="1.11"
/>
</el-select>
</el-form-item>
</div>
<div>
<el-form-item label="功能模块: ">
<el-select v-model="searchData.ModuleType" style="width:120px" placeholder="功能模块" clearable @change="getModuleTypeDescriptionList">
<el-option v-for="item of dict.type.ModuleType" :value="item.value" :label="item.raw.ValueCN" />
</el-select>
</el-form-item>
<el-form-item label="操作名: ">
<el-select v-model="searchData.Description" style="width:120px" placeholder="操作" clearable>
<el-option v-for="item of DescriptionOptions" :value="item" :label="item" />
</el-select>
</el-form-item>
<el-form-item label="操作人:">
<el-input v-model="searchData.OpByUserName" placeholder="操作人" style="width:120px" />
</el-form-item>
<el-form-item label="操作时间:">
<el-date-picker
v-model="timeList"
@change="changeTimeList"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<!--<el-form-item label="阅片人: ">-->
<!--<el-select v-model="searchData.ModuleType" placeholder="模块" clearable>-->
<!--<el-option v-for="item of dict.type.ModuleType" :value="item.label" :label="item.raw.ValueCN"></el-option>-->
<!--</el-select>-->
<!--</el-form-item>-->
<el-form-item label="是否签名: ">
<el-select v-model="searchData.IsSign" style="width:120px" placeholder="是否签名" clearable>
<el-option v-for="item of $d.YesOrNo" v-if="item.raw.ValueCN !== '无'" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item>
<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>
</el-form-item>
</div>
</el-form>
</template>
<template slot="main-container">
<el-table
v-adaptive="{bottomOffset:60}"
v-loading="loading"
:data="list"
@sort-change="handleSortChange"
stripe
height="100"
>
<el-table-column type="index" width="40" align="left" />
<el-table-column
prop="ResearchProgramNo"
min-width="140"
label="研究方案号"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="SiteCode"
min-width="100"
label="中心编号"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="SubjectCode"
min-width="100"
label="受试者"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="VisitName"
min-width="100"
label="访视"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="BlindName"
min-width="140"
label="盲态访视名"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="ModuleTypeName"
min-width="100"
label="功能模块"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="Description"
min-width="140"
label="操作名"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="Reason"
min-width="100"
label="修改原因"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="IsSign"
min-width="120"
align="center"
label="是否电签"
show-overflow-tooltip
sortable="custom"
>
<template slot-scope="scope">
<div>
<el-tooltip v-if="scope.row.IsSign" class="item" effect="dark" placement="top">
<div slot="content">
{{ scope.row.SignText }}
</div>
<el-tag type="success">{{ $fd('YesOrNo', scope.row.IsSign) }}</el-tag>
</el-tooltip>
<el-tag v-else type="info">{{ $fd('YesOrNo', scope.row.IsSign) }}</el-tag>
</div>
</template>
</el-table-column>
<el-table-column
prop="CreateUserRealName"
min-width="100"
label="操作人"
show-overflow-tooltip
sortable="custom"
>
<!-- <template slot-scope="scope">
<div>
{{ scope.row.UserLastName }}/{{ scope.row.UserFirstName }}
</div>
</template> -->
</el-table-column>
<el-table-column
prop="CreateUserName"
min-width="100"
label="用户名"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="RoleName"
min-width="100"
label="角色"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="CreateTime"
min-width="140"
label="操作时间"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop=""
min-width="100"
label="阅片人"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="IP"
min-width="100"
label="IP"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="UserCount"
min-width="150"
label="操作"
show-overflow-tooltip
sortable="custom"
>
<template slot-scope="scope">
<el-button type="text" @click="lookDetails(scope.row)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" />
<base-model :config="model_cfg">
<template slot="dialog-body">
<el-button style="position: absolute;top:15px;right:190px;" size="small" type="primary" @click="lookAssociated(1)">同一对象历史操作</el-button>
<el-button style="position: absolute;top:15px;right:50px;" size="small" type="primary" @click="lookAssociated(0)">同一对象关联操作</el-button>
<el-table
:data="auditData"
border
style="width: 100%"
size="small"
>
<el-table-column
prop="Enum"
label="字段名"
show-overflow-tooltip
/>
<el-table-column
v-if="OptType !== 'Add' && OptType !== 'Upload' && OptType !== 'Init'"
prop="oldValue"
:label="OptType === 'Add' ? '值' : OptType === 'Delete' ? '删除前' : '修改前'"
show-overflow-tooltip
>
<template slot-scope="scope">
<span>
<a v-if="scope.row.DataType === 'Link' || scope.row.DataType === 'Router'" target="_blank" :href="scope.row.oldValue">{{scope.row.oldValue}}</a>
<span v-else>
{{ scope.row.oldValue }}
</span>
</span>
</template>
</el-table-column>
<el-table-column
prop="newValue"
:label="OptType === 'Add' || OptType === 'Init' ? '值' : OptType === 'Delete' ? '删除后' : '修改后'"
show-overflow-tooltip
>
<template slot-scope="scope">
<span :style="{ color: scope.row.newValue !== scope.row.oldValue ? '#f66' : null }">
<a v-if="scope.row.DataType === 'Link' || scope.row.DataType === 'Router'" target="_blank" :href="scope.row.newValue">{{scope.row.newValue}}</a>
<span v-else>{{ scope.row.newValue }}</span>
</span>
</template>
</el-table-column>
</el-table>
<el-table
:data="tableListData"
v-if="tableListData.length > 0"
border
style="width: 100%"
size="small"
>
<el-table-column
v-for="item of tableList"
:prop="item.ColumnValue"
:label="item.IsMerge ? item.MergeColumnName : item.headName"
align="center"
show-overflow-tooltip
>
<el-table-column
v-if="item.IsMerge"
v-for="(ite, index) of item.ChildrenList"
:prop="ite.ListName ? ite.ListName + ite.ColumnValue + index : ite.ColumnValue"
:label="ite.headName"
align="center"
show-overflow-tooltip
>
</el-table-column>
</el-table-column>
</el-table>
<div v-if="otherData.length > 0" style="margin-top: 20px;margin-bottom: 10px;">
签名信息:
</div>
<div v-if="otherData.length > 0" style="color:#f66;font-size: 12px">
{{otherData[0].Value}}
</div>
</template>
<template slot="dialog-footer">
<el-button size="small" type="primary" @click="model_cfg.visible = false">关闭</el-button>
</template>
</base-model>
<!-- 新增/编辑项目 -->
<el-dialog
v-if="model_cfg2.visible"
:visible.sync="model_cfg2.visible"
:title="model_cfg2.title"
:fullscreen="true"
append-to-body
custom-class="base-dialog-wrapper"
>
<el-table
v-adaptive="{bottomOffset:300}"
v-loading="loading"
:data="list2"
stripe
height="100"
>
<el-table-column type="index" width="40" align="left" />
<el-table-column
prop="ResearchProgramNo"
min-width="90"
label="研究方案号"
show-overflow-tooltip
/>
<el-table-column
prop="SiteCode"
min-width="100"
label="中心编号"
show-overflow-tooltip
/>
<el-table-column
prop="SubjectCode"
min-width="100"
label="受试者"
show-overflow-tooltip
/>
<el-table-column
prop="VisitName"
min-width="100"
label="访视"
show-overflow-tooltip
/>
<el-table-column
prop="BlindName"
min-width="100"
label="盲态访视名"
show-overflow-tooltip
/>
<el-table-column
prop="ModuleTypeName"
min-width="100"
label="功能模块"
show-overflow-tooltip
/>
<el-table-column
prop="Description"
min-width="140"
label="操作名"
show-overflow-tooltip
/>
<el-table-column
prop="Reason"
min-width="100"
label="修改原因"
show-overflow-tooltip
/>
<el-table-column
prop="IsSign"
min-width="90"
align="center"
label="是否电签"
show-overflow-tooltip
>
<template slot-scope="scope">
<div>
<el-tooltip v-if="scope.row.IsSign" class="item" effect="dark" placement="top">
<div slot="content">
{{ scope.row.SignText }}
</div>
<el-tag type="success">{{ $fd('YesOrNo', scope.row.IsSign) }}</el-tag>
</el-tooltip>
<el-tag v-else type="info">{{ $fd('YesOrNo', scope.row.IsSign) }}</el-tag>
</div>
</template>
</el-table-column>
<el-table-column
prop="CreateUserRealName"
min-width="80"
label="操作人"
show-overflow-tooltip
>
<!-- <template slot-scope="scope">
<div>
{{ scope.row.UserLastName }}/{{ scope.row.UserFirstName }}
</div>
</template> -->
</el-table-column>
<el-table-column
prop="CreateUserName"
min-width="80"
label="用户名"
show-overflow-tooltip
/>
<el-table-column
prop="RoleName"
min-width="70"
label="角色"
show-overflow-tooltip
/>
<el-table-column
prop="CreateTime"
min-width="140"
label="操作时间"
show-overflow-tooltip
/>
<el-table-column
prop=""
min-width="70"
label="阅片人"
show-overflow-tooltip
/>
<el-table-column
prop="IP"
min-width="100"
label="IP"
show-overflow-tooltip
/>
<el-table-column
prop="UserCount"
min-width="150"
label="操作"
show-overflow-tooltip
sortable="custom"
>
<template slot-scope="scope">
<el-button type="text" @click="lookDetails2(scope.row)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
<base-model :config="model_cfg3">
<template slot="dialog-body">
<el-table
:data="auditData2"
border
style="width: 100%"
size="small"
>
<el-table-column
prop="Enum"
label="字段名"
show-overflow-tooltip
/>
<el-table-column
v-if="OptType !== 'Add' && OptType !== 'Upload' && OptType !== 'Init'"
prop="oldValue"
:label="OptType === 'Add' ? '值' : OptType === 'Delete' ? '删除前' : '修改前'"
show-overflow-tooltip
>
<template slot-scope="scope">
<span>
<a v-if="scope.row.DataType === 'Link' || scope.row.DataType === 'Router'" target="_blank" :href="scope.row.oldValue">{{scope.row.oldValue}}</a>
<span v-else>
{{ scope.row.oldValue }}
</span>
</span>
</template>
</el-table-column>
<el-table-column
prop="newValue"
:label="OptType === 'Add' || OptType === 'Init' ? '值' : OptType === 'Delete' ? '删除后' : '修改后'"
show-overflow-tooltip
>
<template slot-scope="scope">
<span :style="{ color: scope.row.newValue !== scope.row.oldValue ? '#f66' : null }">
<a v-if="scope.row.DataType === 'Link' || scope.row.DataType === 'Router'" target="_blank" :href="scope.row.newValue">{{scope.row.newValue}}</a>
<span v-else>{{ scope.row.newValue }}</span>
</span>
</template>
</el-table-column>
</el-table>
<el-table
v-if="tableListData.length > 0"
:data="tableListData"
border
style="width: 100%"
size="small"
>
<el-table-column
v-for="item of tableList"
:prop="item.ColumnValue"
:label="item.IsMerge ? item.MergeColumnName : item.headName"
align="center"
show-overflow-tooltip
>
<el-table-column
v-if="item.IsMerge"
v-for="(ite, index) of item.ChildrenList"
:prop="ite.ListName ? ite.ListName + ite.ColumnValue + index : ite.ColumnValue"
:label="ite.headName"
align="center"
show-overflow-tooltip
>
</el-table-column>
</el-table-column>
</el-table>
<div v-if="otherData.length > 0" style="margin-top: 20px;margin-bottom: 10px;">
签名信息:
</div>
<div v-if="otherData.length > 0" style="color:#f66;font-size: 12px">
{{otherData[0].Value}}
</div>
</template>
<template slot="dialog-footer">
<el-button size="small" type="primary" @click="model_cfg3.visible = false">关闭</el-button>
</template>
</base-model>
</template>
</BaseContainer>
</template>
<script>
import {
getTrialSiteSelect,
getTrialVisitStageSelect
} from '@/api/trials'
import { getInspectionList, getInspectionJsonDataList } from '@/api/trials/inspection'
import { getFrontAuditConfigList, getAuditConfigChildList, getModuleTypeDescriptionList, setInspectionEnumValue } from '@/api/dictionary/checkConfig'
import Pagination from '@/components/Pagination'
import BaseContainer from '@/components/BaseContainer'
import BaseModel from '@/components/BaseModel'
import { getToken } from '@/utils/auth'
export default {
components: { BaseContainer, Pagination, BaseModel },
dicts: ['OptType', 'ModuleType', 'ChildrenType'],
data() {
const searchDataDefault = () => {
return {
SortField: '',
Asc: false,
PageIndex: 1,
PageSize: 20,
ModuleType: null,
BlindName: null,
TrialId: this.$route.query.trialId,
SiteId: null,
SubjectId: null,
SubjectInfo: null,
SubjectVisitId: null,
VisitPlanInfo: null,
OptType: null,
ChildrenType: null,
Reason: null,
IsSign: null,
StartTime: null,
EndTime: null,
Description: null,
OpByUserName: null,
BatchId: null
}
}
return {
otherData:[],
model_cfg: { visible: false, showClose: true, width: '600px', title: '', appendToBody: true },
model_cfg2: { visible: false, showClose: true, width: '1000px', title: '查看关联操作', appendToBody: true },
model_cfg3: { visible: false, showClose: true, width: '600px', title: '', appendToBody: true },
total: 0,
loading: false,
searchData: searchDataDefault(),
ResearchProgramNo: null,
list: [],
list2: [],
isOpen: false,
typeConfigList: [],
DescriptionOptions: [],
auditData: [],
auditData2: [],
siteOptions: [],
visitPlanOptions: [],
OptType: null,
trialId: this.$route.query.trialId,
configList2: [],
otherData2: [],
timeList: [],
tableList: [],
tableListData: []
}
},
mounted() {
this.ResearchProgramNo = this.$route.query.researchProgramNo
this.getSite()
this.getVisitPlanOptions()
this.getList()
},
methods: {
handleSortChange(column) {
if (column.order === 'ascending') {
this.searchData.Asc = true
} else {
this.searchData.Asc = false
}
this.searchData.SortField = column.prop
this.searchData.PageIndex = 1
this.getList()
},
changeTimeList() {
if (this.timeList) {
this.searchData.StartTime = this.timeList[0]
this.searchData.EndTime = this.timeList[1]
} else {
this.searchData.StartTime = null
this.searchData.EndTime = null
}
},
getModuleTypeDescriptionList(v) {
this.searchData.Description = null
getModuleTypeDescriptionList( v ).then(res => {
this.DescriptionOptions = res.Result
})
},
// 获取site下拉框数据
getSite() {
getTrialSiteSelect(this.trialId).then(res => {
this.siteOptions = res.Result
})
},
// 获取访视下拉框数据
getVisitPlanOptions() {
getTrialVisitStageSelect(this.trialId)
.then((res) => {
this.visitPlanOptions = res.Result
})
},
toTree(arr, ParentId) {
function loop(ParentId) {
const res = []
for (let i = 0; i < arr.length; i++) {
const item = arr[i]
item.hasChildren = false
if (item.ParentId !== ParentId) {
continue
}
item.Children = loop(item.Id)
res.push(item)
}
return res
}
return loop(ParentId)
},
formatting(config, obj, upObj, parentRow, row, auditData) {
this.tableList = []
this.tableListData = []
this[auditData] = []
config.forEach(v => {
var item
if (!v.IsEnable) return
if (v.DataType === 'Array' || v.DataType === 'array') {
obj[v.Code].forEach((o) => {
var uo = upObj ? upObj[v.Code].find(u => u[v.ChildDataLabel] == o[v.ChildDataLabel]) : null
if (row.OptType === 'Add' || row.OptType === 'Init') {
item = {
key: o[v.ChildDataLabel],
Enum: o[v.ChildDataLabel],
newValue: o[v.ChildDataValue] ? (o[v.ChildDataValue] ? o[v.ChildDataValue] : '--') : '--',
oldValue: ''
}
} else {
item = {
key: o[v.ChildDataLabel],
Enum: o[v.ChildDataLabel],
newValue: o[v.ChildDataValue] ? (o[v.ChildDataValue] ? o[v.ChildDataValue] : '--') : '--',
oldValue: uo ? uo[v.ChildDataValue] : '--'
}
}
this[auditData].push(item)
})
return
}
if (v.DataType === 'Router') {
item = {
oldValue: v.UrlConfig.IsHaveParameters ? v.UrlConfig.RoutePath + '?' +
v.UrlConfig.ParameterList.map((v) => {
let a = obj[v.UrlParameterValueName]
if (v.UrlParameterValueName === 'token') {
a = getToken()
}
return v.UrlParameterName + '=' + a + '&'
}).toString().replaceAll(',', '') : v.UrlConfig.RoutePath,
newValue: v.UrlConfig.IsHaveParameters ? v.UrlConfig.RoutePath + '?' +
v.UrlConfig.ParameterList.map((v) => {
let a = obj[v.UrlParameterValueName]
if (v.UrlParameterValueName === 'token') {
a = getToken()
}
return v.UrlParameterName + '=' + a + '&'
}).toString().replaceAll(',', '') : v.UrlConfig.RoutePath
}
console.log(item)
item.DataType = v.DataType
item.key = v.Code
item.Enum = v.ValueCN
this[auditData].push(item)
return
}
if (v.DataType === 'Table') {
var head = []
var body = []
v.TableConfigList.forEach((j, i) => {
if (j.IsFixedColumn) {
head.push({headName: j.FixedColumnName, IsMerge: j.IsMerge, ColumnName: j.ColumnName, ColumnValue: j.ColumnValue, ListName: j.ListName, MergeColumnName: j.IsMerge ? j.MergeColumnName : null, ChildrenList: []})
} else {
if (j.ListName) {
obj[v.Code][0][j.ListName].forEach((x, o) => {
head.push({headName: x[j.ColumnName], IsMerge: j.IsMerge, ColumnName: j.ColumnName, ColumnValue: j.ColumnValue, ListName: j.ListName, MergeColumnName: j.IsMerge ? j.MergeColumnName : null, ChildrenList: []})
})
} else {
head.push({headName: j.ColumnName, IsMerge: j.IsMerge, ColumnName: j.ColumnName, ColumnValue: j.ColumnValue, ListName: j.ListName, MergeColumnName: j.IsMerge ? j.MergeColumnName : null, ChildrenList: []})
}
}
})
obj[v.Code].forEach((o, i) => {
var b = {}
v.TableConfigList.forEach((j) => {
if (j.ListName) {
o[j.ListName].forEach((ite, i) => {
b[j.ListName + j.ColumnValue + i] = ite[j.ColumnValue]
})
} else {
b[j.ColumnValue] = o[j.ColumnValue]
}
})
body.push(Object.assign({}, b))
})
var newHead = []
var h = JSON.parse(JSON.stringify(head))
h.forEach(j => {
if (j.IsMerge) {
var hasChildren = h.filter(o => {
return o.MergeColumnName === j.MergeColumnName
})
console.log(hasChildren)
if (!!hasChildren) {
j.ChildrenList = Object.assign([], hasChildren)
var has = newHead.find(v => {
return v.MergeColumnName === j.MergeColumnName
})
if (!has) {
newHead.push(j)
}
} else {
}
} else {
newHead.push(j)
}
})
this.tableList = newHead
this.tableListData = body
return
}
if (v.IsShowParent === 1) {
if (row.OptType === 'Delete') {
item = {
oldValue: parentRow ? (parentRow[v.Code] ? parentRow[v.Code] : '--') : '--',
newValue: '--'
}
} else if (row.OptType === 'Add' || row.OptType === 'Init') {
item = {
newValue: parentRow ? (parentRow[v.Code] ? parentRow[v.Code] : '--') : '--',
oldValue: '--'
}
} else {
item = {
newValue: parentRow ? (parentRow[v.Code] ? parentRow[v.Code] : '--') : '--',
oldValue: parentRow ? (parentRow[v.Code] ? parentRow[v.Code] : '--') : '--'
}
}
} else if (v.IsShowParent === 0) {
if (row.OptType === 'Delete') {
item = {
oldValue: obj ? ((obj[v.Code] && obj[v.Code] !== null && obj[v.Code] !== '' || obj[v.Code] !== 0) ? obj[v.Code] : '--') : '--',
newValue: '--'
}
} else if (row.OptType === 'Add' || row.OptType === 'Init') {
item = {
newValue: obj ? ((obj[v.Code] && obj[v.Code] !== null && obj[v.Code] !== '' || obj[v.Code] === 0) ? obj[v.Code] : '--') : '--',
oldValue: '--'
}
} else {
item = {
newValue: obj ? ((obj[v.Code] && obj[v.Code] !== null && obj[v.Code] !== '' || obj[v.Code] !== 0) ? obj[v.Code] : '--') : '--',
oldValue: upObj ? ((upObj[v.Code] && upObj[v.Code] !== null && upObj[v.Code] !== '' || upObj[v.Code] !== 0) ? upObj[v.Code] : '--') : '--'
}
}
} else {
if (row.OptType === 'Delete') {
item = {
oldValue: row ? ((row[v.Code] && row[v.Code] !== null && row[v.Code] !== '') ? row[v.Code] : '--') : '--',
newValue: '--'
}
} else if (row.OptType === 'Add' || row.OptType === 'Init') {
item = {
newValue: row ? ((row[v.Code] && row[v.Code] !== null && row[v.Code] !== '' && row[v.Code] !== 0) ? row[v.Code] : '--') : '--',
oldValue: '--'
}
} else {
item = {
newValue: row ? ((row[v.Code] && row[v.Code] !== null && row[v.Code] !== '' && row[v.Code] !== 0) ? row[v.Code] : '--') : '--',
oldValue: '--'
}
}
}
item.DataType = v.DataType
// if () {
// }
item.key = v.Code
item.Enum = v.ValueCN
this[auditData].push(item)
})
},
getJSON(row) {
return new Promise(resolve => {
getInspectionJsonDataList(this.trialId, row.Id).then(res => {
resolve(res.Result)
})
})
},
lookAssociated(n) {
var searchData = Object.assign({}, {
SortField: '',
Asc: true,
PageIndex: 1,
PageSize: 20,
TrialId: this.$route.query.trialId,
BatchId: !n ? this.currentRow.BatchId : null,
ObjectRelationParentId: n ? this.currentRow.ObjectRelationParentId : null,
RelationDeadlineTime: n ? this.currentRow.CreateTime : null,
GeneralId: n ? this.currentRow.GeneralId : null
})
this.model_cfg2.title = `查看关联操作${this.currentRow.Description}`
this.loading = true
getInspectionList(searchData).then((res) => {
this.list2 = res.CurrentPageData
this.model_cfg2.visible = true
this.loading = false
}).catch(() => {
this.loading = false
})
},
async lookDetails2(row) {
var Json = await this.getJSON(row)
var JsonDetail = Json[0] ? JSON.parse(Json[0]) : null
var ParentJson = Json[1] ? JSON.parse(Json[1]) : null
getAuditConfigChildList(row.FrontAuditConfigId).then(res => {
console.log(res)
var configList2 = res.Result
this.formatting(configList2, JsonDetail.Data, ParentJson ? ParentJson.Data : null, JsonDetail.CommonData, row, 'auditData2')
console.log(this.auditData2)
this.otherData2 = []
if (row.IsSign) {
this.otherData2.push({
Enum: '签名信息',
Value: row.SignText
})
}
this.model_cfg3.title = row.Description
this.model_cfg3.visible = true
})
},
async lookDetails(row) {
this.currentRow = {...row}
this.OptType = row.OptType
var Json = await this.getJSON(row)
var JsonDetail = Json[0] ? JSON.parse(Json[0]) : null
var ParentJson = Json[1] ? JSON.parse(Json[1]) : null
getAuditConfigChildList(
row.FrontAuditConfigId).then(res => {
console.log(res)
var configList = res.Result
this.formatting(configList, JsonDetail.Data, ParentJson ? ParentJson.Data : null, JsonDetail.CommonData, row, 'auditData')
this.otherData = []
if (row.IsSign) {
console.log(row.SignText)
this.otherData.push({
Enum: '签名信息',
Value: row.SignText
})
}
this.model_cfg.title = row.Description
this.model_cfg.visible = true
})
},
handleReset() {
this.searchData = Object.assign(this.searchData, {
SortField: '',
Asc: false,
PageIndex: 1,
PageSize: 20,
ModuleType: null,
BlindName: null,
TrialId: this.$route.query.trialId,
SiteId: null,
SubjectId: null,
SubjectInfo: null,
SubjectVisitId: null,
VisitPlanInfo: null,
OptType: null,
ChildrenType: null,
Reason: null,
IsSign: null,
StartTime: null,
EndTime: null,
Description: null,
OpByUserName: null,
BatchId: null
})
this.getList()
},
handleSearch() {
this.searchData.PageIndex = 1
this.getList()
},
getList() {
this.loading = true
getInspectionList(this.searchData).then((res) => {
this.list = res.CurrentPageData
// this.list = this.list.map(v => {
// v.OptType = v.OptTypeName
// return v
// })
this.total = res.TotalCount
this.model_cfg.visible = false
this.loading = false
this.searchData.BatchId = null
}).catch(() => {
this.loading = false
})
}
}
}
</script>
<style scoped>
</style>