diff --git a/README-en.md b/README-en.md index 20a0c84..50c760e 100644 --- a/README-en.md +++ b/README-en.md @@ -1,10 +1,10 @@

- Vue FastAPI Admin Logo +

-

vue-fastapi-admin

+ English | [简体中文](./README.md) diff --git a/README.md b/README.md index 1c935fd..0fc725f 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@

- Vue FastAPI Admin Logo +

-

vue-fastapi-admin

+ [English](./README-en.md) | 简体中文 diff --git a/web/src/api/index.js b/web/src/api/index.js index 120c237..e9040b9 100644 --- a/web/src/api/index.js +++ b/web/src/api/index.js @@ -10,8 +10,8 @@ export default { loginPhone: (data) => request.post('/app-user/login', data, { noNeedToken: true }), // pages getIndustryList: () => request.get('/industry/list'), - getHistoryList: (params) => request.get('/valuations', { params }), - valuations: (data = {}) => request.post('/valuations', data), + getHistoryList: (params) => request.get('/app-valuations', { params }), + valuations: (data = {}) => request.post('/app-valuations', data), // profile updatePassword: (data = {}) => request.post('/base/update_password', data), // users diff --git a/web/src/assets/images/background.png b/web/src/assets/images/background.png new file mode 100644 index 0000000..8900307 Binary files /dev/null and b/web/src/assets/images/background.png differ diff --git a/web/src/assets/images/bgc.png b/web/src/assets/images/bgc.png new file mode 100644 index 0000000..a2eb142 Binary files /dev/null and b/web/src/assets/images/bgc.png differ diff --git a/web/src/assets/images/bgg.png b/web/src/assets/images/bgg.png new file mode 100644 index 0000000..8437904 Binary files /dev/null and b/web/src/assets/images/bgg.png differ diff --git a/web/src/assets/images/bgy.png b/web/src/assets/images/bgy.png new file mode 100644 index 0000000..83a1ecc Binary files /dev/null and b/web/src/assets/images/bgy.png differ diff --git a/web/src/assets/images/cost.png b/web/src/assets/images/cost.png new file mode 100644 index 0000000..f6b2307 Binary files /dev/null and b/web/src/assets/images/cost.png differ diff --git a/web/src/assets/images/cost1.png b/web/src/assets/images/cost1.png new file mode 100644 index 0000000..d89f00e Binary files /dev/null and b/web/src/assets/images/cost1.png differ diff --git a/web/src/assets/images/cost2.png b/web/src/assets/images/cost2.png new file mode 100644 index 0000000..825c4a2 Binary files /dev/null and b/web/src/assets/images/cost2.png differ diff --git a/web/src/assets/images/fail.png b/web/src/assets/images/fail.png new file mode 100644 index 0000000..e849fad Binary files /dev/null and b/web/src/assets/images/fail.png differ diff --git a/web/src/assets/images/loading.png b/web/src/assets/images/loading.png new file mode 100644 index 0000000..52a9110 Binary files /dev/null and b/web/src/assets/images/loading.png differ diff --git a/web/src/assets/images/说明@2x.png b/web/src/assets/images/ps.png similarity index 100% rename from web/src/assets/images/说明@2x.png rename to web/src/assets/images/ps.png diff --git a/web/src/assets/images/retry.png b/web/src/assets/images/retry.png new file mode 100644 index 0000000..5439dcb Binary files /dev/null and b/web/src/assets/images/retry.png differ diff --git a/web/src/store/modules/user/index.js b/web/src/store/modules/user/index.js index 1dce1b8..f36830b 100644 --- a/web/src/store/modules/user/index.js +++ b/web/src/store/modules/user/index.js @@ -36,14 +36,15 @@ export const useUserStore = defineStore('user', { actions: { async getUserInfo() { try { - const res = await api.getUserInfo() - if (res.code === 401) { - this.logout() - return - } - const { id, username, email, avatar, roles, is_superuser, is_active } = res.data - this.userInfo = { id, username, email, avatar, roles, is_superuser, is_active } - return res.data + // const res = await api.getUserInfo() + // if (res.code === 401) { + // this.logout() + // return + // } + // const { id, username, email, avatar, roles, is_superuser, is_active } = res.data + // this.userInfo = { id, username, email, avatar, roles, is_superuser, is_active } + // return res.data + return {} } catch (error) { return error } diff --git a/web/src/utils/http/index.js b/web/src/utils/http/index.js index 6fa57ef..a30fbeb 100644 --- a/web/src/utils/http/index.js +++ b/web/src/utils/http/index.js @@ -16,4 +16,5 @@ export function createAxios(options = {}) { export const request = createAxios({ baseURL: import.meta.env.VITE_BASE_API, + Authorization: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxOCwicGhvbmUiOiIxNTg1MDIwMTEzOSIsImV4cCI6MTc2MDYzNTc0NX0.Z-2oCgVYlLo4JVuFLwNWqhj2iYyAvkZxWQp0h6AlhuI' }) diff --git a/web/src/views/pages/index.vue b/web/src/views/pages/index.vue index 439befe..dccbd92 100644 --- a/web/src/views/pages/index.vue +++ b/web/src/views/pages/index.vue @@ -4,13 +4,13 @@
- {{ item.time }} + {{ item.created_at.slice(0,10) + ' ' + item.created_at.slice(11,16) }}
-
+
@@ -33,12 +33,45 @@ > + + + + + + + + + @@ -81,6 +180,8 @@ :action="actionUrl" :default-file-list="modalForm.inheritor_certificates" list-type="image-card" + @finish="handleFinish3" + @remove="delete3" >
@@ -89,21 +190,56 @@ + + +
@@ -113,9 +249,22 @@ +
@@ -127,6 +276,17 @@ + + + + + + + + + + + - @@ -196,6 +467,65 @@
+
+
+
+ ¥9,988,670 +
+
+ 最终评估结果 +
+
+
评估可信度=95%
+
动态质押率=50%
+
+
+
+
+
+ + 经济价值评估 +
+
75
+
综合评估
+
基础价值评估:优秀
+
流量因子评估:良好
+
政策系数评估:极强
+
+
+
+ + 文化价值评估 +
+
90
+
综合评估
+
活态传承系数评估:优秀
+
纹样基因熵值评估:优秀
+
+
+
+ + 文化价值风险控制 +
+
5
+
综合评估
+
风险调整系数:
+
+
+
重新评估
+
+
+ +
评估失败
+
很抱歉,您的知识产权和非物质文化遗产的价值评估失败,请重新评估
+ +
重新评估
+
+
+ +
评估中…
+
您的知识产权和非物质文化遗产的价值正在评估中,请耐心等候
+
@@ -205,7 +535,11 @@ import StepProgressBar from './components/StepProgressBar.vue'; import api from '@/api' import { ref, reactive, onMounted } from 'vue' import { useMessage } from 'naive-ui' - +import backgroundImg from '@/assets/images/background.png'; +import backgroundImg1 from '@/assets/images/bgc.png'; +import backgroundImg2 from '@/assets/images/bgy.png'; +import backgroundImg3 from '@/assets/images/bgg.png'; +const status = ref('create') const message = useMessage() const modalFormRef = ref(null) const isSelected = ref(null) @@ -216,20 +550,9 @@ const steps = [ { title: '非遗应用与推广' }, { title: '非遗资产衍生商品信息' } ]; -const actionUrl = 'http://124.222.245.240:8080/api/v1/upload/upload/image' -const currentStep = ref(2) -const historyList = ref([ - { - id: 0, - time: '2025-09-12 16:23', - },{ - id: 1, - time: '2025-09-13 20:09', - },{ - id: 2, - time: '2025-09-14 03:02', - }, -]) +const actionUrl = 'http://124.222.245.240:8080/api/v1/upload/image' +const currentStep = ref(4) +const historyList = ref([]) const modalForm = reactive({ asset_name: '', institution: '', @@ -240,9 +563,9 @@ const modalForm = reactive({ funding_status: null, sales_volume:'', link_views:'', - circulation:'', - last_market_activity:'', - monthly_transaction: '', + circulation: null, + last_market_activity: null, + monthly_transaction: null, price_fluctuation: [], application_maturity: null, application_coverage: null, @@ -631,6 +954,39 @@ const heritageOptions = [ value: '3', } ] + +const handleFinish1 = (file) =>{ + let url = JSON.parse(file.event.target.response) + modalForm.patent_certificates.push({url: url.url, id: file.file.batchId}) +} +const handleFinish2 = (file) =>{ + let url = JSON.parse(file.event.target.response) + modalForm.pattern_images.push({url: url.url, id: file.file.batchId}) +} +const handleFinish3 = (file) =>{ + console.log(file) + let url = JSON.parse(file.event.target.response) + modalForm.inheritor_certificates.push({url: url.url, id: file.file.batchId}) +} +const delete1 = (file) => { + const index = modalForm.patent_certificates.findIndex(item => item.id === file.file.batchId); + if (index !== -1) { + modalForm.patent_certificates.splice(index, 1); + } +} +const delete2 = (file) => { + const index = modalForm.pattern_images.findIndex(item => item.id === file.file.batchId); + if (index !== -1) { + modalForm.pattern_images.splice(index, 1); + } +} +const delete3 = (file) => { + const index = modalForm.inheritor_certificates.findIndex(item => item.id === file.file.batchId); + if (index !== -1) { + modalForm.inheritor_certificates.splice(index, 1); + } + console.log(modalForm.inheritor_certificates) +} const previousStep = () => { currentStep.value -- } @@ -659,7 +1015,7 @@ const submit = () => { funding_status: fundingOptions.find(item => item.value === modalForm.funding_status).label, inheritor_level: fundingOptions2.find(item => item.value === modalForm.inheritor_level).label, // "inheritor_ages": [60, 42, 35], # 传承人年龄 - inheritor_certificates: modalForm.inheritor_certificates, + inheritor_certificates: modalForm.inheritor_certificates.map(item => item.url), heritage_asset_level: heritageOptions.find(item => item.value === modalForm.heritage_level).label, inheritor_ages: modalForm.inheritor_age_count, historical_evidence: { @@ -668,8 +1024,8 @@ const submit = () => { inheritor_testimony: modalForm.historical_evidence[3], modern_research: modalForm.historical_evidence[4] }, - patent_certificates: modalForm.patent_certificates, - pattern_images: modalForm.pattern_images, + patent_certificates: modalForm.patent_certificates.map(item => item.url), + pattern_images: modalForm.pattern_images.map(item => item.url), implementation_stage: maturityOptions.find(item => item.value === modalForm.application_maturity).label, coverage_area: coverageOptions.find(item => item.value === modalForm.application_coverage).label, collaboration_type: depthOptions.find(item => item.value === modalForm.cooperation_depth).label, @@ -706,12 +1062,17 @@ const getHistoryList = () => { size: 99 }; api.getHistoryList(params).then(res=>{ - console.log(res) + historyList.value = res.data }) } const selectTimeBox = (item) => { isSelected.value = item.id + status.value = item.status +} + +const retry = () => { + status.value = 'create' } onMounted(async () => { @@ -869,4 +1230,43 @@ onMounted(async () => { border-radius: 4px; border: 1px solid #BBBBBB; } +.retry{ + text-align: center; + margin: auto; + margin-top: 40px; + width: 180px; + height: 40px; + background: #A30113; + border-radius: 4px; + font-size: 16px; + line-height: 40px; + color: #FFFFFF; +} + +.price-container { + margin: 40px; + height: 268px; + width: 1010px; + padding-top: 79px; + /* 使用导入的图片作为背景 */ + background-image: url(~@/assets/images/background.png); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + + /* 文本样式 */ + color: #B5906B; /* 假设白色文本在背景上更清晰 */ + font-size: 52px; + font-weight: bold; + + text-align: center; +} +.score-box{ + padding: 30px; + width: 320px; + height: 284px; + border-radius: 8px; + margin-left: 25px; + color: #303133; +} \ No newline at end of file diff --git a/web/src/views/workbench/index.vue b/web/src/views/workbench/index.vue index 0665518..d2fab7d 100644 --- a/web/src/views/workbench/index.vue +++ b/web/src/views/workbench/index.vue @@ -34,7 +34,7 @@ :key="i" class="mb-10 mt-10 w-300 cursor-pointer" hover:card-shadow - title="Vue FastAPI Admin" + title="" size="small" >

{{ dummyText }}