1
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
7a91ccac80
commit
17f738aa5d
|
|
@ -26,8 +26,9 @@ Vue.use(VueClipboard)
|
||||||
import permission from './utils/permission'
|
import permission from './utils/permission'
|
||||||
Vue.use(permission)
|
Vue.use(permission)
|
||||||
|
|
||||||
import { formatSize } from "./utils"
|
import { formatSize, guidToColor } from "./utils"
|
||||||
Vue.prototype.$FormatSize = formatSize
|
Vue.prototype.$FormatSize = formatSize
|
||||||
|
Vue.prototype.$GuidToColor = guidToColor
|
||||||
|
|
||||||
import Viewer from 'v-viewer'
|
import Viewer from 'v-viewer'
|
||||||
import './assets/css/viewer.css'
|
import './assets/css/viewer.css'
|
||||||
|
|
|
||||||
|
|
@ -222,4 +222,41 @@ export async function readEntry(entry) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return files;
|
return files;
|
||||||
|
}
|
||||||
|
// RGB转十六进制
|
||||||
|
function rgbToHex(r, g, b) {
|
||||||
|
return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1).toUpperCase();
|
||||||
|
}
|
||||||
|
export function guidToColor(guid) {
|
||||||
|
// 移除GUID中的连字符和花括号(如果有)
|
||||||
|
const cleanGuid = guid.replace(/[{}()-]/g, '');
|
||||||
|
|
||||||
|
// 使用GUID的前6个字符作为颜色基础(确保一致性)
|
||||||
|
const colorBase = cleanGuid.substring(0, 6);
|
||||||
|
|
||||||
|
// 将每个字符转换为数字并映射到0-255范围
|
||||||
|
let r = 0, g = 0, b = 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < 6; i++) {
|
||||||
|
const charCode = colorBase.charCodeAt(i);
|
||||||
|
if (i < 2) {
|
||||||
|
r = (r * 16 + (charCode % 16)) % 256;
|
||||||
|
} else if (i < 4) {
|
||||||
|
g = (g * 16 + (charCode % 16)) % 256;
|
||||||
|
} else {
|
||||||
|
b = (b * 16 + (charCode % 16)) % 256;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确保颜色有足够的饱和度(避免生成过于灰暗的颜色)
|
||||||
|
if (r + g + b < 100) {
|
||||||
|
r = Math.min(255, r + 100);
|
||||||
|
g = Math.min(255, g + 50);
|
||||||
|
} else if (r + g + b > 600) {
|
||||||
|
r = Math.max(0, r - 100);
|
||||||
|
b = Math.max(0, b - 50);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 返回RGB对象
|
||||||
|
return rgbToHex(r, g, b);
|
||||||
}
|
}
|
||||||
|
|
@ -86,11 +86,13 @@
|
||||||
:content="`${$t('trials:reading:message:fused')}${item.TableQuestions.Answers[i].SplitOrMergeLesionName}`"
|
:content="`${$t('trials:reading:message:fused')}${item.TableQuestions.Answers[i].SplitOrMergeLesionName}`"
|
||||||
placement="bottom">
|
placement="bottom">
|
||||||
<div
|
<div
|
||||||
v-if="item.TableQuestions.Answers[i].SplitOrMergeType === '1' || item.TableQuestions.Answers[i].SplitOrMergeType === '3'">
|
v-if="item.TableQuestions.Answers[i].SplitOrMergeType === '1' || item.TableQuestions.Answers[i].SplitOrMergeType === '3'"
|
||||||
|
@click="acvd(item.TableQuestions.Answers[i])">
|
||||||
<span class="login-cycle" />
|
<span class="login-cycle" />
|
||||||
</div>
|
</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<div v-if="item.TableQuestions.Answers[i].SplitOrMergeType === '4'">
|
<div v-if="item.TableQuestions.Answers[i].SplitOrMergeType === '4'"
|
||||||
|
@click="acvd(item.TableQuestions.Answers[i])">
|
||||||
<span class="login-cycle" />
|
<span class="login-cycle" />
|
||||||
</div>
|
</div>
|
||||||
<el-tooltip v-if="!!item.TableQuestions.Answers[i].lesionPart" class="item" effect="dark"
|
<el-tooltip v-if="!!item.TableQuestions.Answers[i].lesionPart" class="item" effect="dark"
|
||||||
|
|
@ -335,6 +337,7 @@ export default {
|
||||||
DicomEvent.$off('refreshQuestions')
|
DicomEvent.$off('refreshQuestions')
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
acvd(item) { console.log(item) },
|
||||||
handleReadingChart(e) {
|
handleReadingChart(e) {
|
||||||
this.$emit('handleReadingChart', e)
|
this.$emit('handleReadingChart', e)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue