From e303b98fd12ef919a71a9d568c1748d23596676d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E7=93=9C=E4=B8=80=E5=9D=97=E5=85=AB?= <2523890936@qq.com> Date: Mon, 28 Jul 2025 14:39:07 +0800 Subject: [PATCH 01/21] bugfix --- f/web-kboss/src/permission.js | 21 +- f/web-kboss/src/router/index.js | 77 +- f/web-kboss/src/store/modules/user.js | 2 +- f/web-kboss/src/views/Test/testData.js | 7 + .../homePage/components/topBox/index.vue | 1 + .../src/views/homePage/ncmatch/index.vue | 281 ++++++++ .../views/homePage/ncmatch/mainPage/index.vue | 682 ++++++++++++++++++ f/web-kboss/src/views/setting/tools.js | 28 + f/web-kboss/src/views/setting/web_config.js | 8 + 9 files changed, 1071 insertions(+), 36 deletions(-) create mode 100644 f/web-kboss/src/views/Test/testData.js create mode 100644 f/web-kboss/src/views/homePage/ncmatch/index.vue create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue create mode 100644 f/web-kboss/src/views/setting/tools.js create mode 100644 f/web-kboss/src/views/setting/web_config.js diff --git a/f/web-kboss/src/permission.js b/f/web-kboss/src/permission.js index c3da247..fe87c84 100644 --- a/f/web-kboss/src/permission.js +++ b/f/web-kboss/src/permission.js @@ -7,6 +7,7 @@ import {getToken} from "@/utils/auth"; // get token from cookie import getPageTitle from "@/utils/get-page-title"; import {asyncRoutes, constantRoutes} from "@/router"; import Layout from "@/layout"; +import {getHomePath} from "@/views/setting/tools"; NProgress.configure({showSpinner: false}); // NProgress Configuration @@ -74,6 +75,15 @@ router.beforeEach(async (to, from, next) => { const userid = sessionStorage.getItem("userId"); const user = sessionStorage.getItem("user"); const auths = sessionStorage.getItem("auths"); + const homePath =getHomePath() + if (to.path === homePath) { + next(); // 如果已经是目标路径,直接放行 + NProgress.done(); + return; + } + console.log("homePath",homePath); + // const homePath ='/homePage/index'; + // const homePath ='/ncmatchHome/index'; const hasRoutes = JSON.parse(sessionStorage.getItem("routes")) && JSON.parse(sessionStorage.getItem("routes")).length @@ -86,8 +96,8 @@ router.beforeEach(async (to, from, next) => { NProgress.done(); return } - if (to.path === '/homePage') { - next('/homePage/index'); + if (to.path === '/homePage'||to.path === '/ncmatchHome') { + next(homePath); NProgress.done(); return } @@ -96,7 +106,7 @@ router.beforeEach(async (to, from, next) => { // NProgress.done(); // return // } - if (to.path.includes("/kyyForm") || to.path.includes("/screen") || to.path.includes("/beforeLogin") || to.path.includes("/wxDetailPage") || to.path.includes("/wxPage") || to.path.includes("/login") || to.path.includes("/homePage") || to.path.includes("/registrationPage") || to.path.includes("/payPage") || to.path.includes("/paySuccess") || to.path.includes("/homePageImage")) { + if (to.path.includes("/ncmatchHome")||to.path.includes("/kyyForm") || to.path.includes("/screen") || to.path.includes("/beforeLogin") || to.path.includes("/wxDetailPage") || to.path.includes("/wxPage") || to.path.includes("/login") || to.path.includes("/homePage") || to.path.includes("/registrationPage") || to.path.includes("/payPage") || to.path.includes("/paySuccess") || to.path.includes("/homePageImage")) { console.log("to", to) try { if (to.path.includes("/beforeLogin") || to.path.includes("/registrationPage")) { @@ -125,7 +135,8 @@ router.beforeEach(async (to, from, next) => { } } // next(`/login?redirect=${to.path}`); - next('/homePage/index') + console.log("路由执行了2@@@") + next(homePath) // next(`/beforeLogin`); // console.log("111行被打印了") NProgress.done(); @@ -154,7 +165,7 @@ router.beforeEach(async (to, from, next) => { // console.log(error); Message.error(error || "Has Error"); // next(`/login?redirect=${to.path}`); - next('/homePage/index') + next(homePath) // console.log("137行被打印了") NProgress.done(); } diff --git a/f/web-kboss/src/router/index.js b/f/web-kboss/src/router/index.js index afcb984..9667621 100644 --- a/f/web-kboss/src/router/index.js +++ b/f/web-kboss/src/router/index.js @@ -1,19 +1,8 @@ import Vue from "vue"; import Router from "vue-router"; import store from "@/store"; - -Vue.use(Router); - -// const originalPush = Router.prototype.push - -// Router.prototype.push = function push(location) { -// return originalPush.call(this, location).catch(err => err)} - /* Layout */ import Layout from "@/layout"; -import {loginUserAPI} from "@/api/login"; -import {Message} from "element-ui"; -import {logger} from "runjs/lib/common"; import GpuProduct from "@/views/product/productHome/capitalOnline/productItem/GpuProduct/index.vue"; import CreatePrivateNet from "@/views/product/productHome/capitalOnline/Net/privateNet/createPrivateNet/index.vue"; import ShowPrivateNet from "@/views/product/productHome/capitalOnline/Net/privateNet/showPrivateNet/index.vue"; @@ -29,6 +18,13 @@ import SecurityGroupDetail import ShowGpu from "@/views/product/productHome/capitalOnline/productItem/GpuProduct/ShowGpu/index.vue"; import ShowEip from "@/views/product/productHome/capitalOnline/Net/Eip/showEip/index.vue"; import CreateEip from "@/views/product/productHome/capitalOnline/Net/Eip/createEip/index.vue"; + +Vue.use(Router); + +// const originalPush = Router.prototype.push + +// Router.prototype.push = function push(location) { +// return originalPush.call(this, location).catch(err => err)} // import nestedRouter from '@/router/modules/nested' /** * Note: sub-menu only appear when route children.length >= 1 @@ -165,6 +161,22 @@ export const constantRoutes = [ hidden: true, meta: {title: "注册"}, }, + { + path: "/ncmatchHome", + component: () => import("@/views/homePage/ncmatch/index.vue"), + name: "ncmatchHome", + redirect: "/ncmatchHome/index", + meta: {fullPath: "/ncmatchHome/index", title: "官网首页", noCache: true, icon: 'el-icon-s-home'}, + children: [ + { + path: "index", + component: () => import("@/views/homePage/ncmatch/mainPage/index.vue"), + name: "ncmatchPageIndex", + hidden: true, + meta: {title: "首页", fullPath: "/ncmatch/mainPage/index"}, + }, + ] + }, { path: "/homePage", component: () => import("@/views/homePage/indexLast.vue"), @@ -272,6 +284,7 @@ export const asyncRoutes = [ // name: 'productHome', // meta: {title: "概览", fullPath: "/productHome", noCache: true} // }, + { path: "/homePage", component: () => import("@/views/homePage/indexLast.vue"), @@ -986,26 +999,29 @@ export const asyncRoutes = [ ), name: "supplierTransferApproval", meta: { title: "供应商销售收入转账审批", fullPath: "/operation/examinationManagement/supplierTransferApproval", }, - }, { - path: "distributorDiscountSetting", component: () => import( - "@/views/operation/examinationManagement/distributorDiscountSetting" - ), name: "DistributorDiscountSetting", meta: { - title: "分销商折扣设置审批", fullPath: "/operation/examinationManagement/distributorDiscountSetting", + }, + { + path: "distributorDiscountSetting", component: () => import( + "@/views/operation/examinationManagement/distributorDiscountSetting" + ), name: "DistributorDiscountSetting", meta: { + title: "分销商折扣设置审批", fullPath: "/operation/examinationManagement/distributorDiscountSetting", + }, }, - }, { - path: "distributorRebateSetUp", component: () => import( - "@/views/operation/examinationManagement/distributorRebateSetUp" - ), name: "DistributorRebateSetUp", meta: { - title: "分销商回佣率设置审批", fullPath: "/operation/examinationManagement/DistributorRebateSetUp", + { + path: "distributorRebateSetUp", component: () => import( + "@/views/operation/examinationManagement/distributorRebateSetUp" + ), name: "DistributorRebateSetUp", meta: { + title: "分销商回佣率设置审批", fullPath: "/operation/examinationManagement/DistributorRebateSetUp", + }, }, - }, { - path: "distributorCommissionTransferApproval", component: () => import( - "@/views/operation/examinationManagement/distributorCommissionTransferApproval" - ), name: "DistributorCommissionTransferApproval", meta: { - title: "分销商回佣转账审批", - fullPath: "/operation/examinationManagement/distributorCommissionTransferApproval", - }, - },], + { + path: "distributorCommissionTransferApproval", component: () => import( + "@/views/operation/examinationManagement/distributorCommissionTransferApproval" + ), name: "DistributorCommissionTransferApproval", meta: { + title: "分销商回佣转账审批", + fullPath: "/operation/examinationManagement/distributorCommissionTransferApproval", + }, + },], }, { path: "supplierManagement", title: "供应商管理", @@ -1371,7 +1387,8 @@ export const asyncRoutes = [ title: "Test", icon: "el-icon-shopping-cart-2", noCache: true, fullPath: "/Test/index", }, },], - }, { + }, + { path: "/operationAndMaintenance", component: Layout, redirect: "/operationAndMaintenance/index", meta: { title: "运维", icon: "el-icon-s-tools", noCache: true, fullPath: "/operationAndMaintenance", }, children: [{ diff --git a/f/web-kboss/src/store/modules/user.js b/f/web-kboss/src/store/modules/user.js index c17939d..b0f6b7f 100644 --- a/f/web-kboss/src/store/modules/user.js +++ b/f/web-kboss/src/store/modules/user.js @@ -5,6 +5,7 @@ import {Message} from "element-ui"; import router, {resetRouter} from "@/router"; import store from "@/store"; import {myBalanceAPI} from "@/api/finance/customerRechargeManagement"; +import {testData} from "@/views/homePage/components/topBox/testData"; const state = { token: getToken(), @@ -86,7 +87,6 @@ const actions = { } ) resetRouter(); - console.log("挂载前的路由是:", accessRoutes) router.addRoutes(accessRoutes); resolve(response); } diff --git a/f/web-kboss/src/views/Test/testData.js b/f/web-kboss/src/views/Test/testData.js new file mode 100644 index 0000000..1fd8d52 --- /dev/null +++ b/f/web-kboss/src/views/Test/testData.js @@ -0,0 +1,7 @@ +import Layout from "@/layout/index.vue"; + +export const testData =[{"path":"operation", component: Layout, + + + + "hidden":true,"name":"Operation","meta":{"title":"审批管理","fullPath":"/operation/examinationManagement"},"redirect":"/operation/examinationManagement/sustomerDiscountApproval","children":[{"path":"sustomerDiscountApproval","name":"MyOrganization","meta":{"title":"客户折扣审批","fullPath":"/operation/examinationManagement/sustomerDiscountApproval"}},{"path":"supplierTransferApproval","name":"supplierTransferApproval","meta":{"title":"供应商销售收入转账审批","fullPath":"/operation/examinationManagement/supplierTransferApproval"}},{"path":"distributorDiscountSetting","name":"DistributorDiscountSetting","meta":{"title":"分销商折扣设置审批","fullPath":"/operation/examinationManagement/distributorDiscountSetting"}},{"path":"distributorRebateSetUp","name":"DistributorRebateSetUp","meta":{"title":"分销商回佣率设置审批","fullPath":"/operation/examinationManagement/DistributorRebateSetUp"}},{"path":"distributorCommissionTransferApproval","name":"DistributorCommissionTransferApproval","meta":{"title":"分销商回佣转账审批","fullPath":"/operation/examinationManagement/distributorCommissionTransferApproval"}}]},{"path":"supplierManagement","title":"供应商管理","name":"supplierManagement","meta":{"title":"供应商管理","fullPath":"/operation/supplierManagement"}},{"path":"computingCenterManagement","name":"computingCenterManagement","title":"容器云","meta":{"title":"容器云","fullPath":"/operation/computingCenterManagement/mainPage","noCache":true},"redirect":"/operation/computingCenterManagement","children":[{"path":"mainPage","title":"算力中心","name":"supplierManagement","meta":{"title":"算力中心","fullPath":"/operation/computingCenterManagement/mainPage","noCache":true}},{"path":"tagMangement","title":"标签管理","name":"tagMangement","meta":{"title":"标签管理","fullPath":"/operation/computingCenterManagement/tagMangement","noCache":true}},{"path":"sellingConfiguration","title":"出售配置","name":"sellingConfiguration","meta":{"title":"出售配置","fullPath":"/operation/computingCenterManagement/sellingConfiguration","noCache":true}},{"hidden":true,"path":"pod","title":"资源实例看板","name":"pod","meta":{"title":"资源实例看板","fullPath":"/operation/computingCenterManagement/pod","noCache":true}},{"hidden":true,"path":"childPod","title":"成员节点看板","name":"childPod","meta":{"title":"成员节点看板","fullPath":"/operation/computingCenterManagement/childPod","noCache":true}},{"hidden":true,"path":"clusterResourceInstanceConfiguration","title":"资源实例配置","name":"clusterResourceInstanceConfiguration","meta":{"title":"资源实例配置","fullPath":"/operation/computingCenterManagement/clusterResourceInstanceConfiguration","noCache":true}},{"hidden":true,"path":"colony","title":"管理集群","name":"supplierManagement","meta":{"title":"管理集群","fullPath":"/operation/computingCenterManagement/colony","noCache":true}},{"hidden":true,"path":"computingPowerNode","title":"算力设备","name":"computingPowerNode","meta":{"title":"算力设备","fullPath":"/operation/computingCenterManagement/computingPowerNode","noCache":true}},{"hidden":true,"path":"part","title":"算力部件管理","name":"part","meta":{"title":"算力部件管理","fullPath":"/operation/computingCenterManagement/Part","noCache":true}}]},{"path":"importSalesRevenue","title":"导入销售额","name":"ImportSalesRevenue","meta":{"title":"导入销售额","fullPath":"/operation/ImportSalesRevenue"}},{"path":"allProductManagement","title":"公共售价管理","name":"allProductManagement","meta":{"title":"公共售价管理","fullPath":"/operation/allProductManagement"}},{"path":"publicDiscountManagement","title":"公共折扣管理","name":"publicDiscountManagement","meta":{"title":"公共折扣管理","fullPath":"/operation/publicDiscountManagement"}},{"path":"publicCostomerManagement","name":"PublicCostomerManagement","meta":{"title":"公共客户管理","fullPath":"/operation/publicCostomerManagement"}},{"path":"productManagement","name":"productManagement","hidden":true,"meta":{"title":"供应商产品管理","fullPath":"/operation/productManagement"}},{"path":"specificationTemplateManagement","name":"specificationTemplateManagement","hidden":true,"meta":{"title":"产品规格模板管理","fullPath":"/operation/specificationTemplateManagement"}},{"path":"saleActives","name":"SaleActives","meta":{"title":"促销活动","fullPath":"/operation/saleActives"}},{"path":"voucher","name":"voucher","meta":{"title":"算力券管理","fullPath":"/operation/voucher"}},{"path":"customerTransfer","name":"CustomerTransfer","meta":{"title":"客户转移","fullPath":"/operation/customerTransfer"}},{"path":"turnoverHandover","name":"TurnoverHandover","meta":{"title":"离职交接","fullPath":"/operation/turnoverHandover"}},{"path":"analyze","name":"analyze","meta":{"title":"分析","fullPath":"/operation/analyze"},"redirect":"/operation/analyze","children":[{"path":"bill","name":"bill","meta":{"title":"消费KPI分析","fullPath":"/operation/analyze/bill"}},{"path":"operationalAnalysis","name":"operationalAnalysis","meta":{"title":"运营KPI分析","fullPath":"/operation/analyze/operationalAnalysis"}},{"path":"depementAnalysis","name":"depementAnalysis","meta":{"title":"部门KPI分析","fullPath":"/operation/analyze/depementAnalysis"}},{"path":"saleAnalysis","name":"saleAnalysis","meta":{"title":"销售KPI分析","fullPath":"/operation/analyze/saleAnalysis"}},{"path":"incomeAnalysis","name":"incomeAnalysis","meta":{"title":"收入分析","fullPath":"/operation/analyze/incomeAnalysis"}},{"path":"profitAnalysis","name":"profitAnalysis","meta":{"title":"利润分析","fullPath":"/operation/analyze/profitAnalysis"}}]},{"path":"channelCustomer","title":"渠道客户","name":"channelCustomer","meta":{"title":"渠道客户","fullPath":"/operation/channelCustomer","noCache":true}},{"hidden":true,"path":"intelligentConfigOpe","title":"智算产品配置","name":"intelligentConfigOpe","meta":{"title":"智算产品配置","fullPath":"/operation/IntelligentConfigOpe"}},{"path":"deviceMangement","name":"deviceMangement","meta":{"title":"产品租赁","fullPath":"/operation/deviceMangement"},"redirect":"/operation/deviceMangement","children":[{"path":"device","name":"device","meta":{"title":"设备管理","fullPath":"/operation/deviceMangement/device"}},{"path":"machineRoom","name":"machineRoom","meta":{"title":"机房信息","fullPath":"/operation/deviceMangement/machineRoom"}},{"path":"deviceGrid","name":"deviceGrid","meta":{"title":"统计分析","fullPath":"/operation/deviceMangement/deviceGrid"},"children":[{"path":"machineRoomGrid","name":"machineRoomGrid","meta":{"title":"机房统计","fullPath":"/operation/deviceMangement/deviceGrid/machineRoomGrid"}},{"path":"deviceExpiration","name":"deviceExpiration","meta":{"title":"设备统计","fullPath":"/operation/deviceMangement/deviceGrid/deviceExpiration"}},{"path":"supplierAndProductStatistics","name":"deviceExpiration","meta":{"title":"供需指数","fullPath":"/operation/deviceMangement/deviceGrid/supplierAndProductStatistics"}}]}]},{"path":"approval","name":"approval","meta":{"title":"审批配置","fullPath":"/operation/approval"},"children":[{"path":"approvalArgumentsConfig","name":"approvalArgumentsConfig","meta":{"title":"参数配置","fullPath":"/operation/approval/approvalArgumentsConfig"}},{"path":"approvalConfig","name":"approvalConfig","meta":{"title":"审核人配置","fullPath":"/operation/approval/approvalConfig"}},{"path":"approvalList","name":"approvalList","meta":{"title":"流程列表","fullPath":"/operation/approval/approvalList"}}]},{"path":"/endDay","component":{"name":"Layout","components":{"AppMain":{"name":"AppMain","computed":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-078753dd","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/layout/components/AppMain.vue","_Ctor":{}},"Navbar":{"components":{"PromotionalInvitationCode":{"name":"promotionalInvitationCode","methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-49d4e0c0","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/views/customer/promotionalInvitationCode/index.vue","_Ctor":{}},"Breadcrumb":{"watch":{},"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-b50ef614","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/components/Breadcrumb/index.vue","_Ctor":{}},"Hamburger":{"name":"Hamburger","props":{"isActive":{"default":false}},"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-4e6f274c","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/components/Hamburger/index.vue"},"Screenfull":{"name":"Screenfull","beforeDestroy":[null,null],"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-29234bee","beforeCreate":[null],"__file":"src/components/Screenfull/index.vue"},"SizeSelect":{"computed":{},"methods":{},"staticRenderFns":[],"_compiled":true,"beforeCreate":[null],"beforeDestroy":[null],"__file":"src/components/SizeSelect/index.vue"},"Search":{"name":"HeaderSearch","computed":{},"watch":{},"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-032bd1f0","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/components/HeaderSearch/index.vue"},"InForm":{"name":"WebKbossIndex","methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-5dcf58dc","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/components/Inform/index.vue"},"messagedrawer":{"props":{"drawer":{"required":true,"default":false},"direction":{"default":"rtl"},"tableData":{"default":false}},"methods":{},"staticRenderFns":[],"_compiled":true,"beforeCreate":[null],"beforeDestroy":[null],"__file":"src/layout/components/inFram/message.vue"}},"computed":{},"methods":{},"watch":{"gridObj":{"user":true}},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-d16d6306","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/layout/components/Navbar.vue","_Ctor":{}},"RightPanel":{"name":"RightPanel","props":{"clickNotClose":{"default":false},"buttonTop":{"default":250}},"computed":{},"watch":{},"beforeDestroy":[null,null],"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-1e488bfb","beforeCreate":[null],"__file":"src/components/RightPanel/index.vue"},"Settings":{"components":{"ThemePicker":{"computed":{},"watch":{"defaultTheme":{"immediate":true}},"methods":{},"staticRenderFns":[],"_compiled":true,"beforeCreate":[null],"beforeDestroy":[null],"__file":"src/components/ThemePicker/index.vue"}},"computed":{"fixedHeader":{},"tagsView":{},"sidebarLogo":{}},"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-126b135a","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/layout/components/Settings/index.vue"},"Sidebar":{"components":{"SidebarItem":{"name":"SidebarItem","components":{"Item":{"name":"MenuItem","functional":true,"props":{"icon":{"default":""},"title":{"default":""}},"_scopeId":"data-v-31ea41b3","__file":"src/layout/components/Sidebar/Item.vue","_Ctor":{}},"AppLink":{"props":{"to":{"required":true}},"computed":{},"methods":{},"staticRenderFns":[],"_compiled":true,"beforeCreate":[null],"beforeDestroy":[null],"__file":"src/layout/components/Sidebar/Link.vue","_Ctor":{}}},"mixins":[{"computed":{},"methods":{}}],"props":{"item":{"required":true},"isNest":{"default":false},"basePath":{"default":""}},"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-2d2bbdc2","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/layout/components/Sidebar/SidebarItem.vue","_Ctor":{}},"Logo":{"name":"SidebarLogo","props":{"collapse":{"required":true}},"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-6494804b","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/layout/components/Sidebar/Logo.vue","_Ctor":{}}},"computed":{},"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-33ec43fc","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/layout/components/Sidebar/index.vue","_Ctor":{}},"TagsView":{"components":{"ScrollPane":{"name":"ScrollPane","computed":{},"beforeDestroy":[null,null],"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-be6b7bae","beforeCreate":[null],"__file":"src/layout/components/TagsView/ScrollPane.vue"}},"computed":{},"watch":{},"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-fac8ca64","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/layout/components/TagsView/index.vue"}},"mixins":[{"watch":{},"methods":{}}],"computed":{},"watch":{"$route":{"deep":true,"immediate":true,"user":true}},"methods":{},"staticRenderFns":[],"_compiled":true,"_scopeId":"data-v-13877386","beforeCreate":[null],"beforeDestroy":[null],"__file":"src/layout/index.vue","_Ctor":{}},"redirect":"/endDay/endDay","hidden":true,"meta":{"title":"日末","icon":"el-icon-s-custom","noCache":true,"fullPath":"/endDay"},"children":[{"path":"endDay","name":"endDay","meta":{"title":"日末","fullPath":"/endDay/endDay"}}]}] diff --git a/f/web-kboss/src/views/homePage/components/topBox/index.vue b/f/web-kboss/src/views/homePage/components/topBox/index.vue index 52f75ae..8f38369 100644 --- a/f/web-kboss/src/views/homePage/components/topBox/index.vue +++ b/f/web-kboss/src/views/homePage/components/topBox/index.vue @@ -320,6 +320,7 @@ export default Vue.extend({ // url_link: 'https://www.baidu.com' } getLogoAPI(params).then((res) => { + console.log("获取接口触发了") // if (res.data.status == true && res.data.data && res.data.data.length) { // this.photosUrl = res.data.data[0]; diff --git a/f/web-kboss/src/views/homePage/ncmatch/index.vue b/f/web-kboss/src/views/homePage/ncmatch/index.vue new file mode 100644 index 0000000..d338866 --- /dev/null +++ b/f/web-kboss/src/views/homePage/ncmatch/index.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue b/f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue new file mode 100644 index 0000000..c4d8ffa --- /dev/null +++ b/f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue @@ -0,0 +1,682 @@ + + + + + diff --git a/f/web-kboss/src/views/setting/tools.js b/f/web-kboss/src/views/setting/tools.js new file mode 100644 index 0000000..f8523fb --- /dev/null +++ b/f/web-kboss/src/views/setting/tools.js @@ -0,0 +1,28 @@ +export function getHomePath() { + // let homePath= "/homePage/index" + let homePath= "/ncmatchHome/index" + + // 业主机构信息 + let url_link = window.location.href || ''; + let domain_url = ''; + if (url_link.includes('?domain_name=')) { + domain_url = url_link.split('?domain_name=')[1]; + } + + // 如果是业主机构 + if ((domain_url.includes('ncmatch') || + domain_url.includes('9527') || + domain_url.includes('8889') || + domain_url.includes('8891') || + ['xterm.kaiyuancloud.cn', 'www.kaiyuancloud.cn', 'dev.kaiyuancloud.cn', 'dev.opencomputing.cn', 'test.kaiyuancloud.cn', 'localhost'].includes(domain_url)) && + !url_link.includes('/domain/')) { + + if (domain_url.includes('ncmatch') || domain_url.includes('9527')) { + homePath = '/homePath/index' + } else if (domain_url.includes('kaiyuancloud') || domain_url.includes('opencomputing') || domain_url.includes('localhost')) { + homePath = '/ncmatchHome/index' + } + } + console.log("res是",homePath) + return homePath +} diff --git a/f/web-kboss/src/views/setting/web_config.js b/f/web-kboss/src/views/setting/web_config.js new file mode 100644 index 0000000..e645634 --- /dev/null +++ b/f/web-kboss/src/views/setting/web_config.js @@ -0,0 +1,8 @@ +const webConfig={ + KYY:{ + homePath:"", + }, + NCMATCH:{ + homePath:"", + } +} From 69d7fb254058756915f5c8666d65438fcacf67c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E7=93=9C=E4=B8=80=E5=9D=97=E5=85=AB?= <2523890936@qq.com> Date: Thu, 31 Jul 2025 13:29:53 +0800 Subject: [PATCH 02/21] bugfix --- f/web-kboss/package.json | 1 + f/web-kboss/src/api/ncmatch/index.js | 40 + f/web-kboss/src/router/index.js | 7 + .../src/views/homePage/mainPage/index.vue | 259 ++--- .../homePage/ncmatch/mainPage/img/btnBg.png | Bin 0 -> 191290 bytes .../homePage/ncmatch/mainPage/img/gc.svg | 1 + .../homePage/ncmatch/mainPage/img/product.svg | 1 + .../homePage/ncmatch/mainPage/img/xq.svg | 1 + .../views/homePage/ncmatch/mainPage/index.vue | 790 ++++++++------- .../ncmatch/mainPage/productCard/index.vue | 182 ++++ .../mainPage/sendProduct/buildCaTree.js | 19 + .../ncmatch/mainPage/sendProduct/index.vue | 904 ++++++++++++++++++ .../ncmatch/mainPage/sendProduct/indexBak.vue | 564 +++++++++++ .../ncmatch/supplyAndDemandSquare/index.vue | 226 +++++ f/web-kboss/src/views/setting/tools.js | 4 +- 15 files changed, 2482 insertions(+), 517 deletions(-) create mode 100644 f/web-kboss/src/api/ncmatch/index.js create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/img/btnBg.png create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/img/gc.svg create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/img/product.svg create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/img/xq.svg create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/productCard/index.vue create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/buildCaTree.js create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/index.vue create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/indexBak.vue create mode 100644 f/web-kboss/src/views/homePage/ncmatch/supplyAndDemandSquare/index.vue diff --git a/f/web-kboss/package.json b/f/web-kboss/package.json index c24521c..77b4fa5 100644 --- a/f/web-kboss/package.json +++ b/f/web-kboss/package.json @@ -51,6 +51,7 @@ "uuid": "^9.0.0", "vue": "2.6.10", "vue-count-to": "^1.0.13", + "vue-cropper": "^0.6.5", "vue-device-detector": "^1.1.6", "vue-infinite-scroll": "^2.0.2", "vue-router": "^3.0.2", diff --git a/f/web-kboss/src/api/ncmatch/index.js b/f/web-kboss/src/api/ncmatch/index.js new file mode 100644 index 0000000..b7f2760 --- /dev/null +++ b/f/web-kboss/src/api/ncmatch/index.js @@ -0,0 +1,40 @@ +import request from "@/utils/request"; +//获取商品分类 +export function reqGetProductCategorySearch(data) { + return request({ + url: '/product/product_category_search.dspy', + method: 'post', + headers: { + 'Content-Type': 'application/json' + }, + data + }) +} +//添加产品 publish_product_add +export function reqPublishProductAdd(data) { + return request({ + url: '/product/publish_product_add.dspy', + method: 'post', + headers: { 'Content-Type': 'multipart/form-data' }, + data + }) +} +//获公司类型 /product/company_category_search.dspy +export function reqCompanyCategorySearch(data) { + return request({ + url: '/product/company_category_search.dspy', + method: 'post', + headers: { 'Content-Type': 'application/json' }, + data + }) +} + +//获取全部产品/product/publish_product_search_first_page.dspy +export function reqPublishProductSearchFirstPage(data) { + return request({ + url: '/product/publish_product_search_first_page.dspy', + method: 'post', + headers: { 'Content-Type': 'application/json' }, + data + }) +} \ No newline at end of file diff --git a/f/web-kboss/src/router/index.js b/f/web-kboss/src/router/index.js index 9667621..a6e5c9d 100644 --- a/f/web-kboss/src/router/index.js +++ b/f/web-kboss/src/router/index.js @@ -175,6 +175,13 @@ export const constantRoutes = [ hidden: true, meta: {title: "首页", fullPath: "/ncmatch/mainPage/index"}, }, + { + path: "supplyAndDemandSquare", + component: () => import("@/views/homePage/ncmatch/supplyAndDemandSquare/index.vue"), + name: "supplyAndDemandSquare", + hidden: true, + meta: {title: "算力供需广场", fullPath: "/ncmatch/supplyAndDemandSquare"}, + }, ] }, { diff --git a/f/web-kboss/src/views/homePage/mainPage/index.vue b/f/web-kboss/src/views/homePage/mainPage/index.vue index d8b8561..d1d1e80 100644 --- a/f/web-kboss/src/views/homePage/mainPage/index.vue +++ b/f/web-kboss/src/views/homePage/mainPage/index.vue @@ -4,14 +4,13 @@
- - {{ logoInfoNew.home.bannerTitle || "" }} - + + {{ logoInfoNew.home.bannerTitle || "" }} + - 您身边的AI管家 + 您身边的AI管家
- - 4090 裸金属 - 6000 + 4090 裸金属 + 6000 /台/月 - + - 云资源 - + 云资源 + - 直降 20% - + 直降 20% +
- 云筑企业基座 + 云筑企业基座 多云融合 让上云更简单
@@ -54,17 +51,14 @@ {{ baseItem.title }}

{{ baseItem.description }}

{{ baseItem.price }} - /{{ baseItem.price_unit }} + style="font-weight: bold;font-size: 48px">{{ baseItem.price }} + /{{ baseItem.price_unit }} @@ -72,50 +66,47 @@
立即购买 > + style="display: inline-block;margin-left: 5px;color: white">>
查看详情  > + style="display: inline-block;margin-left: 5px;">
- 官网折扣 {{ baseItem.discount }}折 + 官网折扣 {{ + baseItem.discount }}折
- 智算未来征程 + 智算未来征程 多元异构 灵活短租
{{ suanItem.title }} {{ suanItem.price }} - /{{ suanItem.price_unit }} + style="font-weight: bold;font-size: 48px">{{ suanItem.price }} + /{{ suanItem.price_unit }} @@ -130,12 +121,12 @@
立即咨询 > + style="display: inline-block;margin-left: 5px;color: white">>
查看详情  > + style="display: inline-block;margin-left: 5px;">
@@ -146,13 +137,13 @@
- 网织智能经纬 + 网织智能经纬 云算网融合 让连接更简单
    -
  • - {{ menu.name }} +
  • + {{ menu.name }}
@@ -161,30 +152,29 @@

{{ netItem.description }}

产品优势
    -
  • +
  • {{ item.name - }} {{ item.content }} + }} {{ item.content }}
