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

uat_us
caiyiling 2024-10-16 16:21:19 +08:00
commit 8c68866aca
6 changed files with 600 additions and 8 deletions

View File

@ -293,3 +293,19 @@ export function batchUpdateInternationalInfo(data) {
data
})
}
// 邮件事件消息列表
export function getEventStoreRecordList(data) {
return request({
url: `/EventStoreRecord/getEventStoreRecordList`,
method: 'post',
data
})
}
// 重新发布事件消息
export function rePublishEvent(param) {
return request({
url: `/EventStoreRecord/rePublishEvent`,
method: 'post',
param
})
}

View File

@ -12,7 +12,8 @@ export function verifySendCode(param) {
return request({
url: '/TrialSiteSurvey/verifySendCode',
method: 'post',
data: param
data: param,
clearToken: true
})
}

View File

@ -155,6 +155,14 @@
<span style="color: #428bca">关于</span>
</a>
</div>
<div v-if="NODE_ENV === 'usa'" class="login-footer">
<span>
© {{ new Date().getFullYear() }} Elevate lmaging Inc. info@{{ host }}
</span>
<a @click="openAbout">
<span style="color: #428bca">About</span>
</a>
</div>
<Vcode
:show="isShow"
:fail-text="$t('login:button:failText')"
@ -179,9 +187,15 @@
text-align: center;
"
>
<h1 style="text-align: center; margin-bottom: 20px">关于</h1>
<h1
style="text-align: center; margin-bottom: 20px"
v-if="NODE_ENV === 'usa'"
>
About
</h1>
<h1 style="text-align: center; margin-bottom: 20px" v-else></h1>
<p style="margin-bottom: 20px" v-if="NODE_ENV === 'usa'">
{{ $t('login:title:system_title') }}
{{ $t('login:title:system_title_about') }}
</p>
<p style="margin-bottom: 20px" v-else>{{ $t('login:title:system') }}</p>
<p style="margin-bottom: 20px">
@ -191,18 +205,24 @@
Copyright © {{ new Date().getFullYear() }} 上海展影医疗科技有限公司
版权所有
</p>
<p style="margin-bottom: 20px" v-else-if="NODE_ENV === 'usa'">
© {{ new Date().getFullYear() }} Elevate Imaging Inc.
</p>
<p style="margin-bottom: 20px" v-else>
Copyright © {{ new Date().getFullYear() }} Shanghai Extensive Imaging
Inc.
</p>
<div style="margin-bottom: 20px">
<div style="margin-bottom: 20px" v-if="NODE_ENV === 'usa'">
<img style="width: 180px" src="@/assets/zzlogo-usa.png" alt="" />
</div>
<div style="margin-bottom: 20px" v-else>
<img style="width: 180px" src="@/assets/zzlogo2.png" alt="" />
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" size="mini" @click="aboutVisible = false"
>关闭</el-button
>
<el-button type="primary" size="mini" @click="aboutVisible = false">
{{ $t('common:button:close') }}
</el-button>
</div>
</el-dialog>
<browserTip ref="browserTip" />
@ -263,6 +283,9 @@ export default {
},
computed: {
...mapGetters(['asyncRoutes', 'routes', 'language']),
host() {
return window.location.host
},
},
watch: {
'$i18n.locale': {

View File

@ -50,7 +50,9 @@
<el-button type="text">{{
$t('curriculumVitae:button:importResume')
}}</el-button>
<el-button type="text">{{ $t('common:button:preview') }}</el-button>
<el-button type="text" @click.stop="openPreview">{{
$t('common:button:preview')
}}</el-button>
</div>
</div>
<div class="box" id="info">
@ -90,6 +92,9 @@
<agreement />
</div>
</div>
<el-dialog :visible.sync="visible" fullscreen>
<preview />
</el-dialog>
</div>
</template>
<script>
@ -105,6 +110,7 @@ import scientificResearchProject from './components/info/scientificResearchProje
import clinicalTrials from './components/info/clinicalTrials.vue'
import treatise from './components/info/treatise.vue'
import other from './components/info/other.vue'
import preview from './preview.vue'
export default {
components: {
curriculum,
@ -119,11 +125,13 @@ export default {
clinicalTrials,
treatise,
other,
preview,
},
data() {
return {
activeIndex: 'info',
isScrollAuto: true,
visible: false,
}
},
mounted() {
@ -166,6 +174,10 @@ export default {
// vue data
this.activeIndex = navItem.id
},
//
openPreview() {
this.visible = true
},
},
}
</script>

View File

@ -0,0 +1,316 @@
<template>
<div class="curriculumVitaePreview">
<div class="title">{{ $t('curriculumVitae:preview:title') }}</div>
<div class="message">
<div class="userInfo">
<span>张三</span>
<span>医学博士</span>
<span>广州医院</span>
<span>社会兼职中华医学会XXXXXX</span>
</div>
<div class="userTitle">
<span class="el-icon-first-aid-kit">放射科</span>
<span class="el-icon-user">主任</span>
<span class="el-icon-medal">副主任医师</span>
<span class="el-icon-trophy">副教授</span>
</div>
<div class="userTel">
<span class="el-icon-phone-outline">18616815282</span>
<span class="el-icon-message">sicauzhangye@sina.com</span>
<span class="el-icon-chat-dot-round">wechat666</span>
</div>
</div>
<div class="message">
<div class="title">{{ $t('curriculumVitae:summarize:title') }}</div>
<span class="text">
哈斯卡基本的喀山举办的卡拉说不定就卡了奥斯本大数据量的把数据来看不打算了解到
</span>
</div>
<div class="message">
<el-form class="demo-form-inline">
<el-form-item :label="$t('curriculumVitae:specialty:specialty')">
<span>放射科</span>
</el-form-item>
<el-form-item :label="$t('curriculumVitae:specialty:submajor')">
<el-tag type="info" v-for="item in ['1', '2', '3']" :key="item">
标签三
</el-tag>
</el-form-item>
<el-form-item :label="$t('curriculumVitae:specialty:equipment')">
<el-tag type="info" v-for="item in ['1', '2', '3']" :key="item">
标签三
</el-tag>
</el-form-item>
</el-form>
</div>
<div class="message">
<div class="title">
{{ $t('curriculumVitae:EducationalExperience:title') }}
</div>
<el-table
:data="tableData"
style="width: 100%"
:header-cell-style="{ background: '#eee', color: '#606266' }"
>
<el-table-column
prop="date"
:label="$t('curriculumVitae:EducationalExperience:table:time')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:EducationalExperience:table:specialy')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:EducationalExperience:table:degree')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:EducationalExperience:table:school')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:EducationalExperience:table:city')"
>
</el-table-column>
</el-table>
</div>
<div class="message">
<div>{{ $t('curriculumVitae:continuingTraining:title') }}</div>
<el-table
:data="tableData2"
style="width: 100%"
:header-cell-style="{ background: '#eee', color: '#606266' }"
>
<el-table-column
prop="date"
:label="$t('curriculumVitae:continuingTraining:table:time')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:continuingTraining:table:type')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:continuingTraining:table:direction')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:continuingTraining:table:school')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:continuingTraining:table:city')"
>
</el-table-column>
</el-table>
</div>
<div class="message">
<div class="title">
{{ $t('curriculumVitae:scientificResearchProject:title') }}
</div>
<div class="content">
<el-form class="demo-form-inline">
<el-form-item
:label="$t('curriculumVitae:scientificResearchProject:direction')"
>
<div>direction</div>
</el-form-item>
<el-form-item
:label="$t('curriculumVitae:scientificResearchProject:subject')"
>
<div>subject</div>
</el-form-item>
</el-form>
</div>
</div>
<div class="message">
<!--临床试验-->
<div class="title">
{{ $t('curriculumVitae:clinicalTrials:title') }}
</div>
<el-table
:data="tableData3"
style="width: 100%"
:header-cell-style="{ background: '#eee', color: '#606266' }"
>
<el-table-column
prop="date"
:label="$t('curriculumVitae:clinicalTrials:table:byStages')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:clinicalTrials:table:criterion')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:clinicalTrials:table:indication')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:clinicalTrials:table:viewingVolumeNum')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:clinicalTrials:table:year')"
>
</el-table-column>
</el-table>
<!--GCP证书-->
<div class="title">
{{ $t('curriculumVitae:clinicalTrials:GCPtitle') }}
</div>
<el-table
:data="tableData4"
style="width: 100%"
:header-cell-style="{ background: '#eee', color: '#606266' }"
>
<el-table-column
prop="has"
:label="$t('curriculumVitae:clinicalTrials:table:hasCertificate')"
>
</el-table-column>
<el-table-column
prop="time"
:label="$t('curriculumVitae:clinicalTrials:table:certificateTime')"
>
</el-table-column>
<el-table-column
prop="adress"
:label="
$t('curriculumVitae:clinicalTrials:table:certificateHospital')
"
>
</el-table-column>
</el-table>
<!--其他相关经历-->
<div class="title">
{{ $t('curriculumVitae:clinicalTrials:otherTitle') }}
</div>
<template v-if="true">
<div class="message">三的卡上不能打卡上班打卡</div>
</template>
<div class="noData" v-else>{{ $t('curriculumVitae:noData') }}</div>
</div>
<div class="message">
<div class="title">{{ $t('curriculumVitae:treatise:title') }}</div>
<el-table
:data="tableData5"
style="width: 100%"
:header-cell-style="{ background: '#eee', color: '#606266' }"
>
<el-table-column
prop="date"
:label="$t('curriculumVitae:treatise:table:author')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:treatise:table:name')"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:treatise:table:publish')"
>
</el-table-column>
</el-table>
</div>
<div class="message">
<div class="title">{{ $t('curriculumVitae:other:title') }}</div>
<div class="content">
<div>{{ $t('curriculumVitae:other:AH') }}</div>
<p>a诺夫卡刷积分八九十快点把手里的v八路军那是的健康蓝色的艰苦拉萨的</p>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'curriculumVitaePreview',
data() {
return {
tableData: [],
tableData2: [],
tableData3: [],
tableData4: [],
tableData5: [],
}
},
}
</script>
<style lang="scss" scoped>
.curriculumVitaePreview {
max-width: 1200px;
margin: auto;
.title {
font-size: 18px;
}
.message {
padding: 20px 0;
border-bottom: 1px solid #eee;
.title {
font-size: 14px;
line-height: 30px;
margin-bottom: 10px;
}
.text {
color: #909399;
}
.content {
background-color: #eee;
padding: 10px;
line-height: 30px;
border-radius: 5px;
}
}
.userInfo,
.userTitle,
.userTel {
line-height: 30px;
margin-bottom: 15px;
span {
margin-right: 20px;
&:last-child {
margin: 0;
}
}
&:last-child {
margin-bottom: 0;
}
}
.userTitle,
.userTel {
span {
display: inline-block;
min-width: 80px;
border-right: 1px solid #ddd;
padding-right: 10px;
&::before {
margin-right: 5px;
}
&:last-child {
border: none;
}
}
}
}
::v-deep .el-tag {
margin-right: 10px;
&:last-child {
margin-right: 0;
}
}
</style>

View File

@ -0,0 +1,224 @@
<template>
<div class="event">
<div ref="leftContainer" class="left">
<el-form :inline="true">
<el-form-item :label="$t('system:event:eventTypeName')">
<el-select
v-model="searchData.EventTypeName"
clearable
filterable
placeholder=""
>
<el-option
v-for="item in $d.EventTypeName"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('system:event:eventState')">
<el-select
v-model="searchData.EventState"
clearable
filterable
placeholder=""
>
<el-option
v-for="item in $d.EventState"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="getList"
>
{{ $t('common:button:search') }}
</el-button>
<el-button
size="mini"
icon="el-icon-refresh-left"
@click="handleReset"
>
{{ $t('common:button:reset') }}
</el-button>
</el-form-item>
</el-form>
<el-table
v-loading="loading"
v-adaptive="{ bottomOffset: 45 }"
height="100"
:data="list"
class="table"
@sort-change="handleSortByColumn"
@selection-change="handleSelectionChange"
><el-table-column type="selection" width="50" />
<el-table-column type="index" width="50" />
<el-table-column
:label="$t('system:event:eventTypeName')"
prop="EventTypeName"
show-overflow-tooltip
sortable="custom"
>
<template slot-scope="scope">
<span>{{ $fd('EventTypeName', scope.row.EventTypeName) }}</span>
</template>
</el-table-column>
<el-table-column
:label="$t('system:event:eventState')"
prop="EventState"
show-overflow-tooltip
sortable="custom"
>
<template slot-scope="scope">
<el-tag
:type="['info', 'success', 'primary'][scope.row.EventState]"
>
{{ $fd('EventState', scope.row.EventState) }}
</el-tag>
</template>
</el-table-column>
<el-table-column
:label="$t('common:action:action')"
fixed="right"
prop=""
show-overflow-tooltip
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit-outline"
@click="rePublish(scope.row)"
>
{{ $t('system:event:button:rePublish') }}
</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination" style="text-align: right; margin-top: 5px">
<pagination
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
</div>
</div>
</div>
</template>
<script>
import { getEventStoreRecordList, rePublishEvent } from '@/api/admin'
import Pagination from '@/components/Pagination'
import moment from 'moment'
const searchDataDefault = () => {
return {
EventState: null,
EventTypeName: null,
Asc: true,
SortField: '',
PageIndex: 1,
PageSize: 20,
}
}
export default {
name: 'event',
components: { Pagination },
data() {
return {
moment,
searchData: searchDataDefault(),
list: [],
total: 0,
loading: false,
PublishVersionList: [],
selectTableList: [],
}
},
mounted() {
this.getList()
},
methods: {
getList() {
this.loading = true
getEventStoreRecordList(this.searchData)
.then((res) => {
this.loading = false
this.list = res.Result.CurrentPageData
this.total = res.Result.TotalCount
})
.catch(() => {
this.loading = false
})
},
async rePublish(row) {
try {
this.loading = true
let res = await rePublishEvent({
EventId: row.Id,
})
if (res.IsSuccess) {
this.getList()
}
} catch (err) {
this.loading = false
console.log(err)
}
},
//
handleReset() {
this.searchData = searchDataDefault()
this.getList()
},
//
handleSortByColumn(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()
},
//
handleSelectionChange(val) {
this.selectTableList = val
},
},
}
</script>
<style lang="scss" scoped>
.event {
height: 100%;
box-sizing: border-box;
display: flex;
padding: 10px;
border-radius: 5px;
.left {
display: flex;
flex-direction: column;
width: 0;
flex-grow: 4;
// border-right: 1px solid #ccc;
.filter-container {
display: flex;
align-items: center;
margin: 5px;
}
.data-table {
flex: 1;
padding: 5px 0px;
}
.pagination-container {
text-align: right;
}
}
}
</style>