feat: 新增计算流程文档,移除工作台统计与项目卡片,并更新登录页提示文本

This commit is contained in:
Wei_佳 2025-11-26 17:47:22 +08:00
parent 9359666805
commit f4714f6ca6
7 changed files with 1848 additions and 127 deletions

View File

@ -25,6 +25,7 @@
"file-saver": "^2.0.5",
"jszip": "^3.10.1",
"lodash-es": "^4.17.21",
"marked": "^17.0.1",
"naive-ui": "^2.34.4",
"pinia": "^2.1.6",
"pizzip": "^3.2.0",

10
web/pnpm-lock.yaml generated
View File

@ -47,6 +47,9 @@ importers:
lodash-es:
specifier: ^4.17.21
version: 4.17.21
marked:
specifier: ^17.0.1
version: 17.0.1
naive-ui:
specifier: ^2.34.4
version: 2.39.0(vue@3.4.34(typescript@5.5.4))
@ -1675,6 +1678,11 @@ packages:
resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
engines: {node: '>=0.10.0'}
marked@17.0.1:
resolution: {integrity: sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==}
engines: {node: '>= 20'}
hasBin: true
mdn-data@2.0.14:
resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
@ -4318,6 +4326,8 @@ snapshots:
dependencies:
object-visit: 1.0.1
marked@17.0.1: {}
mdn-data@2.0.14: {}
mdn-data@2.0.30: {}

View File

@ -18,7 +18,7 @@
v-model:value="loginInfo.username"
autofocus
class="h-50 items-center pl-10 text-16"
placeholder="admin"
placeholder="请输入用户名"
:maxlength="20"
/>
</div>
@ -28,7 +28,7 @@
class="h-50 items-center pl-10 text-16"
type="password"
show-password-on="mousedown"
placeholder="123456"
placeholder="请输入密码"
:maxlength="20"
@keypress.enter="handleLogin"
/>

View File

@ -10,6 +10,7 @@ import {
NImageGroup,
NDataTable,
} from 'naive-ui'
import { marked } from 'marked'
import { formatDate } from '@/utils'
import TheIcon from '@/components/icon/TheIcon.vue'
@ -28,6 +29,7 @@ import {
formatThreeYearIncome,
formatNumberValue,
} from '../utils'
import { mockReportMarkdown } from './mockData.js'
const props = defineProps({
loading: { type: Boolean, default: false },
@ -198,104 +200,13 @@ const detailSections = computed(() => {
const calcFlow = computed(() => props.detailData?.calculation_result?.flow || [])
const mockFlowHtml = ref(`
<div class="calc-flow-container">
<!-- 左侧详细计算流程 -->
<div class="calc-flow-left">
<div class="calc-formula-header">
最终估值A12000=模型估值B12*0.7+市场估值C33*0.3
</div>
<div class="calc-section">
<div class="calc-section-title">模型估值B12=经济价值B143*0.7+文化价值B255*0.3*风险调整系数B343</div>
<div class="calc-subsection">
<div class="calc-subsection-title">1经济价值B143=基础价值B1173*1+流量因子B1212*政策驱动B1345</div>
<div class="calc-item">
<div class="calc-item-label">(1) 基础价值B1173=财务价值P2000*0.45+0.05*行业系数I0.8+法律强度L0.3*0.35+0.05*行业系数I0.8+发展潜力D0.5*0.2</div>
<div class="calc-detail">
<div class="calc-detail-item"> 财务价值P2000=[3年内均收益10000*1+增长率23%*5]/5</div>
<div class="calc-detail-item"> 法律强度L12=专利分*12*0.4+商标分*12*0.3+版权分*12*0.3</div>
<div class="calc-detail-item"> 发展潜力D=专利分*0.5+ESG分*0.2+创新投入比*0.3</div>
</div>
</div>
<div class="calc-item">
<div class="calc-item-label">(2) 流量因子B1212</div>
<div class="calc-detail">
<div class="calc-detail-item"> 30 天搜索指数M1</div>
<div class="calc-detail-item"> 行业均值S2</div>
<div class="calc-detail-item"> 社交媒体传播度S3</div>
</div>
</div>
<div class="calc-item">
<div class="calc-item-label">(3) 政策驱动B13</div>
<div class="calc-detail">
<div class="calc-detail-item"> 政策契合度P</div>
</div>
</div>
</div>
<div class="calc-subsection">
<div class="calc-subsection-title">2文化价值B2</div>
<div class="calc-item">
<div class="calc-item-label">(1) 活态传承系数B21</div>
<div class="calc-detail">
<div class="calc-detail-item"> 传承人等级系数</div>
<div class="calc-detail-item"> 教学传播频次</div>
<div class="calc-detail-item"> 跨界合作深度</div>
</div>
</div>
<div class="calc-item">
<div class="calc-item-label">(2) 纹样基因值B22</div>
<div class="calc-detail">
<div class="calc-detail-item"> 纹样复杂度SC</div>
<div class="calc-detail-item"> 归一化稀缺H</div>
<div class="calc-detail-item"> 历史承载度HI</div>
</div>
</div>
</div>
</div>
</div>
<!-- 右侧计算流程大纲 -->
<div class="calc-flow-right">
<div class="calc-outline-title">最终估值A</div>
<div class="calc-outline">
<div class="outline-section">
<div class="outline-title">模型估值B</div>
<div class="outline-subsection">
<div class="outline-subtitle">1经济价值B1</div>
<div class="outline-item">(1) 基础价值B11</div>
<div class="outline-detail"> 基础价值B1173=财务价值P2000*0.45+0.05*行业系数I0.8+法律强度L0.3*0.35+0.05*行业系数I0.8+发展潜力D0.5*0.2</div>
<div class="outline-item">(2) 流量因子B12</div>
<div class="outline-detail"> 30 天搜索指数M1</div>
<div class="outline-detail"> 行业均值S2</div>
<div class="outline-detail"> 社交媒体传播度S3</div>
<div class="outline-item">(3) 政策驱动B13</div>
<div class="outline-detail"> 政策契合度P</div>
</div>
<div class="outline-subsection">
<div class="outline-subtitle">2文化价值B2</div>
<div class="outline-item">(1) 活态传承系数B21</div>
<div class="outline-detail"> 传承人等级系数</div>
<div class="outline-detail"> 教学传播频次</div>
<div class="outline-detail"> 跨界合作深度</div>
<div class="outline-item">(2) 纹样基因值B22</div>
<div class="outline-detail"> 纹样复杂度SC</div>
<div class="outline-detail"> 归一化稀缺H</div>
<div class="outline-detail"> 历史承载度HI</div>
</div>
</div>
</div>
</div>
</div>
`)
const mockFlowHtml = ref(mockReportMarkdown)
const renderedFlowHtml = computed(() => {
return marked.parse(mockFlowHtml.value)
})
//
@ -345,6 +256,7 @@ const handleCertificateConfirm = async (data) => {
report_url: reportUrl?.[0],
status: 'success'
}
console.log("🔥🔥🔥🔥🔥🔥🔥 ~ handleCertificateConfirm ~ payload:", payload);
await api.updateValuation(payload)
@ -410,7 +322,7 @@ const handleCertificateConfirm = async (data) => {
</NTabPane>
<NTabPane name="flow" tab="计算流程">
<NSpin :show="loading">
<div v-html="mockFlowHtml"></div>
<div class="markdown-body" v-html="renderedFlowHtml"></div>
</NSpin>
</NTabPane>
</NTabs>
@ -573,6 +485,80 @@ const handleCertificateConfirm = async (data) => {
gap: 4px;
}
/* Markdown Styles */
.markdown-body {
line-height: 1.6;
color: #333;
}
.markdown-body :deep(h1),
.markdown-body :deep(h2),
.markdown-body :deep(h3),
.markdown-body :deep(h4),
.markdown-body :deep(h5),
.markdown-body :deep(h6) {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 600;
line-height: 1.25;
}
.markdown-body :deep(h1) { font-size: 2em; border-bottom: 1px solid #eaecef; padding-bottom: .3em; }
.markdown-body :deep(h2) { font-size: 1.5em; border-bottom: 1px solid #eaecef; padding-bottom: .3em; }
.markdown-body :deep(h3) { font-size: 1.25em; }
.markdown-body :deep(p) { margin-top: 0; margin-bottom: 16px; }
.markdown-body :deep(blockquote) {
margin: 0 0 16px;
padding: 0 1em;
color: #6a737d;
border-left: 0.25em solid #dfe2e5;
}
.markdown-body :deep(table) {
display: block;
width: 100%;
overflow: auto;
margin-bottom: 16px;
border-spacing: 0;
border-collapse: collapse;
}
.markdown-body :deep(table tr) {
background-color: #fff;
border-top: 1px solid #c6cbd1;
}
.markdown-body :deep(table tr:nth-child(2n)) {
background-color: #f6f8fa;
}
.markdown-body :deep(table th), .markdown-body :deep(table td) {
padding: 6px 13px;
border: 1px solid #dfe2e5;
}
.markdown-body :deep(table th) {
font-weight: 600;
}
.markdown-body :deep(code) {
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
background-color: rgba(27,31,35,0.05);
border-radius: 3px;
}
.markdown-body :deep(pre) {
padding: 16px;
overflow: auto;
font-size: 85%;
line-height: 1.45;
background-color: #f6f8fa;
border-radius: 3px;
}
.markdown-body :deep(pre code) {
display: inline;
padding: 0;
margin: 0;
overflow: visible;
line-height: inherit;
word-wrap: normal;
background-color: initial;
border: 0;
}
/* 计算流程容器 */
:deep(.calc-flow-container) {
display: flex;

View File

@ -0,0 +1,875 @@
# 估值计算报告
## 基本信息
| 字段 | 值 |
|------|----|
| 估值ID | 38 |
| 资产名称 | 蜀锦 |
| 所属机构 | 成都古蜀蜀锦研究所 |
| 所属行业 | 纺织业 |
| 非遗等级 | 0 |
| 创建时间 | 2025-11-26 10:38:50 |
## 详细计算过程
#### 1.最终估值A
> 最终估值A = 模型估值B × 0.7 + 市场估值C × 0.3
**状态**: ✅ 已完成
**输入参数**:
```json
{
"model_data": {
"risky_data": {
"lowest_price": 1580.0,
"highest_price": 3980.0,
"inheritor_ages": [
0,
0,
2
],
"lawsuit_status": 0.0
},
"cultural_data": {
"douyin_views": 67000.0,
"bilibili_views": 0,
"kuaishou_views": 0,
"offline_sessions": 50.0,
"cross_border_depth": 0.0,
"normalized_entropy": 9,
"structure_complexity": 1.5,
"historical_inheritance": 18.0,
"inheritor_level_coefficient": 0.7
},
"economic_data": {
"likes": 67000.0,
"shares": 500.0,
"comments": 800.0,
"esg_score": 5.0,
"link_views": 296000.0,
"patent_count": 0.0,
"patent_score": 3.0,
"sales_volume": 5000.0,
"funding_support": 0.0,
"search_index_s1": 0.7,
"innovation_ratio": 18.93491124260355,
"popularity_score": 7.0,
"three_year_income": [
169.0,
169.0,
169.0
],
"infringement_score": 0.0,
"policy_match_score": 5,
"industry_average_s2": 2200.0,
"implementation_stage": 10.0,
"industry_coefficient": -0.5
}
},
"market_data": {
"manual_bids": [
3980.0,
1580.0,
2780.0
],
"issuance_level": "限量:总发行份数 ≤100份",
"collection_count": 67000,
"expert_valuations": [],
"daily_browse_volume": 296000.0,
"recent_market_activity": "近一周",
"weighted_average_price": {}
}
}
```
**输出结果**:
```json
{
"model_value_b": 345.2993048233941,
"final_value_ab": 241.99307337637583,
"market_value_c": 0.9452,
"model_duration_ms": 1911,
"total_duration_ms": 2440,
"market_duration_ms": 443
}
```
##### 1.1.模型估值B
计算公式:
`模型估值B = 经济价值B1 × 0.7 + 文化价值B2 × 0.3 × 风险调整系数B3`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"risky_data": {
"lowest_price": 1580.0,
"highest_price": 3980.0,
"inheritor_ages": [
0,
0,
2
],
"lawsuit_status": 0.0
},
"cultural_data": {
"douyin_views": 67000.0,
"bilibili_views": 0,
"kuaishou_views": 0,
"offline_sessions": 50.0,
"cross_border_depth": 0.0,
"normalized_entropy": 9,
"structure_complexity": 1.5,
"historical_inheritance": 18.0,
"inheritor_level_coefficient": 0.7
},
"economic_data": {
"likes": 67000.0,
"shares": 500.0,
"comments": 800.0,
"esg_score": 5.0,
"link_views": 296000.0,
"patent_count": 0.0,
"patent_score": 3.0,
"sales_volume": 5000.0,
"funding_support": 0.0,
"search_index_s1": 0.7,
"innovation_ratio": 18.93491124260355,
"popularity_score": 7.0,
"three_year_income": [
169.0,
169.0,
169.0
],
"infringement_score": 0.0,
"policy_match_score": 5,
"industry_average_s2": 2200.0,
"implementation_stage": 10.0,
"industry_coefficient": -0.5
}
}
```
**输出结果**:
```json
{
"risk_details": {
"legal_risk": 0.0,
"market_risk": 0.0,
"risk_value_b3": 0.92,
"risk_score_sum": 0.3,
"inheritance_risk": 10.0
},
"model_value_b": 345.2993048233941,
"risk_value_b3": 0.92,
"cultural_details": {
"pattern_gene_b22": 810.0,
"cultural_value_b2": 37.972824,
"living_heritage_b21": 9.28804
},
"economic_details": {
"basic_value_b11": 16.77359467455621,
"legal_strength_l": 3.3000000000000003,
"economic_value_b1": 519.9049773282518,
"financial_value_f": 33.8,
"traffic_factor_b12": 16.711681022311755,
"policy_multiplier_b13": 1.75,
"development_potential_d": 6.680473372781065
},
"cultural_value_b2": 37.972824,
"economic_value_b1": 519.9049773282518
}
```
###### 1.1.1.经济价值B1
计算公式:
`经济价值B1 = 基础价值B11 × (1 + 流量因子B12) × 政策乘数B13`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"likes": 67000.0,
"shares": 500.0,
"comments": 800.0,
"esg_score": 5.0,
"link_views": 296000.0,
"patent_count": 0.0,
"patent_score": 3.0,
"sales_volume": 5000.0,
"funding_support": 0.0,
"search_index_s1": 0.7,
"innovation_ratio": 18.93491124260355,
"popularity_score": 7.0,
"three_year_income": [
169.0,
169.0,
169.0
],
"infringement_score": 0.0,
"policy_match_score": 5,
"industry_average_s2": 2200.0,
"implementation_stage": 10.0,
"industry_coefficient": -0.5
}
```
**输出结果**:
```json
{
"basic_value_b11": 16.77359467455621,
"legal_strength_l": 3.3000000000000003,
"economic_value_b1": 519.9049773282518,
"financial_value_f": 33.8,
"traffic_factor_b12": 16.711681022311755,
"policy_multiplier_b13": 1.75,
"development_potential_d": 6.680473372781065
}
```
###### 1.1.1.1.基础价值B11
计算公式:
`基础价值B11 = 财务价值F × (0.45 + 0.05 × 行业系数I) + 法律强度L × (0.35 + 0.05 × 行业系数I) + 发展潜力D × 0.2`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"legal_strength_l": 3.3000000000000003,
"financial_value_f": 33.8,
"industry_coefficient": -0.5,
"development_potential_d": 6.680473372781065
}
```
**输出结果**:
```json
{
"basic_value_b11": 16.77359467455621,
"legal_strength_l": 3.3000000000000003,
"financial_value_f": 33.8,
"industry_coefficient": -0.5,
"development_potential_d": 6.680473372781065
}
```
###### 1.1.1.1.1.财务价值F
计算公式:
`财务价值F = [3年内年均收益 × (1 + 增长率)^5] ÷ 5`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"three_year_income": [
169.0,
169.0,
169.0
]
}
```
**输出结果**:
```json
{
"financial_value_f": 33.8
}
```
###### 1.1.1.1.2.法律强度L
计算公式:
`法律强度L = 专利分 × 0.4 + 普及分 × 0.3 + 侵权分 × 0.3`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"patent_score": 3.0,
"popularity_score": 7.0,
"infringement_score": 0.0
}
```
**输出结果**:
```json
{
"legal_strength_l": 3.3000000000000003
}
```
###### 1.1.1.1.3.发展潜力D
计算公式:
`发展潜力D = 专利分 × 0.5 + ESG分 × 0.2 + 创新投入比 × 0.3`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"esg_score": 5.0,
"patent_count": 0.0,
"innovation_ratio": 18.93491124260355
}
```
**输出结果**:
```json
{
"development_potential_d": 6.680473372781065
}
```
###### 1.1.1.1.4.行业系数I
计算公式:
`行业系数I = (目标行业平均ROE - 基准行业ROE) ÷ 基准行业ROE`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"industry_coefficient": -0.5
}
```
**输出结果**:
```json
{
"industry_coefficient": -0.5
}
```
###### 1.1.1.2.流量因子B12
计算公式:
`流量因子B12 = ln(S1 ÷ S2) × 0.3 + 社交媒体传播度S3 × 0.7`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"search_index_s1": 0.7,
"industry_average_s2": 2200.0
}
```
**输出结果**:
```json
{
"traffic_factor_b12": 16.711681022311755,
"social_media_spread_s3": 27.32506756756757
}
```
###### 1.1.1.2.1.互动量指数
计算公式:
`互动量指数 = (点赞 + 评论 + 分享) ÷ 1000`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"likes": 67000.0,
"shares": 500.0,
"comments": 800.0
}
```
**输出结果**:
```json
{
"interaction_index": 68.3
}
```
###### 1.1.1.2.2.覆盖人群指数
计算公式:
`覆盖人群指数 = 粉丝数 ÷ 10000`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"followers": 0
}
```
**输出结果**:
```json
{
"coverage_index": 0.0
}
```
###### 1.1.1.2.3.转化效率
计算公式:
`转化效率 = 商品链接点击量 ÷ 内容浏览量`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"link_views": 296000.0,
"sales_volume": 5000.0
}
```
**输出结果**:
```json
{
"conversion_efficiency": 0.016891891891891893
}
```
###### 1.1.1.2.4.社交媒体传播度S3
计算公式:
`社交媒体传播度S3 = 互动量指数 × 0.4 + 覆盖人群指数 × 0.3 + 转化效率 × 0.3`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"coverage_index": 0.0,
"interaction_index": 68.3,
"conversion_efficiency": 0.016891891891891893
}
```
**输出结果**:
```json
{
"social_media_spread_s3": 27.32506756756757
}
```
###### 1.1.1.3.政策乘数B13
计算公式:
`政策乘数B13 = 1 + 政策契合度评分P × 0.15,其中 P = 政策匹配度 × 0.4 + 实施阶段评分 × 0.3 + 资金支持度 × 0.3`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"funding_support": 0.0,
"policy_match_score": 5,
"implementation_stage": 10.0
}
```
**输出结果**:
```json
{
"policy_multiplier_b13": 1.75,
"policy_compatibility_score": 5.0
}
```
###### 1.1.2.文化价值B2
计算公式:
`文化价值B2 = 活态传承系数B21 × 0.6 + (纹样基因值B22 ÷ 10) × 0.4`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"douyin_views": 67000.0,
"bilibili_views": 0,
"kuaishou_views": 0,
"offline_sessions": 50.0,
"cross_border_depth": 0.0,
"normalized_entropy": 9,
"structure_complexity": 1.5,
"historical_inheritance": 18.0,
"inheritor_level_coefficient": 0.7
}
```
**输出结果**:
```json
{
"pattern_gene_b22": 810.0,
"cultural_value_b2": 37.972824,
"living_heritage_b21": 9.28804
}
```
###### 1.1.2.1.活态传承系数B21
计算公式:
`活态传承系数B21 = 传承人等级系数 × 0.4 + 教学传播频次 × 0.3 + 跨界合作深度 × 0.3`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"douyin_views": 67000.0,
"bilibili_views": 0,
"kuaishou_views": 0,
"offline_sessions": 50.0,
"cross_border_depth": 0.0,
"inheritor_level_coefficient": 0.7
}
```
**输出结果**:
```json
{
"teaching_frequency": 30.0268,
"living_heritage_b21": 9.28804
}
```
###### 1.1.2.1.1.教学传播频次
计算公式:
`教学传播频次 = 线下传习次数 × 0.6 + 线上课程点击量(万) × 0.4`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"douyin_views": 67000.0,
"bilibili_views": 0,
"kuaishou_views": 0,
"offline_sessions": 50.0
}
```
**输出结果**:
```json
{
"teaching_frequency": 30.0268
}
```
###### 1.1.2.2.纹样基因值B22
计算公式:
`纹样基因值B22 = (结构复杂度SC × 0.6 + 归一化信息熵H × 0.4) × 历史传承度HI × 10`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"normalized_entropy": 9,
"structure_complexity": 1.5,
"historical_inheritance": 18.0
}
```
**输出结果**:
```json
{
"pattern_gene_b22": 810.0
}
```
###### 1.1.3.风险调整系数B3
计算公式:
`风险调整系数B3 = 0.8 + 风险评分总和R × 0.4,其中 R = 市场风险 × 0.3 + 法律风险 × 0.4 + 传承风险 × 0.3`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"lowest_price": 1580.0,
"highest_price": 3980.0,
"inheritor_ages": [
0,
0,
2
],
"lawsuit_status": 0.0
}
```
**输出结果**:
```json
{
"legal_risk": 0.0,
"market_risk": 0.0,
"risk_value_b3": 0.92,
"risk_score_sum": 0.3,
"inheritance_risk": 10.0
}
```
###### 1.1.3.1.市场风险
计算公式:
`市场风险依据价格波动率:波动率 ≤5% 计10分5-15%计5分>15%计0分`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"lowest_price": 1580.0,
"highest_price": 3980.0
}
```
**输出结果**:
```json
{
"market_risk": 0.0
}
```
###### 1.1.3.2.法律风险
计算公式:
`法律风险根据诉讼状态评分(无诉讼/已解决/未解决)`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"lawsuit_status": 0.0
}
```
**输出结果**:
```json
{
"legal_risk": 0.0
}
```
###### 1.1.3.3.传承风险
计算公式:
`传承风险依据传承人年龄≤50岁10分50-70岁5分>70岁0分取最高分`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"inheritor_ages": [
0,
0,
2
]
}
```
**输出结果**:
```json
{
"inheritance_risk": 10.0
}
```
##### 1.2.市场估值C
计算公式:
`市场估值C = 市场竞价C1 × 热度系数C2 × 稀缺性乘数C3 × 时效性衰减C4`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"manual_bids": [
3980.0,
1580.0,
2780.0
],
"issuance_level": "限量:总发行份数 ≤100份",
"collection_count": 67000,
"expert_valuations": [],
"daily_browse_volume": 296000.0,
"recent_market_activity": "近一周",
"weighted_average_price": {}
}
```
**输出结果**:
```json
{
"market_value_c": 0.9452,
"market_bidding_c1": 2780.0,
"temporal_decay_c4": 1.0,
"heat_coefficient_c2": 2.0,
"scarcity_multiplier_c3": 1.7
}
```
###### 1.2.1.市场竞价C1
计算公式:
`市场竞价C1 结合历史交易价格、人工竞价与专家估值的加权结果`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"manual_bids": [
3980.0,
1580.0,
2780.0
],
"expert_valuations": [],
"weighted_average_price": {}
}
```
**输出结果**:
```json
{
"market_bidding_c1": 2780.0
}
```
###### 1.2.2.热度系数C2
计算公式:
`热度系数C2 = 1 + 浏览热度分(依据日均浏览量与收藏数量)`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"collection_count": 67000,
"daily_browse_volume": 296000.0
}
```
**输出结果**:
```json
{
"heat_coefficient_c2": 2.0
}
```
###### 1.2.3.稀缺性乘数C3
计算公式:
`稀缺性乘数C3 = 1 + 稀缺等级分`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"issuance_level": "限量:总发行份数 ≤100份"
}
```
**输出结果**:
```json
{
"scarcity_multiplier_c3": 1.7
}
```
###### 1.2.4.时效性衰减C4
计算公式:
`时效性衰减C4 依据距最近市场活动天数的衰减系数`
**状态**: ✅ 已完成
**输入参数**:
```json
{
"recent_market_activity": "近一周"
}
```
**输出结果**:
```json
{
"temporal_decay_c4": 1.0
}
```

View File

@ -0,0 +1,874 @@
export const mockReportMarkdown = `
# 估值计算报告
## 基本信息
| 字段 | |
|------|----|
| 估值ID | 38 |
| 资产名称 | 蜀锦 |
| 所属机构 | 成都古蜀蜀锦研究所 |
| 所属行业 | 纺织业 |
| 非遗等级 | 0 |
| 创建时间 | 2025-11-26 10:38:50 |
## 详细计算过程
#### 1.最终估值A
> 最终估值A = 模型估值B × 0.7 + 市场估值C × 0.3
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"model_data": {
"risky_data": {
"lowest_price": 1580.0,
"highest_price": 3980.0,
"inheritor_ages": [
0,
0,
2
],
"lawsuit_status": 0.0
},
"cultural_data": {
"douyin_views": 67000.0,
"bilibili_views": 0,
"kuaishou_views": 0,
"offline_sessions": 50.0,
"cross_border_depth": 0.0,
"normalized_entropy": 9,
"structure_complexity": 1.5,
"historical_inheritance": 18.0,
"inheritor_level_coefficient": 0.7
},
"economic_data": {
"likes": 67000.0,
"shares": 500.0,
"comments": 800.0,
"esg_score": 5.0,
"link_views": 296000.0,
"patent_count": 0.0,
"patent_score": 3.0,
"sales_volume": 5000.0,
"funding_support": 0.0,
"search_index_s1": 0.7,
"innovation_ratio": 18.93491124260355,
"popularity_score": 7.0,
"three_year_income": [
169.0,
169.0,
169.0
],
"infringement_score": 0.0,
"policy_match_score": 5,
"industry_average_s2": 2200.0,
"implementation_stage": 10.0,
"industry_coefficient": -0.5
}
},
"market_data": {
"manual_bids": [
3980.0,
1580.0,
2780.0
],
"issuance_level": "限量:总发行份数 ≤100份",
"collection_count": 67000,
"expert_valuations": [],
"daily_browse_volume": 296000.0,
"recent_market_activity": "近一周",
"weighted_average_price": {}
}
}
\`\`\`
**输出结果**:
\`\`\`json
{
"model_value_b": 345.2993048233941,
"final_value_ab": 241.99307337637583,
"market_value_c": 0.9452,
"model_duration_ms": 1911,
"total_duration_ms": 2440,
"market_duration_ms": 443
}
\`\`\`
##### 1.1.模型估值B
计算公式
\`模型估值B = 经济价值B1 × 0.7 + 文化价值B2 × 0.3 × 风险调整系数B3\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"risky_data": {
"lowest_price": 1580.0,
"highest_price": 3980.0,
"inheritor_ages": [
0,
0,
2
],
"lawsuit_status": 0.0
},
"cultural_data": {
"douyin_views": 67000.0,
"bilibili_views": 0,
"kuaishou_views": 0,
"offline_sessions": 50.0,
"cross_border_depth": 0.0,
"normalized_entropy": 9,
"structure_complexity": 1.5,
"historical_inheritance": 18.0,
"inheritor_level_coefficient": 0.7
},
"economic_data": {
"likes": 67000.0,
"shares": 500.0,
"comments": 800.0,
"esg_score": 5.0,
"link_views": 296000.0,
"patent_count": 0.0,
"patent_score": 3.0,
"sales_volume": 5000.0,
"funding_support": 0.0,
"search_index_s1": 0.7,
"innovation_ratio": 18.93491124260355,
"popularity_score": 7.0,
"three_year_income": [
169.0,
169.0,
169.0
],
"infringement_score": 0.0,
"policy_match_score": 5,
"industry_average_s2": 2200.0,
"implementation_stage": 10.0,
"industry_coefficient": -0.5
}
}
\`\`\`
**输出结果**:
\`\`\`json
{
"risk_details": {
"legal_risk": 0.0,
"market_risk": 0.0,
"risk_value_b3": 0.92,
"risk_score_sum": 0.3,
"inheritance_risk": 10.0
},
"model_value_b": 345.2993048233941,
"risk_value_b3": 0.92,
"cultural_details": {
"pattern_gene_b22": 810.0,
"cultural_value_b2": 37.972824,
"living_heritage_b21": 9.28804
},
"economic_details": {
"basic_value_b11": 16.77359467455621,
"legal_strength_l": 3.3000000000000003,
"economic_value_b1": 519.9049773282518,
"financial_value_f": 33.8,
"traffic_factor_b12": 16.711681022311755,
"policy_multiplier_b13": 1.75,
"development_potential_d": 6.680473372781065
},
"cultural_value_b2": 37.972824,
"economic_value_b1": 519.9049773282518
}
\`\`\`
###### 1.1.1.经济价值B1
计算公式
\`经济价值B1 = 基础价值B11 × (1 + 流量因子B12) × 政策乘数B13\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"likes": 67000.0,
"shares": 500.0,
"comments": 800.0,
"esg_score": 5.0,
"link_views": 296000.0,
"patent_count": 0.0,
"patent_score": 3.0,
"sales_volume": 5000.0,
"funding_support": 0.0,
"search_index_s1": 0.7,
"innovation_ratio": 18.93491124260355,
"popularity_score": 7.0,
"three_year_income": [
169.0,
169.0,
169.0
],
"infringement_score": 0.0,
"policy_match_score": 5,
"industry_average_s2": 2200.0,
"implementation_stage": 10.0,
"industry_coefficient": -0.5
}
\`\`\`
**输出结果**:
\`\`\`json
{
"basic_value_b11": 16.77359467455621,
"legal_strength_l": 3.3000000000000003,
"economic_value_b1": 519.9049773282518,
"financial_value_f": 33.8,
"traffic_factor_b12": 16.711681022311755,
"policy_multiplier_b13": 1.75,
"development_potential_d": 6.680473372781065
}
\`\`\`
###### 1.1.1.1.基础价值B11
计算公式
\`基础价值B11 = 财务价值F × (0.45 + 0.05 × 行业系数I) + 法律强度L × (0.35 + 0.05 × 行业系数I) + 发展潜力D × 0.2\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"legal_strength_l": 3.3000000000000003,
"financial_value_f": 33.8,
"industry_coefficient": -0.5,
"development_potential_d": 6.680473372781065
}
\`\`\`
**输出结果**:
\`\`\`json
{
"basic_value_b11": 16.77359467455621,
"legal_strength_l": 3.3000000000000003,
"financial_value_f": 33.8,
"industry_coefficient": -0.5,
"development_potential_d": 6.680473372781065
}
\`\`\`
###### 1.1.1.1.1.财务价值F
计算公式
\`财务价值F = [3年内年均收益 × (1 + 增长率)^5] ÷ 5\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"three_year_income": [
169.0,
169.0,
169.0
]
}
\`\`\`
**输出结果**:
\`\`\`json
{
"financial_value_f": 33.8
}
\`\`\`
###### 1.1.1.1.2.法律强度L
计算公式
\`法律强度L = 专利分 × 0.4 + 普及分 × 0.3 + 侵权分 × 0.3\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"patent_score": 3.0,
"popularity_score": 7.0,
"infringement_score": 0.0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"legal_strength_l": 3.3000000000000003
}
\`\`\`
###### 1.1.1.1.3.发展潜力D
计算公式
\`发展潜力D = 专利分 × 0.5 + ESG分 × 0.2 + 创新投入比 × 0.3\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"esg_score": 5.0,
"patent_count": 0.0,
"innovation_ratio": 18.93491124260355
}
\`\`\`
**输出结果**:
\`\`\`json
{
"development_potential_d": 6.680473372781065
}
\`\`\`
###### 1.1.1.1.4.行业系数I
计算公式
\`行业系数I = (目标行业平均ROE - 基准行业ROE) ÷ 基准行业ROE\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"industry_coefficient": -0.5
}
\`\`\`
**输出结果**:
\`\`\`json
{
"industry_coefficient": -0.5
}
\`\`\`
###### 1.1.1.2.流量因子B12
计算公式
\`流量因子B12 = ln(S1 ÷ S2) × 0.3 + 社交媒体传播度S3 × 0.7\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"search_index_s1": 0.7,
"industry_average_s2": 2200.0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"traffic_factor_b12": 16.711681022311755,
"social_media_spread_s3": 27.32506756756757
}
\`\`\`
###### 1.1.1.2.1.互动量指数
计算公式
\`互动量指数 = (点赞 + 评论 + 分享) ÷ 1000\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"likes": 67000.0,
"shares": 500.0,
"comments": 800.0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"interaction_index": 68.3
}
\`\`\`
###### 1.1.1.2.2.覆盖人群指数
计算公式
\`覆盖人群指数 = 粉丝数 ÷ 10000\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"followers": 0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"coverage_index": 0.0
}
\`\`\`
###### 1.1.1.2.3.转化效率
计算公式
\`转化效率 = 商品链接点击量 ÷ 内容浏览量\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"link_views": 296000.0,
"sales_volume": 5000.0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"conversion_efficiency": 0.016891891891891893
}
\`\`\`
###### 1.1.1.2.4.社交媒体传播度S3
计算公式
\`社交媒体传播度S3 = 互动量指数 × 0.4 + 覆盖人群指数 × 0.3 + 转化效率 × 0.3\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"coverage_index": 0.0,
"interaction_index": 68.3,
"conversion_efficiency": 0.016891891891891893
}
\`\`\`
**输出结果**:
\`\`\`json
{
"social_media_spread_s3": 27.32506756756757
}
\`\`\`
###### 1.1.1.3.政策乘数B13
计算公式
\`政策乘数B13 = 1 + 政策契合度评分P × 0.15,其中 P = 政策匹配度 × 0.4 + 实施阶段评分 × 0.3 + 资金支持度 × 0.3\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"funding_support": 0.0,
"policy_match_score": 5,
"implementation_stage": 10.0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"policy_multiplier_b13": 1.75,
"policy_compatibility_score": 5.0
}
\`\`\`
###### 1.1.2.文化价值B2
计算公式
\`文化价值B2 = 活态传承系数B21 × 0.6 + (纹样基因值B22 ÷ 10) × 0.4\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"douyin_views": 67000.0,
"bilibili_views": 0,
"kuaishou_views": 0,
"offline_sessions": 50.0,
"cross_border_depth": 0.0,
"normalized_entropy": 9,
"structure_complexity": 1.5,
"historical_inheritance": 18.0,
"inheritor_level_coefficient": 0.7
}
\`\`\`
**输出结果**:
\`\`\`json
{
"pattern_gene_b22": 810.0,
"cultural_value_b2": 37.972824,
"living_heritage_b21": 9.28804
}
\`\`\`
###### 1.1.2.1.活态传承系数B21
计算公式
\`活态传承系数B21 = 传承人等级系数 × 0.4 + 教学传播频次 × 0.3 + 跨界合作深度 × 0.3\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"douyin_views": 67000.0,
"bilibili_views": 0,
"kuaishou_views": 0,
"offline_sessions": 50.0,
"cross_border_depth": 0.0,
"inheritor_level_coefficient": 0.7
}
\`\`\`
**输出结果**:
\`\`\`json
{
"teaching_frequency": 30.0268,
"living_heritage_b21": 9.28804
}
\`\`\`
###### 1.1.2.1.1.教学传播频次
计算公式
\`教学传播频次 = 线下传习次数 × 0.6 + 线上课程点击量(万) × 0.4\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"douyin_views": 67000.0,
"bilibili_views": 0,
"kuaishou_views": 0,
"offline_sessions": 50.0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"teaching_frequency": 30.0268
}
\`\`\`
###### 1.1.2.2.纹样基因值B22
计算公式
\`纹样基因值B22 = (结构复杂度SC × 0.6 + 归一化信息熵H × 0.4) × 历史传承度HI × 10\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"normalized_entropy": 9,
"structure_complexity": 1.5,
"historical_inheritance": 18.0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"pattern_gene_b22": 810.0
}
\`\`\`
###### 1.1.3.风险调整系数B3
计算公式
\`风险调整系数B3 = 0.8 + 风险评分总和R × 0.4,其中 R = 市场风险 × 0.3 + 法律风险 × 0.4 + 传承风险 × 0.3\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"lowest_price": 1580.0,
"highest_price": 3980.0,
"inheritor_ages": [
0,
0,
2
],
"lawsuit_status": 0.0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"legal_risk": 0.0,
"market_risk": 0.0,
"risk_value_b3": 0.92,
"risk_score_sum": 0.3,
"inheritance_risk": 10.0
}
\`\`\`
###### 1.1.3.1.市场风险
计算公式
\`市场风险依据价格波动率:波动率 ≤5% 计10分5-15%计5分>15%计0分\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"lowest_price": 1580.0,
"highest_price": 3980.0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"market_risk": 0.0
}
\`\`\`
###### 1.1.3.2.法律风险
计算公式
\`法律风险根据诉讼状态评分(无诉讼/已解决/未解决)\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"lawsuit_status": 0.0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"legal_risk": 0.0
}
\`\`\`
###### 1.1.3.3.传承风险
计算公式
\`传承风险依据传承人年龄≤50岁10分50-70岁5分>70岁0分取最高分\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"inheritor_ages": [
0,
0,
2
]
}
\`\`\`
**输出结果**:
\`\`\`json
{
"inheritance_risk": 10.0
}
\`\`\`
##### 1.2.市场估值C
计算公式
\`市场估值C = 市场竞价C1 × 热度系数C2 × 稀缺性乘数C3 × 时效性衰减C4\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"manual_bids": [
3980.0,
1580.0,
2780.0
],
"issuance_level": "限量:总发行份数 ≤100份",
"collection_count": 67000,
"expert_valuations": [],
"daily_browse_volume": 296000.0,
"recent_market_activity": "近一周",
"weighted_average_price": {}
}
\`\`\`
**输出结果**:
\`\`\`json
{
"market_value_c": 0.9452,
"market_bidding_c1": 2780.0,
"temporal_decay_c4": 1.0,
"heat_coefficient_c2": 2.0,
"scarcity_multiplier_c3": 1.7
}
\`\`\`
###### 1.2.1.市场竞价C1
计算公式
\`市场竞价C1 结合历史交易价格、人工竞价与专家估值的加权结果\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"manual_bids": [
3980.0,
1580.0,
2780.0
],
"expert_valuations": [],
"weighted_average_price": {}
}
\`\`\`
**输出结果**:
\`\`\`json
{
"market_bidding_c1": 2780.0
}
\`\`\`
###### 1.2.2.热度系数C2
计算公式
\`热度系数C2 = 1 + 浏览热度分(依据日均浏览量与收藏数量)\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"collection_count": 67000,
"daily_browse_volume": 296000.0
}
\`\`\`
**输出结果**:
\`\`\`json
{
"heat_coefficient_c2": 2.0
}
\`\`\`
###### 1.2.3.稀缺性乘数C3
计算公式
\`稀缺性乘数C3 = 1 + 稀缺等级分\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"issuance_level": "限量:总发行份数 ≤100份"
}
\`\`\`
**输出结果**:
\`\`\`json
{
"scarcity_multiplier_c3": 1.7
}
\`\`\`
###### 1.2.4.时效性衰减C4
计算公式
\`时效性衰减C4 依据距最近市场活动天数的衰减系数\`
**状态**: 已完成
**输入参数**:
\`\`\`json
{
"recent_market_activity": "近一周"
}
\`\`\`
**输出结果**:
\`\`\`json
{
"temporal_decay_c4": 1.0
}
\`\`\`
`

View File

@ -12,35 +12,10 @@
<p mt-5 text-14 op-60>{{ $t('views.workbench.text_welcome') }}</p>
</div>
</div>
<n-space :size="12" :wrap="false">
<n-statistic v-for="item in statisticData" :key="item.id" v-bind="item"></n-statistic>
</n-space>
</div>
</n-card>
<n-card
:title="$t('views.workbench.label_project')"
size="small"
:segmented="true"
mt-15
rounded-10
>
<template #header-extra>
<n-button text type="primary">{{ $t('views.workbench.label_more') }}</n-button>
</template>
<div flex flex-wrap justify-between>
<n-card
v-for="i in 9"
:key="i"
class="mb-10 mt-10 w-300 cursor-pointer"
hover:card-shadow
title="Vue FastAPI Admin"
size="small"
>
<p op-60>{{ dummyText }}</p>
</n-card>
</div>
</n-card>
</div>
</AppPage>
</template>