工作台增加通用培训
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
58a590bbb7
commit
3ab9b48842
|
@ -1619,6 +1619,13 @@ export function getDocumentConfirmList(param) {
|
|||
data: param
|
||||
})
|
||||
}
|
||||
export function getSysDocumentConfirmList(param) {
|
||||
return request({
|
||||
url: `/TrialDocument/getSysDocumentConfirmList`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
||||
export function getTrialUserSelect(trialId) {
|
||||
return request({
|
||||
url: `/TrialDocument/getTrialUserSelect/${trialId}`,
|
||||
|
@ -1633,6 +1640,13 @@ export function getTrialDocAndSystemDocType(trialId) {
|
|||
})
|
||||
}
|
||||
|
||||
export function getSysDocSignUserList() {
|
||||
return request({
|
||||
url: `/TrialDocument/getSysDocSignUserList`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function updateSubjectStatus(param) {
|
||||
return request({
|
||||
url: `/Subject/updateSubjectStatus`,
|
||||
|
|
|
@ -1,80 +1,82 @@
|
|||
<template>
|
||||
<BaseContainer>
|
||||
<template slot="title-container">
|
||||
<el-row v-if="isSystem" style="width: 100%;">
|
||||
<el-col :span="12">
|
||||
<h3>{{ TITLE }}</h3>
|
||||
</el-col>
|
||||
<el-col :span="12" style="text-align:right;">
|
||||
<h3>
|
||||
<Pagination class="page" :total="total" :page.sync="searchData.pageIndex" :limit.sync="searchData.pageSize"
|
||||
layout="total, sizes, prev, pager, next" :background="false" style="display: inline-block;"
|
||||
@pagination="getList" />
|
||||
<el-button icon="el-icon-refresh-left" size="small" circle :title="$t('common:button:reset')"
|
||||
@click="handleReset" />
|
||||
</h3>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
<template slot="search-container">
|
||||
<el-form :inline="true" size="small">
|
||||
<el-form-item :label="$t('dictionary:signature:search:FileTypeId')">
|
||||
<el-select v-model="searchData.FileTypeId" style="width: 150px">
|
||||
<el-option
|
||||
v-for="item of dict.type.Sys_Document"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
<el-select v-model="searchData.FileTypeId" style="width: 150px" clearable>
|
||||
<el-option v-for="item of dict.type.Sys_Document" :key="item.value" :label="item.label"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('dictionary:signature:search:Name')">
|
||||
<el-input v-model="searchData.Name" style="width: 130px" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item :label="$t('dictionary:signature:table:NeedConfirmedUserTypes')">
|
||||
<el-select v-model="searchData.UserTypeId" style="width: 150px" clearable>
|
||||
<el-option v-for="item of userTypeOptions" :key="item.Id" :label="item.UserTypeShortName"
|
||||
:value="item.Id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('dictionary:signature:table:IsDeleted')">
|
||||
<el-select v-model="searchData.IsDeleted" style="width: 150px" clearable>
|
||||
<el-option v-for="item of $d.TrainingStatus" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('dictionary:signature:table:DocUserSignType')">
|
||||
<el-select v-model="searchData.DocUserSignType" style="width: 150px" clearable>
|
||||
<el-option v-for="item of $d.ReadingYesOrNo" :key="item.id" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('dictionary:signature:table:createTime')">
|
||||
<el-date-picker v-model="timeList" @change="changeTimeList" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
:default-time="['00:00:00', '23:59:59']" type="datetimerange">
|
||||
</el-date-picker>
|
||||
</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"
|
||||
>
|
||||
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
|
||||
{{ $t('common:button:reset') }}
|
||||
</el-button>
|
||||
<el-button type="primary" size="small" @click="handleAdd">
|
||||
{{ $t('common:button:new') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-button
|
||||
type="primary"
|
||||
style="margin-left: auto; margin-bottom: 10px"
|
||||
size="small"
|
||||
@click="handleAdd"
|
||||
>
|
||||
{{ $t('common:button:new') }}
|
||||
</el-button>
|
||||
|
||||
</template>
|
||||
<template slot="main-container">
|
||||
<el-table
|
||||
v-adaptive="{ bottomOffset: 60 }"
|
||||
v-loading="loading"
|
||||
:data="list"
|
||||
stripe
|
||||
height="100"
|
||||
@sort-change="handleSortByColumn"
|
||||
>
|
||||
<el-table v-adaptive="{ bottomOffset: 60 }" v-loading="loading" :data="list" stripe height="100"
|
||||
@sort-change="handleSortByColumn">
|
||||
<el-table-column type="index" width="40" />
|
||||
<el-table-column
|
||||
prop="FileType"
|
||||
:label="$t('dictionary:signature:table:FileType')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="Name"
|
||||
:label="$t('dictionary:signature:table:Name')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column prop="FileType" :label="$t('dictionary:signature:table:FileType')" show-overflow-tooltip
|
||||
sortable="custom" />
|
||||
<el-table-column prop="Name" :label="$t('dictionary:signature:table:Name')" show-overflow-tooltip
|
||||
sortable="custom" />
|
||||
|
||||
<el-table-column
|
||||
prop="SignViewMinimumMinutes"
|
||||
:label="$t('dictionary:signature:table:SignViewMinimumMinutes')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="110"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="NeedConfirmedUserTypes"
|
||||
:label="$t('dictionary:signature:table:NeedConfirmedUserTypes')"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<el-table-column prop="SignViewMinimumMinutes" :label="$t('dictionary:signature:table:SignViewMinimumMinutes')"
|
||||
show-overflow-tooltip sortable="custom" min-width="110" />
|
||||
<el-table-column prop="NeedConfirmedUserTypes" :label="$t('dictionary:signature:table:NeedConfirmedUserTypes')"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.NeedConfirmedUserTypes
|
||||
|
@ -83,12 +85,8 @@
|
|||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="IsDeleted"
|
||||
:label="$t('dictionary:signature:table:IsDeleted')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
>
|
||||
<el-table-column prop="IsDeleted" :label="$t('dictionary:signature:table:IsDeleted')" show-overflow-tooltip
|
||||
sortable="custom">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsDeleted" type="danger">{{
|
||||
$fd('TrainingStatus', scope.row.IsDeleted)
|
||||
|
@ -98,23 +96,14 @@
|
|||
}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="DocUserSignType"
|
||||
:label="$t('dictionary:signature:table:DocUserSignType')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="90"
|
||||
>
|
||||
<el-table-column prop="DocUserSignType" :label="$t('dictionary:signature:table:DocUserSignType')"
|
||||
show-overflow-tooltip sortable="custom" min-width="90">
|
||||
<template slot-scope="scope">
|
||||
{{ $fd('ReadingYesOrNo', Number(scope.row.DocUserSignType)) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="CreateTime"
|
||||
:label="$t('dictionary:signature:table:CreateTime')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column prop="CreateTime" :label="$t('dictionary:signature:table:CreateTime')" show-overflow-tooltip
|
||||
sortable="custom" />
|
||||
|
||||
<el-table-column :label="$t('common:action:action')" min-width="120">
|
||||
<template slot-scope="scope">
|
||||
|
@ -124,11 +113,7 @@
|
|||
<el-button type="text" @click="handleEdit(scope.row)">
|
||||
{{ $t('common:button:edit') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
:disabled="scope.row.IsDeleted"
|
||||
type="text"
|
||||
@click="handleRepeal(scope.row)"
|
||||
>
|
||||
<el-button :disabled="scope.row.IsDeleted" type="text" @click="handleRepeal(scope.row)">
|
||||
{{ $t('common:button:revoke') }}
|
||||
</el-button>
|
||||
<el-button type="text" @click="handleDelete(scope.row)">
|
||||
|
@ -138,48 +123,20 @@
|
|||
</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" v-if="!isSystem" />
|
||||
|
||||
<!-- 新增/编辑 -->
|
||||
<el-dialog
|
||||
v-if="editVisible"
|
||||
:visible.sync="editVisible"
|
||||
:close-on-click-modal="false"
|
||||
:title="title"
|
||||
width="600px"
|
||||
custom-class="base-dialog-wrapper"
|
||||
>
|
||||
<TemplateForm
|
||||
:data="currentRow"
|
||||
@closeDialog="closeDialog"
|
||||
@getList="getList"
|
||||
/>
|
||||
<el-dialog v-if="editVisible" :visible.sync="editVisible" :close-on-click-modal="false" :title="title"
|
||||
width="600px" custom-class="base-dialog-wrapper">
|
||||
<TemplateForm :data="currentRow" @closeDialog="closeDialog" @getList="getList" />
|
||||
</el-dialog>
|
||||
|
||||
<!-- 预览文件 -->
|
||||
<el-dialog
|
||||
v-if="previewVisible"
|
||||
:visible.sync="previewVisible"
|
||||
:title="$t('common:button:preview')"
|
||||
:fullscreen="true"
|
||||
append-to-body
|
||||
custom-class="base-dialog-wrapper"
|
||||
>
|
||||
<div
|
||||
class="base-modal-body"
|
||||
style="border: 2px solid #ccc; padding: 10px"
|
||||
>
|
||||
<PreviewFile
|
||||
v-if="previewVisible"
|
||||
:file-path="currentPath"
|
||||
:file-type="currentType"
|
||||
/>
|
||||
<el-dialog v-if="previewVisible" :visible.sync="previewVisible" :title="$t('common:button:preview')"
|
||||
:fullscreen="true" append-to-body custom-class="base-dialog-wrapper">
|
||||
<div class="base-modal-body" style="border: 2px solid #ccc; padding: 10px">
|
||||
<PreviewFile v-if="previewVisible" :file-path="currentPath" :file-type="currentType" />
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
@ -187,7 +144,7 @@
|
|||
</template>
|
||||
<script>
|
||||
import { getSystemDocumentList, deleteSystemDocument } from '@/api/dictionary'
|
||||
import { userAbandonDoc } from '@/api/trials'
|
||||
import { userAbandonDoc, getTrialUserTypeList } from '@/api/trials'
|
||||
import BaseContainer from '@/components/BaseContainer'
|
||||
import Pagination from '@/components/Pagination'
|
||||
import TemplateForm from './TemplateForm'
|
||||
|
@ -195,6 +152,11 @@ import PreviewFile from '@/components/PreviewFile/index'
|
|||
const searchDataDefault = () => {
|
||||
return {
|
||||
FileTypeId: '',
|
||||
BeginCreateTime: null,
|
||||
EndCreateTime: null,
|
||||
IsDeleted: null,
|
||||
DocUserSignType: null,
|
||||
UserTypeId: null,
|
||||
Name: '',
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
|
@ -204,6 +166,16 @@ export default {
|
|||
name: 'SignatureTemplate',
|
||||
components: { BaseContainer, Pagination, TemplateForm, PreviewFile },
|
||||
dicts: ['Sys_Document'],
|
||||
props: {
|
||||
isSystem: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
TITLE: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
searchData: searchDataDefault(),
|
||||
|
@ -216,12 +188,34 @@ export default {
|
|||
previewVisible: false,
|
||||
title: '',
|
||||
loading: false,
|
||||
userTypeOptions: [],
|
||||
timeList: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
this.getUserType()
|
||||
},
|
||||
methods: {
|
||||
changeTimeList() {
|
||||
if (this.timeList) {
|
||||
this.searchData.BeginCreateTime = this.timeList[0]
|
||||
this.searchData.EndCreateTime = this.timeList[1]
|
||||
} else {
|
||||
this.searchData.BeginCreateTime = null
|
||||
this.searchData.EndCreateTime = null
|
||||
}
|
||||
},
|
||||
// 获取用户类型下拉数据
|
||||
getUserType() {
|
||||
getTrialUserTypeList()
|
||||
.then((res) => {
|
||||
this.userTypeOptions = res.Result
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 获取系统文件数据
|
||||
getList() {
|
||||
this.loading = true
|
||||
|
@ -287,7 +281,7 @@ export default {
|
|||
this.loading = false
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
.catch(() => { })
|
||||
},
|
||||
// 删除
|
||||
handleDelete(row) {
|
||||
|
|
|
@ -4,158 +4,107 @@
|
|||
<div class="title" v-if="isDoc">
|
||||
{{ TITLE }}
|
||||
</div>
|
||||
<el-row v-if="isSystem" style="width: 100%;">
|
||||
<el-col :span="12">
|
||||
<h3>{{ TITLE }}</h3>
|
||||
</el-col>
|
||||
<el-col :span="12" style="text-align:right;">
|
||||
<h3>
|
||||
<Pagination class="page" :total="total" :page.sync="searchData.pageIndex" :limit.sync="searchData.pageSize"
|
||||
layout="total, sizes, prev, pager, next" :background="false" style="display: inline-block;"
|
||||
@pagination="getList" />
|
||||
<el-button icon="el-icon-refresh-left" size="small" circle :title="$t('common:button:reset')"
|
||||
@click="handleReset" />
|
||||
</h3>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
<!-- 搜索框 -->
|
||||
<template slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!-- 文件类型 -->
|
||||
<el-form-item :label="$t('trials:signRecords:table:fileType')">
|
||||
<el-select
|
||||
v-model="searchData.FileTypeId"
|
||||
clearable
|
||||
style="width: 150px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of typeOptions"
|
||||
:key="item.FileTypeId"
|
||||
:label="item.FileType"
|
||||
:value="item.FileTypeId"
|
||||
/>
|
||||
<el-select v-model="searchData.FileTypeId" clearable style="width: 150px">
|
||||
<template v-if="isSystem">
|
||||
<el-option v-for="item of typeOptions" :key="item.id" :label="item.label" :value="item.id" />
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-option v-for="item of typeOptions" :key="item.FileTypeId" :label="item.FileType"
|
||||
:value="item.FileTypeId" />
|
||||
</template>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 文件名称 -->
|
||||
<el-form-item :label="$t('trials:signRecords:table:fileName')">
|
||||
<el-input v-model="searchData.Name" style="width: 120px" />
|
||||
<el-input v-model="searchData.Name" clearable style="width: 120px" />
|
||||
</el-form-item>
|
||||
<!-- 签署人 -->
|
||||
<el-form-item
|
||||
:label="$t('trials:signRecords:table:user')"
|
||||
v-if="!isDoc"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.UserId"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 140px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of userOptions"
|
||||
:key="item.UserId"
|
||||
:label="item.RealName"
|
||||
:value="item.UserId"
|
||||
>
|
||||
<span style="float: left">{{ item.RealName }}</span>
|
||||
<span
|
||||
style="
|
||||
<el-form-item :label="$t('trials:signRecords:table:user')" v-if="!isDoc">
|
||||
<el-select v-model="searchData.UserId" clearable filterable style="width: 140px">
|
||||
<el-option v-for="item of userOptions" :key="item.UserId" :label="item.RealName" :value="item.UserId">
|
||||
<span style="float: left">{{ item.RealName || item.FullName }}</span>
|
||||
<span style="
|
||||
float: right;
|
||||
color: #8492a6;
|
||||
font-size: 13px;
|
||||
margin-left: 5px;
|
||||
"
|
||||
>
|
||||
">
|
||||
{{ item.UserName }}
|
||||
</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 用户名 -->
|
||||
<el-form-item :label="$t('trials:signRecords:table:userName')" v-if="isSystem">
|
||||
<el-input v-model="searchData.userName" clearable style="width: 120px" />
|
||||
</el-form-item>
|
||||
<!-- 用户类型 -->
|
||||
<el-form-item
|
||||
:label="$t('trials:signRecords:table:userType')"
|
||||
v-if="!isDoc"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.UserTypeId"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of userTypeOptions"
|
||||
v-show="item.UserTypeEnum !== 26 && item.UserTypeEnum !== 27"
|
||||
:key="item.Id"
|
||||
:label="item.UserTypeShortName"
|
||||
:value="item.Id"
|
||||
>
|
||||
<el-form-item :label="$t('trials:signRecords:table:userType')" v-if="!isDoc">
|
||||
<el-select v-model="searchData.UserTypeId" clearable filterable style="width: 120px">
|
||||
<el-option v-for="item of userTypeOptions" v-show="item.UserTypeEnum !== 26 && item.UserTypeEnum !== 27"
|
||||
:key="item.Id" :label="item.UserTypeShortName" :value="item.Id">
|
||||
<span>{{ item.UserType }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('trials:signRecords:table:isSign')"
|
||||
v-if="!isDoc || !viewStatus"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.IsConfirmed"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="i of $d.TrainingStatusEnum"
|
||||
:key="'IsConfirmed' + i.label"
|
||||
:value="i.value"
|
||||
:label="i.label"
|
||||
/>
|
||||
<el-form-item :label="$t('trials:signRecords:table:isSign')" v-if="!isDoc || !viewStatus">
|
||||
<el-select v-model="searchData.IsConfirmed" clearable style="width: 120px">
|
||||
<el-option v-for="i of $d.TrainingStatusEnum" :key="'IsConfirmed' + i.label" :value="i.value"
|
||||
:label="i.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="
|
||||
isDoc
|
||||
? $t('trials:signRecords:table:isDeletedFile')
|
||||
: $t('trials:signRecords:table:isDeleted')
|
||||
"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.IsDeleted"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="i of $d.TrainingStatus"
|
||||
:key="'IsDeleted' + i.label"
|
||||
:value="i.value"
|
||||
:label="i.label"
|
||||
/>
|
||||
<el-form-item :label="isDoc
|
||||
? $t('trials:signRecords:table:isDeletedFile')
|
||||
: $t('trials:signRecords:table:isDeleted')
|
||||
">
|
||||
<el-select v-model="searchData.IsDeleted" clearable style="width: 120px">
|
||||
<el-option v-for="i of $d.TrainingStatus" :key="'IsDeleted' + i.label" :value="i.value" :label="i.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('trials:signRecords:table:username')"
|
||||
v-if="isDoc"
|
||||
>
|
||||
<el-form-item :label="$t('trials:signRecords:table:username')" v-if="isDoc">
|
||||
<el-input v-model="searchData.UserName" style="width: 120px" />
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('trials:signRecords:table:confirmTime')"
|
||||
v-if="isDoc"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="timeList"
|
||||
@change="changeTimeList"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
:default-time="['00:00:00', '23:59:59']"
|
||||
type="datetimerange"
|
||||
>
|
||||
<el-form-item :label="$t('trials:signRecords:table:confirmTime')" v-if="isDoc || isSystem">
|
||||
<el-date-picker v-model="timeList" @change="changeTimeList" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
:default-time="['00:00:00', '23:59:59']" type="datetimerange">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('trials:signRecords:table:uploadTime')" v-if="isSystem">
|
||||
<el-date-picker v-model="timeListC" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetimerange" :default-time="['00:00:00', '23:59:59']" @change="changeTimeListC" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<!-- 查询 -->
|
||||
<el-button icon="el-icon-search" type="primary" @click="handleSearch">
|
||||
{{ $t('common:button:search') }}
|
||||
</el-button>
|
||||
<!-- 重置 -->
|
||||
<el-button
|
||||
icon="el-icon-refresh-left"
|
||||
type="primary"
|
||||
@click="handleReset"
|
||||
>
|
||||
<el-button icon="el-icon-refresh-left" type="primary" @click="handleReset">
|
||||
{{ $t('common:button:reset') }}
|
||||
</el-button>
|
||||
<!-- 导出 -->
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-download"
|
||||
:loading="exportLoading"
|
||||
@click="handleExport"
|
||||
>
|
||||
<el-button type="primary" icon="el-icon-download" :loading="exportLoading" @click="handleExport"
|
||||
v-if="!isSystem || !hasPermi(['role:ea'])">
|
||||
{{ $t('common:button:export') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
|
@ -164,39 +113,18 @@
|
|||
|
||||
<template slot="main-container">
|
||||
<!-- 系统文件列表 -->
|
||||
<el-table
|
||||
ref="AttachmentsManagement"
|
||||
v-loading="loading"
|
||||
v-adaptive="{ bottomOffset: 60 }"
|
||||
:data="list"
|
||||
stripe
|
||||
height="100"
|
||||
@sort-change="handleSortByColumn"
|
||||
>
|
||||
<el-table ref="AttachmentsManagement" v-loading="loading" v-adaptive="{ bottomOffset: 60 }" :data="list" stripe
|
||||
height="100" @sort-change="handleSortByColumn">
|
||||
<el-table-column type="index" width="40" />
|
||||
<!-- 文件类型 -->
|
||||
<el-table-column
|
||||
prop="FileType"
|
||||
:label="$t('trials:signRecords:table:fileType')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
width="160"
|
||||
/>
|
||||
<el-table-column prop="FileType" :label="$t('trials:signRecords:table:fileType')" show-overflow-tooltip
|
||||
sortable="custom" width="160" />
|
||||
<!-- 文件名称 -->
|
||||
<el-table-column
|
||||
prop="Name"
|
||||
:label="$t('trials:signRecords:table:fileName')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column prop="Name" :label="$t('trials:signRecords:table:fileName')" show-overflow-tooltip
|
||||
sortable="custom" />
|
||||
<!-- 文件级别 -->
|
||||
<el-table-column
|
||||
prop="IsSystemDoc"
|
||||
:label="$t('trials:signRecords:table:fileLevel')"
|
||||
show-overflow-tooltip
|
||||
width="160"
|
||||
sortable="custom"
|
||||
>
|
||||
<el-table-column prop="IsSystemDoc" :label="$t('trials:signRecords:table:fileLevel')" show-overflow-tooltip
|
||||
width="160" sortable="custom" v-if="!isSystem">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsSystemDoc" type="primary">{{
|
||||
$fd('IsSystemDoc', scope.row.IsSystemDoc)
|
||||
|
@ -207,16 +135,10 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<!-- 是否废除 -->
|
||||
<el-table-column
|
||||
prop="IsDeleted"
|
||||
:label="
|
||||
isDoc
|
||||
? $t('trials:signRecords:table:isDeletedFile')
|
||||
: $t('trials:signRecords:table:isDeleted')
|
||||
"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
>
|
||||
<el-table-column prop="IsDeleted" :label="isDoc
|
||||
? $t('trials:signRecords:table:isDeletedFile')
|
||||
: $t('trials:signRecords:table:isDeleted')
|
||||
" show-overflow-tooltip sortable="custom">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsDeleted" type="danger">{{
|
||||
$fd('TrainingStatus', scope.row.IsDeleted)
|
||||
|
@ -227,20 +149,11 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<!-- 上传时间 -->
|
||||
<el-table-column
|
||||
prop="CreateTime"
|
||||
:label="$t('trials:signRecords:table:uploadTime')"
|
||||
show-overflow-tooltip
|
||||
width="160"
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column prop="CreateTime" :label="$t('trials:signRecords:table:uploadTime')" show-overflow-tooltip
|
||||
width="160" sortable="custom" />
|
||||
<!-- 是否签署 -->
|
||||
<el-table-column
|
||||
prop="ConfirmTime"
|
||||
:label="$t('trials:signRecords:table:isSign')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
>
|
||||
<el-table-column prop="ConfirmTime" :label="$t('trials:signRecords:table:isSign')" show-overflow-tooltip
|
||||
sortable="custom">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.IsConfirmed" type="primary">{{
|
||||
$fd('TrainingStatusEnum', scope.row.IsConfirmed)
|
||||
|
@ -251,84 +164,45 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<!-- 签署人 -->
|
||||
<el-table-column
|
||||
prop="RealName"
|
||||
:label="$t('trials:signRecords:table:user')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
v-if="!isDoc || !viewStatus"
|
||||
/>
|
||||
<el-table-column prop="RealName" :label="$t('trials:signRecords:table:user')" show-overflow-tooltip
|
||||
sortable="custom" v-if="!isDoc || !viewStatus" />
|
||||
<!-- 用户名 -->
|
||||
<el-table-column
|
||||
prop="UserName"
|
||||
:label="$t('trials:signRecords:table:userName')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column prop="UserName" :label="$t('trials:signRecords:table:userName')" show-overflow-tooltip
|
||||
sortable="custom" />
|
||||
<!-- 用户类型 -->
|
||||
<el-table-column
|
||||
prop="UserConfirmedUserTypeList"
|
||||
:label="$t('trials:signRecords:table:userType')"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<el-table-column prop="UserConfirmedUserTypeList" :label="$t('trials:signRecords:table:userType')"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="scope">
|
||||
<span>{{
|
||||
Array.isArray(scope.row.UserConfirmedUserTypeList) &&
|
||||
scope.row.UserConfirmedUserTypeList.length > 0
|
||||
scope.row.UserConfirmedUserTypeList.length > 0
|
||||
? scope.row.UserConfirmedUserTypeList.join(', ')
|
||||
: ''
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 签署时间 -->
|
||||
<el-table-column
|
||||
prop="ConfirmTime"
|
||||
:label="$t('trials:signRecords:table:confirmTime')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column prop="ConfirmTime" :label="$t('trials:signRecords:table:confirmTime')" show-overflow-tooltip
|
||||
sortable="custom" />
|
||||
<el-table-column :label="$t('common:action:action')">
|
||||
<template slot-scope="scope">
|
||||
<!-- 预览 -->
|
||||
<el-button
|
||||
circle
|
||||
:title="$t('trials:signRecords:action:preview')"
|
||||
icon="el-icon-view"
|
||||
@click="handlePreview(scope.row)"
|
||||
/>
|
||||
<el-button circle :title="$t('trials:signRecords:action:preview')" icon="el-icon-view"
|
||||
@click="handlePreview(scope.row)" />
|
||||
</template>
|
||||
</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" v-if="!isSystem" />
|
||||
</template>
|
||||
|
||||
<!-- 预览文件 -->
|
||||
<el-dialog
|
||||
v-if="previewVisible"
|
||||
:visible.sync="previewVisible"
|
||||
:title="$t('trials:signRecords:action:preview')"
|
||||
:fullscreen="true"
|
||||
append-to-body
|
||||
custom-class="base-dialog-wrapper"
|
||||
>
|
||||
<div
|
||||
class="base-modal-body"
|
||||
style="border: 2px solid #ccc; padding: 10px"
|
||||
>
|
||||
<PreviewFile
|
||||
v-if="previewVisible"
|
||||
:file-path="currentPath"
|
||||
:file-type="currentType"
|
||||
@getList="getList"
|
||||
/>
|
||||
<el-dialog v-if="previewVisible" :visible.sync="previewVisible" :title="$t('trials:signRecords:action:preview')"
|
||||
:fullscreen="true" append-to-body custom-class="base-dialog-wrapper">
|
||||
<div class="base-modal-body" style="border: 2px solid #ccc; padding: 10px">
|
||||
<PreviewFile v-if="previewVisible" :file-path="currentPath" :file-type="currentType" @getList="getList" />
|
||||
</div>
|
||||
</el-dialog>
|
||||
</BaseContainer>
|
||||
|
@ -339,6 +213,8 @@ import {
|
|||
getTrialUserSelect,
|
||||
getTrialUserTypeList,
|
||||
getTrialDocAndSystemDocType,
|
||||
getSysDocumentConfirmList,
|
||||
getSysDocSignUserList
|
||||
} from '@/api/trials'
|
||||
import { pMTrainingRecordList_Export } from '@/api/export'
|
||||
import BaseContainer from '@/components/BaseContainer'
|
||||
|
@ -349,6 +225,9 @@ const searchDataDefault = () => {
|
|||
UserName: null,
|
||||
StartConfirmTime: null,
|
||||
EndConfirmTime: null,
|
||||
EndCreateTime: null,
|
||||
BeginCreateTime: null,
|
||||
userName: null,
|
||||
FileTypeId: '',
|
||||
Name: '',
|
||||
UserId: '',
|
||||
|
@ -375,6 +254,10 @@ export default {
|
|||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
isSystem: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -393,6 +276,7 @@ export default {
|
|||
trialId: this.$route.query.trialId,
|
||||
exportLoading: false,
|
||||
timeList: [],
|
||||
timeListC: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
@ -410,6 +294,15 @@ export default {
|
|||
this.searchData.EndConfirmTime = null
|
||||
}
|
||||
},
|
||||
changeTimeListC() {
|
||||
if (this.timeListC) {
|
||||
this.searchData.BeginCreateTime = this.timeListC[0]
|
||||
this.searchData.EndCreateTime = this.timeListC[1]
|
||||
} else {
|
||||
this.searchData.BeginCreateTime = null
|
||||
this.searchData.EndCreateTime = null
|
||||
}
|
||||
},
|
||||
handleExport() {
|
||||
this.exportLoading = true
|
||||
pMTrainingRecordList_Export(this.searchData)
|
||||
|
@ -432,29 +325,52 @@ export default {
|
|||
this.searchData.UserTypeId = IR.Id
|
||||
}
|
||||
}
|
||||
this.searchData.TrialId = this.trialId
|
||||
getDocumentConfirmList(this.searchData)
|
||||
.then(async (res) => {
|
||||
this.loading = false
|
||||
this.list = res.Result.CurrentPageData
|
||||
this.total = res.Result.TotalCount
|
||||
console.log(this.total)
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
if (this.isSystem) {
|
||||
getSysDocumentConfirmList(this.searchData)
|
||||
.then(async (res) => {
|
||||
this.loading = false
|
||||
this.list = res.Result.CurrentPageData
|
||||
this.total = res.Result.TotalCount
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
this.searchData.TrialId = this.trialId
|
||||
getDocumentConfirmList(this.searchData)
|
||||
.then(async (res) => {
|
||||
this.loading = false
|
||||
this.list = res.Result.CurrentPageData
|
||||
this.total = res.Result.TotalCount
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
// 获取文件类型下拉数据
|
||||
getTypeOptions() {
|
||||
getTrialDocAndSystemDocType(this.trialId).then((res) => {
|
||||
this.typeOptions = res.Result
|
||||
})
|
||||
if (this.isSystem) {
|
||||
this.typeOptions = this.$d.Sys_Document
|
||||
} else {
|
||||
getTrialDocAndSystemDocType(this.trialId).then((res) => {
|
||||
this.typeOptions = res.Result
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
// 获取当前项目下参与者信息
|
||||
getUserSelect() {
|
||||
getTrialUserSelect(this.trialId).then((res) => {
|
||||
this.userOptions = res.Result
|
||||
})
|
||||
if (this.isSystem) {
|
||||
getSysDocSignUserList().then((res) => {
|
||||
this.userOptions = res.Result
|
||||
})
|
||||
} else {
|
||||
getTrialUserSelect(this.trialId).then((res) => {
|
||||
this.userOptions = res.Result
|
||||
})
|
||||
}
|
||||
},
|
||||
// 获取用户类型下拉数据
|
||||
getUserType() {
|
||||
|
@ -481,6 +397,7 @@ export default {
|
|||
handleReset() {
|
||||
this.searchData = searchDataDefault()
|
||||
this.timeList = []
|
||||
this.timeListC = []
|
||||
this.getList()
|
||||
this.$nextTick(() => {
|
||||
this.$refs.AttachmentsManagement.clearSort()
|
||||
|
|
|
@ -1,3 +1,29 @@
|
|||
<template>
|
||||
<div>viewGeneralTraining</div>
|
||||
</template>
|
||||
<div class="generalTraining">
|
||||
<SignatureTemplate v-if="isManage" ref="SignatureTemplate" :TITLE="$t('trials:tab:updateGeneralTraining')"
|
||||
:isSystem="true" />
|
||||
<AttachmentsManagement v-else ref="AttachmentsManagement" :TITLE="$t('trials:tab:viewGeneralTraining')"
|
||||
:isSystem="true" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import SignatureTemplate from '@/views/dictionary/attachment/components/SignatureTemplate'
|
||||
import AttachmentsManagement from '@/views/trials/trials-panel/attachments/attachment-management'
|
||||
export default {
|
||||
name: "generalTraining",
|
||||
props: {
|
||||
isManage: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
components: { SignatureTemplate, AttachmentsManagement },
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .box-body .search {
|
||||
flex-wrap: wrap;
|
||||
padding: 0;
|
||||
// align-items: center;
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue