|
@@ -1,80 +1,139 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <!-- 舌象分析详情 -->
|
|
|
|
|
- <div class="tongue-analysis">
|
|
|
|
|
- <template v-if="dataset && (dataset.tongueAnalysis.结果 || dataset.faceAnalysis.结果)">
|
|
|
|
|
- <template v-if="dataset.tongueAnalysis && dataset.tongueAnalysis.结果">
|
|
|
|
|
- <el-card class="tongue-exception-wrapper" v-if="showException">
|
|
|
|
|
- <div slot="header" class="card-header-container">
|
|
|
|
|
- <span>异常舌象分析</span>
|
|
|
|
|
- <el-button size="small" type="primary" plain style="float: right;" @click="showException=false">
|
|
|
|
|
- 舌象分析
|
|
|
|
|
- </el-button>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="card-body-container">
|
|
|
|
|
- <el-card v-for="item in dataset.tongueException" :key="item.title" class="inner" size="small">
|
|
|
|
|
- <div class="card__title">{{ item.title }}</div>
|
|
|
|
|
- <div class="card__content">
|
|
|
|
|
- <div style="display: flex;">
|
|
|
|
|
- <el-image :src="item.cover" lazy fit="scale-down" :preview-src-list="[item.cover]"></el-image>
|
|
|
|
|
- <div>
|
|
|
|
|
- <el-tag v-for="value in item.tags" :key="value" type="danger">{{ value }}</el-tag>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <p class="my-2 text-grey" v-for="value in item.descriptions" :key="value">{{ value }}</p>
|
|
|
|
|
- </div>
|
|
|
|
|
- </el-card>
|
|
|
|
|
- </div>
|
|
|
|
|
- </el-card>
|
|
|
|
|
- <el-card v-else>
|
|
|
|
|
- <div slot="header" class="card-header-container">
|
|
|
|
|
- <span>舌象分析</span>
|
|
|
|
|
- <el-button
|
|
|
|
|
- v-if="dataset.tongueException && dataset.tongueException.length"
|
|
|
|
|
- size="small" type="danger" plain style="float: right;" @click="showException=true">
|
|
|
|
|
- 异常舌象分析
|
|
|
|
|
- </el-button>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="card-body-container">
|
|
|
|
|
- <el-table v-if="dataset.tongueTable" class="result-wrapper" :data="dataset.tongueTable.data" border
|
|
|
|
|
- size="small">
|
|
|
|
|
- <el-table-column
|
|
|
|
|
- v-for="(col, index) in dataset.tongueTable.column" :key="col"
|
|
|
|
|
- :prop="index + ''" :label="col" align="center"
|
|
|
|
|
- >
|
|
|
|
|
- <template v-slot="{row, column}">
|
|
|
|
|
- <div v-html="row[index]"></div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- </el-table>
|
|
|
|
|
- <div v-else class="result-wrapper">{{ dataset.tongueAnalysis.结果 }}</div>
|
|
|
|
|
- <div class="picture-wrapper">
|
|
|
|
|
- <el-image :src="dataset.tongueAnalysis.舌上" lazy fit="scale-down"
|
|
|
|
|
- :preview-src-list="preview"></el-image>
|
|
|
|
|
- <el-image :src="dataset.tongueAnalysis.舌下" lazy fit="scale-down"
|
|
|
|
|
- :preview-src-list="preview"></el-image>
|
|
|
|
|
|
|
+ <!-- 舌象分析记录 -->
|
|
|
|
|
+ <div class="tongue-analysis-wrapper" :style="cssVars">
|
|
|
|
|
+ <el-tabs ref="tab" type="card">
|
|
|
|
|
+ <el-tab-pane v-for="(pane, index) in list" :key="pane.id" :label="pane.time">
|
|
|
|
|
+ <div class="area" v-if="pane.tongue.result">
|
|
|
|
|
+ <div class="analysis-image">
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <img src="../../../assets/tongue.svg" alt="">
|
|
|
|
|
+ <el-popover title="分析结果" :content="pane.tongue.result" width="200">
|
|
|
|
|
+ <span slot="reference" style="cursor: pointer;">舌象分析结果</span>
|
|
|
|
|
+ </el-popover>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <el-image v-for="item in pane.tongue.cover" :src="item" :preview-src-list="pane.cover"></el-image>
|
|
|
</div>
|
|
</div>
|
|
|
- </el-card>
|
|
|
|
|
- </template>
|
|
|
|
|
- <el-card v-if="dataset.faceAnalysis && dataset.faceAnalysis.结果">
|
|
|
|
|
- <div slot="header" class="card-header-container">
|
|
|
|
|
- <span>面象分析</span>
|
|
|
|
|
|
|
+ <table>
|
|
|
|
|
+ <thead>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <th v-for="(value, i) in pane.tongue.table.columns" :key="i" v-html="value"></th>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </thead>
|
|
|
|
|
+ <tbody>
|
|
|
|
|
+ <tr v-for="(item, i) in pane.tongue.table.data" :key="i"
|
|
|
|
|
+ :data-exception="item.exception"
|
|
|
|
|
+ :data-invalid="item.invalid"
|
|
|
|
|
+ >
|
|
|
|
|
+ <td v-for="(col, i) in item" :key="i">
|
|
|
|
|
+ <div style="margin: 2px 0;" v-for="item in col" :key="item.value">
|
|
|
|
|
+ <el-popover v-if="item.exception" :title="item.exception.title"
|
|
|
|
|
+ trigger="hover"
|
|
|
|
|
+ popper-class="analysis-exception-popover">
|
|
|
|
|
+ <div class="card__content">
|
|
|
|
|
+ <div style="margin-bottom: 10px;">
|
|
|
|
|
+ <img v-if="item.exception.cover" class="flex-none w-2/4 object-scale-down"
|
|
|
|
|
+ :src="item.exception.cover" alt="分析异常图像"/>
|
|
|
|
|
+ <el-tag style="margin-top: 2px;margin-right: 2px;" type="danger"
|
|
|
|
|
+ v-for="value in item.exception.tags" :key="value">{{ value }}
|
|
|
|
|
+ </el-tag>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div style="margin-top: 4px;" v-for="description in item.exception.descriptions"
|
|
|
|
|
+ :key="description.value">
|
|
|
|
|
+ <label>{{ description.label }}</label>
|
|
|
|
|
+ <span v-html="description.value"></span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <span slot="reference" style="cursor: pointer; color: #f87171;">{{ item.value }}</span>
|
|
|
|
|
+ </el-popover>
|
|
|
|
|
+ <template v-else>{{ item.value }}</template>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </tbody>
|
|
|
|
|
+ </table>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="card-body-container">
|
|
|
|
|
- <div class="result-wrapper">{{ dataset.faceAnalysis.结果 }}</div>
|
|
|
|
|
- <div class="picture-wrapper">
|
|
|
|
|
- <el-image :src="dataset.faceAnalysis.面象" lazy fit="scale-down" :preview-src-list="preview"></el-image>
|
|
|
|
|
|
|
+ <div class="area" v-if="pane.face.result">
|
|
|
|
|
+ <div class="analysis-image">
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <img src="../../../assets/face.svg" alt="">
|
|
|
|
|
+ <el-popover title="分析结果" :content="pane.face.result" width="200">
|
|
|
|
|
+ <span slot="reference" style="cursor: pointer;">面象分析结果</span>
|
|
|
|
|
+ </el-popover>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <el-image v-for="item in pane.face.cover" :src="item" :preview-src-list="pane.cover"></el-image>
|
|
|
|
|
+ <div></div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <table>
|
|
|
|
|
+ <thead>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <th v-for="(value, i) in pane.face.table.columns" :key="i" v-html="value"></th>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </thead>
|
|
|
|
|
+ <tbody>
|
|
|
|
|
+ <tr v-for="(item, i) in pane.face.table.data" :key="i"
|
|
|
|
|
+ :data-exception="item.exception"
|
|
|
|
|
+ :data-invalid="item.invalid"
|
|
|
|
|
+ >
|
|
|
|
|
+ <td v-for="(col, i) in item" :key="i">
|
|
|
|
|
+ <div style="margin: 2px 0;" v-for="item in col" :key="item.value">
|
|
|
|
|
+ <el-popover v-if="item.exception" :title="item.exception.title"
|
|
|
|
|
+ trigger="hover"
|
|
|
|
|
+ popper-class="analysis-exception-popover">
|
|
|
|
|
+ <div class="card__content">
|
|
|
|
|
+ <div style="margin-bottom: 10px;">
|
|
|
|
|
+ <img v-if="item.exception.cover" class="flex-none w-2/4 object-scale-down"
|
|
|
|
|
+ :src="item.exception.cover" alt="分析异常图像"/>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <el-tag type="danger" v-for="value in item.exception.tags" :key="value">{{ value }}</el-tag>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div style="margin-top: 4px;" v-for="description in item.exception.descriptions"
|
|
|
|
|
+ :key="description.value">
|
|
|
|
|
+ <label>{{ description.label }}</label>
|
|
|
|
|
+ <span v-html="description.value"></span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <span slot="reference" style="cursor: pointer; color: #f87171;">{{ item.value }}</span>
|
|
|
|
|
+ </el-popover>
|
|
|
|
|
+ <template v-else>{{ item.value }}</template>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </tbody>
|
|
|
|
|
+ </table>
|
|
|
</div>
|
|
</div>
|
|
|
- </el-card>
|
|
|
|
|
- </template>
|
|
|
|
|
- <el-empty v-else-if="!loading" description="暂无数据"></el-empty>
|
|
|
|
|
|
|
+ <el-button style="width: 100%;" type="primary"
|
|
|
|
|
+ :loading="pane.id === caseId" :disabled="!!caseId && caseId !== pane.id"
|
|
|
|
|
+ @click="handle(pane.id)">查看病历详情信息
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ </el-tab-pane>
|
|
|
|
|
+ </el-tabs>
|
|
|
|
|
+ <Popup
|
|
|
|
|
+ :showDialog="showCase"
|
|
|
|
|
+ @cancle="closeCase"
|
|
|
|
|
+ :showBtns="false"
|
|
|
|
|
+ width="70%"
|
|
|
|
|
+ distanceTop="5vh"
|
|
|
|
|
+ :destroyOnClose="true"
|
|
|
|
|
+ title=""
|
|
|
|
|
+ :modal="false"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div style="height: 100%" slot="body">
|
|
|
|
|
+ <outpatientRecord :info="caseItem"></outpatientRecord>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </Popup>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<script>
|
|
<script>
|
|
|
-import {getTongueAndFaceAnalysis} from "@/api/diagnosis.js";
|
|
|
|
|
|
|
+
|
|
|
|
|
+import {getRecordDetail} from "@/api/diagnosis";
|
|
|
|
|
+import outpatientRecord from "@/components/ui/outpatientRecords.vue";
|
|
|
|
|
+import Popup from "@/components/Propup.vue";
|
|
|
|
|
+
|
|
|
|
|
+let _keydown_
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
|
|
+ components: {Popup, outpatientRecord},
|
|
|
props: {
|
|
props: {
|
|
|
dataset: {
|
|
dataset: {
|
|
|
type: Object,
|
|
type: Object,
|
|
@@ -83,97 +142,189 @@ export default {
|
|
|
},
|
|
},
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
- showException: false
|
|
|
|
|
|
|
+ page: 1,
|
|
|
|
|
+ limit: 3,
|
|
|
|
|
+ list: [],
|
|
|
|
|
+
|
|
|
|
|
+ cardProps: {width: 0},
|
|
|
|
|
+
|
|
|
|
|
+ caseId: '',
|
|
|
|
|
+ caseItem: null,
|
|
|
|
|
+ showCase: false,
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
computed: {
|
|
computed: {
|
|
|
- preview: function () {
|
|
|
|
|
- return [
|
|
|
|
|
- this.dataset.tongueAnalysis.舌上,
|
|
|
|
|
- this.dataset.tongueAnalysis.舌下,
|
|
|
|
|
- this.dataset.faceAnalysis.面象,
|
|
|
|
|
- ].filter(Boolean);
|
|
|
|
|
|
|
+ cssVars() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ '--w': `${this.cardProps.width}px`,
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ async load(length) {
|
|
|
|
|
+ const {data} = await this.dataset.get(this.page, length);
|
|
|
|
|
+ this.list = data;
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ async handle(id) {
|
|
|
|
|
+ this.caseId = id;
|
|
|
|
|
+ const res = await getRecordDetail({id}).catch(() => {});
|
|
|
|
|
+ if (res.ResultCode == 0) {
|
|
|
|
|
+ this.caseItem = res.Data;
|
|
|
|
|
+ this.showCase = true;
|
|
|
|
|
+ const fn = (event) => {
|
|
|
|
|
+ event.stopPropagation();
|
|
|
|
|
+ event.preventDefault();
|
|
|
|
|
+ this.closeCase();
|
|
|
|
|
+ };
|
|
|
|
|
+ document.addEventListener('keydown', fn, {once: true});
|
|
|
|
|
+ _keydown_ = () => document.removeEventListener('keydown', fn);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.$message.error(res.ResultInfo);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ // 关闭就诊 详情
|
|
|
|
|
+ closeCase() {
|
|
|
|
|
+ this.showCase = false;
|
|
|
|
|
+ this.caseId = '';
|
|
|
|
|
+ this.caseItem = null;
|
|
|
|
|
+ if (typeof _keydown_ === 'function') _keydown_();
|
|
|
|
|
+ },
|
|
|
|
|
+ _followScroll() {
|
|
|
|
|
+ const nav = this.$refs.tab.$el.querySelector(`.el-tabs__nav`);
|
|
|
|
|
+ const content = this.$refs.tab.$el.querySelector(`.el-tabs__content`);
|
|
|
|
|
+
|
|
|
|
|
+ this.cardProps.observer = new MutationObserver(mutations => {
|
|
|
|
|
+ try { content.style.transform = mutations[0].target.style.transform; } catch (e) { }
|
|
|
|
|
+ })
|
|
|
|
|
+ this.cardProps.observer.observe(nav, {attributes: true});
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ beforeMount() {
|
|
|
|
|
+ if (this.dataset) {
|
|
|
|
|
+ this.list = this.dataset.data;
|
|
|
|
|
+ this.load(this.dataset.total || this.limit);
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ mounted() {
|
|
|
|
|
+ const rect = this.$el.parentElement.getBoundingClientRect();
|
|
|
|
|
+ const width = Math.max(Math.floor(rect.width / 3), 250);
|
|
|
|
|
+ this.$set(this.cardProps, 'width', width);
|
|
|
|
|
+
|
|
|
|
|
+ this._followScroll();
|
|
|
|
|
+ },
|
|
|
|
|
+ unmount() {
|
|
|
|
|
+ if (this.cardProps.observer) this.cardProps.observer.disconnect();
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
-.tongue-analysis {
|
|
|
|
|
- .el-card:not(.inner) {
|
|
|
|
|
- margin: 24px 0;
|
|
|
|
|
|
|
+.tongue-analysis-wrapper {
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
|
|
|
- &:first-of-type { margin-top: 0 }
|
|
|
|
|
|
|
+ .area {
|
|
|
|
|
+ margin-bottom: 12px;
|
|
|
|
|
|
|
|
- &:last-of-type { margin-bottom: 0 }
|
|
|
|
|
|
|
+ .analysis-image {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
|
|
|
- &.tongue-exception-wrapper {
|
|
|
|
|
- .card-body-container {
|
|
|
|
|
- display: grid;
|
|
|
|
|
- grid-template-rows: repeat(1, minmax(0, 1fr));
|
|
|
|
|
- grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
|
|
|
- gap: 12px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ > div {
|
|
|
|
|
+ flex: 0 0 30%;
|
|
|
|
|
+ max-height: 128px;
|
|
|
|
|
|
|
|
- .card__title {
|
|
|
|
|
- padding: 6px 12px;
|
|
|
|
|
- color: #F56C6C;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ &:nth-of-type(1) {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: space-evenly;
|
|
|
|
|
|
|
|
- .card__content {
|
|
|
|
|
- padding: 6px 12px 12px;
|
|
|
|
|
|
|
+ img {
|
|
|
|
|
+ width: 50%;
|
|
|
|
|
+ height: 50%;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .el-image {
|
|
|
|
|
- width: 100px;
|
|
|
|
|
- height: 100px;
|
|
|
|
|
- margin-right: 12px;
|
|
|
|
|
- margin-bottom: 12px;
|
|
|
|
|
|
|
+ img {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ object-fit: scale-down;
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .inner ::v-deep .el-card__body {
|
|
|
|
|
- padding: 0;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ table {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ border-collapse: collapse;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
|
|
|
- p {
|
|
|
|
|
- line-height: 1.75;
|
|
|
|
|
|
|
+ th {
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ padding: 10px;
|
|
|
|
|
+ border: 1px solid #E4E7ED;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- &:not(:last-of-type) { margin-bottom: 8px; }
|
|
|
|
|
|
|
+ td {
|
|
|
|
|
+ padding: 8px;
|
|
|
|
|
+ border: 1px solid #E4E7ED;
|
|
|
|
|
+ min-height: 40px;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .card-header-container {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- justify-content: space-between;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- height: 100%;
|
|
|
|
|
|
|
+ ::v-deep {
|
|
|
|
|
+ .el-tabs--card {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+
|
|
|
|
|
+ .el-tabs__header { flex: none; }
|
|
|
|
|
+
|
|
|
|
|
+ .el-tabs__content { flex: auto; }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .card-body-container {
|
|
|
|
|
- display: flex;
|
|
|
|
|
|
|
+ ::v-deep {
|
|
|
|
|
+ .el-tabs__item,
|
|
|
|
|
+ .el-tab-pane {
|
|
|
|
|
+ width: var(--w);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .result-wrapper {
|
|
|
|
|
- flex: auto;
|
|
|
|
|
|
|
+ .el-tabs__header {
|
|
|
|
|
+ .el-tabs__item {
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .picture-wrapper {
|
|
|
|
|
- flex: none;
|
|
|
|
|
|
|
+ .el-tabs__content {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
- flex-direction: column;
|
|
|
|
|
- justify-content: space-evenly;
|
|
|
|
|
- margin-left: 12px;
|
|
|
|
|
- max-width: 100px;
|
|
|
|
|
|
|
+ width: max-content;
|
|
|
|
|
+ padding: 0 20px;
|
|
|
|
|
|
|
|
- .el-image {
|
|
|
|
|
- width: 100px;
|
|
|
|
|
- height: 100px;
|
|
|
|
|
|
|
+ .el-tab-pane {
|
|
|
|
|
+ flex: none;
|
|
|
|
|
+ display: block !important;
|
|
|
|
|
+ padding: 0 12px;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- ::v-deep .el-card__header {
|
|
|
|
|
- padding: 0 20px;
|
|
|
|
|
- height: 56px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+tr[data-invalid="true"] td:nth-of-type(2) {
|
|
|
|
|
+ color: #9ca3af;
|
|
|
}
|
|
}
|
|
|
</style>
|
|
</style>
|
|
|
|
|
+<style lang="scss">
|
|
|
|
|
+.analysis-exception-popover {
|
|
|
|
|
+ width: 245px;
|
|
|
|
|
+
|
|
|
|
|
+ img {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ object-fit: scale-down;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|