应用场景
    -
  • {{ i.name }}
  • +
  • {{ i.name }}
立即咨询 > + style="display: inline-block;margin-left: 5px;color: white">>
查看详情  > + style="display: inline-block;margin-left: 5px;">
- 合作伙伴 + 合作伙伴
@@ -195,7 +185,7 @@
- 算力资源 + 算力资源
@@ -227,8 +217,8 @@
  • 8 - + - + + + 算力中心接入
  • @@ -251,16 +241,16 @@
  • 2000 - P+ - + P+ + 算力
  • 10 - ms - + ms + 实时算力响应
  • @@ -269,8 +259,8 @@
  • 100,000 - + - + + + 注册用户
  • @@ -289,8 +279,8 @@ @@ -299,21 +289,13 @@ - + 官方申明

    尊敬用户:

    您好~~

    本平台公示的所有产品折扣活动均真实有效,价格体系严格遵循公开透明原则。

    -

    特别说明:云服务产品页面所示价格属参考性标价,实际交易金额须以资源清单订单页面为准。 +

    特别说明:云服务产品页面所示价格属参考性标价,实际交易金额须以资源清单订单页面为准。

    请您知悉上述条款并放心进行购买决策,如有任何疑问,可随时联系平台官方客服,我们将为您详细说明。

    @@ -336,15 +318,15 @@ \ No newline at end of file diff --git a/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/buildCaTree.js b/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/buildCaTree.js new file mode 100644 index 0000000..786eab6 --- /dev/null +++ b/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/buildCaTree.js @@ -0,0 +1,19 @@ +export const buildCaTree = (data,parentid=null) => { + const tree = []; + for (const item of data) { + if (item.parentid === parentid) { + const children = buildCaTree(data, item.id); + let i = { + label:item.product_category, + value:item.id, + cart_flag:item.cart_flag + } + if (children.length > 0) { + i.children = children; + } + + tree.push(i); + } + } + return tree; +}; \ No newline at end of file diff --git a/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/index.vue b/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/index.vue new file mode 100644 index 0000000..1f5583a --- /dev/null +++ b/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/index.vue @@ -0,0 +1,904 @@ + + + \ No newline at end of file diff --git a/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/indexBak.vue b/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/indexBak.vue new file mode 100644 index 0000000..98e36dc --- /dev/null +++ b/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/indexBak.vue @@ -0,0 +1,564 @@ + + + \ No newline at end of file diff --git a/f/web-kboss/src/views/homePage/ncmatch/supplyAndDemandSquare/index.vue b/f/web-kboss/src/views/homePage/ncmatch/supplyAndDemandSquare/index.vue new file mode 100644 index 0000000..31392bd --- /dev/null +++ b/f/web-kboss/src/views/homePage/ncmatch/supplyAndDemandSquare/index.vue @@ -0,0 +1,226 @@ + + + + + \ No newline at end of file diff --git a/f/web-kboss/src/views/setting/tools.js b/f/web-kboss/src/views/setting/tools.js index f8523fb..1a0d18c 100644 --- a/f/web-kboss/src/views/setting/tools.js +++ b/f/web-kboss/src/views/setting/tools.js @@ -1,6 +1,6 @@ export function getHomePath() { - // let homePath= "/homePage/index" - let homePath= "/ncmatchHome/index" + let homePath= "/homePage/index" + // let homePath= "/ncmatchHome/index" // 业主机构信息 let url_link = window.location.href || ''; From b4c56acfe28b39ef6ed8c6e4e7338bcc0ffce8f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E7=93=9C=E4=B8=80=E5=9D=97=E5=85=AB?= <2523890936@qq.com> Date: Thu, 31 Jul 2025 14:40:27 +0800 Subject: [PATCH 03/21] bugfix --- .../homePage/ncmatch/mainPage/img/history.svg | 1 + .../homePage/ncmatch/mainPage/img/star.svg | 1 + .../homePage/ncmatch/mainPage/img/zan.svg | 1 + .../views/homePage/ncmatch/mainPage/index.vue | 40 +++++++--- .../ncmatch/mainPage/productCard/index.vue | 73 ++++++++++++++++++- .../ncmatch/supplyAndDemandSquare/index.vue | 3 +- 6 files changed, 103 insertions(+), 16 deletions(-) create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/img/history.svg create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/img/star.svg create mode 100644 f/web-kboss/src/views/homePage/ncmatch/mainPage/img/zan.svg diff --git a/f/web-kboss/src/views/homePage/ncmatch/mainPage/img/history.svg b/f/web-kboss/src/views/homePage/ncmatch/mainPage/img/history.svg new file mode 100644 index 0000000..0b17ea5 --- /dev/null +++ b/f/web-kboss/src/views/homePage/ncmatch/mainPage/img/history.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/f/web-kboss/src/views/homePage/ncmatch/mainPage/img/star.svg b/f/web-kboss/src/views/homePage/ncmatch/mainPage/img/star.svg new file mode 100644 index 0000000..4c8f0f2 --- /dev/null +++ b/f/web-kboss/src/views/homePage/ncmatch/mainPage/img/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/f/web-kboss/src/views/homePage/ncmatch/mainPage/img/zan.svg b/f/web-kboss/src/views/homePage/ncmatch/mainPage/img/zan.svg new file mode 100644 index 0000000..fec4ed3 --- /dev/null +++ b/f/web-kboss/src/views/homePage/ncmatch/mainPage/img/zan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue b/f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue index 2bfab0f..6aa051d 100644 --- a/f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue +++ b/f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue @@ -177,11 +177,10 @@ export default Vue.extend({
  • {{ category.icon }} {{ category.name }} - | + |
  • @@ -207,10 +206,16 @@ export default Vue.extend({ -
    @@ -233,20 +238,37 @@ export default Vue.extend({ \ No newline at end of file From f55e8e9f20ad68b17690e7f90d9a1e1bc00fb72f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E7=93=9C=E4=B8=80=E5=9D=97=E5=85=AB?= <2523890936@qq.com> Date: Thu, 31 Jul 2025 18:11:17 +0800 Subject: [PATCH 07/21] bugfix --- .../src/views/homePage/ncmatch/mainPage/index.vue | 9 ++++++--- .../homePage/ncmatch/mainPage/sendProduct/index.vue | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue b/f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue index 13ea60e..057f334 100644 --- a/f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue +++ b/f/web-kboss/src/views/homePage/ncmatch/mainPage/index.vue @@ -118,9 +118,12 @@ export default Vue.extend({ init_product_list() { reqPublishProductSearchFirstPage({ url_link: window.location.href }).then(res => { if (res.status) { - this.currentHotMenu = res.data[0].id - this.hotProductList = res.data[0].product_list - this.product = res.data + if(res.data.length > 0){ + this.currentHotMenu = res.data[0].id + this.hotProductList = res.data[0].product_list + this.product = res.data + } + } }) }, diff --git a/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/index.vue b/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/index.vue index 1f5583a..8efc9d1 100644 --- a/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/index.vue +++ b/f/web-kboss/src/views/homePage/ncmatch/mainPage/sendProduct/index.vue @@ -95,7 +95,7 @@ - +
    From 0e5aea5a1cece67f24ec9e7a5617df14217f2152 Mon Sep 17 00:00:00 2001 From: ping <1017253325@qq.com> Date: Thu, 31 Jul 2025 18:15:52 +0800 Subject: [PATCH 08/21] update --- b/product/product_category_search.dspy | 3 ++- .../publish_product_search_first_page.dspy | 26 ++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/b/product/product_category_search.dspy b/b/product/product_category_search.dspy index cd69ab2..8f7a4c0 100644 --- a/b/product/product_category_search.dspy +++ b/b/product/product_category_search.dspy @@ -23,7 +23,8 @@ async def product_category_search(ns={}): orgid = user_list[0]['orgid'] ns_dic = {'orgid': orgid, 'del_flg': '0'} try: - result = await sor.R('user_publish_product_category', ns_dic) + find_sql = """SELECT * FROM user_publish_product_category WHERE orgid = '%s' AND del_flg = '0' ORDER BY priority;""" % orgid + result = await sor.sqlExe(find_sql, {}) # res = await build_tree(parent_id=None, all_cats=result) return { 'status': True, diff --git a/b/product/publish_product_search_first_page.dspy b/b/product/publish_product_search_first_page.dspy index f43f4ab..36458ac 100644 --- a/b/product/publish_product_search_first_page.dspy +++ b/b/product/publish_product_search_first_page.dspy @@ -6,14 +6,35 @@ async def publish_product_search_first_page(ns={}): :param ns: :return: """ + page_size = int(ns['page_size']) if ns.get('page_size') else 10 + offset = int(ns['offset'] - 1) if ns.get('offset') else 0 + to_page = ns.get('to_page') if ns.get('to_page') else 'first_page' domain_name = ns.get('url_link').split("//")[1].split("/")[0] + company_type = ns.get('company_type') + product_category = ns.get('product_category') if 'localhost' in domain_name: domain_name = 'dev.opencomputing.cn' db = DBPools() async with db.sqlorContext('kboss') as sor: try: ns['del_flg'] = '0' - find_sql = """SELECT * FROM user_publish_product WHERE domain_name = '%s' AND first_page = '1' AND audit_status = 'approved' AND del_flg = '0' ORDER BY create_at DESC;""" % (domain_name,) + if to_page == 'first_page': + count_sql = """SELECT COUNT(*) AS total_count FROM user_publish_product WHERE domain_name = '%s' AND first_page = '1' AND audit_status = 'approved' AND del_flg = '0' ORDER BY create_at DESC;""" % (domain_name,) + find_sql = """SELECT upp.* FROM user_publish_product AS upp INNER JOIN user_publish_product_category AS uppc ON upp.product_category LIKE uppc.id WHERE upp.domain_name = '%s' AND upp.first_page = '1' AND upp.audit_status = 'approved' AND upp.del_flg = '0' ORDER BY uppc.priority ASC, upp.create_at DESC LIMIT %s OFFSET %s;""" % (domain_name, page_size, offset) + elif to_page == 'square' and product_category and company_type: + count_sql = """SELECT COUNT(*) AS total_count FROM user_publish_product WHERE domain_name = '%s' AND product_category LIKE """ % domain_name + """'%%""" + product_category + """%%'""" + """AND company_type LIKE """ + """'%%""" + company_type + """%%'""" + """ AND audit_status = 'approved' AND del_flg = '0' ORDER BY create_at DESC;""" + find_sql = """SELECT * FROM user_publish_product WHERE domain_name = '%s' AND product_category LIKE """ % domain_name + """'%%""" + product_category + """%%'""" + """AND company_type LIKE """ + """'%%""" + company_type + """%%'""" + """ AND audit_status = 'approved' AND del_flg = '0' ORDER BY create_at DESC LIMIT %s OFFSET %s;""" % (page_size, offset) + elif to_page == 'square' and product_category: + count_sql = """SELECT COUNT(*) AS total_count FROM user_publish_product WHERE domain_name = '%s' AND product_category LIKE """ % domain_name + """'%%""" + product_category + """%%'""" + """ AND audit_status = 'approved' AND del_flg = '0' ORDER BY create_at DESC;""" + find_sql = """SELECT * FROM user_publish_product WHERE domain_name = '%s' AND product_category LIKE """ % domain_name + """'%%""" + product_category + """%%'""" + """ AND audit_status = 'approved' AND del_flg = '0' ORDER BY create_at DESC LIMIT %s OFFSET %s;""" % (page_size, offset) + elif to_page == 'square': + count_sql = """SELECT COUNT(*) AS total_count FROM user_publish_product WHERE domain_name = '%s' AND audit_status = 'approved' AND del_flg = '0' ORDER BY create_at DESC;""" % (domain_name,) + find_sql = """SELECT * FROM user_publish_product WHERE domain_name = '%s' AND audit_status = 'approved' AND del_flg = '0' ORDER BY create_at DESC LIMIT %s OFFSET %s;""" % (domain_name, page_size, offset) + else: + count_sql = '' + find_sql = '' + + total_count = (await sor.sqlExe(count_sql, {}))[0]['total_count'] result = await sor.sqlExe(find_sql, {}) category_all = await sor.R('user_publish_product_category', {}) product_dic = {} @@ -28,7 +49,7 @@ async def publish_product_search_first_page(ns={}): product_dic[category_name] = [res] product_list = [] for key, value in product_dic.items(): - product_list.append({'id': uuid(), 'name': key, 'product_list': value}) + product_list.append({'id': uuid(), 'name': key, 'total_count': total_count, 'page_size': page_size, 'current_page': offset + 1, 'product_list': value}) return { 'status': True, 'msg': 'Requirements retrieved successfully', @@ -39,6 +60,5 @@ async def publish_product_search_first_page(ns={}): 'status': False, 'msg': 'Failed to retrieve requirements, %s' % str(e) } - ret = await publish_product_search_first_page(params_kw) return ret \ No newline at end of file From 82827687381fed10e8b66579de5ac24285dd38ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E7=93=9C=E4=B8=80=E5=9D=97=E5=85=AB?= <2523890936@qq.com> Date: Thu, 31 Jul 2025 18:48:31 +0800 Subject: [PATCH 09/21] bugfix --- .../ncmatch/mainPage/productCard/index.vue | 23 +++++++++++++++---- .../ncmatch/supplyAndDemandSquare/index.vue | 19 +++++++++++++++ 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/f/web-kboss/src/views/homePage/ncmatch/mainPage/productCard/index.vue b/f/web-kboss/src/views/homePage/ncmatch/mainPage/productCard/index.vue index 1fcc7c1..212cdb8 100644 --- a/f/web-kboss/src/views/homePage/ncmatch/mainPage/productCard/index.vue +++ b/f/web-kboss/src/views/homePage/ncmatch/mainPage/productCard/index.vue @@ -68,7 +68,7 @@
    需求描述: - {{ item.requirement_summary }} + {{ item.requirement_summary }}
    @@ -109,6 +109,16 @@ export default { } diff --git a/f/web-kboss/src/views/customer/productMangement/commonBox/index.vue b/f/web-kboss/src/views/customer/productMangement/commonBox/index.vue new file mode 100644 index 0000000..a7d7278 --- /dev/null +++ b/f/web-kboss/src/views/customer/productMangement/commonBox/index.vue @@ -0,0 +1,350 @@ + + + diff --git a/f/web-kboss/src/views/customer/productMangement/commonDetail/index.vue b/f/web-kboss/src/views/customer/productMangement/commonDetail/index.vue new file mode 100644 index 0000000..84f428b --- /dev/null +++ b/f/web-kboss/src/views/customer/productMangement/commonDetail/index.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/f/web-kboss/src/views/customer/productMangement/index.vue b/f/web-kboss/src/views/customer/productMangement/index.vue new file mode 100644 index 0000000..1a1cfd4 --- /dev/null +++ b/f/web-kboss/src/views/customer/productMangement/index.vue @@ -0,0 +1,46 @@ + + \ No newline at end of file diff --git a/f/web-kboss/src/views/customer/productMangement/productList/index.vue b/f/web-kboss/src/views/customer/productMangement/productList/index.vue new file mode 100644 index 0000000..691ee2b --- /dev/null +++ b/f/web-kboss/src/views/customer/productMangement/productList/index.vue @@ -0,0 +1,26 @@ + + diff --git a/f/web-kboss/src/views/homePage/ncmatch/index.vue b/f/web-kboss/src/views/homePage/ncmatch/index.vue index d338866..7e8585c 100644 --- a/f/web-kboss/src/views/homePage/ncmatch/index.vue +++ b/f/web-kboss/src/views/homePage/ncmatch/index.vue @@ -1,21 +1,32 @@