Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
# Conflicts: # src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue # src/views/trials/trials-panel/reading/dicoms3D/components/StudyList.vueuat_us
commit
d07adc4948
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
kind: pipeline
|
||||
type: ssh
|
||||
name: ssh-linux-test-irc-publish
|
||||
name: ssh-linux-uat-irc-publish
|
||||
|
||||
platform:
|
||||
os: Linux
|
||||
|
|
@ -33,6 +33,38 @@ trigger:
|
|||
- uat
|
||||
|
||||
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: ssh
|
||||
name: ssh-linux-test-irc-publish
|
||||
|
||||
platform:
|
||||
os: Linux
|
||||
arch: 386
|
||||
|
||||
clone:
|
||||
disable: true #禁用默认克隆
|
||||
|
||||
server:
|
||||
host: 106.14.89.110
|
||||
user: root
|
||||
password:
|
||||
from_secret: local_pwd
|
||||
|
||||
steps:
|
||||
- name: publish-test-irc-web
|
||||
commands:
|
||||
- bash /opt/1panel/xc-deploy-new/devops-center/build-vue-then-publish.sh IRC_Web main
|
||||
- name: notify-wecom
|
||||
commands:
|
||||
- echo $DRONE_COMMIT_AUTHOR "$DRONE_COMMIT_MESSAGE"
|
||||
- bash /opt/1panel/xc-deploy-new/devops-center/drone-notify-wecom.sh "$DRONE_BUILD_STATUS" "$DRONE_REPO_NAME" "$DRONE_BRANCH" "$DRONE_BUILD_NUMBER" "4355b98e-1e72-4678-8dfb-2fc6ad0bf449" "$DRONE_COMMIT_MESSAGE" "$DRONE_COMMIT_AUTHOR" "Test_IRC_WEB" "irc.test.extimaging.com"
|
||||
when:
|
||||
status:
|
||||
- success
|
||||
- failure
|
||||
trigger:
|
||||
branch:
|
||||
- main
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
19
package.json
19
package.json
|
|
@ -15,18 +15,17 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "^3.701.0",
|
||||
"@cornerstonejs/adapters": "^2.19.7",
|
||||
"@cornerstonejs/adapters": "4.19.2",
|
||||
"@cornerstonejs/calculate-suv": "^1.1.0",
|
||||
"@cornerstonejs/core": "^2.19.7",
|
||||
"@cornerstonejs/dicom-image-loader": "^2.19.7",
|
||||
"@cornerstonejs/tools": "^2.19.7",
|
||||
"@cornerstonejs/core": "^4.19.2",
|
||||
"@cornerstonejs/dicom-image-loader": "^4.19.2",
|
||||
"@cornerstonejs/tools": "^4.19.2",
|
||||
"@fingerprintjs/fingerprintjs": "^4.6.2",
|
||||
"@icr/polyseg-wasm": "^0.4.0",
|
||||
"@microsoft/signalr": "^8.0.7",
|
||||
"@riophae/vue-treeselect": "^0.4.0",
|
||||
"@vue-office/docx": "^1.6.2",
|
||||
"@vue-office/excel": "^1.7.11",
|
||||
"@vue/composition-api": "^1.7.2",
|
||||
"ali-oss": "^6.17.1",
|
||||
"axios": "^0.18.1",
|
||||
"core-js": "^3.8.3",
|
||||
|
|
@ -60,11 +59,10 @@
|
|||
"screenfull": "^6.0.2",
|
||||
"sortablejs": "^1.15.5",
|
||||
"streamsaver": "^2.0.6",
|
||||
"svg-sprite-loader": "^4.1.3",
|
||||
"svgo": "^1.2.2",
|
||||
"v-viewer": "^1.7.4",
|
||||
"vcrontab": "^0.3.5",
|
||||
"vue": "^2.6.14",
|
||||
"vue": "2.7.16",
|
||||
"vue-clipboard2": "^0.3.3",
|
||||
"vue-contextmenujs": "^1.4.11",
|
||||
"vue-count-to": "^1.0.13",
|
||||
|
|
@ -98,9 +96,10 @@
|
|||
"path-browserify": "^1.0.1",
|
||||
"process": "^0.11.10",
|
||||
"sass": "^1.63.2",
|
||||
"sass-loader": "^10.4.1",
|
||||
"sass-loader": "^16.0.7",
|
||||
"svg-sprite-loader": "^6.0.11",
|
||||
"terser-webpack-plugin": "^5.3.10",
|
||||
"vue-template-compiler": "^2.6.14",
|
||||
"vue-template-compiler": "2.7.16",
|
||||
"webpack": "^5.96.1",
|
||||
"webpack-bundle-analyzer": "^4.10.2"
|
||||
},
|
||||
|
|
@ -125,4 +124,4 @@
|
|||
"not dead",
|
||||
"not op_mini all"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -74,10 +74,11 @@ export default {
|
|||
zzSessionStorage.setItem('lastWorkbench', `${v.path}${query ? '?' : ''}${query}`)
|
||||
var firstGoIn = this.trialsRouter.children.find(v => { return v.name === 'TrialsPanel' }).children[0]
|
||||
if (this.trialsTab === '/trials/trials-panel') {
|
||||
this.$router.replace({ path: `${firstGoIn.path}${query ? '?' : ''}${query}` })
|
||||
var targetPath = firstGoIn.path
|
||||
if (firstGoIn.children && firstGoIn.children.length > 0) {
|
||||
this.$router.replace({ path: `${firstGoIn.children[0].path}${query ? '?' : ''}${query}` })
|
||||
targetPath = firstGoIn.children[0].path
|
||||
}
|
||||
this.$router.replace({ path: `${targetPath}${query ? '?' : ''}${query}` })
|
||||
}
|
||||
// document.cookie = 'TrialId=' + this.$route.query.trialId + ';path=/'
|
||||
},
|
||||
|
|
@ -112,10 +113,11 @@ export default {
|
|||
this.getTrialList()
|
||||
var firstGoIn = this.trialsRouter.children.find(v => { return v.name === 'TrialsPanel' }).children[0]
|
||||
if (this.trialsTab === '/trials/trials-panel') {
|
||||
this.$router.replace({ path: `${firstGoIn.path}${query ? '?' : ''}${query}` })
|
||||
var targetPath = firstGoIn.path
|
||||
if (firstGoIn.children && firstGoIn.children.length > 0) {
|
||||
this.$router.replace({ path: `${firstGoIn.children[0].path}${query ? '?' : ''}${query}` })
|
||||
targetPath = firstGoIn.children[0].path
|
||||
}
|
||||
this.$router.replace({ path: `${targetPath}${query ? '?' : ''}${query}` })
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -201,15 +203,19 @@ export default {
|
|||
if (~url.indexOf('?')) {
|
||||
query = url.split('?')[1]
|
||||
}
|
||||
this.$router.push({ path: `${v.name}${query ? '?' : ''}${query}` })
|
||||
var trialsPanelList = this.trialsRouter.children.find(v => { return v.name === 'TrialsPanel' }).children
|
||||
var isHasChild = trialsPanelList.find(c => { return c.path === v.name }) && trialsPanelList.find(c => { return c.path === v.name }).children
|
||||
if (trialsPanelList.find(c => { return c.path === v.name }) && trialsPanelList.find(c => { return c.path === v.name }).tabHiddn) {
|
||||
var trialsPanelList = this.trialsRouter.children.find(item => { return item.name === 'TrialsPanel' }).children
|
||||
var currentRoute = trialsPanelList.find(c => { return c.path === v.name })
|
||||
|
||||
if (currentRoute && currentRoute.tabHiddn) {
|
||||
this.$router.push({ path: `${v.name}${query ? '?' : ''}${query}` })
|
||||
return
|
||||
}
|
||||
var isHasChild = currentRoute && currentRoute.children
|
||||
if (isHasChild && isHasChild.length > 0) {
|
||||
this.trialsTabChild = isHasChild[0].path
|
||||
this.$router.push({ path: `${this.trialsTabChild}${query ? '?' : ''}${query}` })
|
||||
} else {
|
||||
this.$router.push({ path: `${v.name}${query ? '?' : ''}${query}` })
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ export default {
|
|||
display: none !important; /* 隐藏原生 radio 输入,但仍然允许交互 */
|
||||
}
|
||||
|
||||
::v-deep.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled)
|
||||
::v-deep .el-radio:focus:not(.is-focus):not(:active):not(.is-disabled)
|
||||
.el-radio__inner {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,16 +86,16 @@ export default {
|
|||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep.el-tabs--left .el-tabs__header.is-left {
|
||||
::v-deep .el-tabs--left .el-tabs__header.is-left {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.uploadDicomAndNonedicom {
|
||||
::v-deep.el-tabs--border-card>.el-tabs__header .el-tabs__item {
|
||||
::v-deep .el-tabs--border-card>.el-tabs__header .el-tabs__item {
|
||||
color: #909399;
|
||||
}
|
||||
|
||||
::v-deep.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active {
|
||||
::v-deep .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active {
|
||||
color: #428bca;
|
||||
background-color: #fff;
|
||||
border-right-color: #dcdfe6;
|
||||
|
|
|
|||
|
|
@ -56,8 +56,10 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "~@/styles/mixin.scss";
|
||||
@import "~@/styles/variables.module.scss";
|
||||
@use "@/styles/mixin.scss" as *;
|
||||
@use "@/styles/variables.module.scss" as *;
|
||||
// @import "~@/styles/mixin.scss";
|
||||
// @import "~@/styles/variables.module.scss";
|
||||
|
||||
.app-wrapper {
|
||||
@include clearfix;
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
@import "./variables.module.scss";
|
||||
@import "./mixin.scss";
|
||||
@import "./transition.scss";
|
||||
@import "./element-ui.scss";
|
||||
@import "./sidebar.scss";
|
||||
@use "./variables.module.scss";
|
||||
@use "./mixin.scss";
|
||||
@use "./transition.scss";
|
||||
@use "./element-ui.scss";
|
||||
@use "./sidebar.scss";
|
||||
|
||||
body {
|
||||
height: 100%;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
|
||||
font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",
|
||||
"Microsoft YaHei", "微软雅黑", Arial, sans-serif;
|
||||
// font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
// font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
|
||||
// "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial,
|
||||
|
|
@ -205,133 +206,139 @@ body .el-table th.gutter {
|
|||
.el-descriptions {
|
||||
box-sizing: border-box;
|
||||
font-size: 14px;
|
||||
color: #303133
|
||||
color: #303133;
|
||||
}
|
||||
|
||||
.el-descriptions__header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20px
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.el-descriptions__title {
|
||||
font-size: 16px;
|
||||
font-weight: 700
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.el-descriptions__body {
|
||||
color: #606266;
|
||||
background-color: #fff
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.el-descriptions__body .el-descriptions__table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
table-layout: fixed
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell {
|
||||
box-sizing: border-box;
|
||||
text-align: left;
|
||||
font-weight: 400;
|
||||
line-height: 1.5
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-left {
|
||||
text-align: left
|
||||
.el-descriptions__body
|
||||
.el-descriptions__table
|
||||
.el-descriptions-item__cell.is-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-center {
|
||||
text-align: center
|
||||
.el-descriptions__body
|
||||
.el-descriptions__table
|
||||
.el-descriptions-item__cell.is-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-right {
|
||||
text-align: right
|
||||
.el-descriptions__body
|
||||
.el-descriptions__table
|
||||
.el-descriptions-item__cell.is-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.el-descriptions .is-bordered {
|
||||
table-layout: auto
|
||||
table-layout: auto;
|
||||
}
|
||||
|
||||
.el-descriptions .is-bordered .el-descriptions-item__cell {
|
||||
border: 1px solid #ebeef5;
|
||||
padding: 12px 10px
|
||||
padding: 12px 10px;
|
||||
}
|
||||
|
||||
.el-descriptions :not(.is-bordered) .el-descriptions-item__cell {
|
||||
padding-bottom: 12px
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
|
||||
.el-descriptions--medium.is-bordered .el-descriptions-item__cell {
|
||||
padding: 10px
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.el-descriptions--medium:not(.is-bordered) .el-descriptions-item__cell {
|
||||
padding-bottom: 10px
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.el-descriptions--small {
|
||||
font-size: 12px
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.el-descriptions--small.is-bordered .el-descriptions-item__cell {
|
||||
padding: 8px 10px
|
||||
padding: 8px 10px;
|
||||
}
|
||||
|
||||
.el-descriptions--small:not(.is-bordered) .el-descriptions-item__cell {
|
||||
padding-bottom: 8px
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.el-descriptions--mini {
|
||||
font-size: 12px
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.el-descriptions--mini.is-bordered .el-descriptions-item__cell {
|
||||
padding: 6px 10px
|
||||
padding: 6px 10px;
|
||||
}
|
||||
|
||||
.el-descriptions--mini:not(.is-bordered) .el-descriptions-item__cell {
|
||||
padding-bottom: 6px
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
.el-descriptions-item {
|
||||
vertical-align: top
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.el-descriptions-item__container {
|
||||
display: flex
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.el-descriptions-item__container .el-descriptions-item__content,
|
||||
.el-descriptions-item__container .el-descriptions-item__label {
|
||||
display: inline-flex;
|
||||
align-items: baseline
|
||||
align-items: baseline;
|
||||
}
|
||||
|
||||
.el-descriptions-item__container .el-descriptions-item__content {
|
||||
flex: 1
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.el-descriptions-item__label.has-colon:after {
|
||||
content: ":";
|
||||
position: relative;
|
||||
top: -.5px
|
||||
top: -0.5px;
|
||||
}
|
||||
|
||||
.el-descriptions-item__label.is-bordered-label {
|
||||
font-weight: 700;
|
||||
color: #909399;
|
||||
background: #fafafa
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
.el-descriptions-item__label:not(.is-bordered-label) {
|
||||
margin-right: 10px
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.el-descriptions-item__content {
|
||||
word-break: break-word;
|
||||
overflow-wrap: break-word
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.feedBack-box {
|
||||
|
|
@ -350,7 +357,7 @@ body .el-table th.gutter {
|
|||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: .5;
|
||||
opacity: 0.5;
|
||||
background: #000;
|
||||
z-index: 3999;
|
||||
}
|
||||
|
|
@ -371,4 +378,4 @@ body .el-table th.gutter {
|
|||
height: 20px !important;
|
||||
vertical-align: -0.4em !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8366,7 +8366,7 @@
|
|||
|
||||
for (var i = 0; i < valarr.length; i++) {
|
||||
var checkValue = valarr[i],
|
||||
checklen = lengths[i],
|
||||
checklen = lengths[i] || 0,
|
||||
isString = false,
|
||||
displaylen = checklen;
|
||||
|
||||
|
|
|
|||
|
|
@ -965,8 +965,8 @@ export default {
|
|||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.imageBox {
|
||||
<style lang="scss">
|
||||
.viewerContainer .imageBox {
|
||||
position: relative;
|
||||
|
||||
i {
|
||||
|
|
|
|||
|
|
@ -158,108 +158,105 @@
|
|||
<div class="viewerSidethumbinner">
|
||||
|
||||
<el-collapse v-model="relationActiveName" @change="handelRelationActiveChange">
|
||||
<template v-for="item in relationStudyListByVisitName">
|
||||
<div :key="`${item.VisitName}`">
|
||||
<div v-show="item.VisitName" class="text-desc" style="background-color: #1f1f1f;">
|
||||
{{ item.VisitName }}
|
||||
</div>
|
||||
<template v-for="(study, studyIndex) in relationStudyList">
|
||||
<el-collapse-item :key="`${study.StudyId}`" :name="`${study.StudyId}`"
|
||||
v-if="study.VisitName === item.VisitName">
|
||||
<template slot="title">
|
||||
<div v-for="item in relationStudyListByVisitName" :key="`${item.VisitName}`">
|
||||
<div v-show="item.VisitName" class="text-desc" style="background-color: #1f1f1f;">
|
||||
{{ item.VisitName }}
|
||||
</div>
|
||||
<template v-for="(study, studyIndex) in relationStudyList">
|
||||
<el-collapse-item :key="`${study.StudyId}`" :name="`${study.StudyId}`"
|
||||
v-if="study.VisitName === item.VisitName">
|
||||
<template slot="title">
|
||||
|
||||
<div class="text-desc">
|
||||
{{ study.StudyCode }}
|
||||
</div>
|
||||
<!-- <div v-show="study.Description" class="text-desc">
|
||||
{{ study.Description }}
|
||||
</div> -->
|
||||
|
||||
<div v-show="study.SeriesCount" class="text-desc">
|
||||
{{ study.Modalities }} : {{ study.SeriesCount }} Series
|
||||
</div>
|
||||
</template>
|
||||
<div v-show="study.Description" class="text-desc" style="background-color: #1f1f1f;">
|
||||
{{ study.Description }}
|
||||
<div class="text-desc">
|
||||
{{ study.StudyCode }}
|
||||
</div>
|
||||
<div class="viewerSidethumbs ps" style="position: relative;">
|
||||
<div class="viewerSidethumbinner">
|
||||
<div v-for="(seriesItem, index) in study.seriesList" :key="seriesItem.seriesId">
|
||||
<div class="viewernavigatorwrapper"
|
||||
style="position: relative;border:1px solid #434343;" series-type="relation"
|
||||
@click="showRelationSeriesImage($event, seriesItem, studyIndex, index)">
|
||||
<div class="imageBox" style="width: 72px;height:72px;">
|
||||
<img class="image-preview" :src="seriesItem.previewImageUrl"
|
||||
crossorigin="anonymous" alt="" style="width: 72px;height:72px;" fit="fill" />
|
||||
<i class="el-icon-refresh" :title="$t('tip:refreshImage')"
|
||||
@click.stop="refreshImage(item)"></i>
|
||||
</div>
|
||||
<!-- <div v-show="study.Description" class="text-desc">
|
||||
{{ study.Description }}
|
||||
</div> -->
|
||||
|
||||
<div class="viewernavitextwrapper">
|
||||
<div
|
||||
style="padding: 1px 5px 1px 1px;display: flex;justify-content: space-between;">
|
||||
<div v-if="seriesItem.keySeries" style="color:red">
|
||||
Key Images
|
||||
</div>
|
||||
<div v-else>#{{ seriesItem.seriesNumber }}</div>
|
||||
<div v-if="seriesItem.isExistMutiFrames && seriesItem.instanceCount > 1">
|
||||
<el-popover placement="right-start" trigger="click"
|
||||
popper-class="instance_frame_wrapper">
|
||||
<div class="frame_list">
|
||||
<div v-for="(instance, idx) in seriesItem.instanceInfoList"
|
||||
:key="instance.Id" class="frame_content"
|
||||
:style="{ 'margin-bottom': idx < seriesItem.instanceInfoList.length - 1 ? '5px' : '0px' }"
|
||||
@click="showMultiFrames(studyIndex, seriesItem, index, instance)">
|
||||
<div>
|
||||
<div>{{ instance.InstanceNumber }}</div>
|
||||
<div>{{ `${instance.NumberOfFrames > 0 ? instance.NumberOfFrames : 1}
|
||||
frame`
|
||||
}}</div>
|
||||
</div>
|
||||
<div v-show="study.SeriesCount" class="text-desc">
|
||||
{{ study.Modalities }} : {{ study.SeriesCount }} Series
|
||||
</div>
|
||||
</template>
|
||||
<div v-show="study.Description" class="text-desc" style="background-color: #1f1f1f;">
|
||||
{{ study.Description }}
|
||||
</div>
|
||||
<div class="viewerSidethumbs ps" style="position: relative;">
|
||||
<div class="viewerSidethumbinner">
|
||||
<div v-for="(seriesItem, index) in study.seriesList" :key="seriesItem.seriesId">
|
||||
<div class="viewernavigatorwrapper"
|
||||
style="position: relative;border:1px solid #434343;" series-type="relation"
|
||||
@click="showRelationSeriesImage($event, seriesItem, studyIndex, index)">
|
||||
<div class="imageBox" style="width: 72px;height:72px;">
|
||||
<img class="image-preview" :src="seriesItem.previewImageUrl"
|
||||
crossorigin="anonymous" alt="" style="width: 72px;height:72px;" fit="fill" />
|
||||
<i class="el-icon-refresh" :title="$t('tip:refreshImage')"
|
||||
@click.stop="refreshImage(item)"></i>
|
||||
</div>
|
||||
|
||||
<div class="viewernavitextwrapper">
|
||||
<div
|
||||
style="padding: 1px 5px 1px 1px;display: flex;justify-content: space-between;">
|
||||
<div v-if="seriesItem.keySeries" style="color:red">
|
||||
Key Images
|
||||
</div>
|
||||
<div v-else>#{{ seriesItem.seriesNumber }}</div>
|
||||
<div v-if="seriesItem.isExistMutiFrames && seriesItem.instanceCount > 1">
|
||||
<el-popover placement="right-start" trigger="click"
|
||||
popper-class="instance_frame_wrapper">
|
||||
<div class="frame_list">
|
||||
<div v-for="(instance, idx) in seriesItem.instanceInfoList"
|
||||
:key="instance.Id" class="frame_content"
|
||||
:style="{ 'margin-bottom': idx < seriesItem.instanceInfoList.length - 1 ? '5px' : '0px' }"
|
||||
@click="showMultiFrames(studyIndex, seriesItem, index, instance)">
|
||||
<div>
|
||||
<div>{{ instance.InstanceNumber }}</div>
|
||||
<div>{{ `${instance.NumberOfFrames > 0 ? instance.NumberOfFrames : 1}
|
||||
frame`
|
||||
}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<i slot="reference" class="el-icon-connection"
|
||||
style="font-size: 15px;cursor: pointer;" />
|
||||
</el-popover>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<i slot="reference" class="el-icon-connection"
|
||||
style="font-size: 15px;cursor: pointer;" />
|
||||
</el-popover>
|
||||
</div>
|
||||
<div v-show="seriesItem.instanceCount" style="padding: 1px;">
|
||||
{{ seriesItem.modality }}: {{ seriesItem.instanceCount }} image
|
||||
</div>
|
||||
<div v-show="seriesItem.sliceThickness" style="padding: 1px;">
|
||||
T: {{ seriesItem.sliceThickness }}
|
||||
</div>
|
||||
<el-tooltip v-show="seriesItem.description" class="item" effect="dark"
|
||||
:content="seriesItem.description" placement="bottom">
|
||||
<div v-show="seriesItem.description"
|
||||
style="width: 120px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;padding: 1x;">
|
||||
{{ seriesItem.description }}
|
||||
</div>
|
||||
</el-tooltip>
|
||||
|
||||
</div>
|
||||
<div v-show="seriesItem.instanceCount" style="padding: 1px;">
|
||||
{{ seriesItem.modality }}: {{ seriesItem.instanceCount }} image
|
||||
</div>
|
||||
<div v-show="seriesItem.sliceThickness" style="padding: 1px;">
|
||||
T: {{ seriesItem.sliceThickness }}
|
||||
</div>
|
||||
<el-tooltip v-show="seriesItem.description" class="item" effect="dark"
|
||||
:content="seriesItem.description" placement="bottom">
|
||||
<div v-show="seriesItem.description"
|
||||
style="width: 120px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;padding: 1x;">
|
||||
{{ seriesItem.description }}
|
||||
</div>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
<!-- <el-image
|
||||
class="image-preview"
|
||||
style="height:72px;width:72px;"
|
||||
:src="seriesItem.previewImageUrl"
|
||||
fit="fill"
|
||||
/> -->
|
||||
<div
|
||||
v-if="seriesItem.prefetchInstanceCount > 0 && seriesItem.prefetchInstanceCount < seriesItem.instanceCount * 100">
|
||||
<el-progress
|
||||
:percentage="parseInt((seriesItem.prefetchInstanceCount / seriesItem.instanceCount).toFixed(2))" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- <el-image
|
||||
class="image-preview"
|
||||
style="height:72px;width:72px;"
|
||||
:src="seriesItem.previewImageUrl"
|
||||
fit="fill"
|
||||
/> -->
|
||||
<div
|
||||
v-if="seriesItem.prefetchInstanceCount > 0 && seriesItem.prefetchInstanceCount < seriesItem.instanceCount * 100">
|
||||
<el-progress
|
||||
:percentage="parseInt((seriesItem.prefetchInstanceCount / seriesItem.instanceCount).toFixed(2))" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</template>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</template>
|
||||
|
||||
</div>
|
||||
</el-collapse>
|
||||
|
||||
</div>
|
||||
|
|
@ -1012,7 +1009,7 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.imageBox {
|
||||
.viewerContainer .imageBox {
|
||||
position: relative;
|
||||
|
||||
i {
|
||||
|
|
|
|||
|
|
@ -278,7 +278,7 @@ export default {
|
|||
padding: 5px 20px;
|
||||
margin-top: 5px;
|
||||
background: #fff;
|
||||
::v-deep.el-form-item {
|
||||
::v-deep .el-form-item {
|
||||
padding-bottom: 20px;
|
||||
|
||||
}
|
||||
|
|
@ -292,10 +292,10 @@ export default {
|
|||
}
|
||||
}
|
||||
.form-label-width{
|
||||
::v-deep.el-form-item__label{
|
||||
::v-deep .el-form-item__label{
|
||||
width: 140px;
|
||||
}
|
||||
::v-deep.el-form-item__content{
|
||||
::v-deep .el-form-item__content{
|
||||
margin-left: 140px;
|
||||
}
|
||||
}
|
||||
|
|
@ -304,7 +304,7 @@ export default {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
::v-deep.el-form-item {
|
||||
::v-deep .el-form-item {
|
||||
margin-bottom: 0px;
|
||||
padding-top: 5px;
|
||||
border-bottom: 1px solid #f5f7fa;
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ export default {
|
|||
<style lang="scss" scoped>
|
||||
.equipment_form_content{
|
||||
padding: 0 10px;
|
||||
::v-deep.el-form-item {
|
||||
::v-deep .el-form-item {
|
||||
margin-bottom: 0px;
|
||||
padding: 5px 0 20px 0;
|
||||
border-bottom: 1px solid #f5f7fa;
|
||||
|
|
|
|||
|
|
@ -295,7 +295,7 @@ export default {
|
|||
<style lang="scss" scoped>
|
||||
.participants_form_content{
|
||||
padding: 0 10px;
|
||||
::v-deep.el-form-item {
|
||||
::v-deep .el-form-item {
|
||||
margin-bottom: 0px;
|
||||
padding: 5px 0 20px 0;
|
||||
border-bottom: 1px solid #f5f7fa;
|
||||
|
|
|
|||
|
|
@ -309,7 +309,7 @@ export default {
|
|||
<style lang="scss" scoped>
|
||||
.participants_form_content{
|
||||
padding: 0 10px;
|
||||
::v-deep.el-form-item {
|
||||
::v-deep .el-form-item {
|
||||
margin-bottom: 0px;
|
||||
padding: 5px 0 20px 0;
|
||||
border-bottom: 1px solid #f5f7fa;
|
||||
|
|
|
|||
|
|
@ -381,7 +381,7 @@ export default {
|
|||
padding: 5px 20px;
|
||||
margin-top: 5px;
|
||||
background: #fff;
|
||||
::v-deep.el-form-item {
|
||||
::v-deep .el-form-item {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
}
|
||||
|
|
@ -398,7 +398,7 @@ export default {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
::v-deep.el-form-item {
|
||||
::v-deep .el-form-item {
|
||||
margin-bottom: 0px;
|
||||
padding-top: 5px;
|
||||
border-bottom: 1px solid #f5f7fa;
|
||||
|
|
|
|||
|
|
@ -357,7 +357,7 @@ export default {
|
|||
overflow-y: auto;
|
||||
}
|
||||
|
||||
::v-deep.el-card__body {
|
||||
::v-deep .el-card__body {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
|
|
@ -365,13 +365,13 @@ export default {
|
|||
// padding: 10px 20px 20px 20px;
|
||||
// }
|
||||
|
||||
::v-deep.full-dialog-container {
|
||||
::v-deep .full-dialog-container {
|
||||
.el-dialog__body {
|
||||
height: calc(100% - 80px);
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep.dialog-container {
|
||||
::v-deep .dialog-container {
|
||||
// margin-top: 50px !important;
|
||||
width: 75%;
|
||||
height: 80%;
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ export default {
|
|||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
::v-deep.el-card__body {
|
||||
::v-deep .el-card__body {
|
||||
padding: 0px;
|
||||
}
|
||||
.trials-tab{
|
||||
|
|
|
|||
|
|
@ -28,8 +28,10 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "~@/styles/mixin.scss";
|
||||
@import "~@/styles/variables.module.scss";
|
||||
// @import "~@/styles/mixin.scss";
|
||||
// @import "~@/styles/variables.module.scss";
|
||||
@use "@/styles/mixin.scss" as *;
|
||||
@use "@/styles/variables.module.scss" as *;
|
||||
|
||||
.trials-wrapper {
|
||||
@include clearfix;
|
||||
|
|
|
|||
|
|
@ -2928,12 +2928,12 @@ export default {
|
|||
}
|
||||
|
||||
.series-table {
|
||||
::v-deep.el-table {
|
||||
::v-deep .el-table {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
}
|
||||
|
||||
::v-deep.el-table td.el-table__cell,
|
||||
::v-deep .el-table td.el-table__cell,
|
||||
.el-table th.el-table__cell.is-leaf {
|
||||
border-bottom: 1px solid #dfdfdf;
|
||||
}
|
||||
|
|
@ -2944,14 +2944,14 @@ export default {
|
|||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
::v-deep.el-table__header-wrapper {
|
||||
::v-deep .el-table__header-wrapper {
|
||||
th {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__body-wrapper {
|
||||
::v-deep .el-table__body-wrapper {
|
||||
tr {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -2962,7 +2962,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__empty-block {
|
||||
::v-deep .el-table__empty-block {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -319,23 +319,23 @@ export default {
|
|||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.series-table{
|
||||
::v-deep.el-table{
|
||||
::v-deep .el-table{
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
}
|
||||
::v-deep.el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf{
|
||||
::v-deep .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf{
|
||||
border-bottom: 1px solid #dfdfdf;
|
||||
}
|
||||
.el-table--border::after, .el-table--group::after, .el-table::before{
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
::v-deep.el-table__header-wrapper{
|
||||
::v-deep .el-table__header-wrapper{
|
||||
th{
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
}
|
||||
}
|
||||
::v-deep.el-table__body-wrapper{
|
||||
::v-deep .el-table__body-wrapper{
|
||||
tr{
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -344,7 +344,7 @@ export default {
|
|||
background-color: #1e1e1e !important;
|
||||
}
|
||||
}
|
||||
::v-deep.el-table__empty-block{
|
||||
::v-deep .el-table__empty-block{
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2262,7 +2262,7 @@ export default {
|
|||
background-color: #000;
|
||||
padding: 5px 2px;
|
||||
|
||||
::v-deep.el-dialog {
|
||||
::v-deep .el-dialog {
|
||||
background: #1e1e1e;
|
||||
border: 1px solid #ddd;
|
||||
color: #ddd;
|
||||
|
|
|
|||
|
|
@ -1903,7 +1903,7 @@ export default {
|
|||
height: 100%;
|
||||
background-color: #000;
|
||||
padding: 5px 2px;
|
||||
::v-deep.el-dialog {
|
||||
::v-deep .el-dialog {
|
||||
background: #1e1e1e;
|
||||
border: 1px solid #ddd;
|
||||
color: #ddd;
|
||||
|
|
|
|||
|
|
@ -1319,12 +1319,12 @@ export default {
|
|||
.merge-table {
|
||||
padding: 0 10px;
|
||||
|
||||
::v-deep.el-table {
|
||||
::v-deep .el-table {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #383838;
|
||||
}
|
||||
|
||||
::v-deep.el-table td.el-table__cell,
|
||||
::v-deep .el-table td.el-table__cell,
|
||||
.el-table th.el-table__cell.is-leaf {
|
||||
border-bottom: 1px solid #383838;
|
||||
}
|
||||
|
|
@ -1335,7 +1335,7 @@ export default {
|
|||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
::v-deep.el-table__header-wrapper {
|
||||
::v-deep .el-table__header-wrapper {
|
||||
th {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -1343,7 +1343,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__body-wrapper {
|
||||
::v-deep .el-table__body-wrapper {
|
||||
tr {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -1354,7 +1354,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__empty-block {
|
||||
::v-deep .el-table__empty-block {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -989,21 +989,21 @@ export default {
|
|||
padding: 5px 0;
|
||||
}
|
||||
|
||||
::v-deep.el-table__fixed-right-patch {
|
||||
::v-deep .el-table__fixed-right-patch {
|
||||
background-color: #000 !important;
|
||||
border-color: #444444;
|
||||
}
|
||||
|
||||
::v-deep.el-table__fixed-body-wrapper tr:hover>td {
|
||||
::v-deep .el-table__fixed-body-wrapper tr:hover>td {
|
||||
background-color: #000 !important;
|
||||
}
|
||||
|
||||
::v-deep.el-table--scrollable-x .el-table__body-wrapper {
|
||||
::v-deep .el-table--scrollable-x .el-table__body-wrapper {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
}
|
||||
::v-deep.el-tag.el-tag--info {
|
||||
::v-deep .el-tag.el-tag--info {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1436,12 +1436,12 @@ export default {
|
|||
.merge-table {
|
||||
padding: 0 10px;
|
||||
|
||||
::v-deep.el-table {
|
||||
::v-deep .el-table {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #383838;
|
||||
}
|
||||
|
||||
::v-deep.el-table td.el-table__cell,
|
||||
::v-deep .el-table td.el-table__cell,
|
||||
.el-table th.el-table__cell.is-leaf {
|
||||
border-bottom: 1px solid #383838;
|
||||
}
|
||||
|
|
@ -1452,7 +1452,7 @@ export default {
|
|||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
::v-deep.el-table__header-wrapper {
|
||||
::v-deep .el-table__header-wrapper {
|
||||
th {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -1460,7 +1460,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__body-wrapper {
|
||||
::v-deep .el-table__body-wrapper {
|
||||
tr {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -1471,7 +1471,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__empty-block {
|
||||
::v-deep .el-table__empty-block {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1436,12 +1436,12 @@ export default {
|
|||
.merge-table {
|
||||
padding: 0 10px;
|
||||
|
||||
::v-deep.el-table {
|
||||
::v-deep .el-table {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #383838;
|
||||
}
|
||||
|
||||
::v-deep.el-table td.el-table__cell,
|
||||
::v-deep .el-table td.el-table__cell,
|
||||
.el-table th.el-table__cell.is-leaf {
|
||||
border-bottom: 1px solid #383838;
|
||||
}
|
||||
|
|
@ -1452,7 +1452,7 @@ export default {
|
|||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
::v-deep.el-table__header-wrapper {
|
||||
::v-deep .el-table__header-wrapper {
|
||||
th {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -1460,7 +1460,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__body-wrapper {
|
||||
::v-deep .el-table__body-wrapper {
|
||||
tr {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -1471,7 +1471,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__empty-block {
|
||||
::v-deep .el-table__empty-block {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -999,20 +999,20 @@ export default {
|
|||
padding: 5px 0;
|
||||
}
|
||||
|
||||
::v-deep.el-table__fixed-right-patch {
|
||||
::v-deep .el-table__fixed-right-patch {
|
||||
background-color: #000 !important;
|
||||
border-color: #444444;
|
||||
}
|
||||
|
||||
::v-deep.el-table__fixed-body-wrapper tr:hover>td {
|
||||
::v-deep .el-table__fixed-body-wrapper tr:hover>td {
|
||||
background-color: #000 !important;
|
||||
}
|
||||
|
||||
::v-deep.el-table--scrollable-x .el-table__body-wrapper {
|
||||
::v-deep .el-table--scrollable-x .el-table__body-wrapper {
|
||||
z-index: 2;
|
||||
}
|
||||
}
|
||||
::v-deep.el-tag.el-tag--info {
|
||||
::v-deep .el-tag.el-tag--info {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -614,7 +614,7 @@ export default {
|
|||
|
||||
}
|
||||
|
||||
::v-deep.el-tabs {
|
||||
::v-deep .el-tabs {
|
||||
box-sizing: border-box;
|
||||
padding: 0 5px;
|
||||
height: 100%;
|
||||
|
|
@ -665,7 +665,7 @@ export default {
|
|||
border: 1px solid #607d8b !important;
|
||||
}
|
||||
|
||||
::v-deep.el-progress__text {
|
||||
::v-deep .el-progress__text {
|
||||
color: #ccc;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1203,12 +1203,12 @@ export default {
|
|||
.merge-table {
|
||||
padding: 0 10px;
|
||||
|
||||
::v-deep.el-table {
|
||||
::v-deep .el-table {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #383838;
|
||||
}
|
||||
|
||||
::v-deep.el-table td.el-table__cell,
|
||||
::v-deep .el-table td.el-table__cell,
|
||||
.el-table th.el-table__cell.is-leaf {
|
||||
border-bottom: 1px solid #383838;
|
||||
}
|
||||
|
|
@ -1219,7 +1219,7 @@ export default {
|
|||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
::v-deep.el-table__header-wrapper {
|
||||
::v-deep .el-table__header-wrapper {
|
||||
th {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -1227,7 +1227,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__body-wrapper {
|
||||
::v-deep .el-table__body-wrapper {
|
||||
tr {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -1238,7 +1238,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__empty-block {
|
||||
::v-deep .el-table__empty-block {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1130,12 +1130,12 @@ export default {
|
|||
.merge-table {
|
||||
padding: 0 10px;
|
||||
|
||||
::v-deep.el-table {
|
||||
::v-deep .el-table {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #383838;
|
||||
}
|
||||
|
||||
::v-deep.el-table td.el-table__cell,
|
||||
::v-deep .el-table td.el-table__cell,
|
||||
.el-table th.el-table__cell.is-leaf {
|
||||
border-bottom: 1px solid #383838;
|
||||
}
|
||||
|
|
@ -1146,7 +1146,7 @@ export default {
|
|||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
::v-deep.el-table__header-wrapper {
|
||||
::v-deep .el-table__header-wrapper {
|
||||
th {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -1154,7 +1154,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__body-wrapper {
|
||||
::v-deep .el-table__body-wrapper {
|
||||
tr {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -1165,7 +1165,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__empty-block {
|
||||
::v-deep .el-table__empty-block {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -952,7 +952,7 @@ export default {
|
|||
background-color: #607d8b!important;
|
||||
border: 1px solid #607d8b!important;
|
||||
}
|
||||
::v-deep.el-progress__text{
|
||||
::v-deep .el-progress__text{
|
||||
color: #ccc;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
|
@ -1022,7 +1022,7 @@ export default {
|
|||
|
||||
}
|
||||
}
|
||||
::v-deep.el-collapse{
|
||||
::v-deep .el-collapse{
|
||||
border: none;
|
||||
.el-collapse-item{
|
||||
background-color: #000!important;
|
||||
|
|
@ -1043,7 +1043,7 @@ export default {
|
|||
}
|
||||
}
|
||||
.sr-wrapper{
|
||||
::v-deep.el-dialog{
|
||||
::v-deep .el-dialog{
|
||||
background: #fff !important;
|
||||
border: 1px solid #ddd;
|
||||
// color: #ddd;
|
||||
|
|
@ -1051,12 +1051,12 @@ export default {
|
|||
color:#fff;
|
||||
}
|
||||
}
|
||||
::v-deep.sr-dialog-container{
|
||||
::v-deep .sr-dialog-container{
|
||||
margin-top: 50px !important;
|
||||
width:75%;
|
||||
height:80%;
|
||||
}
|
||||
::v-deep.el-dialog__body{
|
||||
::v-deep .el-dialog__body{
|
||||
padding: 10px;
|
||||
height: calc(100% - 50px);
|
||||
}
|
||||
|
|
@ -1064,7 +1064,7 @@ export default {
|
|||
position: relative;
|
||||
}
|
||||
.sr-full-dialog-container{
|
||||
::v-deep.is-fullscreen .el-dialog__body{
|
||||
::v-deep .is-fullscreen .el-dialog__body{
|
||||
height: calc(100% - 50px);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -887,7 +887,7 @@ export default {
|
|||
background-color: #607d8b!important;
|
||||
border: 1px solid #607d8b!important;
|
||||
}
|
||||
::v-deep.el-progress__text{
|
||||
::v-deep .el-progress__text{
|
||||
color: #ccc;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
|
@ -956,7 +956,7 @@ export default {
|
|||
}
|
||||
}
|
||||
}
|
||||
::v-deep.el-collapse{
|
||||
::v-deep .el-collapse{
|
||||
border: none;
|
||||
.el-collapse-item{
|
||||
background-color: #000!important;
|
||||
|
|
@ -977,7 +977,7 @@ export default {
|
|||
}
|
||||
}
|
||||
.sr-wrapper{
|
||||
::v-deep.el-dialog{
|
||||
::v-deep .el-dialog{
|
||||
background: #fff !important;
|
||||
border: 1px solid #ddd;
|
||||
// color: #ddd;
|
||||
|
|
@ -985,12 +985,12 @@ export default {
|
|||
color:#fff;
|
||||
}
|
||||
}
|
||||
::v-deep.sr-dialog-container{
|
||||
::v-deep .sr-dialog-container{
|
||||
margin-top: 50px !important;
|
||||
width:75%;
|
||||
height:80%;
|
||||
}
|
||||
::v-deep.el-dialog__body{
|
||||
::v-deep .el-dialog__body{
|
||||
padding: 10px;
|
||||
height: calc(100% - 50px);
|
||||
}
|
||||
|
|
@ -998,7 +998,7 @@ export default {
|
|||
position: relative;
|
||||
}
|
||||
.sr-full-dialog-container{
|
||||
::v-deep.is-fullscreen .el-dialog__body{
|
||||
::v-deep .is-fullscreen .el-dialog__body{
|
||||
height: calc(100% - 50px);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -529,7 +529,7 @@ export default {
|
|||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep.el-message-box__headerbtn {
|
||||
::v-deep .el-message-box__headerbtn {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
|
@ -541,7 +541,7 @@ export default {
|
|||
box-sizing: border-box;
|
||||
background-color: #000;
|
||||
|
||||
::v-deep.el-tabs {
|
||||
::v-deep .el-tabs {
|
||||
box-sizing: border-box;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
|
|
@ -573,11 +573,11 @@ export default {
|
|||
|
||||
}
|
||||
|
||||
::v-deep.hot-keys-label {
|
||||
::v-deep .hot-keys-label {
|
||||
color: #dfdfdf !important;
|
||||
}
|
||||
|
||||
::v-deep.shortcut-key-input span {
|
||||
::v-deep .shortcut-key-input span {
|
||||
color: #dfdfdf !important;
|
||||
}
|
||||
|
||||
|
|
@ -588,7 +588,7 @@ export default {
|
|||
// }
|
||||
|
||||
// }
|
||||
::v-deep.el-dialog {
|
||||
::v-deep .el-dialog {
|
||||
background: #1e1e1e;
|
||||
border: 1px solid #ddd;
|
||||
color: #ddd;
|
||||
|
|
@ -614,13 +614,13 @@ export default {
|
|||
|
||||
}
|
||||
|
||||
::v-deep.dialog-container {
|
||||
::v-deep .dialog-container {
|
||||
margin-top: 50px !important;
|
||||
width: 75%;
|
||||
height: 80%;
|
||||
}
|
||||
|
||||
::v-deep.el-dialog__body {
|
||||
::v-deep .el-dialog__body {
|
||||
padding: 20px;
|
||||
height: calc(100% - 70px);
|
||||
}
|
||||
|
|
@ -636,7 +636,7 @@ export default {
|
|||
}
|
||||
|
||||
.full-dialog-container {
|
||||
::v-deep.is-fullscreen .el-dialog__body {
|
||||
::v-deep .is-fullscreen .el-dialog__body {
|
||||
height: calc(100% - 70px);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ export default {
|
|||
getStudyList(obj) {
|
||||
if (obj) {
|
||||
var studyList = obj.StudyList || []
|
||||
studyList = studyList.filter(i => !i.IsCriticalSequence && (i.Modalities.indexOf('CT') !== -1 || i.Modalities.indexOf('MR') !== -1) && i.Modalities.indexOf('PT') !== -1)
|
||||
studyList = studyList.filter(i => !i.IsCriticalSequence && (i.Modalities.indexOf('CT') !== -1 || i.Modalities.indexOf('MR') !== -1) && (i.Modalities.indexOf('PT') !== -1 || i.Modalities.indexOf('NM') !== -1))
|
||||
if (studyList.length === 0) return
|
||||
this.studyList = studyList
|
||||
}
|
||||
|
|
@ -200,7 +200,7 @@ export default {
|
|||
var series = seriesList.filter(series => series.Modality === 'CT' || series.Modality === 'MR')
|
||||
this.ctSeries = series.sort((a, b) => b.instanceCount - a.instanceCount)
|
||||
|
||||
series = seriesList.filter(series => series.Modality === 'PT')
|
||||
series = seriesList.filter(series => series.Modality === 'PT' || series.Modality === 'NM')
|
||||
this.petSeries = series.sort((a, b) => b.instanceCount - a.instanceCount)
|
||||
}
|
||||
},
|
||||
|
|
@ -235,12 +235,12 @@ export default {
|
|||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.series-table {
|
||||
::v-deep.el-table {
|
||||
::v-deep .el-table {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
}
|
||||
|
||||
::v-deep.el-table td.el-table__cell,
|
||||
::v-deep .el-table td.el-table__cell,
|
||||
.el-table th.el-table__cell.is-leaf {
|
||||
border-bottom: 1px solid #dfdfdf;
|
||||
}
|
||||
|
|
@ -251,14 +251,14 @@ export default {
|
|||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
::v-deep.el-table__header-wrapper {
|
||||
::v-deep .el-table__header-wrapper {
|
||||
th {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__body-wrapper {
|
||||
::v-deep .el-table__body-wrapper {
|
||||
tr {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -269,7 +269,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__empty-block {
|
||||
::v-deep .el-table__empty-block {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@
|
|||
<div class="dropdown-content">
|
||||
<ul style="width:165px;">
|
||||
<li v-for="item in wwwcArr" :key="item.label">
|
||||
<a href="#" @click.stop="changeVoiRange(item)">
|
||||
<span @click.stop="changeVoiRange(item)">
|
||||
<div v-if="item.wc !== null"
|
||||
style="display:flex;flex-direction: row;justify-content: space-between;">
|
||||
<div>{{ item.label }}</div>
|
||||
|
|
@ -104,7 +104,7 @@
|
|||
<div v-else style="text-align:left;">
|
||||
{{ item.label }}
|
||||
</div>
|
||||
</a>
|
||||
</span>
|
||||
<el-divider v-if="item.val === 1" class="divider" content-position="center">
|
||||
{{ ` ${$t('trials:reading:title:preset')}` }}
|
||||
</el-divider>
|
||||
|
|
@ -145,9 +145,9 @@
|
|||
<div class="dropdown-content">
|
||||
<ul style="width:100px;">
|
||||
<li v-for="rotate in rotateOptions" :key="rotate.label" style="text-align:left;">
|
||||
<a href="#" @click.prevent="setViewportRotate(rotate.val)">
|
||||
<span @click.prevent="setViewportRotate(rotate.val)">
|
||||
{{ rotate.label }}
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -239,10 +239,10 @@
|
|||
<!--v-if="readingTaskState < 2"-->
|
||||
<ul style="width:100px;">
|
||||
<li v-for="i in customizeStandards" :key="i.toolName" style="text-align:left;">
|
||||
<a href="#" @click.prevent="setMoreToolActive(i.toolName)">
|
||||
<span @click.prevent="setMoreToolActive(i.toolName)">
|
||||
<svg-icon :icon-class="i.icon" class="svg-icon" style="margin-right: 5px;" />
|
||||
{{ $t(i.i18nKey) }}
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -327,10 +327,10 @@
|
|||
@renderAnnotations="renderAnnotations" @contentMouseup="contentMouseup" />
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="readingTool === 2" :class="['viewports-box', !isFusion ? 'viewports-box-down' : '']"
|
||||
<div v-if="readingTool === 2"
|
||||
:class="['viewports-box', !isFusion ? 'viewports-box-down' : '', fullScreenIndex !== null ? 'viewports-box-full-screen' : '']"
|
||||
:style="gridStyle">
|
||||
<div v-for="(v, index) in cellsMax" v-show="index < cells.length" :key="`viewport-fusion-${index}`"
|
||||
:style="cellStyle"
|
||||
:class="['grid-cell', index === activeViewportIndex ? 'cell_active' : '', index === fullScreenIndex ? 'cell-full-screen' : '']"
|
||||
@dblclick="toggleFullScreen($event, index)" @click="activeViewport(index)">
|
||||
<PetCtViewport :ref="`viewport-fusion-${index}`" :data-viewport-uid="`viewport-fusion-${index}`"
|
||||
|
|
@ -364,7 +364,8 @@
|
|||
<Segmentations ref="Segmentations" :visitInfo="taskInfo" :isMPR="isMPR"
|
||||
:volumeToolGroupId="volumeToolGroupId" :viewportKey="viewportKey"
|
||||
:activeViewportIndex="activeViewportIndex" :activeTool.sync="activeTool"
|
||||
:actionConfiguration="actionConfiguration" @setToolsPassive="setToolsPassive" @resetQuestion="resetQuestion"/>
|
||||
:actionConfiguration="actionConfiguration" @setToolsPassive="setToolsPassive"
|
||||
@resetQuestion="resetQuestion" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<template v-else>
|
||||
|
|
@ -570,6 +571,7 @@ const {
|
|||
synchronizers,
|
||||
PlanarFreehandContourSegmentationTool,
|
||||
BrushTool,
|
||||
SegmentBidirectionalTool,
|
||||
utilities: CStUtils,
|
||||
// cursors
|
||||
} = cornerstoneTools
|
||||
|
|
@ -889,7 +891,7 @@ export default {
|
|||
this.getSystemInfoReading();
|
||||
},
|
||||
methods: {
|
||||
resetQuestion(){
|
||||
resetQuestion() {
|
||||
this.$refs[`ecrf_${this.lastViewportTaskId}`][0].getQuestions(false)
|
||||
},
|
||||
handleSegmentSave(obj) {
|
||||
|
|
@ -1323,6 +1325,7 @@ export default {
|
|||
cornerstoneTools.addTool(CrosshairsTool)
|
||||
cornerstoneTools.addTool(PlanarFreehandContourSegmentationTool)
|
||||
cornerstoneTools.addTool(BrushTool)
|
||||
cornerstoneTools.addTool(SegmentBidirectionalTool)
|
||||
viewportIds.forEach((viewportId, i) => {
|
||||
// const toolGroupId = `viewport-${i}`
|
||||
let toolGroupId = viewportId
|
||||
|
|
@ -1364,6 +1367,7 @@ export default {
|
|||
toolGroup.addTool(PlanarFreehandContourSegmentationTool.toolName, {
|
||||
cachedStats: true,
|
||||
});
|
||||
toolGroup.addTool(SegmentBidirectionalTool.toolName, {});
|
||||
// toolGroup.setToolActive(PlanarFreehandContourSegmentationTool.toolName, {
|
||||
// bindings: [
|
||||
// {
|
||||
|
|
@ -1485,7 +1489,10 @@ export default {
|
|||
toolGroup.setToolPassive(FixedRadiusCircleROITool.toolName)
|
||||
toolGroup.setToolPassive(AngleTool.toolName)
|
||||
toolGroup.setToolPassive(CobbAngleTool.toolName)
|
||||
if (this.readingTool === 3) toolGroup.setToolPassive(PlanarFreehandContourSegmentationTool.toolName)
|
||||
if (this.readingTool === 3) {
|
||||
toolGroup.setToolPassive(PlanarFreehandContourSegmentationTool.toolName)
|
||||
toolGroup.setToolPassive(SegmentBidirectionalTool.toolName, {});
|
||||
}
|
||||
} else {
|
||||
toolGroup.setToolEnabled(ArrowAnnotateTool.toolName)
|
||||
toolGroup.setToolEnabled(RectangleROITool.toolName)
|
||||
|
|
@ -3038,8 +3045,7 @@ export default {
|
|||
if (obj.segment) {
|
||||
let study = studyList.find(item => item.StudyId === obj.segmentGroup.StudyId)
|
||||
series = study.SeriesList.find(item => item.Id === obj.segmentGroup.SeriesId)
|
||||
let sliceIndex = obj.segment.bidirectional.sliceIndex || 0
|
||||
series.SliceIndex = series.InstanceCount - 1 - sliceIndex
|
||||
series.SliceIndex = 0
|
||||
series.segment = obj.segment
|
||||
} else {
|
||||
series = this.getMarkedSeries(studyList, obj.annotation, true)
|
||||
|
|
@ -3976,14 +3982,14 @@ export default {
|
|||
text-align: center;
|
||||
|
||||
li {
|
||||
a {
|
||||
span {
|
||||
display: block;
|
||||
padding: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ul li a:hover {
|
||||
ul li span:hover {
|
||||
background-color: #727272;
|
||||
}
|
||||
}
|
||||
|
|
@ -4075,10 +4081,29 @@ export default {
|
|||
bottom: 0;
|
||||
right: 0;
|
||||
z-index: 9;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.viewports-box-down {
|
||||
z-index: 1;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.viewports-box-down {
|
||||
>.grid-cell {
|
||||
border-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.viewports-box-full-screen {
|
||||
>.grid-cell {
|
||||
display: none;
|
||||
}
|
||||
|
||||
>.grid-cell.cell-full-screen {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.grid-cell {
|
||||
|
|
@ -4086,6 +4111,9 @@ export default {
|
|||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
|
|
@ -4121,61 +4149,6 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep .manuals-dialog-container {
|
||||
margin-top: 50px !important;
|
||||
width: 75%;
|
||||
height: 80%;
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 10px;
|
||||
height: calc(100% - 50px) !important;
|
||||
}
|
||||
|
||||
.el-dialog__header {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .manuals-full-dialog-container {
|
||||
.el-dialog__body {
|
||||
padding: 10px;
|
||||
height: calc(100% - 50px) !important;
|
||||
}
|
||||
|
||||
.el-dialog__header {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .cd-dialog-container {
|
||||
background: #fff !important;
|
||||
margin-top: 50px !important;
|
||||
width: 75%;
|
||||
height: 80%;
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 20px 20px 0 20px;
|
||||
height: calc(100% - 70px);
|
||||
}
|
||||
|
||||
.el-dialog__header {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .cd-full-dialog-container {
|
||||
background: #fff !important;
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 10px;
|
||||
height: calc(100% - 50px) !important;
|
||||
}
|
||||
|
||||
.el-dialog__header {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-dropdown-menu {
|
||||
.el-dropdown-menu__item {
|
||||
padding: 0 5px;
|
||||
|
|
@ -4218,3 +4191,60 @@ export default {
|
|||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss">
|
||||
.manuals-dialog-container {
|
||||
margin-top: 50px !important;
|
||||
width: 75%;
|
||||
height: 80%;
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 10px;
|
||||
height: calc(100% - 50px) !important;
|
||||
}
|
||||
|
||||
.el-dialog__header {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.manuals-full-dialog-container {
|
||||
.el-dialog__body {
|
||||
padding: 10px;
|
||||
height: calc(100% - 50px) !important;
|
||||
}
|
||||
|
||||
.el-dialog__header {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.cd-dialog-container {
|
||||
background: #fff !important;
|
||||
margin-top: 50px !important;
|
||||
width: 75%;
|
||||
height: 80%;
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 20px 20px 0 20px;
|
||||
height: calc(100% - 70px);
|
||||
}
|
||||
|
||||
.el-dialog__header {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.cd-full-dialog-container {
|
||||
background: #fff !important;
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 10px;
|
||||
height: calc(100% - 50px) !important;
|
||||
}
|
||||
|
||||
.el-dialog__header {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -1986,12 +1986,12 @@ export default {
|
|||
.merge-table {
|
||||
padding: 0 10px;
|
||||
|
||||
::v-deep.el-table {
|
||||
::v-deep .el-table {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #383838;
|
||||
}
|
||||
|
||||
::v-deep.el-table td.el-table__cell,
|
||||
::v-deep .el-table td.el-table__cell,
|
||||
.el-table th.el-table__cell.is-leaf {
|
||||
border-bottom: 1px solid #383838;
|
||||
}
|
||||
|
|
@ -2002,7 +2002,7 @@ export default {
|
|||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
::v-deep.el-table__header-wrapper {
|
||||
::v-deep .el-table__header-wrapper {
|
||||
th {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -2010,7 +2010,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__body-wrapper {
|
||||
::v-deep .el-table__body-wrapper {
|
||||
tr {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -2021,7 +2021,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__empty-block {
|
||||
::v-deep .el-table__empty-block {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -208,9 +208,11 @@ const {
|
|||
Enums: csToolsEnums,
|
||||
segmentation,
|
||||
annotation,
|
||||
SegmentBidirectionalTool,
|
||||
utilities: CStUtils,
|
||||
} = cornerstoneTools;
|
||||
const { MouseBindings, Events: toolsEvents } = csToolsEnums
|
||||
const { segmentation: segmentationUtils, roundNumber } = CStUtils;
|
||||
const { cache, getRenderingEngine, imageLoader, eventTarget, metaData, utilities: csUtils, volumeLoader } = cornerstone;
|
||||
const { downloadDICOMData } = cornerstoneAdapters.helpers;
|
||||
const { Cornerstone3D } = cornerstoneAdapters.adaptersSEG;
|
||||
|
|
@ -378,26 +380,34 @@ export default {
|
|||
const viewportId = `${this.viewportKey}-${this.activeViewportIndex}`
|
||||
const viewport = renderingEngine.getViewport(viewportId);
|
||||
this.$nextTick(() => {
|
||||
[viewport.element].forEach((element) => {
|
||||
const bidirectional = this.actionConfiguration.contourBidirectional.method(
|
||||
element,
|
||||
this.actionConfiguration.contourBidirectional
|
||||
);
|
||||
if (!bidirectional) {
|
||||
console.log('No bidirectional found');
|
||||
return;
|
||||
}
|
||||
item.bidirectional = bidirectional
|
||||
let an = annotation.state.getAllAnnotations().find(i => i.data.segment && i.data.segment.segmentationId === bidirectional.segmentationId && i.data.segment.segmentIndex === bidirectional.segmentIndex && i.metadata.toolName === "Bidirectional");
|
||||
annotation.locking.setAnnotationLocked(an.annotationUID, true)
|
||||
if (DATA) {
|
||||
this.segmentationId = DATA.SegmentationId;
|
||||
// this.segmentIndex = this.segmentList[this.segmentList.length - 1].segments[0].segmentIndex;
|
||||
this.segmentIndex = DATA.SegmentMumber;
|
||||
setTimeout(() => {
|
||||
this.selectSegment(DATA)
|
||||
})
|
||||
}
|
||||
[viewport.element].forEach(async (element) => {
|
||||
const bidirectionalData =
|
||||
await CStUtils.segmentation.getSegmentLargestBidirectional({
|
||||
segmentationId: item.segmentationId,
|
||||
segmentIndices: [item.segmentIndex],
|
||||
});
|
||||
bidirectionalData.forEach((bidirectional) => {
|
||||
const { segmentIndex } = bidirectional;
|
||||
const { majorAxis, minorAxis, maxMajor, maxMinor } = bidirectional;
|
||||
|
||||
SegmentBidirectionalTool.hydrate(viewportId, [majorAxis, minorAxis], {
|
||||
segmentIndex,
|
||||
segmentationId: item.segmentationId,
|
||||
});
|
||||
item.bidirectional = bidirectional
|
||||
let an = annotation.state.getAllAnnotations().find(i => i.metadata.segmentationId === item.segmentationId && i.metadata.segmentIndex === bidirectional.segmentIndex && i.metadata.toolName === "SegmentBidirectional");
|
||||
if (an) {
|
||||
annotation.locking.setAnnotationLocked(an.annotationUID, true)
|
||||
}
|
||||
if (DATA) {
|
||||
this.segmentationId = DATA.SegmentationId;
|
||||
this.segmentIndex = DATA.SegmentMumber;
|
||||
setTimeout(() => {
|
||||
this.selectSegment(DATA)
|
||||
})
|
||||
}
|
||||
// render the bidirectional tool data
|
||||
});
|
||||
|
||||
});
|
||||
})
|
||||
|
|
@ -427,7 +437,7 @@ export default {
|
|||
}
|
||||
},
|
||||
viewBidirectional(item, view) {
|
||||
let bidirectional = annotation.state.getAllAnnotations().find(i => i.data.segment && i.data.segment.segmentationId === this.segmentationId && i.data.segment.segmentIndex === item.segmentIndex && i.metadata.toolName === "Bidirectional");
|
||||
let bidirectional = annotation.state.getAllAnnotations().find(i => i.metadata.segmentationId === item.segmentationId && i.metadata.segmentIndex === item.segmentIndex && i.metadata.toolName === "SegmentBidirectional");
|
||||
annotation.visibility.setAnnotationVisibility(bidirectional.annotationUID, view)
|
||||
item.bidirectionalView = view
|
||||
this.resetViewport()
|
||||
|
|
@ -469,16 +479,15 @@ export default {
|
|||
this.segmentationId = item.segmentationId;
|
||||
this.segmentIndex = item.segmentIndex;
|
||||
segmentation.segmentIndex.setActiveSegmentIndex(item.segmentationId, item.segmentIndex);
|
||||
console.log(item.bidirectional)
|
||||
if (item.bidirectional) {
|
||||
let sliceIndex = item.bidirectional.sliceIndex
|
||||
let an = annotation.state.getAllAnnotations().find(i => i.metadata.segmentationId === item.segmentationId && i.metadata.segmentIndex === item.segmentIndex && i.metadata.toolName === "SegmentBidirectional");
|
||||
if (!an) return false
|
||||
let referencedImageId = an.metadata.referencedImageId;
|
||||
let sliceIndex = metaData.get('generalImageModule', referencedImageId).instanceNumber
|
||||
const renderingEngine = getRenderingEngine(this.renderingEngineId)
|
||||
const viewportId = `${this.viewportKey}-${this.activeViewportIndex}`
|
||||
const viewport = renderingEngine.getViewport(viewportId)
|
||||
const segmentGroup =
|
||||
segmentation.state.getSegmentation(this.segmentationId);
|
||||
const { imageIds } = segmentGroup.representationData.Labelmap;
|
||||
csUtils.jumpToSlice(viewport.element, { imageIndex: imageIds.length - 1 - sliceIndex });
|
||||
csUtils.jumpToSlice(viewport.element, { imageIndex: sliceIndex - 1 });
|
||||
}
|
||||
if (item.lock) {
|
||||
this.$emit('setToolsPassive')
|
||||
|
|
@ -596,7 +605,7 @@ export default {
|
|||
delAllSegment() {
|
||||
segmentation.removeAllSegmentations()
|
||||
segmentation.state.removeAllSegmentations()
|
||||
let annotations = annotation.state.getAllAnnotations().filter(item => item.data.segmentation || item.data.segment);
|
||||
let annotations = annotation.state.getAllAnnotations().filter(item => item.metadata.segmentationId && item.metadata.segmentIndex && item.metadata.toolName === "SegmentBidirectional");
|
||||
annotations.forEach(item => {
|
||||
annotation.state.removeAnnotation(item.annotationUID)
|
||||
})
|
||||
|
|
@ -613,7 +622,7 @@ export default {
|
|||
segmentation.state.removeSegmentation(this.segmentationId)
|
||||
let groupIndex = this.segmentList.findIndex(item => item.segmentationId === this.segmentationId)
|
||||
this.segmentList.splice(groupIndex, 1)
|
||||
let annotations = annotation.state.getAllAnnotations().filter(item => (item.data.segmentation && item.data.segmentation.segmentationId === this.segmentationId) || (item.data.segment && item.data.segment.segmentationId === this.segmentationId));
|
||||
let annotations = annotation.state.getAllAnnotations().filter(item => item.metadata.segmentationId === this.segmentationId);
|
||||
annotations.forEach(item => {
|
||||
annotation.state.removeAnnotation(item.annotationUID)
|
||||
})
|
||||
|
|
@ -637,7 +646,7 @@ export default {
|
|||
// segmentation.updateSegmentations({ segmentationId: this.segmentationId })
|
||||
let index = this.segmentList[groupIndex].segments.findIndex(item => item.segmentIndex === segmentIndex)
|
||||
this.segmentList[groupIndex].segments.splice(index, 1)
|
||||
let annotations = annotation.state.getAllAnnotations().filter(item => (item.data.segmentation && item.data.segmentation.segmentationId === this.segmentationId && item.data.segmentation.segmentIndex === segmentIndex) || (item.data.segment && item.data.segment.segmentationId === this.segmentationId && item.data.segment.segmentIndex === segmentIndex));
|
||||
let annotations = annotation.state.getAllAnnotations().filter(item => item.metadata.segmentationId === this.segmentationId && item.metadata.segmentIndex === segmentIndex);
|
||||
annotations.forEach(item => {
|
||||
annotation.state.removeAnnotation(item.annotationUID)
|
||||
})
|
||||
|
|
@ -740,9 +749,7 @@ export default {
|
|||
segmentation.state.getSegmentation(segmentationId);
|
||||
|
||||
let { imageIds } = segmentGroup.representationData.Labelmap;
|
||||
// imageIds.forEach(id => {
|
||||
// console.log(metaData.get('generalImageModule', id))
|
||||
// })
|
||||
|
||||
let segImages = imageIds.map(imageId => cache.getImage(imageId));
|
||||
segImages = segImages.reverse()
|
||||
let referencedImages = segImages.map(image =>
|
||||
|
|
@ -818,6 +825,7 @@ export default {
|
|||
labelmap3D,
|
||||
metaData
|
||||
);
|
||||
console.log(generatedSegmentation.dataset, 'generatedSegmentation.dataset')
|
||||
if (!isFile) {
|
||||
const buffer = Buffer.from(dcmjs.data.datasetToDict(generatedSegmentation.dataset).write());
|
||||
let blob = new Blob([buffer], { type: "application/dicom" });
|
||||
|
|
@ -970,18 +978,35 @@ export default {
|
|||
}
|
||||
this.drawing = true
|
||||
},
|
||||
calculateStatistics(indices, segmentationId) {
|
||||
const renderingEngine = getRenderingEngine(this.renderingEngineId)
|
||||
const toolGroupId = this.isMPR ? this.volumeToolGroupId : `${this.viewportKey}-${this.activeViewportIndex}`
|
||||
const viewportId = `${this.viewportKey}-${this.activeViewportIndex}`
|
||||
const viewport = renderingEngine.getViewport(viewportId)
|
||||
const toolGroup = ToolGroupManager.getToolGroup(toolGroupId);
|
||||
const activeName = toolGroup.getActivePrimaryMouseButtonTool();
|
||||
const brush = toolGroup.getToolInstance(activeName);
|
||||
const stats = brush.getStatistics(viewport.element, { indices });
|
||||
let segmentGroup = this.segmentList.find(item => item.segmentationId === segmentationId)
|
||||
let segment = segmentGroup.segments.find(item => item.segmentIndex === indices[0])
|
||||
segment.stats = stats;
|
||||
async calculateStatistics(indices, segmentationId, mode) {
|
||||
const stats = await segmentationUtils.getStatistics({
|
||||
segmentationId,
|
||||
segmentIndices: indices,
|
||||
mode,
|
||||
});
|
||||
|
||||
if (mode === 'individual') {
|
||||
// Handle individual mode where stats is an object with segment indices as keys
|
||||
const segmentStats = stats;
|
||||
|
||||
for (const segmentIndex of indices) {
|
||||
if (segmentStats[segmentIndex]) {
|
||||
const segmentStat = segmentStats[segmentIndex];
|
||||
console.log(segmentStat, 'segmentStat')
|
||||
segmentStat.count.label = 'Voxels';
|
||||
let segmentGroup = this.segmentList.find(item => item.segmentationId === segmentationId)
|
||||
let segment = segmentGroup.segments.find(item => item.segmentIndex === segmentIndex)
|
||||
segment.stats = segmentStat;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const items = [`Statistics on ${indices.join(', ')}`];
|
||||
// Handle collective mode where stats is a NamedStatistics object
|
||||
const namedStats = stats;
|
||||
namedStats.count.label = 'Voxels';
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
createSegmentationRepresentation(segmentationId) {
|
||||
this.viewprotIds.forEach(id => {
|
||||
|
|
@ -1004,7 +1029,7 @@ export default {
|
|||
this.timeoutId = null;
|
||||
this.drawing = false;
|
||||
if (!this.isDel) {
|
||||
this.calculateStatistics([this.segmentIndex], this.segmentationId);
|
||||
this.calculateStatistics([this.segmentIndex], this.segmentationId, 'individual');
|
||||
let segmentGroup = this.segmentList.find(item => item.segmentationId === this.segmentationId)
|
||||
let segment = segmentGroup.segments.find(item => item.segmentIndex === this.segmentIndex)
|
||||
this.getBidirectional(segment)
|
||||
|
|
@ -1015,7 +1040,7 @@ export default {
|
|||
segmentIndexs.push(item.segmentIndex)
|
||||
this.getBidirectional(item)
|
||||
})
|
||||
this.calculateStatistics(segmentIndexs, this.segmentationId);
|
||||
this.calculateStatistics(segmentIndexs, this.segmentationId, 'individual');
|
||||
}
|
||||
this.isDel = false
|
||||
|
||||
|
|
@ -1067,9 +1092,10 @@ export default {
|
|||
}
|
||||
let res = await this.getSegmentBindingList(data)
|
||||
if (res && res.length > 0) questionNeedChange = true
|
||||
res.forEach(async i => {
|
||||
let segment = segmentGroup.find(d => d.id === i.SegmentId)
|
||||
let question = await this.getQuestionConfig(i.TableQuestionId ? i.TableQuestionId : i.QuestionId, !!i.TableQuestionId);
|
||||
for (let j = 0; j < res.length; j++) {
|
||||
let item = res[j]
|
||||
let segment = segmentGroup.segments.find(d => d.id === item.SegmentId)
|
||||
let question = await this.getQuestionConfig(item.TableQuestionId ? item.TableQuestionId : item.QuestionId, !!item.TableQuestionId);
|
||||
let imageToolAttribute = question.ImageToolAttribute
|
||||
let answer = ''
|
||||
if (imageToolAttribute === 'length' || imageToolAttribute === 'width') {
|
||||
|
|
@ -1077,21 +1103,21 @@ export default {
|
|||
length: "maxMajor",
|
||||
width: 'maxMinor'
|
||||
}
|
||||
answer = segment.bidirectional && segment.stats[s[imageToolAttribute]] ? (segment.bidirectional[s[imageToolAttribute]]).toFixed(this.digitPlaces) : ''
|
||||
answer = segment.bidirectional && segment.bidirectional[s[imageToolAttribute]] ? Number(segment.bidirectional[s[imageToolAttribute]]).toFixed(this.digitPlaces) : ''
|
||||
} else {
|
||||
answer = segment.stats && segment.stats[imageToolAttribute] ? Number((segment.stats[imageToolAttribute]).value).toFixed(this.digitPlaces) : ''
|
||||
}
|
||||
let o = {
|
||||
Answer: answer,
|
||||
QuestionId: i.QuestionId,
|
||||
RowId: i.RowId,
|
||||
SegmentId: i.SegmentId,
|
||||
SegmentationId: i.SegmentationId,
|
||||
TableQuestionId: i.TableQuestionId,
|
||||
QuestionId: item.QuestionId,
|
||||
RowId: item.RowId,
|
||||
SegmentId: item.SegmentId,
|
||||
SegmentationId: item.SegmentationId,
|
||||
TableQuestionId: item.TableQuestionId,
|
||||
VisitTaskId: this.visitInfo.VisitTaskId,
|
||||
}
|
||||
bindingList.push(o)
|
||||
})
|
||||
}
|
||||
}
|
||||
if (questionNeedChange) {
|
||||
let confirm = await this.$confirm(this.$t("segment:confirm:questionNeedChange"))
|
||||
|
|
@ -1196,12 +1222,16 @@ export default {
|
|||
this.selectSegment(o)
|
||||
this.changeColor(s.ColorRgb, o)
|
||||
this.lockSegment(o, true)
|
||||
setTimeout(() => {
|
||||
if (SEGMENT && index === segments.length - 1) {
|
||||
return this.getBidirectional(o, SEGMENT)
|
||||
}
|
||||
this.getBidirectional(o)
|
||||
})
|
||||
// setTimeout(() => {
|
||||
// if (SEGMENT && index === segments.length - 1) {
|
||||
// return this.getBidirectional(o, SEGMENT)
|
||||
// }
|
||||
// this.getBidirectional(o)
|
||||
// })
|
||||
if (SEGMENT && index === segments.length - 1) {
|
||||
return this.getBidirectional(o, SEGMENT)
|
||||
}
|
||||
this.getBidirectional(o)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -248,8 +248,7 @@ export default {
|
|||
background-color: #607d8b !important;
|
||||
border: 1px solid #607d8b !important;
|
||||
}
|
||||
|
||||
::v-deep.el-progress__text {
|
||||
::v-deep .el-progress__text{
|
||||
color: #ccc;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
|
@ -300,8 +299,7 @@ export default {
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep.el-collapse {
|
||||
::v-deep .el-collapse{
|
||||
border: none;
|
||||
|
||||
.el-collapse-item {
|
||||
|
|
|
|||
|
|
@ -517,7 +517,7 @@ export default {
|
|||
width: 'maxMinor'
|
||||
}
|
||||
if (!obj.bidirectional || !obj.bidirectional.maxMajor) return this.$confirm(this.$t("segment:error:notValue"))
|
||||
answer = obj.bidirectional[s[imageToolAttribute]] ? (obj.bidirectional[s[imageToolAttribute]]).toFixed(this.digitPlaces) : ''
|
||||
answer = obj.bidirectional[s[imageToolAttribute]] ? Number(obj.bidirectional[s[imageToolAttribute]]).toFixed(this.digitPlaces) : ''
|
||||
} else {
|
||||
if (!obj.stats) return this.$confirm(this.$t("segment:error:notValue"))
|
||||
answer = obj.stats[imageToolAttribute] ? Number((obj.stats[imageToolAttribute]).value).toFixed(this.digitPlaces) : ''
|
||||
|
|
|
|||
|
|
@ -2070,12 +2070,12 @@ export default {
|
|||
.merge-table {
|
||||
padding: 0 10px;
|
||||
|
||||
::v-deep.el-table {
|
||||
::v-deep .el-table {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #383838;
|
||||
}
|
||||
|
||||
::v-deep.el-table td.el-table__cell,
|
||||
::v-deep .el-table td.el-table__cell,
|
||||
.el-table th.el-table__cell.is-leaf {
|
||||
border-bottom: 1px solid #383838;
|
||||
}
|
||||
|
|
@ -2086,7 +2086,7 @@ export default {
|
|||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
::v-deep.el-table__header-wrapper {
|
||||
::v-deep .el-table__header-wrapper {
|
||||
th {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -2094,7 +2094,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__body-wrapper {
|
||||
::v-deep .el-table__body-wrapper {
|
||||
tr {
|
||||
background-color: #1e1e1e !important;
|
||||
color: #dfdfdf;
|
||||
|
|
@ -2105,7 +2105,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-table__empty-block {
|
||||
::v-deep .el-table__empty-block {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -317,7 +317,7 @@ export default {
|
|||
color: yellow;
|
||||
}
|
||||
}
|
||||
::v-deep.el-button--text{
|
||||
::v-deep .el-button--text{
|
||||
color: #d0d0d0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -494,7 +494,7 @@ export default {
|
|||
|
||||
<style lang="scss" scoped>
|
||||
.medical-feedback-ir{
|
||||
::v-deep.search {
|
||||
::v-deep .search {
|
||||
padding: 0px !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -366,7 +366,7 @@ export default {
|
|||
color: yellow;
|
||||
}
|
||||
}
|
||||
::v-deep.el-button--text{
|
||||
::v-deep .el-button--text{
|
||||
color: #d0d0d0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -161,16 +161,16 @@ export default {
|
|||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.issues-form{
|
||||
::v-deep.el-radio-group{
|
||||
::v-deep .el-radio-group{
|
||||
width:300px;
|
||||
}
|
||||
::v-deep.el-textarea{
|
||||
::v-deep .el-textarea{
|
||||
width:300px;
|
||||
}
|
||||
::v-deep.el-input{
|
||||
::v-deep .el-input{
|
||||
width:300px;
|
||||
}
|
||||
::v-deep.el-select{
|
||||
::v-deep .el-select{
|
||||
width:300px;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -297,7 +297,7 @@ export default {
|
|||
height: 100%;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
::v-deep.el-tabs{
|
||||
::v-deep .el-tabs{
|
||||
box-sizing: border-box;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
|
|
@ -324,12 +324,12 @@ export default {
|
|||
|
||||
}
|
||||
}
|
||||
::v-deep.dialog-container{
|
||||
::v-deep .dialog-container{
|
||||
margin-top: 50px !important;
|
||||
width:75%;
|
||||
height:80%;
|
||||
}
|
||||
::v-deep.el-dialog__body{
|
||||
::v-deep .el-dialog__body{
|
||||
padding: 20px 20px 0 20px;
|
||||
height: calc(100% - 70px);
|
||||
}
|
||||
|
|
@ -339,7 +339,7 @@ export default {
|
|||
}
|
||||
|
||||
.full-dialog-container{
|
||||
::v-deep.is-fullscreen .el-dialog__body{
|
||||
::v-deep .is-fullscreen .el-dialog__body{
|
||||
height: calc(100% - 70px);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -884,7 +884,7 @@ export default {
|
|||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.read-task-allocation {
|
||||
::v-deep.search {
|
||||
::v-deep .search {
|
||||
padding: 0px !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -548,7 +548,7 @@ export default {
|
|||
height: 100%;
|
||||
background-color: #fff;
|
||||
|
||||
::v-deep.search {
|
||||
::v-deep .search {
|
||||
padding: 0px !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -408,7 +408,7 @@ export default {
|
|||
height: 100%;
|
||||
background-color: #fff;
|
||||
|
||||
::v-deep.search {
|
||||
::v-deep .search {
|
||||
padding: 0px !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -466,7 +466,7 @@ export default {
|
|||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.reread-task{
|
||||
::v-deep.search {
|
||||
::v-deep .search {
|
||||
padding: 0px !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ export default {
|
|||
border: 1px solid #607d8b !important;
|
||||
}
|
||||
|
||||
::v-deep.el-progress__text {
|
||||
::v-deep .el-progress__text {
|
||||
color: #ccc;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
|
@ -295,7 +295,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
::v-deep.el-collapse {
|
||||
::v-deep .el-collapse {
|
||||
border: none;
|
||||
|
||||
.el-collapse-item {
|
||||
|
|
|
|||
|
|
@ -221,12 +221,12 @@ export default {
|
|||
overflow-y: auto;
|
||||
}
|
||||
|
||||
::v-deep.el-collapse-item__header {
|
||||
::v-deep .el-collapse-item__header {
|
||||
background: #e5ecef;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
::v-deep.el-collapse-item__content {
|
||||
::v-deep .el-collapse-item__content {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -562,7 +562,7 @@ export default {
|
|||
background: #fff;
|
||||
padding: 0px 10px;
|
||||
box-sizing: border-box;
|
||||
::v-deep.search {
|
||||
::v-deep .search {
|
||||
padding: 0px !important;
|
||||
}
|
||||
::v-deep .el-tabs--border-card>.el-tabs__content {
|
||||
|
|
|
|||
|
|
@ -689,7 +689,7 @@ export default {
|
|||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.reading-period {
|
||||
::v-deep.search {
|
||||
::v-deep .search {
|
||||
padding: 0px !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -435,7 +435,7 @@ export default {
|
|||
}
|
||||
}
|
||||
.menuSwitch {
|
||||
::v-deep.el-switch__core {
|
||||
::v-deep .el-switch__core {
|
||||
height: 14px;
|
||||
width: 28px !important;
|
||||
&::after {
|
||||
|
|
@ -446,7 +446,7 @@ export default {
|
|||
}
|
||||
}
|
||||
.el-switch.is-checked {
|
||||
::v-deep.el-switch__core {
|
||||
::v-deep .el-switch__core {
|
||||
height: 14px;
|
||||
width: 28px !important;
|
||||
&::after {
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ module.exports = defineConfig({
|
|||
|
||||
'/api': {
|
||||
target: 'http://106.14.89.110:30000',
|
||||
// target: 'http://101.132.253.119:7010', // uat
|
||||
// target: 'http://101.132.253.119:7010', // uat
|
||||
changeOrigin: true,
|
||||
secure: false,
|
||||
pathRewrite: {
|
||||
|
|
@ -99,7 +99,7 @@ module.exports = defineConfig({
|
|||
]
|
||||
}),
|
||||
// new BundleAnalyzerPlugin(),
|
||||
process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'production' || process.env.VUE_APP_OSS_CONFIG_BUCKET === 'zyypacs-usa' ? function () { }
|
||||
process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'production' || process.env.VUE_APP_OSS_CONFIG_BUCKET === 'zyypacs-usa' ? function() { }
|
||||
: new WebpackAliyunOss({
|
||||
from: ['./dist/**'],
|
||||
dist: process.env.VUE_APP_OSS_PATH + distDate,
|
||||
|
|
@ -186,7 +186,7 @@ module.exports = defineConfig({
|
|||
// 生成文件的最大体积
|
||||
maxAssetSize: 3000000000,
|
||||
// 只给出js的性能提示
|
||||
assetFilter: function (assetFileName) {
|
||||
assetFilter: function(assetFileName) {
|
||||
return assetFileName.endsWith('.js')
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue