Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is running Details

uat
caiyiling 2025-03-18 15:27:16 +08:00
commit 070db5158d
15 changed files with 620 additions and 1099 deletions

View File

@ -1265,6 +1265,14 @@ export function getTrialFileTypeFile(data) {
data
})
}
// 项目文档-删除上传同意入项记录
export function deleteTrialTypeFile(params) {
return request({
url: `/TrialFileType/deleteTrialTypeFile`,
method: 'post',
params
})
}
// 项目文档-获取资质材料列表
export function getTrialAttachments(data) {
return request({

View File

@ -1,7 +1,7 @@
// eslint-disable-next-line no-undef
module.exports = {
title: 'IRCIS',
title: 'IRC Imaging System',
/**
* @type {boolean} true | false

View File

@ -1,6 +1,6 @@
import defaultSettings from '@/settings'
const title = defaultSettings.title || 'IRCIS'
const title = defaultSettings.title || 'IRC Imaging System'
export default function getPageTitle(pageTitle) {
if (pageTitle) {

View File

@ -241,7 +241,7 @@ const searchDataDefault = () => {
PageIndex: 1,
PageSize: 20,
asc: false,
sortField: 'CreateTime',
sortField: '',
}
}
export default {

View File

@ -291,21 +291,33 @@
:label="$t('trials:seletctedReviews:table:institution')"
show-overflow-tooltip
width="150"
/>
>
<template slot-scope="scope">
<span>{{ isEN?scope.row.HospitalName:scope.row.HospitalNameCN }}</span>
</template>
</el-table-column>
<!-- City -->
<el-table-column
prop="City"
:label="$t('trials:seletctedReviews:table:city')"
show-overflow-tooltip
width="150"
/>
>
<template slot-scope="scope">
<span>{{ isEN?scope.row.City:scope.row.CityCN }}</span>
</template>
</el-table-column>
<!-- Country -->
<el-table-column
prop="Country"
:label="$t('trials:seletctedReviews:table:country')"
show-overflow-tooltip
width="150"
/>
>
<template slot-scope="scope">
<span>{{ isEN?scope.row.Country:scope.row.CountryCN }}</span>
</template>
</el-table-column>
<!-- Selector -->
<el-table-column
prop="OptUserName"

View File

@ -278,6 +278,7 @@
>
<template slot-scope="scope">
<el-switch
:disabled="!scope.row.TrialFileRecord"
v-if="isManage && !viewStatus && hasEdit"
v-model="scope.row.IsAuthorizedView"
@change="(val) => auth(false, scope.row, val)"
@ -769,7 +770,7 @@ export default {
},
immediate: true,
},
rowData: {
'rowData.IsEnable': {
handler() {
this.DATA = Object.assign({}, this.rowData)
},

View File

@ -273,6 +273,12 @@ export default {
this.loading = true
let res = await setAuthorizedView(data)
this.loading = false
if (res.IsSuccess) {
this.$emit('update:rowData', {})
this.$nextTick(() => {
this.$emit('update:rowData', item)
})
}
} catch (err) {
this.loading = false
item.IsEnable = !item.IsEnable

View File

@ -766,7 +766,7 @@ export default {
},
immediate: true,
},
rowData: {
'rowData.IsEnable': {
handler() {
this.DATA = Object.assign({}, this.rowData)
},

View File

@ -722,7 +722,7 @@ export default {
},
immediate: true,
},
rowData: {
'rowData.IsEnable': {
handler() {
this.DATA = Object.assign({}, this.rowData)
},

View File

@ -1,101 +1,45 @@
<template>
<base-model :config="config">
<div slot="dialog-body">
<el-form
ref="trainRecordForm"
:model="form"
label-width="140px"
size="small"
:rules="rules"
>
<el-form ref="trainRecordForm" :model="form" label-width="140px" size="small" :rules="rules">
<div class="base-dialog-body">
<el-form-item
v-if="!config.upload"
:label="$t('trials:trialDocument:trainRecord:form:TrianingDate')"
prop="TrianingDate"
>
<el-date-picker
v-model="form.TrianingDate"
type="date"
placeholder=""
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
style="width: 100%"
>
<el-form-item v-if="!config.upload" :label="$t('trials:trialDocument:trainRecord:form:TrianingDate')"
prop="TrianingDate">
<el-date-picker v-model="form.TrianingDate" type="date" placeholder="" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" style="width: 100%">
</el-date-picker>
</el-form-item>
<el-form-item
v-if="!config.upload"
:label="$t('trials:trialDocument:trainRecord:form:TrianingCount')"
prop="TrianingCount"
>
<el-input v-model="form.TrianingCount" />
<el-form-item v-if="!config.upload" :label="$t('trials:trialDocument:trainRecord:form:TrianingCount')"
prop="TrianingCount">
<el-input v-model.number="form.TrianingCount" type="number" />
</el-form-item>
<el-form-item
v-if="!config.upload"
:label="$t('trials:trialDocument:trainRecord:form:TrianingState')"
prop="TrianingState"
>
<el-form-item v-if="!config.upload" :label="$t('trials:trialDocument:trainRecord:form:TrianingState')"
prop="TrianingState">
<el-input v-model="form.TrianingState" />
</el-form-item>
<el-form-item
v-if="!config.upload"
:label="$t('trials:trialDocument:trainRecord:form:Note')"
prop="Note"
>
<el-form-item v-if="!config.upload" :label="$t('trials:trialDocument:trainRecord:form:Note')" prop="Note">
<el-input v-model="form.Note" />
</el-form-item>
<el-form-item
v-if="!config.upload || config.upload === 'Trial'"
:label="$t('trials:trialDocument:trainRecord:form:TrialFileRecord')"
prop="TrialFileRecord"
>
<el-upload
class="upload-demo"
action
:before-upload="(param) => beforeUpload(param, 'Trial', '.pdf')"
:http-request="(param) => handleUploadFile(param, 'Trial')"
:on-remove="() => handleRemoveFile('Trial')"
:limit="1"
accept=".pdf"
:file-list="TrialFile"
>
<el-button
size="small"
type="primary"
:disabled="
!!form.TrialFileRecord && !!form.TrialFileRecord.FilePath
"
>{{ $t('common:button:upload') }}
<el-form-item v-if="!config.upload || config.upload === 'Trial'"
:label="$t('trials:trialDocument:trainRecord:form:TrialFileRecord')" prop="TrialFileRecord">
<el-upload class="upload-demo" action :before-upload="(param) => beforeUpload(param, 'Trial', '.pdf')"
:http-request="(param) => handleUploadFile(param, 'Trial')" :on-remove="() => handleRemoveFile('Trial')"
:limit="1" accept=".pdf" :file-list="TrialFile">
<el-button size="small" type="primary" :disabled="!!form.TrialFileRecord && !!form.TrialFileRecord.FilePath
">{{ $t('common:button:upload') }}
</el-button>
<span slot="tip" class="el-upload__tip">
{{ $t('trials:trialDocument:trainRecord:rule:mustPDF') }}
</span>
</el-upload>
</el-form-item>
<el-form-item
v-if="!config.upload || config.upload === 'History'"
:label="
$t('trials:trialDocument:trainRecord:form:historyFileRecord')
"
>
<el-upload
class="upload-demo"
action
:before-upload="(param) => beforeUpload(param, 'History', '.zip')"
<el-form-item v-if="!config.upload || config.upload === 'History'" :label="$t('trials:trialDocument:trainRecord:form:historyFileRecord')
">
<el-upload class="upload-demo" action :before-upload="(param) => beforeUpload(param, 'History', '.zip')"
:http-request="(param) => handleUploadFile(param, 'History')"
:on-remove="() => handleRemoveFile('History')"
:limit="1"
accept=".zip"
:file-list="HistoryFile"
>
<el-button
size="small"
type="primary"
:disabled="
!!form.HistoryFileRecord && !!form.HistoryFileRecord.FilePath
"
>{{ $t('common:button:upload') }}
:on-remove="() => handleRemoveFile('History')" :limit="1" accept=".zip" :file-list="HistoryFile">
<el-button size="small" type="primary" :disabled="!!form.HistoryFileRecord && !!form.HistoryFileRecord.FilePath
">{{ $t('common:button:upload') }}
</el-button>
<span slot="tip" class="el-upload__tip">
{{ $t('trials:trialDocument:trainRecord:rule:mustZIP') }}
@ -115,7 +59,7 @@
</div>
</base-model>
</template>
<script>
<script>
import baseModel from '@/components/BaseModel'
import { addOrUpdateTrialTrianingRecord } from '@/api/dictionary'
export default {
@ -165,6 +109,36 @@ export default {
trigger: ['blur', 'change'],
},
],
TrianingCount: [
{
type: 'number',
min: 0,
message: this.$t(
'trials:trialDocument:trainRecord:ruleMessage:TrianingCountPattern'
),
trigger: 'blur',
},
{
validator: (rule, value, callback) => {
if (
value &&
(String(value).includes('.') ||
new RegExp(/\D/g).test(String(value)))
) {
callback(
new Error(
this.$t(
'trials:trialDocument:trainRecord:ruleMessage:TrianingCountPattern'
)
)
)
} else {
callback()
}
},
trigger: 'blur',
},
]
},
loading: false,
TrialFile: [],

View File

@ -865,7 +865,7 @@ export default {
},
immediate: true,
},
rowData: {
'rowData.IsEnable': {
handler() {
this.DATA = Object.assign({}, this.rowData)
},

View File

@ -7,129 +7,67 @@
<div class="search" style="position: relative">
<el-form :inline="true" class="base-search-form">
<!--专业-->
<el-form-item
:label="$t('trials:trialDocument:curriculumVitae:search:Speciality')"
>
<el-select
v-model="searchData.SpecialityId"
style="width: 200px"
placeholder=""
clearable
>
<el-option
v-for="item in $d.Department"
:key="item.id"
:label="item.label"
:value="item.value"
>
<el-form-item :label="$t('trials:trialDocument:curriculumVitae:search:Speciality')">
<el-select v-model="searchData.SpecialityId" style="width: 200px" placeholder="" clearable>
<el-option v-for="item in $d.Department" :key="item.id" :label="item.label" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<!--亚专业-->
<el-form-item
:label="
$t('trials:trialDocument:curriculumVitae:search:Subspeciality')
"
>
<el-select
v-model="searchData.SubspecialityId"
style="width: 200px"
placeholder=""
clearable
>
<el-option
v-for="item in $d.Subspeciality"
:key="item.id"
:label="item.label"
:value="item.value"
>
<el-form-item :label="$t('trials:trialDocument:curriculumVitae:search:Subspeciality')
">
<el-select v-model="searchData.SubspecialityId" style="width: 200px" placeholder="" clearable>
<el-option v-for="item in $d.Subspeciality" :key="item.id" :label="item.label" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<!--机构-->
<el-form-item
:label="
$t('trials:trialDocument:curriculumVitae:search:HospitalName')
"
>
<el-select
v-model="searchData.HospitalId"
style="width: 200px"
placeholder=""
clearable
>
<el-option
v-for="(item, index) in hospitalList"
:key="index"
:label="isEN ? item.HospitalName : item.HospitalNameCN"
:value="item.Id"
/>
<el-form-item :label="$t('trials:trialDocument:curriculumVitae:search:HospitalName')
">
<el-select v-model="searchData.HospitalId" style="width: 200px" placeholder="" clearable>
<el-option v-for="(item, index) in hospitalList" :key="index"
:label="isEN ? item.HospitalName : item.HospitalNameCN" :value="item.Id" />
</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"
>
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
{{ $t('common:button:reset') }}
</el-button>
</el-form-item>
</el-form>
</div>
<el-table
v-loading="loading"
v-adaptive="{ bottomOffset: 75 }"
:data="list"
stripe
height="100"
style="width: 100%"
>
<el-table v-loading="loading" v-adaptive="{ bottomOffset: 75 }" :data="list" stripe height="100"
style="width: 100%">
<el-table-column type="index" />
<!--姓名-->
<el-table-column
prop="BlindName"
:label="$t('trials:trialDocument:curriculumVitae:table:name')"
show-overflow-tooltip
sortable="custom"
>
<el-table-column prop="BlindName" :label="$t('trials:trialDocument:curriculumVitae:table:name')"
show-overflow-tooltip sortable="custom">
<template slot-scope="scope">
<span>{{ isEN ? scope.row.BlindName : scope.row.BlindNameCN }}</span>
</template>
</el-table-column>
<el-table-column
prop="Code"
:label="$t('trials:trialDocument:curriculumVitae:table:UserName')"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="Speciality"
:label="$t('trials:trialDocument:curriculumVitae:table:Speciality')"
show-overflow-tooltip
sortable="custom"
>
<el-table-column prop="Code" :label="$t('trials:trialDocument:curriculumVitae:table:UserName')"
show-overflow-tooltip sortable="custom" />
<el-table-column prop="Speciality" :label="$t('trials:trialDocument:curriculumVitae:table:Speciality')"
show-overflow-tooltip sortable="custom">
<template slot-scope="scope">
<span>
{{
scope.row.SpecialityId === otherId
? scope.row.SpecialityOther
: isEN
? scope.row.Speciality
: scope.row.SpecialityCN
? scope.row.Speciality
: scope.row.SpecialityCN
}}
</span>
</template>
</el-table-column>
<el-table-column
prop="Subspeciality"
:label="$t('trials:trialDocument:curriculumVitae:table:Subspeciality')"
show-overflow-tooltip
>
<el-table-column prop="Subspeciality" :label="$t('trials:trialDocument:curriculumVitae:table:Subspeciality')"
show-overflow-tooltip>
<template slot-scope="scope">
<span v-if="isEN">
{{
@ -147,62 +85,41 @@
</span>
</template>
</el-table-column>
<el-table-column
prop="HospitalName"
:label="$t('trials:trialDocument:curriculumVitae:table:HospitalName')"
show-overflow-tooltip
sortable="custom"
>
<el-table-column prop="HospitalName" :label="$t('trials:trialDocument:curriculumVitae:table:HospitalName')"
show-overflow-tooltip sortable="custom">
<template slot-scope="scope">
<span>
{{ isEN ? scope.row.HospitalName : scope.row.HospitalNameCN }}
</span>
</template>
</el-table-column>
<el-table-column
prop="OptTimeStr"
:label="$t('trials:trialDocument:curriculumVitae:table:submmitTime')"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column prop="OptTimeStr" :label="$t('trials:trialDocument:curriculumVitae:table:submmitTime')"
show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('common:action:action')" width="200">
<template slot-scope="scope">
<el-button
icon="el-icon-view"
:title="$t('common:button:view')"
circle
@click.stop="preview(scope.row)"
/>
<el-button icon="el-icon-view" :title="$t('common:button:view')" circle @click.stop="preview(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" />
<el-dialog :visible.sync="preview_visible" fullscreen>
<div style="height: 100%; overflow: auto">
<preview
:isEN="isEN"
:isAll="isAll"
:reviewerId.sync="reviewerId"
v-if="preview_visible"
/>
<preview :isEN="isEN" :isAll="isAll" :reviewerId.sync="reviewerId" v-if="preview_visible" />
</div>
</el-dialog>
</box-content>
</template>
<script>
const otherId = 'ef84e9cb-f1a6-49d7-b6da-34be2c12abd5'
import { getTrialDoctorList } from '@/api/dictionary'
import Pagination from '@/components/Pagination'
import BoxContent from '@/components/BoxContent'
import preview from '@/views/reviewers/curriculumVitae/preview.vue'
import { mapGetters } from 'vuex'
import store from '@/store'
const searchDataDefault = () => {
return {
SubspecialityId: null,
@ -238,6 +155,7 @@ export default {
reviewerId: null,
isAll: false,
preview_visible: false,
otherId,
}
},
methods: {
@ -293,6 +211,9 @@ export default {
immediate: true,
},
},
mounted() {
store.dispatch('global/getHospital')
},
computed: {
...mapGetters(['hospitalList']),
isEN() {
@ -334,38 +255,44 @@ export default {
])
},
TITLE() {
return `${this.$fd('ArchiveType', this.ArchiveTypeEnum)}${
this.isEN ? this.rowData.Name : this.rowData.NameCN
}`
return `${this.$fd('ArchiveType', this.ArchiveTypeEnum)}${this.isEN ? this.rowData.Name : this.rowData.NameCN
}`
},
},
}
</script>
<style lang="scss" scoped>
<style lang="scss" scoped>
.title {
line-height: 40px;
font-weight: bold;
margin-bottom: 10px;
}
.fileName {
display: inline-block;
max-width: 100%;
white-space: nowrap; /* 文本不换行 */
overflow: hidden; /* 超出部分隐藏 */
white-space: nowrap;
/* 文本不换行 */
overflow: hidden;
/* 超出部分隐藏 */
text-overflow: ellipsis;
}
.fileBtnBox {
display: inline-block;
width: 50px;
i {
cursor: pointer;
color: #409eff;
margin-right: 3px;
&:last-child {
margin: 0;
}
}
}
.topForm {
.el-form-item {
margin-right: 30px;

View File

@ -71,23 +71,9 @@
</el-button>
</el-form-item>
<el-form-item>
<el-button
type="primary"
v-if="hasEdit && isManage && !viewStatus"
@click.stop="openFile(false)"
>
{{ $t('trials:trialDocument:entryRecord:button:uploadFile') }}
<el-button type="primary" @click.stop="openUpload">
{{ $t('trials:trialDocument:entryRecord:title:uploadFile') }}
</el-button>
<el-button
v-if="hasDownLoad && (isManage || isInspect)"
icon="el-icon-download"
type="primary"
:disabled="!file || !file.FilePath"
@click.stop="downLoad(file)"
>{{
$t('trials:trialDocument:entryRecord:button:downLoadFile')
}}</el-button
>
</el-form-item>
</el-form>
</div>
@ -188,7 +174,7 @@
/>
</div>
</el-dialog>
<upload-files
<!-- <upload-files
:config="config"
:faccept="faccept"
:uploadPath="uploadPath"
@ -196,17 +182,67 @@
v-if="config.visible"
@close="close"
@uplaodFile="uplaodFile"
/>
/> -->
<base-model :config="upload_config">
<div slot="dialog-body">
<div class="file_title">
{{ $t('trials:trialDocument:entryRecord:title:uploadFile') }}
</div>
<div class="file" v-if="file.FileName">
<div class="name">{{ file.FileName }}</div>
<i
v-if="hasDownLoad && (isManage || isInspect)"
class="el-icon-download"
:title="$t('common:button:download')"
@click.stop="downLoad(file)"
/>
<i
v-if="hasDel && isManage && !viewStatus"
class="el-icon-delete"
:title="$t('common:button:delete')"
@click.stop="handleRemoveFile"
/>
</div>
<div class="btnBox">
<!-- <el-button
type="primary"
v-if="hasEdit && isManage && !viewStatus"
@click.stop="openFile(false)"
>
{{ $t('trials:trialDocument:entryRecord:button:uploadFile') }}
</el-button> -->
<el-upload
v-if="hasEdit && isManage && !viewStatus"
class="upload-demo"
action
:before-upload="(param) => beforeUpload(param, '.zip')"
:show-file-list="false"
:http-request="handleUploadFile"
:limit="1"
accept=".zip"
>
<el-button size="small" type="primary" :disabled="!!file.FileName">
{{ $t('trials:trialDocument:entryRecord:button:uploadFile') }}
</el-button>
</el-upload>
</div>
</div>
</base-model>
</box-content>
</template>
<script>
import { getConfirmationReviewerList } from '@/api/trials'
import { uploadTrialFileTypeFile, getTrialFileTypeFile } from '@/api/dictionary'
import {
uploadTrialFileTypeFile,
getTrialFileTypeFile,
deleteTrialTypeFile,
} from '@/api/dictionary'
import Pagination from '@/components/Pagination'
import BoxContent from '@/components/BoxContent'
import preview from '@/views/reviewers/curriculumVitae/preview.vue'
import baseModel from '@/components/BaseModel'
import { mapGetters } from 'vuex'
import uploadFiles from '../../uploadFiles.vue'
// import uploadFiles from '../../uploadFiles.vue'
import { downLoadFile } from '@/utils/stream.js'
const searchDataDefault = () => {
return {
@ -223,7 +259,13 @@ const searchDataDefault = () => {
}
export default {
name: 'entryRecord',
components: { BoxContent, Pagination, preview, uploadFiles },
components: {
BoxContent,
Pagination,
preview,
// uploadFiles,
baseModel,
},
props: {
ArchiveTypeEnum: {
type: Number,
@ -254,7 +296,6 @@ export default {
isAll: false,
preview_visible: false,
timeList: [],
config: {
visible: false,
showClose: true,
@ -263,6 +304,14 @@ export default {
appendToBody: false,
isFolder: false,
},
upload_config: {
visible: false,
showClose: true,
width: '800px',
title: '',
appendToBody: false,
isFolder: false,
},
faccept: ['.zip'],
limitLength: 1,
uploadPath: null,
@ -270,6 +319,88 @@ export default {
}
},
methods: {
handleRemoveFile() {
this.$confirm(
this.$t('trials:trialDocument:entryRecord:message:deleteMes'),
{
type: 'warning',
distinguishCancelAndClose: true,
}
)
.then(() => {
deleteTrialTypeFile({
TrialFileTypeId: this.file.TrialFileTypeId,
}).then((res) => {
if (res.IsSuccess) {
this.getFile()
this.$message({
message: this.$t('common:message:deletedSuccessfully'),
type: 'success',
})
}
})
})
.catch((action) => {})
},
async handleUploadFile(param) {
try {
console.log(param)
let trialId = this.$route.query.trialId
let extendName = param.file.name
.substring(param.file.name.lastIndexOf('.'))
.toLocaleLowerCase()
if (!trialId)
return this.$alert(
this.$t('trials:trialDocument:entryRecord:msg:noTrialId')
).catch()
this.loading = true
var file = await this.fileToBlob(param.file)
let typeArr = ['', 'Report', 'Doc', 'Record', 'Reviewer', 'Template']
let types = typeArr[this.ArchiveTypeEnum]
// let fileNameNoType = param.file.name
// .substring(0, param.file.name.lastIndexOf('.'))
// .toLocaleLowerCase()
const res = await this.OSSclient.put(
`/${trialId}/Document/${types}/${this.$guid()}${extendName}`,
file
)
this.file = {
FileName: param.file.name,
FilePath: this.$getObjectName(res.url),
FileSize: param.file.size,
FileFormat: extendName,
}
this.loading = false
this.uplaodFile([this.file])
} catch (err) {
console.log(err)
}
},
beforeUpload(param, accept) {
if (this.file && !!this.file.FileName) {
this.$alert(
this.$t('trials:trialDocument:entryRecord:msg:hasFile')
).catch()
return
}
let extendName = param.name
.substring(param.name.lastIndexOf('.'))
.toLocaleLowerCase()
if (accept !== extendName) {
this.$alert(
this.$t('trials:trialDocument:entryRecord:msg:typeErr')
).catch()
return
}
},
openUpload() {
this.upload_config.title = `${this.$t(
'trials:trialDocument:entryRecord:title:uploadFile'
)}
-
${this.isEN ? this.rowData.Name : this.rowData.NameCN}`
this.upload_config.visible = true
},
//
async downLoad(row) {
try {
@ -467,4 +598,34 @@ export default {
margin-right: 30px;
}
}
.file_title {
line-height: 40px;
font-weight: bold;
}
.file {
width: 100%;
display: flex;
margin-bottom: 10px;
.name {
max-width: 90%;
white-space: nowrap; /* 文本不会换行,会在同一行内继续,直到遇到<br>标签为止 */
text-overflow: ellipsis; /* 当文本溢出包含它的容器时,显示省略号(...)来表示被截断的文本 */
overflow: hidden; /* 隐藏溢出容器的文本 */
}
i {
cursor: pointer;
margin: 3px;
color: #409eff;
}
.disable {
cursor: not-allowed;
color: #909399;
}
}
.btnBox {
margin-top: 10px;
display: flex;
align-items: center;
justify-content: flex-end;
}
</style>

View File

@ -11,7 +11,7 @@ const webpack = require('webpack')
const defaultSettings = require('./src/settings.js')
const moment = require('moment')
var distDate = moment(new Date()).format('YYYY-MM-DD')
const name = process.env.NODE_ENV === 'usa' ? 'LILI' : defaultSettings.title || 'IRCIS' // page title
const name = process.env.NODE_ENV === 'usa' ? 'Imaging Trial Management System' : defaultSettings.title || 'IRC Imaging System' // page title
// const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
// eslint-disable-next-line no-undef
module.exports = defineConfig({