hunter-mate 0.1.28 → 0.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/extension/build-info.json +1 -1
- package/dist/assets/extension/manifest.json +3 -3
- package/dist/assets/server/main.mjs +4301 -3611
- package/dist/index.js +65 -3
- package/dist/web/dist/404.html +1 -1
- package/dist/web/dist/_next/static/chunks/686-9bdfefc40893173f.js +1 -0
- package/dist/web/dist/_next/static/chunks/app/jobs/page-dff5282c65e66ef4.js +1 -0
- package/dist/web/dist/_next/static/chunks/app/shared/[token]/{page-6741cd1b0a4aca2e.js → page-47b5d836a9e10325.js} +1 -1
- package/dist/web/dist/_next/static/chunks/{main-app-f496bd51a73ef9f3.js → main-app-5e9b0602f99fef72.js} +1 -1
- package/dist/web/dist/_next/static/chunks/pages/{_app-037e1cd81d653e68.js → _app-3fdd92eb97cdde60.js} +3 -3
- package/dist/web/dist/admin/data.html +1 -1
- package/dist/web/dist/admin/data.txt +1 -1
- package/dist/web/dist/auth/verify.html +1 -1
- package/dist/web/dist/auth/verify.txt +1 -1
- package/dist/web/dist/companies.html +1 -1
- package/dist/web/dist/companies.txt +2 -2
- package/dist/web/dist/company/admin.html +1 -1
- package/dist/web/dist/company/admin.txt +1 -1
- package/dist/web/dist/entity.html +1 -1
- package/dist/web/dist/entity.txt +1 -1
- package/dist/web/dist/index.html +1 -1
- package/dist/web/dist/index.txt +1 -1
- package/dist/web/dist/jobs.html +1 -1
- package/dist/web/dist/jobs.txt +2 -2
- package/dist/web/dist/logs.html +1 -1
- package/dist/web/dist/logs.txt +1 -1
- package/dist/web/dist/matching/jobs/placeholder/talents.html +1 -1
- package/dist/web/dist/matching/jobs/placeholder/talents.txt +1 -1
- package/dist/web/dist/matching/portraits/placeholder/jobs.html +1 -1
- package/dist/web/dist/matching/portraits/placeholder/jobs.txt +1 -1
- package/dist/web/dist/parselog.html +1 -1
- package/dist/web/dist/parselog.txt +1 -1
- package/dist/web/dist/recordings.html +1 -1
- package/dist/web/dist/recordings.txt +1 -1
- package/dist/web/dist/resource-usage.html +1 -1
- package/dist/web/dist/resource-usage.txt +1 -1
- package/dist/web/dist/shared/placeholder.html +1 -1
- package/dist/web/dist/shared/placeholder.txt +2 -2
- package/dist/web/dist/snapshots/placeholder/agent-prompt.html +1 -1
- package/dist/web/dist/snapshots/placeholder/agent-prompt.txt +1 -1
- package/dist/web/dist/talents.html +1 -1
- package/dist/web/dist/talents.txt +1 -1
- package/dist/web/dist/team/insights.html +1 -1
- package/dist/web/dist/team/insights.txt +1 -1
- package/package.json +1 -1
- package/dist/web/dist/_next/static/chunks/686-5f4ee3649cce07f1.js +0 -1
- package/dist/web/dist/_next/static/chunks/app/jobs/page-a32a17c5a6384358.js +0 -1
- /package/dist/assets/extension/background/{service-worker.20261023013927.js → service-worker.20261025015540.js} +0 -0
- /package/dist/web/dist/_next/static/{cC7rsTCys5_15wJ8BiPDm → oL0Npvxb5lQa5gycVwoMf}/_buildManifest.js +0 -0
- /package/dist/web/dist/_next/static/{cC7rsTCys5_15wJ8BiPDm → oL0Npvxb5lQa5gycVwoMf}/_ssgManifest.js +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
2:I[48517,["603","static/chunks/603-765c4fa1ed757ca5.js","882","static/chunks/882-1bcdfd2499403efd.js","587","static/chunks/587-e449469e56a2bfff.js","245","static/chunks/app/shared/%5Btoken%5D/page-
|
|
1
|
+
2:I[48517,["603","static/chunks/603-765c4fa1ed757ca5.js","882","static/chunks/882-1bcdfd2499403efd.js","587","static/chunks/587-e449469e56a2bfff.js","245","static/chunks/app/shared/%5Btoken%5D/page-47b5d836a9e10325.js"],"default"]
|
|
2
2
|
3:I[74268,[],""]
|
|
3
3
|
5:I[81050,[],""]
|
|
4
4
|
6:I[15214,["603","static/chunks/603-765c4fa1ed757ca5.js","589","static/chunks/589-5bb84ab8060e960b.js","187","static/chunks/187-48dc1acca97c62ba.js","185","static/chunks/app/layout-1e492ed8c639edf5.js"],"AuthGate"]
|
|
5
5
|
7:I[67188,["603","static/chunks/603-765c4fa1ed757ca5.js","589","static/chunks/589-5bb84ab8060e960b.js","187","static/chunks/187-48dc1acca97c62ba.js","185","static/chunks/app/layout-1e492ed8c639edf5.js"],"AntdProvider"]
|
|
6
6
|
8:I[9424,["603","static/chunks/603-765c4fa1ed757ca5.js","589","static/chunks/589-5bb84ab8060e960b.js","187","static/chunks/187-48dc1acca97c62ba.js","185","static/chunks/app/layout-1e492ed8c639edf5.js"],"SystemSidebar"]
|
|
7
7
|
4:["token","placeholder","d"]
|
|
8
|
-
0:["
|
|
8
|
+
0:["oL0Npvxb5lQa5gycVwoMf",[[["",{"children":["shared",{"children":[["token","placeholder","d"],{"children":["__PAGE__?{\"token\":\"placeholder\"}",{}]}]}]},"$undefined","$undefined",true],["",{"children":["shared",{"children":[["token","placeholder","d"],{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{}],null],null],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","shared","children","$4","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","shared","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8f3c454cab3414d0.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"zh-CN","children":["$","body",null,{"className":"flex h-screen overflow-hidden bg-gray-50 text-gray-900","children":["$","$L6",null,{"children":["$","$L7",null,{"children":[["$","$L8",null,{}],["$","main",null,{"className":"flex-1 overflow-hidden","children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]]}]}]}]}]],null],null],["$L9",null]]]]
|
|
9
9
|
9:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"HunterMate 采集仪表盘"}],["$","meta","3",{"name":"description","content":"HunterMate 采集/解析/入库仪表盘"}]]
|
|
10
10
|
1:null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/8f3c454cab3414d0.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9cebd25e322e2cd7.js"/><script src="/_next/static/chunks/a7067448-3f2b194cfadb91fb.js" async=""></script><script src="/_next/static/chunks/935-12f1084f0e18c962.js" async=""></script><script src="/_next/static/chunks/main-app-
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/8f3c454cab3414d0.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9cebd25e322e2cd7.js"/><script src="/_next/static/chunks/a7067448-3f2b194cfadb91fb.js" async=""></script><script src="/_next/static/chunks/935-12f1084f0e18c962.js" async=""></script><script src="/_next/static/chunks/main-app-5e9b0602f99fef72.js" async=""></script><script src="/_next/static/chunks/app/snapshots/%5Bid%5D/agent-prompt/page-60ea46364a74b294.js" async=""></script><script src="/_next/static/chunks/603-765c4fa1ed757ca5.js" async=""></script><script src="/_next/static/chunks/589-5bb84ab8060e960b.js" async=""></script><script src="/_next/static/chunks/187-48dc1acca97c62ba.js" async=""></script><script src="/_next/static/chunks/app/layout-1e492ed8c639edf5.js" async=""></script><title>HunterMate 采集仪表盘</title><meta name="description" content="HunterMate 采集/解析/入库仪表盘"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="flex h-screen overflow-hidden bg-gray-50 text-gray-900"><div class="flex h-screen w-screen flex-col items-center justify-center bg-gray-50"><span class="hm-spinner" aria-label="加载中"></span><div class="mt-4 text-sm text-gray-400">正在加载,请稍候…</div></div><script src="/_next/static/chunks/webpack-9cebd25e322e2cd7.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/8f3c454cab3414d0.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[76939,[],\"\"]\n4:I[24492,[\"325\",\"static/chunks/app/snapshots/%5Bid%5D/agent-prompt/page-60ea46364a74b294.js\"],\"default\"]\n5:I[74268,[],\"\"]\n7:I[81050,[],\"\"]\n8:I[15214,[\"603\",\"static/chunks/603-765c4fa1ed757ca5.js\",\"589\",\"static/chunks/589-5bb84ab8060e960b.js\",\"187\",\"static/chunks/187-48dc1acca97c62ba.js\",\"185\",\"static/chunks/app/layout-1e492ed8c639edf5.js\"],\"AuthGate\"]\n9:I[67188,[\"603\",\"static/chunks/603-765c4fa1ed757ca5.js\",\"589\",\"static/chunks/589-5bb84ab8060e960b.js\",\"187\",\"static/chunks/187-48dc1acca97c62ba.js\",\"185\",\"static/chunks/app/layout-1e492ed8c639edf5.js\"],\"AntdProvider\"]\na:I[9424,[\"603\",\"static/chunks/603-765c4fa1ed757ca5.js\",\"589\",\"static/chunks/589-5bb84ab8060e960b.js\",\"187\",\"static/chunks/187-48dc1acca97c62ba.js\",\"185\",\"static/chunks/app/layout-1e492ed8c639edf5.js\"],\"SystemSidebar\"]\nc:I[62319,[],\"\"]\n6:[\"id\",\"placeholder\",\"d\"]\nd:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"oL0Npvxb5lQa5gycVwoMf\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"snapshots\",\"placeholder\",\"agent-prompt\"],\"initialTree\":[\"\",{\"children\":[\"snapshots\",{\"children\":[[\"id\",\"placeholder\",\"d\"],{\"children\":[\"agent-prompt\",{\"children\":[\"__PAGE__?{\\\"id\\\":\\\"placeholder\\\"}\",{}]}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"snapshots\",{\"children\":[[\"id\",\"placeholder\",\"d\"],{\"children\":[\"agent-prompt\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{}],null],null],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"snapshots\",\"children\",\"$6\",\"children\",\"agent-prompt\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"snapshots\",\"children\",\"$6\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"snapshots\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8f3c454cab3414d0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"children\":[\"$\",\"body\",null,{\"className\":\"flex h-screen overflow-hidden bg-gray-50 text-gray-900\",\"children\":[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$L9\",null,{\"children\":[[\"$\",\"$La\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-hidden\",\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Lb\"],\"globalErrorComponent\":\"$c\",\"missingSlots\":\"$Wd\"}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"HunterMate 采集仪表盘\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"HunterMate 采集/解析/入库仪表盘\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
7:I[67188,["603","static/chunks/603-765c4fa1ed757ca5.js","589","static/chunks/589-5bb84ab8060e960b.js","187","static/chunks/187-48dc1acca97c62ba.js","185","static/chunks/app/layout-1e492ed8c639edf5.js"],"AntdProvider"]
|
|
6
6
|
8:I[9424,["603","static/chunks/603-765c4fa1ed757ca5.js","589","static/chunks/589-5bb84ab8060e960b.js","187","static/chunks/187-48dc1acca97c62ba.js","185","static/chunks/app/layout-1e492ed8c639edf5.js"],"SystemSidebar"]
|
|
7
7
|
4:["id","placeholder","d"]
|
|
8
|
-
0:["
|
|
8
|
+
0:["oL0Npvxb5lQa5gycVwoMf",[[["",{"children":["snapshots",{"children":[["id","placeholder","d"],{"children":["agent-prompt",{"children":["__PAGE__?{\"id\":\"placeholder\"}",{}]}]}]}]},"$undefined","$undefined",true],["",{"children":["snapshots",{"children":[["id","placeholder","d"],{"children":["agent-prompt",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{}],null],null],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","snapshots","children","$4","children","agent-prompt","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","snapshots","children","$4","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","snapshots","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8f3c454cab3414d0.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"zh-CN","children":["$","body",null,{"className":"flex h-screen overflow-hidden bg-gray-50 text-gray-900","children":["$","$L6",null,{"children":["$","$L7",null,{"children":[["$","$L8",null,{}],["$","main",null,{"className":"flex-1 overflow-hidden","children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]]}]}]}]}]],null],null],["$L9",null]]]]
|
|
9
9
|
9:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"HunterMate 采集仪表盘"}],["$","meta","3",{"name":"description","content":"HunterMate 采集/解析/入库仪表盘"}]]
|
|
10
10
|
1:null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/8f3c454cab3414d0.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9cebd25e322e2cd7.js"/><script src="/_next/static/chunks/a7067448-3f2b194cfadb91fb.js" async=""></script><script src="/_next/static/chunks/935-12f1084f0e18c962.js" async=""></script><script src="/_next/static/chunks/main-app-
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/8f3c454cab3414d0.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9cebd25e322e2cd7.js"/><script src="/_next/static/chunks/a7067448-3f2b194cfadb91fb.js" async=""></script><script src="/_next/static/chunks/935-12f1084f0e18c962.js" async=""></script><script src="/_next/static/chunks/main-app-5e9b0602f99fef72.js" async=""></script><script src="/_next/static/chunks/587-e449469e56a2bfff.js" async=""></script><script src="/_next/static/chunks/327-6b8f348b06e7977f.js" async=""></script><script src="/_next/static/chunks/659-3db6e9c90ee9d238.js" async=""></script><script src="/_next/static/chunks/app/talents/page-4b00d69580f49f97.js" async=""></script><script src="/_next/static/chunks/603-765c4fa1ed757ca5.js" async=""></script><script src="/_next/static/chunks/589-5bb84ab8060e960b.js" async=""></script><script src="/_next/static/chunks/187-48dc1acca97c62ba.js" async=""></script><script src="/_next/static/chunks/app/layout-1e492ed8c639edf5.js" async=""></script><title>HunterMate 采集仪表盘</title><meta name="description" content="HunterMate 采集/解析/入库仪表盘"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="flex h-screen overflow-hidden bg-gray-50 text-gray-900"><div class="flex h-screen w-screen flex-col items-center justify-center bg-gray-50"><span class="hm-spinner" aria-label="加载中"></span><div class="mt-4 text-sm text-gray-400">正在加载,请稍候…</div></div><script src="/_next/static/chunks/webpack-9cebd25e322e2cd7.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/8f3c454cab3414d0.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[76939,[],\"\"]\n4:I[59659,[\"587\",\"static/chunks/587-e449469e56a2bfff.js\",\"327\",\"static/chunks/327-6b8f348b06e7977f.js\",\"659\",\"static/chunks/659-3db6e9c90ee9d238.js\",\"93\",\"static/chunks/app/talents/page-4b00d69580f49f97.js\"],\"EntityListPage\"]\n5:I[74268,[],\"\"]\n6:I[81050,[],\"\"]\n7:I[15214,[\"603\",\"static/chunks/603-765c4fa1ed757ca5.js\",\"589\",\"static/chunks/589-5bb84ab8060e960b.js\",\"187\",\"static/chunks/187-48dc1acca97c62ba.js\",\"185\",\"static/chunks/app/layout-1e492ed8c639edf5.js\"],\"AuthGate\"]\n8:I[67188,[\"603\",\"static/chunks/603-765c4fa1ed757ca5.js\",\"589\",\"static/chunks/589-5bb84ab8060e960b.js\",\"187\",\"static/chunks/187-48dc1acca97c62ba.js\",\"185\",\"static/chunks/app/layout-1e492ed8c639edf5.js\"],\"AntdProvider\"]\n9:I[9424,[\"603\",\"static/chunks/603-765c4fa1ed757ca5.js\",\"589\",\"static/chunks/589-5bb84ab8060e960b.js\",\"187\",\"static/chunks/187-48dc1acca97c62ba.js\",\"185\",\"static/chunks/app/layout-1e492ed8c639edf5.js\"],\"SystemSidebar\"]\nb:I[62319,[],\"\"]\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"oL0Npvxb5lQa5gycVwoMf\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"talents\"],\"initialTree\":[\"\",{\"children\":[\"talents\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"talents\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"type\":\"talent\",\"label\":\"人才\",\"batchDelete\":true}],null],null],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"talents\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8f3c454cab3414d0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"children\":[\"$\",\"body\",null,{\"className\":\"flex h-screen overflow-hidden bg-gray-50 text-gray-900\",\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L8\",null,{\"children\":[[\"$\",\"$L9\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-hidden\",\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"HunterMate 采集仪表盘\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"HunterMate 采集/解析/入库仪表盘\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
5:I[15214,["603","static/chunks/603-765c4fa1ed757ca5.js","589","static/chunks/589-5bb84ab8060e960b.js","187","static/chunks/187-48dc1acca97c62ba.js","185","static/chunks/app/layout-1e492ed8c639edf5.js"],"AuthGate"]
|
|
5
5
|
6:I[67188,["603","static/chunks/603-765c4fa1ed757ca5.js","589","static/chunks/589-5bb84ab8060e960b.js","187","static/chunks/187-48dc1acca97c62ba.js","185","static/chunks/app/layout-1e492ed8c639edf5.js"],"AntdProvider"]
|
|
6
6
|
7:I[9424,["603","static/chunks/603-765c4fa1ed757ca5.js","589","static/chunks/589-5bb84ab8060e960b.js","187","static/chunks/187-48dc1acca97c62ba.js","185","static/chunks/app/layout-1e492ed8c639edf5.js"],"SystemSidebar"]
|
|
7
|
-
0:["
|
|
7
|
+
0:["oL0Npvxb5lQa5gycVwoMf",[[["",{"children":["talents",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["talents",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"type":"talent","label":"人才","batchDelete":true}],null],null],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","talents","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8f3c454cab3414d0.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"zh-CN","children":["$","body",null,{"className":"flex h-screen overflow-hidden bg-gray-50 text-gray-900","children":["$","$L5",null,{"children":["$","$L6",null,{"children":[["$","$L7",null,{}],["$","main",null,{"className":"flex-1 overflow-hidden","children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]]}]}]}]}]],null],null],["$L8",null]]]]
|
|
8
8
|
8:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"HunterMate 采集仪表盘"}],["$","meta","3",{"name":"description","content":"HunterMate 采集/解析/入库仪表盘"}]]
|
|
9
9
|
1:null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/8f3c454cab3414d0.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9cebd25e322e2cd7.js"/><script src="/_next/static/chunks/a7067448-3f2b194cfadb91fb.js" async=""></script><script src="/_next/static/chunks/935-12f1084f0e18c962.js" async=""></script><script src="/_next/static/chunks/main-app-
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/8f3c454cab3414d0.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9cebd25e322e2cd7.js"/><script src="/_next/static/chunks/a7067448-3f2b194cfadb91fb.js" async=""></script><script src="/_next/static/chunks/935-12f1084f0e18c962.js" async=""></script><script src="/_next/static/chunks/main-app-5e9b0602f99fef72.js" async=""></script><script src="/_next/static/chunks/app/team/insights/page-5385dcd363f6e0cd.js" async=""></script><script src="/_next/static/chunks/603-765c4fa1ed757ca5.js" async=""></script><script src="/_next/static/chunks/589-5bb84ab8060e960b.js" async=""></script><script src="/_next/static/chunks/187-48dc1acca97c62ba.js" async=""></script><script src="/_next/static/chunks/app/layout-1e492ed8c639edf5.js" async=""></script><title>HunterMate 采集仪表盘</title><meta name="description" content="HunterMate 采集/解析/入库仪表盘"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="flex h-screen overflow-hidden bg-gray-50 text-gray-900"><div class="flex h-screen w-screen flex-col items-center justify-center bg-gray-50"><span class="hm-spinner" aria-label="加载中"></span><div class="mt-4 text-sm text-gray-400">正在加载,请稍候…</div></div><script src="/_next/static/chunks/webpack-9cebd25e322e2cd7.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/8f3c454cab3414d0.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[76939,[],\"\"]\n4:I[21670,[\"14\",\"static/chunks/app/team/insights/page-5385dcd363f6e0cd.js\"],\"default\"]\n5:I[74268,[],\"\"]\n6:I[81050,[],\"\"]\n7:I[15214,[\"603\",\"static/chunks/603-765c4fa1ed757ca5.js\",\"589\",\"static/chunks/589-5bb84ab8060e960b.js\",\"187\",\"static/chunks/187-48dc1acca97c62ba.js\",\"185\",\"static/chunks/app/layout-1e492ed8c639edf5.js\"],\"AuthGate\"]\n8:I[67188,[\"603\",\"static/chunks/603-765c4fa1ed757ca5.js\",\"589\",\"static/chunks/589-5bb84ab8060e960b.js\",\"187\",\"static/chunks/187-48dc1acca97c62ba.js\",\"185\",\"static/chunks/app/layout-1e492ed8c639edf5.js\"],\"AntdProvider\"]\n9:I[9424,[\"603\",\"static/chunks/603-765c4fa1ed757ca5.js\",\"589\",\"static/chunks/589-5bb84ab8060e960b.js\",\"187\",\"static/chunks/187-48dc1acca97c62ba.js\",\"185\",\"static/chunks/app/layout-1e492ed8c639edf5.js\"],\"SystemSidebar\"]\nb:I[62319,[],\"\"]\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"oL0Npvxb5lQa5gycVwoMf\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"team\",\"insights\"],\"initialTree\":[\"\",{\"children\":[\"team\",{\"children\":[\"insights\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"team\",{\"children\":[\"insights\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{}],null],null],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"team\",\"children\",\"insights\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"team\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8f3c454cab3414d0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"children\":[\"$\",\"body\",null,{\"className\":\"flex h-screen overflow-hidden bg-gray-50 text-gray-900\",\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L8\",null,{\"children\":[[\"$\",\"$L9\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-hidden\",\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"HunterMate 采集仪表盘\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"HunterMate 采集/解析/入库仪表盘\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
5:I[15214,["603","static/chunks/603-765c4fa1ed757ca5.js","589","static/chunks/589-5bb84ab8060e960b.js","187","static/chunks/187-48dc1acca97c62ba.js","185","static/chunks/app/layout-1e492ed8c639edf5.js"],"AuthGate"]
|
|
5
5
|
6:I[67188,["603","static/chunks/603-765c4fa1ed757ca5.js","589","static/chunks/589-5bb84ab8060e960b.js","187","static/chunks/187-48dc1acca97c62ba.js","185","static/chunks/app/layout-1e492ed8c639edf5.js"],"AntdProvider"]
|
|
6
6
|
7:I[9424,["603","static/chunks/603-765c4fa1ed757ca5.js","589","static/chunks/589-5bb84ab8060e960b.js","187","static/chunks/187-48dc1acca97c62ba.js","185","static/chunks/app/layout-1e492ed8c639edf5.js"],"SystemSidebar"]
|
|
7
|
-
0:["
|
|
7
|
+
0:["oL0Npvxb5lQa5gycVwoMf",[[["",{"children":["team",{"children":["insights",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",{"children":["team",{"children":["insights",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{}],null],null],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","team","children","insights","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","team","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8f3c454cab3414d0.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"zh-CN","children":["$","body",null,{"className":"flex h-screen overflow-hidden bg-gray-50 text-gray-900","children":["$","$L5",null,{"children":["$","$L6",null,{"children":[["$","$L7",null,{}],["$","main",null,{"className":"flex-1 overflow-hidden","children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]]}]}]}]}]],null],null],["$L8",null]]]]
|
|
8
8
|
8:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"HunterMate 采集仪表盘"}],["$","meta","3",{"name":"description","content":"HunterMate 采集/解析/入库仪表盘"}]]
|
|
9
9
|
1:null
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2e0cb9c2-2f61-4a2f-b756-3d78ea51c686",e._sentryDebugIdIdentifier="sentry-dbid-2e0cb9c2-2f61-4a2f-b756-3d78ea51c686")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[686],{49616:function(e,t,a){a.d(t,{I:function(){return x},v:function(){return p}});var s=a(72835),n=a(60635),r=a(74431),o=a(84704);function l(e){let t=null!=e?e:"<职位管理页 tabId>";return["公共纪律(全文 SSOT: hunter-mate-harness .harness/workflows/subagent-job-platform-ops.md,先读再动手):",'0. 浏览器操作只走 hunter-mate extension *;控制命令 JSON 显式带 "__tab":"'.concat(t,'"(cp.tab.* 子命令用 "tab":"').concat(t,'");录制 title 带 job-ops- 前缀;执行环境带写护栏先切 SINGLE_REPO_DEV。'),"1. 风控红线:cp.eval 读 location.href/document.title 判页面存活;CAPTCHA/登录墙/空白杀 → 立即 halt 当日不重试;eval ≥2s、字段填写 ≥1.5s、切页 3-5s(human-paced,平台数值以 risk-profile 为准)。","2. 回写契约:结果必须调 hunter-mate API 落库并 GET 读回;只操作不落库=未完成。凭证零落地:平台账号密码不入库,note 只记别名。"].join("\n")}function d(e,t,a,s,n){return["[hunter-mate] ".concat(e),"","职位案件: #".concat(t," ").concat(a,"(平台槽位: ").concat(s,")"),"API 基址: http://127.0.0.1:34571",...n?["平台页 tab: ".concat(n,"(已开则定向复用;未开用 hunter-mate extension 后台新开,禁 CDP 附加导航)")]:[],""].join("\n")}function c(e){return[d("收简历:到平台收件箱收取本案职位简历,落人才库并回写简历流水。",e.jobCaseId,e.title,e.platform),l(),"","执行步骤:","1. 前置:GET /job-cases/".concat(e.jobCaseId,"/postings 确认 ").concat(e.platform," 槽位 status=published(未发布无收件箱)。"),"2. 打开收件箱(猎聘=职位详情页 /job/gethjobdetail?hjobId=<id> 内待处理简历区;入口结构按 flows/resume-collect.yaml,标 recon-pending 处先只读 recon 固化再提取)。","3. 逐份提取:候选人姓名/接收时间;详情走既有 talent adapter 落人才库,命中已有人才复用 talentEntityId(dedup 结论),不重复建档。","4. 回写:先 GET /job-cases/".concat(e.jobCaseId,"/applications 查重(同人同案跳过),再 POST /job-cases/").concat(e.jobCaseId,'/applications {name, platform:"').concat(e.platform,'", talentEntityId?, note};单平台单次 ≤20 份;回写后 GET 读回确认。'),"5. 只读平台:沟通/回复/下载等任何平台写操作不在范围。"].join("\n")}let i={draft:{label:"待发布",cls:"bg-gray-100 text-gray-500"},published:{label:"已发布",cls:"bg-emerald-100 text-emerald-700"},offline:{label:"已下线",cls:"bg-gray-200 text-gray-400"}},u=["job","job-list","job-detail"];function p(e){let{platform:t,sm:a}=e,n=(0,o.mS)(t);return(0,s.jsx)("span",{title:t,className:"inline-flex items-center justify-center rounded bg-[color:var(--brand-soft)] font-semibold ".concat(a?"h-3.5 w-3.5 text-[8px]":"h-4 w-4 text-[9px]"),style:{color:n.fg},children:n.label})}function b(e){let{text:t,label:a,primary:r}=e,[o,l]=(0,n.useState)(!1);return(0,s.jsx)("button",{type:"button",onClick:async()=>{try{await navigator.clipboard.writeText(t)}catch(a){let e=document.createElement("textarea");e.value=t,document.body.appendChild(e),e.select(),document.execCommand("copy"),e.remove()}l(!0),window.setTimeout(()=>l(!1),2e3)},className:r?"rounded bg-blue-600 px-2 py-1 text-xs text-white hover:bg-blue-700":"rounded border border-blue-300 px-1.5 py-0.5 text-xs text-blue-700 hover:bg-blue-50",children:o?"已复制 ✓":a})}function x(e){var t,a;let{jobCaseId:o,caseTitle:x,canOperate:m=!0}=e,[g,h]=(0,n.useState)([]),[y,f]=(0,n.useState)([]),[j,v]=(0,n.useState)(new Set),[N,w]=(0,n.useState)(""),[C,S]=(0,n.useState)([]),[k,I]=(0,n.useState)(!1),[E,A]=(0,n.useState)(""),[T,P]=(0,n.useState)(null),[_,D]=(0,n.useState)(null),[O,G]=(0,n.useState)(""),[H,J]=(0,n.useState)([]),[U,L]=(0,n.useState)(!1),[R,M]=(0,n.useState)([]),[q,K]=(0,n.useState)(""),[V,W]=(0,n.useState)(""),[z,B]=(0,n.useState)(""),F=(0,n.useCallback)(async()=>{try{h(await (0,r.aA)("/job-cases/".concat(o,"/postings")))}catch(e){}try{M(await (0,r.aA)("/job-cases/".concat(o,"/applications")))}catch(e){}},[o]);(0,n.useEffect)(()=>{F(),(async()=>{try{S(await (0,r.aA)("/job-postings/sources"))}catch(e){}})(),(async()=>{try{let e=await (0,r.aA)("/adapters/capabilities");f(e.platforms)}catch(e){}})()},[F]);let Q=(0,n.useCallback)(e=>{let t=e.trim().toLowerCase();return y.find(e=>e.platform===t||t.includes(e.platform)||e.platform.includes(t))},[y]),X=(0,n.useCallback)(async(e,t,a)=>{I(!0),A("");try{await (0,r.aA)(e,{method:t,headers:{"Content-Type":"application/json"},body:null!=a?JSON.stringify(a):void 0})}catch(e){return I(!1),A("操作失败(服务端拒绝或网络错误)"),!1}return I(!1),await F(),!0},[F]),Y=(0,n.useCallback)(async()=>{try{let e=await (0,r.aA)("/entities?type=job&limit=10&q=".concat(encodeURIComponent(O.trim())));J(e.items)}catch(e){J([]),A("搜索失败,请重试")}},[O]),Z=(0,n.useCallback)(async(e,t)=>{("new"===e?await X("/job-cases/".concat(o,"/postings"),"POST",{platform:t.source,jobPostingId:t.id,status:"published"}):await X("/job-case-postings/".concat(e),"PATCH",{jobPostingId:t.id,status:"published"}))&&(D(null),J([]),G(""))},[X,o]),$=(0,n.useMemo)(()=>{let e=new Set;for(let t of g)e.add(t.platform);for(let t of R)t.platform&&e.add(t.platform);return Array.from(e).sort()},[g,R]),ee=$.includes(q)?q:null!==(t=$[0])&&void 0!==t?t:"",et=(0,n.useMemo)(()=>R.filter(e=>{var t;return(null!==(t=e.platform)&&void 0!==t?t:"")===ee}),[R,ee]),ea=g.filter(e=>j.has(e.id)).map(e=>e.platform);return(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("div",{className:"flex items-center gap-2 text-xs text-gray-400",children:(0,s.jsx)("span",{children:"发布是 agent 平台适配能力:勾选平台后复制任务 prompt 给 agent 执行;手动操作收在「手动」里。"})}),E?(0,s.jsx)("div",{className:"text-xs text-red-500",children:E}):null,(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(b,{primary:!0,label:"让Agent同步检查".concat(ea.length?"(".concat(ea.join("、"),")"):""),text:[d("职位已发布同步检查:到平台职位管理页核对本案职位是否已发布,回写槽位状态。",(a={jobCaseId:o,title:x,platforms:ea.length?ea:["<勾选平台>"]}).jobCaseId,a.title,a.platforms.join("、"),a.tabId),l(a.tabId),"","执行步骤:","1. GET /job-cases/".concat(a.jobCaseId,"/postings 读目标平台槽位(须有 pid;无槽位先 POST 建 draft 槽位)。"),"2. 打开平台职位管理页(猎聘=https://h.liepin.com/job/showlistpage?jobStatus=11);解析优先走 adapter:录制该页 → recordings show <sid> --parse(jobs-list adapter);adapter 未就绪按 flows/job-sync.yaml recon 选择器只读提取(标 assumed)。","3. 标题归一化比对(去空白/全半角/大小写;企业名包装差异忽略):命中 → 取平台行 id+状态;同标题多行取最新,note 记全部候选。",'4. 回写:命中 → PATCH /job-case-postings/<pid> {status:"published", note:"synced <date> 平台行=<id> 平台状态=<status>"};未命中 → note 记"未找到发布 <date>",status 保持 draft。',"5. 平台有而本地 job_postings 无 → 触发 adapter parse 落库后再补链接;全部回写后 GET 读回确认。"].join("\n")}),(0,s.jsx)("span",{className:"text-xs text-gray-400",children:ea.length?"把 prompt 贴给 agent,回写后刷新可见":"先勾选下方平台槽位"})]}),(0,s.jsx)("div",{className:"space-y-1.5",children:0===g.length?(0,s.jsx)("div",{className:"rounded border border-dashed border-gray-200 p-4 text-center text-xs text-gray-400",children:"还没有平台槽位,先在下方添加"}):g.map(e=>{var t,a;let n=Q(e.platform),r=!!n&&n.rules>0,g=!!n&&n.pageClasses.some(e=>u.some(t=>e.startsWith(t)));return(0,s.jsxs)("div",{className:"flex items-center gap-2 rounded border border-gray-200 px-2.5 py-1.5 text-sm",children:[(0,s.jsx)("input",{type:"checkbox",checked:j.has(e.id),onChange:t=>{let a=new Set(j);t.target.checked?a.add(e.id):a.delete(e.id),v(a)},title:"勾选后纳入同步检查"}),(0,s.jsx)(p,{platform:e.platform}),(0,s.jsx)("span",{className:"w-24 truncate font-medium text-gray-800",children:e.platform}),(0,s.jsx)("span",{className:"rounded px-1.5 py-0.5 text-[10px] ".concat(r?"bg-blue-50 text-blue-600":"bg-gray-100 text-gray-400"),title:n?"adapter rules=".concat(n.rules," pageClasses=").concat(n.pageClasses.join(",")):"adapter 未登记",children:r?g?"适配\xb7职位":"适配\xb7人才":"未适配"}),(0,s.jsx)("span",{className:"rounded px-1.5 py-0.5 text-xs ".concat(i[e.status].cls),children:i[e.status].label}),e.posting?(0,s.jsxs)("a",{href:e.posting.sourceUrl,target:"_blank",rel:"noreferrer",className:"min-w-0 flex-1 truncate text-xs text-blue-600 hover:underline",title:e.posting.sourceUrl,children:[null!==(t=e.posting.title)&&void 0!==t?t:"(无标题)",e.posting.company?" \xb7 ".concat(e.posting.company):""]}):(0,s.jsx)("span",{className:"flex-1 text-xs text-gray-300",children:"未链接发布"}),e.publishedAt?(0,s.jsx)("span",{className:"text-xs text-gray-400",children:e.publishedAt.slice(0,10)}):null,(0,s.jsxs)("span",{className:"flex items-center gap-1 text-xs",children:["published"!==e.status?(0,s.jsx)(b,{label:"让Agent发布",text:[d("发布职位(谨慎级写操作,费用敏感):代用户在平台发布本职位,查重前置(禁止重复发布)→资格前置→recon→填单→自检→提交→回写。",(a={jobCaseId:o,title:x,platform:e.platform}).jobCaseId,a.title,a.platform,a.tabId),l(a.tabId),"","执行步骤:","1. 资格硬闸门:读平台发布资格(猎聘=职位管理页顶《猎头诚信联盟承诺函》审核状态+账户资源配额);不足 → halt 报告,不绕过。",'2. 查重硬闸门(发布可能产生费用,禁止重复发布):先做同步检查同款列表核对(adapter parse 优先,标题归一化比对本案职位);命中已发布/审核中 → 立即 halt,回报用户裁定"再发重复 vs 旧职位修改再发",不得自行决定;未命中须把比对证据(行数+标题集合)写进汇报。',"2b. 费用意识:发布前 recon 平台收费规则(不可见标 assumed 并声明);同平台同职位只发一次,再发/多平台代发须用户逐个授权。","3. 表单 recon:打开发职位页(猎聘=职位管理「发职位」入口,禁直达表单 URL),按 flows/job-publish.yaml 字段清单逐项读控件;recon-pending 项首跑只 recon 不提交,补录 flow 后再执行。","4. 填单(JobCase #".concat(a.jobCaseId,"):").concat(a.jd?"JD 摘要:".concat(a.jd):"职位信息以 JobCase 详情为准",";每字段间隔 ≥2s,eval 间隔 ≥3s(表单页红线)。"),"5. 提交前自检:cp.eval 读表单全部已填值与期望逐字段比对;提交前状态录一次(录制最后一镜)。","6. 提交+读回:点击提交 → 等审核态/结果文案 → 读平台状态;提交步出现 CAPTCHA/二次验证 → 立即 halt 报告人工,绝不重试提交。",'7. 回写:PATCH /job-case-postings/<pid> {status:"published", note:"published <date> 平台状态=<审核中|已发布|失败原因原文> 查重证据=<行数+标题>"};失败完整回写原因;等平台列表可见后走同步检查补链接。'].join("\n")}):(0,s.jsx)(b,{label:"让Agent收简历",text:c({jobCaseId:o,title:x,platform:e.platform})}),m?(0,s.jsx)("button",{type:"button",onClick:()=>P(T===e.id?null:e.id),className:"rounded border border-gray-200 px-1.5 py-0.5 text-gray-400 hover:bg-gray-50",children:"手动"}):null]}),T===e.id&&m?(0,s.jsxs)("span",{className:"flex items-center gap-1 text-xs",children:["published"!==e.status?(0,s.jsx)("button",{type:"button",disabled:k,onClick:()=>void X("/job-case-postings/".concat(e.id),"PATCH",{status:"published"}),className:"rounded border border-emerald-300 px-1.5 py-0.5 text-emerald-700 hover:bg-emerald-50",children:"标记已发布"}):(0,s.jsx)("button",{type:"button",disabled:k,onClick:()=>void X("/job-case-postings/".concat(e.id),"PATCH",{status:"offline"}),className:"rounded border border-gray-300 px-1.5 py-0.5 text-gray-500 hover:bg-gray-50",children:"下线"}),(0,s.jsx)("button",{type:"button",disabled:k,onClick:()=>{D(_===e.id?null:e.id),G(""),J([])},className:"rounded border border-blue-300 px-1.5 py-0.5 text-blue-700 hover:bg-blue-50",children:e.posting?"换链接":"链接发布"}),(0,s.jsx)("button",{type:"button",disabled:k,onClick:()=>void X("/job-case-postings/".concat(e.id),"DELETE"),className:"rounded border border-gray-200 px-1.5 py-0.5 text-gray-400 hover:bg-red-50 hover:text-red-500",children:"删除槽位"})]}):null]},e.id)})}),null!=_&&m?(0,s.jsxs)("div",{className:"rounded border border-blue-200 bg-blue-50/50 p-2",children:[(0,s.jsxs)("div",{className:"flex gap-1.5",children:[(0,s.jsx)("input",{type:"text",value:O,onChange:e=>G(e.target.value),onKeyDown:e=>"Enter"===e.key&&void Y(),placeholder:"按标题/公司搜索解析库里的职位发布…",className:"flex-1 rounded border border-gray-300 px-2 py-1 text-xs outline-none focus:border-blue-500"}),(0,s.jsx)("button",{type:"button",onClick:()=>void Y(),className:"rounded bg-blue-600 px-2 py-1 text-xs text-white hover:bg-blue-700",children:"搜索"})]}),(0,s.jsxs)("div",{className:"mt-1.5 space-y-1",children:[H.map(e=>{var t;return(0,s.jsxs)("button",{type:"button",onClick:()=>void Z(_,e),className:"block w-full truncate rounded bg-white px-2 py-1 text-left text-xs hover:bg-blue-100",title:e.sourceUrl,children:[(0,s.jsx)(p,{platform:e.source,sm:!0})," ",null!==(t=e.title)&&void 0!==t?t:"(无标题)",e.company?" \xb7 ".concat(e.company):""," ",(0,s.jsxs)("span",{className:"text-gray-400",children:["(",e.source,")"]})]},e.id)}),0===H.length&&O?(0,s.jsx)("div",{className:"text-xs text-gray-400",children:"无匹配,换个关键词"}):null]})]}):null,m?(0,s.jsxs)("div",{className:"flex items-center gap-1.5 border-t border-gray-100 pt-2",children:[(0,s.jsx)("input",{type:"text",list:"hm-known-platforms",value:N,onChange:e=>w(e.target.value),placeholder:"平台名(如 liepin.com / 拉勾)",className:"w-56 rounded border border-gray-300 px-2 py-1 text-xs outline-none focus:border-blue-500"}),(0,s.jsx)("datalist",{id:"hm-known-platforms",children:C.map(e=>(0,s.jsx)("option",{value:e},e))}),(0,s.jsx)("button",{type:"button",disabled:k||!N.trim(),onClick:()=>void X("/job-cases/".concat(o,"/postings"),"POST",{platform:N.trim()}).then(e=>e&&w("")),className:"rounded border border-gray-300 px-2 py-1 text-xs hover:bg-gray-50 disabled:opacity-40",children:"添加待发布"}),(0,s.jsx)("button",{type:"button",disabled:k||!N.trim(),onClick:()=>{D("new"),G(N.trim()),Y()},className:"rounded border border-blue-300 px-2 py-1 text-xs text-blue-700 hover:bg-blue-50 disabled:opacity-40",children:"添加并链接发布…"})]}):(0,s.jsx)("div",{className:"rounded border border-amber-100 bg-amber-50 px-2 py-1 text-xs text-amber-600",children:"仅该职位的 op/rs 可管理发布与简历,你可查看"}),(0,s.jsxs)("section",{className:"border-t border-gray-100 pt-3",children:[(0,s.jsxs)("div",{className:"mb-1.5 flex items-center justify-between",children:[(0,s.jsxs)("h3",{className:"text-sm font-medium text-gray-800",children:["收到的简历(",R.length,")"]}),ee?(0,s.jsx)(b,{label:"让Agent收简历",text:c({jobCaseId:o,title:x,platform:ee})}):null]}),$.length?(0,s.jsx)("div",{className:"mb-2 flex gap-1",children:$.map(e=>(0,s.jsxs)("button",{type:"button",onClick:()=>K(e),className:"flex items-center gap-1 rounded px-2 py-1 text-xs ".concat(ee===e?"bg-[color:var(--brand-soft)] font-medium text-[color:var(--brand-strong)]":"text-gray-500 hover:bg-gray-100"),children:[(0,s.jsx)(p,{platform:e,sm:!0}),e,(0,s.jsxs)("span",{className:"text-gray-400",children:["(",R.filter(t=>{var a;return(null!==(a=t.platform)&&void 0!==a?a:"")===e}).length,")"]})]},e))}):(0,s.jsx)("div",{className:"rounded border border-dashed border-gray-200 p-3 text-center text-xs text-gray-400",children:"还没有平台槽位;添加平台并发布后,按平台收简历"}),ee?0===et.length?(0,s.jsxs)("div",{className:"rounded border border-dashed border-gray-200 p-3 text-center text-xs text-gray-400",children:[ee," 还没有收到简历"]}):(0,s.jsx)("div",{className:"space-y-1",children:et.map(e=>{var t,a;return(0,s.jsxs)("div",{className:"flex items-center gap-2 rounded border border-gray-100 px-2 py-1 text-xs",children:[(0,s.jsx)("span",{className:"font-medium text-gray-800",children:e.name}),(null===(t=e.posting)||void 0===t?void 0:t.title)?(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate text-gray-400",children:e.posting.title}):(0,s.jsx)("span",{className:"flex-1"}),e.note?(0,s.jsx)("span",{className:"text-gray-400",children:e.note}):null,(0,s.jsx)("span",{className:"text-gray-400",children:null===(a=e.receivedAt)||void 0===a?void 0:a.slice(0,10)}),m?(0,s.jsx)("button",{type:"button",disabled:k,onClick:()=>void X("/job-applications/".concat(e.id),"DELETE"),className:"text-gray-300 hover:text-red-500",children:"✕"}):null]},e.id)})}):null,m?(0,s.jsxs)("div",{className:"mt-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>L(!U),className:"text-xs text-gray-400 underline hover:text-gray-600",children:U?"收起手动录入":"手动录入简历(agent 不在场兜底)"}),U?(0,s.jsxs)("div",{className:"mt-1.5 flex items-center gap-1.5",children:[(0,s.jsx)("input",{type:"text",value:V,onChange:e=>W(e.target.value),placeholder:"候选人姓名",className:"w-36 rounded border border-gray-300 px-2 py-1 text-xs outline-none focus:border-blue-500"}),(0,s.jsxs)("span",{className:"text-xs text-gray-500",children:["平台=",(0,s.jsx)("b",{children:ee||"未选"})]}),(0,s.jsx)("input",{type:"text",value:z,onChange:e=>B(e.target.value),placeholder:"备注(可空)",className:"w-44 rounded border border-gray-300 px-2 py-1 text-xs outline-none focus:border-blue-500"}),(0,s.jsx)("button",{type:"button",disabled:k||!V.trim()||!ee,onClick:()=>void X("/job-cases/".concat(o,"/applications"),"POST",{name:V.trim(),platform:ee,note:z.trim()||void 0}).then(e=>{e&&(W(""),B(""))}),className:"rounded border border-gray-300 px-2 py-1 text-xs hover:bg-gray-50 disabled:opacity-40",children:"录入"})]}):null]}):null]})]})}},88801:function(e,t,a){a.d(t,{hm:function(){return c},mJ:function(){return u},oU:function(){return i}});var s=a(60635);let n="hm-view-mode",r=new Set;function o(){return"bd"===window.localStorage.getItem(n)?"bd":"delivery"}function l(e){return r.add(e),()=>r.delete(e)}function d(e){"undefined"!=typeof document&&(document.documentElement.dataset.view=e)}function c(e){window.localStorage.setItem(n,e),d(e),r.forEach(e=>e())}function i(){d(o())}function u(e){let t=(0,s.useSyncExternalStore)(l,o,()=>"delivery");return null!=e?e:t}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7bc2b4a1-efa8-46e9-a734-42a9baece774",e._sentryDebugIdIdentifier="sentry-dbid-7bc2b4a1-efa8-46e9-a734-42a9baece774")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[109],{74843:function(e,t,s){Promise.resolve().then(s.bind(s,5311))},5311:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return X}});var l=s(72835),a=s(59659),n=s(60635),r=s(27473),i=s(74431),d=s(8448),c=s(94518),o=s(63718),u=s(86777),m=s(27828),x=s(26119),h=s(93464),p=s(65777),b=s(58574),g=s(38119),y=s(27485),v=s(6443),j=s(33365),f=s(78606),N=s(59998),k=s(31595),w=s(74435),S=s(67002),C=s(21717);let I=[{hours:24,label:"1 天"},{hours:72,label:"3 天"},{hours:168,label:"7 天"},{hours:720,label:"30 天"}];function A(e){var t;let s,{jobCaseId:a,onClose:r}=e,[d,c]=(0,n.useState)(null),[o,u]=(0,n.useState)("tenant"),[m,x]=(0,n.useState)(new Set),[h,p]=(0,n.useState)(168),[b,g]=(0,n.useState)(""),[y,v]=(0,n.useState)(!1),[j,f]=(0,n.useState)(null),[N,k]=(0,n.useState)(null),[w,C]=(0,n.useState)(!1);async function A(){v(!0),f(null);try{let e=await (0,i.aA)("/shares",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jobCaseId:a,scope:"users"===o?{type:"users",hmUserIds:Array.from(m)}:{type:"tenant"},ttlHours:h,note:b.trim()||void 0})});if(!(null==e?void 0:e.token)){f("创建失败:未登录云端账号 / 云服务不可达 / 该职位未同步上云");return}k(e)}catch(e){f("创建失败:未登录云端账号 / 云服务不可达 / 该职位未同步上云")}finally{v(!1)}}(0,n.useEffect)(()=>{let e=()=>{(async()=>{try{let e=await (0,i.aA)("/team/members");c(Array.isArray(e.items)?e.items:[])}catch(e){c([])}})()};return e(),(0,S.Lc)(e)},[]);let O=N?(t=N.urlPath,"".concat(window.location.origin).concat(t)):null;return s=null===d?(0,l.jsx)("div",{className:"text-xs text-gray-400",children:"加载同事目录…(未登录云端账号时为空)"}):d.length?d.map(e=>(0,l.jsxs)("label",{className:"flex items-center gap-2 py-1 text-sm",children:[(0,l.jsx)("input",{type:"checkbox",checked:m.has(e.hmUserId),onChange:t=>{let s=new Set(m);t.target.checked?s.add(e.hmUserId):s.delete(e.hmUserId),x(s)}}),(0,l.jsx)("span",{children:e.name}),(0,l.jsx)("span",{className:"text-xs text-gray-400",children:e.email})]},e.hmUserId)):(0,l.jsx)("div",{className:"text-xs text-gray-400",children:"暂无公司租户同事"}),(0,l.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40",onClick:r,children:(0,l.jsxs)("div",{className:"w-[520px] max-w-[92vw] rounded-lg bg-white p-5 shadow-xl",onClick:e=>e.stopPropagation(),children:[(0,l.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,l.jsxs)("h3",{className:"text-base font-semibold",children:["分享职位推荐(职位 #",a,")"]}),(0,l.jsx)("button",{onClick:r,className:"text-gray-400 hover:text-gray-600",children:"✕"})]}),N?(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"mb-2 rounded bg-emerald-50 px-3 py-2 text-sm text-emerald-800",children:["分享已创建,有效期至 ",new Date(N.expiresAt).toLocaleString()]}),(0,l.jsx)("div",{className:"mb-1 text-xs text-gray-500",children:"把链接发给同事(对方在自己本地 hm 打开):"}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("input",{readOnly:!0,value:null!=O?O:"",className:"flex-1 rounded border border-gray-300 px-2 py-1.5 font-mono text-xs",onFocus:e=>e.target.select()}),(0,l.jsx)("button",{onClick:()=>{O&&navigator.clipboard.writeText(O).then(()=>{C(!0),setTimeout(()=>C(!1),2500)})},className:"rounded bg-blue-600 px-3 py-1.5 text-xs text-white hover:bg-blue-700",children:w?"已复制 ✓":"复制"})]}),(0,l.jsx)("div",{className:"mt-4 text-right",children:(0,l.jsx)("button",{onClick:r,className:"rounded border border-gray-300 px-4 py-1.5 text-sm hover:bg-gray-50",children:"完成"})})]}):(0,l.jsxs)("div",{className:"space-y-3",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("div",{className:"mb-1 text-xs font-medium text-gray-600",children:"分享范围"}),(0,l.jsxs)("label",{className:"mr-4 text-sm",children:[(0,l.jsx)("input",{type:"radio",checked:"tenant"===o,onChange:()=>u("tenant")})," 租户内所有同事"]}),(0,l.jsxs)("label",{className:"text-sm",children:[(0,l.jsx)("input",{type:"radio",checked:"users"===o,onChange:()=>u("users")})," 指定同事"]}),"users"===o?(0,l.jsx)("div",{className:"mt-2 max-h-36 overflow-auto rounded border border-gray-200 p-2",children:s}):null]}),(0,l.jsxs)("div",{children:[(0,l.jsx)("div",{className:"mb-1 text-xs font-medium text-gray-600",children:"有效期"}),(0,l.jsx)("select",{value:h,onChange:e=>p(Number(e.target.value)),className:"rounded border border-gray-300 px-2 py-1 text-sm",children:I.map(e=>(0,l.jsx)("option",{value:e.hours,children:e.label},e.hours))})]}),(0,l.jsxs)("div",{children:[(0,l.jsx)("div",{className:"mb-1 text-xs font-medium text-gray-600",children:"备注(可选,给查看者的说明)"}),(0,l.jsx)("input",{value:b,onChange:e=>g(e.target.value),maxLength:200,placeholder:"例如:这 10 位是本周重点推荐,请 op 优先跟进",className:"w-full rounded border border-gray-300 px-2 py-1.5 text-sm"})]}),j?(0,l.jsx)("div",{className:"text-xs text-red-600",children:j}):null,(0,l.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,l.jsx)("button",{onClick:r,className:"rounded border border-gray-300 px-4 py-1.5 text-sm hover:bg-gray-50",children:"取消"}),(0,l.jsx)("button",{onClick:()=>void A(),disabled:y||"users"===o&&!m.size,className:"rounded bg-blue-600 px-4 py-1.5 text-sm text-white hover:bg-blue-700 disabled:opacity-40",children:y?"创建中…":"生成分享链接"})]})]})]})})}let O=null;function T(e,t,s){return(0,i.aA)(e,{method:t,headers:{"Content-Type":"application/json"},body:null!=s?JSON.stringify(s):void 0})}let P={create:"建档",move:"阶段迁移",form:"保存表单",invite:"记录邀请",invite_approved:"批准邀请",note:"备注",delete:"移出流程"};function z(e){return(0,l.jsx)(b.Z,{children:(0,l.jsx)(E,{...e})})}function E(e){var t,s,a,r,c;let{jobCaseId:o,canOperate:u=!0}=e,{message:x}=b.Z.useApp(),[h,p]=(0,n.useState)(O),[I,z]=(0,n.useState)("recommended"),[E,Z]=(0,n.useState)([]),[U,D]=(0,n.useState)({}),[L,_]=(0,n.useState)(null),[F,M]=(0,n.useState)({}),[B,J]=(0,n.useState)(!1),[R,q]=(0,n.useState)(new Set),[H,W]=(0,n.useState)(new Set),[K,Y]=(0,n.useState)(null),[G,Q]=(0,n.useState)(!1),[V,X]=(0,n.useState)([]),[$,ee]=(0,n.useState)(o),[et,es]=(0,n.useState)(""),[el,ea]=(0,n.useState)(!1),[en,er]=(0,n.useState)(null),[ei,ed]=function(){let[e,t]=(0,n.useState)(null);return[e,(0,n.useCallback)((e,s)=>{navigator.clipboard.writeText(s).then(()=>{t(e),setTimeout(()=>t(t=>t===e?null:t),2500)})},[])]}(),[ec,eo]=(0,n.useState)(!1),[eu]=g.Z.useForm(),[em,ex]=(0,n.useState)(null);(0,n.useEffect)(()=>{if(O)return;let e=!0,t=()=>{O||(0,i.aA)("/recommendations/meta").then(t=>{t&&e&&(O=t,p(t))}).catch(()=>{})};t();let s=(0,S.Lc)(t);return()=>{e=!1,s()}},[h]);let eh=(0,n.useMemo)(()=>{var e;return null!==(e=null==h?void 0:h.stages.map(e=>e.key))&&void 0!==e?e:[]},[h]),ep=(0,n.useCallback)(async()=>{J(!0);try{var e;let t=await (0,i.aA)("/job-cases/".concat(o,"/recommendations"));Z(t.items),D(null!==(e=t.counts)&&void 0!==e?e:{}),q(new Set)}catch(e){x.error("列表刷新失败,请手动刷新页面")}finally{J(!1)}},[o,x]);(0,n.useEffect)(()=>{z("recommended"),Y(null),_(null),ep()},[ep]),(0,n.useEffect)(()=>{"matched"===I&&null===L&&(async()=>{var e,t;let[s,l]=await Promise.all([(0,i.aA)("/matching/jobs/".concat(o,"/talents")).catch(()=>[]),(0,i.aA)("/talent-portraits").catch(()=>[])]);_(s);let a={};for(let s of l)a[s.id]=null!==(t=null===(e=s.identity)||void 0===e?void 0:e.displayName)&&void 0!==t?t:"(未命名)";M(a)})()},[I,L,o]);let eb=(0,n.useCallback)(async(e,t)=>{try{let s=await t();(null==s?void 0:s.prompt)&&ed(e,s.prompt)}catch(e){}},[ed]),eg=(e,t,s)=>{let l=new Set(e);l.has(t)?l.delete(t):l.add(t),s(l)},ey=e=>{var t;return e&&h?null!==(t=h.stageLabels[e])&&void 0!==t?t:e:""},ev=async()=>{var e;if(!et||!h)return;let t=null!==(e=h.formTemplates[et])&&void 0!==e?e:[],s={};if(t.length)try{s=await eu.validateFields()}catch(e){return}let l={};for(let e of t){let t="string"==typeof s[e.key]?s[e.key].trim():s[e.key];null!=t&&""!==t&&(l[e.key]=t)}let a=R.size;ea(!0),er(null);try{await T("/recommendations/batch-move","POST",{ids:Array.from(R),stage:et,jobCaseId:$,formData:Object.keys(l).length?l:void 0})}catch(e){ea(!1),x.error("移动失败,请重试");return}ea(!1),Q(!1),eu.resetFields(),x.success("已移动 ".concat(a," 人到「").concat(ey(et),"」")),await ep()},ej=async()=>{ea(!0),er(null);let e=Array.from(H),t=(await Promise.all(e.map(e=>T("/recommendations/adopt","POST",{matchId:e}).then(()=>!0,()=>!1)))).filter(e=>!e).length;ea(!1),W(new Set),await ep(),t&&x.warning("".concat(t," 个采纳失败,请重试"))},ef=async()=>{ee(o),es(""),eu.resetFields(),Q(!0);try{var e;let t=await (0,i.aA)("/job-cases?limit=200");X(null!==(e=t.items)&&void 0!==e?e:[])}catch(e){}};if(!h)return(0,l.jsx)("div",{className:"p-4 text-sm text-gray-400",children:"加载推荐流水线定义…"});let eN=[...h.stages.map(e=>{var t;return{key:e.key,label:"".concat(e.label,"(").concat(null!==(t=U[e.key])&&void 0!==t?t:0,")")}})];eN.splice(1,0,{key:"matched",label:"匹配人才(".concat(null!==(s=null==L?void 0:L.length)&&void 0!==s?s:"…",")")});let ek="matched"===I?[]:E.filter(e=>e.stage===I),ew=et&&null!==(a=h.formTemplates[et])&&void 0!==a?a:[];return(0,l.jsxs)("div",{children:[(0,l.jsx)(y.Z,{size:"small",activeKey:I,onChange:e=>{z(e),Y(null)},items:eN.map(e=>({key:e.key,label:e.label}))}),u?(0,l.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:["recommended"===I?(0,l.jsx)(v.ZP,{size:"small",color:"gold",variant:"solid",onClick:()=>void eb("recommend",()=>(0,i.aA)("/job-cases/".concat(o,"/recommend-prompt"))),children:"recommend"===ei?"已复制 ✓ 请发给 agent":"再推荐(复制 prompt)"}):null,"matched"===I?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(v.ZP,{size:"small",color:"gold",variant:"solid",onClick:()=>void eb("match",()=>(0,i.aA)("/job-cases/".concat(o,"/match-prompt"))),children:"match"===ei?"已复制 ✓ 请发给 agent":"打分分析推荐(复制 prompt)"}),(0,l.jsxs)(v.ZP,{size:"small",color:"green",variant:"solid",disabled:!H.size||el,onClick:()=>void ej(),children:["采纳为推荐(",H.size,")"]})]}):null,"pending_invite"===I&&R.size?(0,l.jsx)(v.ZP,{size:"small",color:"blue",variant:"solid",onClick:()=>void eb("invite",()=>T("/recommendations/invite-prompt","POST",{ids:Array.from(R)})),children:"invite"===ei?"已复制 ✓ 请发给 agent":"发送邀请(".concat(R.size,")")}):null,"invited"===I&&R.size?(0,l.jsx)(v.ZP,{size:"small",color:"blue",variant:"solid",onClick:()=>void eb("reply",()=>T("/recommendations/reply-check-prompt","POST",{ids:Array.from(R)})),children:"reply"===ei?"已复制 ✓ 请发给 agent":"检查回复(".concat(R.size,")")}):null,"matched"!==I&&R.size?(0,l.jsxs)(v.ZP,{size:"small",onClick:()=>void ef(),children:["移动到…(",R.size,")"]}):null,R.size||H.size?(0,l.jsx)(v.ZP,{size:"small",type:"text",onClick:()=>{q(new Set),W(new Set)},children:"清除选择"}):null,(0,l.jsx)(v.ZP,{size:"small",color:"purple",variant:"solid",className:"ml-auto",onClick:()=>eo(!0),children:"分享给同事"})]}):(0,l.jsx)("div",{className:"mb-3 rounded border border-amber-100 bg-amber-50 px-2 py-1 text-xs text-amber-600",children:"仅该职位的 op/rs 可操作推荐流程,你可查看"}),ec?(0,l.jsx)(A,{jobCaseId:o,onClose:()=>eo(!1)}):null,en?(0,l.jsx)("div",{className:"mb-2 text-xs text-red-500",children:en}):null,B?(0,l.jsx)("div",{className:"py-8 text-center text-sm text-gray-400",children:"加载中…"}):"matched"===I?(0,l.jsx)(function(e){return null===e.matches?(0,l.jsx)("div",{className:"py-8 text-center text-sm text-gray-400",children:"计算匹配中…"}):e.matches.length?(0,l.jsx)("div",{className:"space-y-2",children:e.matches.map(t=>{var s,a,n,r,i,d;return(0,l.jsxs)("div",{className:"rounded border border-gray-200 bg-white p-2",children:[(0,l.jsxs)("div",{className:"flex items-start gap-2",children:[e.canOperate?(0,l.jsx)(k.Z,{checked:e.selected.has(t.id),onChange:()=>e.onToggle(t.id),className:"mt-1"}):null,(0,l.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"font-medium text-gray-900",children:null!==(r=e.names[t.portraitId])&&void 0!==r?r:t.portraitId}),(0,l.jsxs)("span",{className:"rounded bg-emerald-100 px-1.5 py-0.5 text-xs text-emerald-700",children:[null!==(i=null===(s=t.scores)||void 0===s?void 0:s.overall)&&void 0!==i?i:"?","分"]}),t.humanFeedback?(0,l.jsx)("span",{className:"rounded bg-purple-100 px-1.5 py-0.5 text-xs text-purple-700",children:t.humanFeedback.isRecommended?"已采纳":"已排除"}):null]}),(0,l.jsx)("button",{onClick:()=>e.onExpand(t.id),className:"mt-0.5 text-xs text-blue-500 hover:underline",children:e.expanded===t.id?"收起":"AI 推荐理由"})]})]}),e.expanded===t.id?(0,l.jsxs)("div",{className:"mt-2 border-t border-gray-100 pt-2 text-xs text-gray-600",children:[null!==(d=null===(a=t.recommendation)||void 0===a?void 0:a.aiReason)&&void 0!==d?d:"(无推荐理由)",(null===(n=t.humanFeedback)||void 0===n?void 0:n.reason)?(0,l.jsxs)("div",{className:"mt-1 text-purple-600",children:["人工反馈:",t.humanFeedback.reason]}):null]}):null]},t.id)})}):(0,l.jsx)("div",{className:"py-8 text-center text-sm text-gray-400",children:"暂无人岗匹配数据"})},{matches:L,names:F,selected:H,onToggle:e=>eg(H,e,W),expanded:K,onExpand:e=>Y(K===e?null:e),canOperate:u}):0===ek.length?(0,l.jsxs)("div",{className:"py-8 text-center text-sm text-gray-400",children:["本阶段暂无人选","recommended"===I?",点上方「再推荐」让 agent 寻访":"","pending_invite"===I?",可在人才详情「加入推荐流程」":""]}):(0,l.jsx)("div",{className:"space-y-2",children:ek.map(e=>(0,l.jsx)(eS,{row:e,meta:h,checked:R.has(e.id),onToggle:()=>eg(R,e.id,q),expanded:K===e.id,onExpand:()=>Y(K===e.id?null:e.id),onChanged:ep,canOperate:u,stageLabelOf:ey,onOpenDrawer:()=>ex(e)},e.id))}),(0,l.jsx)(C.I,{entityId:null!==(r=null==em?void 0:em.entityId)&&void 0!==r?r:null,name:null!==(c=null==em?void 0:null===(t=em.snapshot)||void 0===t?void 0:t.name)&&void 0!==c?c:"(未命名)",open:null!==em,onClose:()=>ex(null)}),(0,l.jsx)(j.Z,{title:"批量移动(".concat(R.size," 人)"),open:G,onCancel:()=>Q(!1),onOk:()=>void ev(),okText:el?"移动中…":"确认移动",cancelText:"取消",confirmLoading:el,okButtonProps:{disabled:!et},destroyOnHidden:!0,width:480,children:(0,l.jsxs)(g.Z,{form:eu,layout:"vertical",preserve:!1,children:[(0,l.jsx)(g.Z.Item,{label:"目标职位",className:"mb-3",children:(0,l.jsx)(f.Z,{size:"small",value:$,onChange:e=>{ee(e),es("")},options:(()=>{let e=V.map(e=>({value:e.id,label:e.title||e.externalId}));return V.find(e=>e.id===o)||e.unshift({value:o,label:"当前职位"}),e})()})}),(0,l.jsx)(g.Z.Item,{label:"目标阶段(当前职位的当前阶段不可选)",className:"mb-3",children:(0,l.jsx)(f.Z,{size:"small",placeholder:"选择阶段…",value:et||void 0,onChange:e=>es(e),options:eh.filter(e=>!($===o&&e===I)).map(e=>({value:e,label:ey(e)}))})}),et?ew.length?(0,l.jsxs)("div",{className:"rounded border border-gray-100 bg-gray-50 p-3",children:[(0,l.jsxs)("div",{className:"mb-2 text-xs font-medium text-gray-600",children:["阶段表单\xb7",ey(et),"(将写入全部 ",R.size," 人)"]}),ew.map(e=>(0,l.jsx)(g.Z.Item,{name:e.key,label:e.label,className:"mb-2",rules:e.required?[{required:!0,message:"请填写".concat(e.label)}]:void 0,children:(0,l.jsx)(N.Z.TextArea,{rows:2,size:"small",placeholder:e.required?"必填":"选填"})},e.key))]}):(0,l.jsx)("div",{className:"rounded border border-gray-100 bg-gray-50 px-3 py-2 text-xs text-gray-400",children:"该阶段无需填写表单信息"}):null]},et||"no-stage")})]});function eS(e){var t,s,a,r,i,c,o,u,x,h,p,b,g,y,j,f,S,C;let I=e.row,A=null!==(x=e.meta.formTemplates[I.stage])&&void 0!==x?x:[],[O,z]=(0,n.useState)(!1),[E,Z]=(0,n.useState)({}),U=async()=>{var t;let s={},l=null!==(t=I.formData)&&void 0!==t?t:{};for(let[e,t]of Object.entries(E)){let a="string"==typeof t?t.trim():t;""===a||void 0===a?e in l&&(s[e]=null):l[e]!==a&&(s[e]=a)}for(let e of Object.keys(l))e in E||(s[e]=null);try{await T("/recommendations/".concat(I.id),"PATCH",Object.keys(s).length?{formData:s}:{})}catch(e){er("保存表单失败,请重试");return}z(!1),await e.onChanged()},D=async()=>{try{await T("/recommendations/".concat(I.id),"DELETE")}catch(e){er("移出流程失败,请重试");return}await e.onChanged()};return(0,l.jsxs)("div",{className:"rounded border border-gray-200 bg-white p-2",children:[(0,l.jsxs)("div",{className:"flex items-start gap-2",children:[e.canOperate?(0,l.jsx)(k.Z,{checked:e.checked,onChange:e.onToggle,className:"mt-1"}):null,(0,l.jsx)("button",{className:"min-w-0 flex-1 text-left",onClick:e.onExpand,children:(0,l.jsx)(m.h5,{name:null!==(h=null===(t=I.snapshot)||void 0===t?void 0:t.name)&&void 0!==h?h:"(未命名)",headline:null===(s=I.snapshot)||void 0===s?void 0:s.headline,aiReason:null!==(p=null===(a=I.scores)||void 0===a?void 0:a.aiReason)&&void 0!==p?p:null,overall:null!==(b=null===(i=I.scores)||void 0===i?void 0:null===(r=i.dimensions)||void 0===r?void 0:r.overall)&&void 0!==b?b:null,invitationChannel:null!==(g=null===(c=I.invitation)||void 0===c?void 0:c.channel)&&void 0!==g?g:null,stageLabel:e.stageLabelOf(I.stage),updatedAt:I.updatedAt,onNameClick:I.entityId?e.onOpenDrawer:void 0})}),e.canOperate?(0,l.jsx)(w.Z,{title:"把 ".concat(null!==(y=null===(o=I.snapshot)||void 0===o?void 0:o.name)&&void 0!==y?y:"(未命名)"," 移出推荐流程?"),description:"删除后不可恢复",okText:"确认移出",okButtonProps:{danger:!0},cancelText:"取消",onConfirm:()=>void D(),children:(0,l.jsx)("button",{className:"mt-1 text-xs text-gray-300 hover:text-red-500",title:"移出流程",children:"\xd7"})}):null]}),e.expanded?(0,l.jsxs)("div",{className:"mt-2 space-y-3 border-t border-gray-100 pt-2",children:[(0,l.jsxs)("section",{children:[(0,l.jsxs)("div",{className:"mb-1 flex items-center justify-between",children:[(0,l.jsxs)("h4",{className:"text-xs font-medium text-gray-700",children:[e.stageLabelOf(I.stage),"\xb7阶段表单"]}),O?(0,l.jsxs)("span",{className:"flex gap-2",children:[(0,l.jsx)(v.ZP,{size:"small",type:"primary",onClick:()=>void U(),children:"保存"}),(0,l.jsx)(v.ZP,{size:"small",onClick:()=>z(!1),children:"取消"})]}):e.canOperate?(0,l.jsx)(v.ZP,{size:"small",type:"link",onClick:()=>{var e;let t={...null!==(e=I.formData)&&void 0!==e?e:{}};for(let e of A)e.key in t||(t[e.key]="");Z(t),z(!0)},children:"编辑表单"}):null]}),O?(0,l.jsxs)("div",{className:"space-y-1.5",children:[Object.entries(E).map(e=>{var t,s;let[a,n]=e,r=null!==(s=null===(t=A.find(e=>e.key===a))||void 0===t?void 0:t.label)&&void 0!==s?s:a;return(0,l.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,l.jsx)("span",{className:"w-40 shrink-0 truncate text-gray-500",title:r,children:r}),(0,l.jsx)(N.Z,{size:"small",value:String(null!=n?n:""),onChange:e=>Z({...E,[a]:e.target.value}),className:"min-w-0 flex-1"}),(0,l.jsx)("button",{onClick:()=>{let e={...E};delete e[a],Z(e)},className:"text-gray-300 hover:text-red-500",children:"\xd7"})]},a)}),(0,l.jsx)(eC,{onAdd:(e,t)=>Z({...E,[e]:t}),existing:Object.keys(E)})]}):(0,l.jsxs)("dl",{className:"space-y-1 text-xs",children:[Object.entries(null!==(j=I.formData)&&void 0!==j?j:{}).length?Object.entries(null!==(f=I.formData)&&void 0!==f?f:{}).map(e=>{var t,s;let[a,n]=e;return(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)("dt",{className:"w-40 shrink-0 truncate text-gray-500",children:null!==(s=null===(t=A.find(e=>e.key===a))||void 0===t?void 0:t.label)&&void 0!==s?s:a}),(0,l.jsx)("dd",{className:"min-w-0 flex-1 whitespace-pre-wrap text-gray-800",children:String(n)})]},a)}):(0,l.jsx)("div",{className:"text-gray-400",children:"(表单为空)"}),(null===(u=I.invitation)||void 0===u?void 0:u.sentAt)?(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)("dt",{className:"w-40 shrink-0 text-gray-500",children:"邀请发送时间"}),(0,l.jsx)("dd",{className:"text-gray-800",children:(0,d.d3)(I.invitation.sentAt)})]}):null]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h4",{className:"mb-1 text-xs font-medium text-gray-700",children:"操作历史"}),(0,l.jsxs)("ol",{className:"space-y-1 text-xs text-gray-500",children:[[...null!==(S=I.history)&&void 0!==S?S:[]].reverse().map((t,s)=>{var a;return(0,l.jsxs)("li",{className:"flex flex-wrap gap-x-2",children:[(0,l.jsx)("span",{className:"text-gray-400",children:(0,d.d3)(t.at)}),(0,l.jsx)("span",{className:"text-gray-700",children:null!==(a=P[t.action])&&void 0!==a?a:t.action}),t.fromStage?(0,l.jsxs)("span",{children:[e.stageLabelOf(t.fromStage)," → ",e.stageLabelOf(t.toStage)]}):null,t.note?(0,l.jsxs)("span",{className:"text-gray-500",children:["\xb7 ",t.note]}):null,(0,l.jsxs)("span",{className:"text-gray-300",children:["by ",t.by]})]},s)}),(null!==(C=I.history)&&void 0!==C?C:[]).length?null:(0,l.jsx)("li",{className:"text-gray-400",children:"(暂无)"})]})]})]}):null]})}function eC(e){let{onAdd:t,existing:s}=e,[a,r]=(0,n.useState)(""),[i,d]=(0,n.useState)("");return(0,l.jsxs)("div",{className:"flex items-center gap-2 border-t border-dashed border-gray-200 pt-1.5 text-xs",children:[(0,l.jsx)(N.Z,{size:"small",value:a,onChange:e=>r(e.target.value),placeholder:"新字段名",className:"w-32"}),(0,l.jsx)(N.Z,{size:"small",value:i,onChange:e=>d(e.target.value),placeholder:"内容",className:"min-w-0 flex-1"}),(0,l.jsx)(v.ZP,{size:"small",onClick:()=>{let e=a.trim();!e||s.includes(e)||(t(e,i),r(""),d(""))},children:"加一行"})]})}}var Z=s(49616);let U=[{key:"active",label:"启动中",cls:"bg-emerald-100 text-emerald-700"},{key:"closed",label:"结束",cls:"bg-gray-300 text-gray-700"}],D=[{key:"op",label:"我是 op",cls:"bg-blue-100 text-blue-700"},{key:"rs",label:"我是 rs",cls:"bg-cyan-100 text-cyan-700"}],L=[{key:"recommended",label:"有推荐"},{key:"invite",label:"邀约中"},{key:"replied",label:"已回复"},{key:"to_client",label:"已推客户"},{key:"interview",label:"面试"},{key:"offer",label:"offer"},{key:"onboarding",label:"入职"}],_=["liepin","linkedin","lagou","zhaopin","51job","boss"];function F(e){var t,s;let l;let a=(null!==(t=e.folderPath)&&void 0!==t?t:"").split("/").filter(Boolean).filter(e=>!["job","jd","raw"].includes(e));return(l=e.title)&&!["job","jd","raw"].includes(l)?e.title:null!==(s=a.at(-1))&&void 0!==s?s:"职位 #".concat(e.id)}function M(e){let t=e.requirements;if(!t)return;let s=[t.company,t.location,t.salary].map(e=>"string"==typeof e?e.trim():"").filter(Boolean);return s.length?s.join(" \xb7 "):void 0}function B(){var e,t;let s=(0,r.useRouter)(),a=(0,r.useSearchParams)(),d=a.get("id"),[u,b]=(0,n.useState)({}),[g,y]=(0,n.useState)(new Set),[v,j]=(0,n.useState)(""),[k,w]=(0,n.useState)(""),[S,C]=(0,n.useState)(null),[I,A]=(0,n.useState)(!1),[O,T]=(0,n.useState)(!1),[P,z]=(0,n.useState)(0),{session:E,sync:Z}=(0,p.nu)(),B=null!==(e=null==E?void 0:E.hmUserId)&&void 0!==e?e:null,R=null!==(t=null==Z?void 0:Z.activeTenantId)&&void 0!==t?t:null,q=a.get("st")||"",H=a.get("rel")||"",W=a.get("cust")||"",K=a.get("stage")||"",Y=a.get("ch")||"",G=(0,n.useMemo)(()=>q.split(",").map(e=>e.trim()).filter(Boolean),[q]),Q=(0,n.useMemo)(()=>K?K.split(",").map(e=>e.trim()).filter(Boolean):[],[K]),V=(0,n.useMemo)(()=>Y?Y.split(",").map(e=>e.trim()).filter(Boolean):[],[Y]),X=!!(q||H||W||K||Y),$=(0,n.useMemo)(()=>H?H.split(",").map(e=>e.trim()).filter(Boolean):X?[]:["op","rs"],[H,X]),[ee,et]=(0,n.useState)(!1),[es,el]=(0,n.useState)(!1),ea=(0,n.useMemo)(()=>X||es||!ee?$:[],[X,es,ee,$]),[en,er]=(0,n.useState)({active:0,closed:0}),[ei,ed]=(0,n.useState)({}),[ec,eo]=(0,n.useState)({}),[eu,em]=(0,n.useState)({}),[ex,eh]=(0,n.useState)(!1),[ep,eb]=(0,n.useState)(""),[eg,ey]=(0,n.useState)(!1),[ev,ej]=(0,n.useState)(null),ef=(0,x.B)({deleteUrl:"/job-cases",label:"职位",onDeleted:()=>ek.refresh(),currentUserId:B}),eN=(0,n.useMemo)(()=>Array.from(ef.selectedIds),[ef.selectedIds]),ek=(0,h.k)({fetchPage:(0,n.useCallback)(async(e,t)=>{var s;let l=new URLSearchParams;l.set("q",k),l.set("limit",String(t)),l.set("offset",String(e)),G.length&&l.set("status",G.join(",")),ea.length&&l.set("relation",ea.join(",")),W&&l.set("customerId",W),K&&l.set("stage",K),Y&&l.set("channel",Y);let a=await (0,i.aA)("/job-cases?".concat(l.toString()));er(null!==(s=a.statusCounts)&&void 0!==s?s:{active:0,closed:0});let n=a.items.map(e=>e.id);return n.length&&((0,i.aA)("/recommendations/summary?ids=".concat(n.join(","))).then(e=>{ed(t=>({...t,...e}))}).catch(()=>{}),(0,i.aA)("/job-case-postings?ids=".concat(n.join(","))).then(e=>{eo(t=>({...t,...e}))}).catch(()=>{})),{items:a.items,total:a.total}},[k,G,ea,W,K,Y,R]),pageSize:50,deps:[k,G,ea,W,K,Y,R]});(0,n.useEffect)(()=>{X||ee||es||ek.loading||ek.error||0!==ek.total||et(!0)},[X,ee,es,ek.loading,ek.error,ek.total]),(0,n.useEffect)(()=>{et(!1),el(!1)},[R]),(0,n.useEffect)(()=>{let e=setTimeout(()=>w(v.trim()),300);return()=>clearTimeout(e)},[v]),(0,n.useEffect)(()=>{(0,i.aA)("/customers").then(e=>{let t={},s=new Set;for(let a of e){var l;t[a.id]=a.canonicalName,(null===(l=a.dedupKey)||void 0===l?void 0:l.startsWith("placeholder:"))&&s.add(a.id)}b(t),y(s)}).catch(()=>{b({}),y(new Set)})},[R]),(0,n.useEffect)(()=>{(0,i.aA)("/job-cases/tenant-members").then(e=>{var t;let s={};for(let l of null!==(t=e.items)&&void 0!==t?t:[])s[l.hmUserId]=l;em(s)}).catch(()=>{em({})})},[R]);let ew=(0,n.useCallback)(e=>{var t,s;return null==e?void 0:null!==(s=null===(t=eu[e])||void 0===t?void 0:t.label)&&void 0!==s?s:e===B?"我":"用户 #".concat(e)},[eu,B]);(0,n.useEffect)(()=>{ef.prune(ek.items.map(e=>String(e.id)))},[ek.items,ef]),(0,n.useEffect)(()=>{if(!d){C(null),T(!1);return}A(!0),T(!1),(0,i.aA)("/job-cases/".concat(d)).then(e=>{C(e)}).catch(()=>{C(null),T(!0)}).finally(()=>{A(!1)})},[d,R,P]);let eS=(0,n.useCallback)(e=>{let t=new URLSearchParams(a.toString());e.id?t.set("id",e.id):null===e.id&&t.delete("id"),void 0!==e.st&&(e.st.length?t.set("st",e.st.join(",")):t.delete("st")),void 0!==e.rel&&(e.rel.length?t.set("rel",e.rel.join(",")):t.delete("rel")),void 0!==e.cust&&(e.cust?t.set("cust",e.cust):t.delete("cust")),void 0!==e.stage&&(e.stage.length?t.set("stage",e.stage.join(",")):t.delete("stage")),void 0!==e.ch&&(e.ch.length?t.set("ch",e.ch.join(",")):t.delete("ch")),s.replace("/jobs?".concat(t.toString()))},[s,a]),eC=(0,n.useCallback)(e=>{var t;return null==B?null:e.ownerId===B?"op":(null!==(t=e.rsUserIds)&&void 0!==t?t:[]).includes(B)?"rs":null},[B]),eI=(0,n.useMemo)(()=>ek.items.map(e=>{var t,s,a,n,r;return{id:String(e.id),content:(0,l.jsxs)("div",{className:"flex items-start gap-2",children:[ef.checkbox(String(e.id)),(0,l.jsx)(m.dy,{title:null!==(t=F(e))&&void 0!==t?t:"(职位 #".concat(e.id,")"),status:e.status,hmhLocal:(null!==(s=e.folderPath)&&void 0!==s?s:"").includes("/local/clients/"),subtitle:M(e),customerName:null!==(n=e.customerName)&&void 0!==n?n:e.customerId?null!==(a=u[e.customerId])&&void 0!==a?a:"客户 #".concat(e.customerId):"未关联客户",opName:null!=e.ownerId?ew(e.ownerId):void 0,rsNames:(null!==(r=e.rsUserIds)&&void 0!==r?r:[]).map(e=>{var t;return null!==(t=ew(e))&&void 0!==t?t:"用户 #".concat(e)}),updatedAt:e.updatedAt,createdAt:e.createdAt,stages:ei[e.id],platforms:ec[e.id],myRole:eC(e)})]})}}),[ek.items,u,ef,ei,ec,eC,ew]),eA=(0,n.useMemo)(()=>{let e=new Set;for(let t of Object.values(ec))for(let s of t)e.add(s);for(let t of _)e.add(t);return Array.from(e)},[ec]),eO=async()=>{let e;let t=Number(ep),s=eN.map(Number).filter(e=>e!==t);if(!t||!s.length)return;ey(!0);try{e=await (0,i.aA)("/job-cases/merge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetId:t,sourceIds:s})})}catch(e){ey(!1),eh(!1),ej("合并失败(服务无响应),请重试");return}ey(!1),eh(!1);let l=Object.values(e.moved).reduce((e,t)=>e+t,0);ej("已合并 ".concat(e.sourceIds.length," 个职位 → #").concat(e.targetId,",迁移 ").concat(l," 条关联")+(e.matchConflicts?",匹配冲突按高分保留 ".concat(e.matchConflicts," 处"):"")),ef.clear(),ek.refresh(),setTimeout(()=>ej(null),8e3)},eT=d?I?(0,l.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"加载中…"}):O?(0,l.jsxs)("div",{className:"flex h-full items-center justify-center gap-2 text-red-500",children:["加载失败",(0,l.jsx)("button",{type:"button",onClick:()=>z(e=>e+1),className:"text-blue-500 hover:underline",children:"重试"})]}):S?(0,l.jsx)(J,{detail:S,customers:u,placeholderCusts:g,myUserId:B}):(0,l.jsx)("div",{className:"flex h-full items-center justify-center text-red-500",children:"未找到该职位"}):(0,l.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"请在左侧选择一个职位查看详情"}),eP=G.length>0||$.length>0||W||K||Y||ee;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.m,{filterBar:(0,l.jsxs)("div",{className:"space-y-2 border-b border-gray-200 bg-white p-3",children:[(0,l.jsx)(N.Z,{allowClear:!0,size:"small",value:v,onChange:e=>j(e.target.value),placeholder:"搜索职位/客户/路径…"}),(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,l.jsx)("span",{className:"w-12 shrink-0 text-gray-400",children:"状态:"}),U.map(e=>{let t=G.includes(e.key);return(0,l.jsxs)("button",{type:"button",title:t?"点击取消该状态筛选":"点击按该状态过滤(可多选)",onClick:()=>eS({st:t?G.filter(t=>t!==e.key):[...G,e.key]}),className:"rounded px-1.5 py-0.5 text-xs transition ".concat(t?"".concat(e.cls," ring-1 ring-current"):"".concat(e.cls," opacity-40 hover:opacity-80")),children:[e.label," ",en[e.key]]},e.key)}),(0,l.jsx)("span",{className:"mx-1 text-gray-300",children:"|"}),(0,l.jsx)("span",{className:"text-gray-400",children:"关系:"}),D.map(e=>{let t=$.includes(e.key);return(0,l.jsx)("button",{type:"button",title:t?"点击取消该关系筛选":"点击按该关系过滤(op∨rs=我操作的)",onClick:()=>eS({rel:t?$.filter(t=>t!==e.key):[...$,e.key]}),className:"rounded px-1.5 py-0.5 text-xs transition ".concat(t?"".concat(e.cls," ring-1 ring-current"):"".concat(e.cls," opacity-40 hover:opacity-80")),children:e.label},e.key)}),(0,l.jsx)("span",{className:"mx-1 text-gray-300",children:"|"}),(0,l.jsx)("button",{type:"button",title:"unlinked"===W?"点击取消未关联客户筛选":"只显示未关联客户的职位",onClick:()=>eS({cust:"unlinked"===W?"":"unlinked"}),className:"rounded bg-amber-100 px-1.5 py-0.5 text-xs text-amber-700 transition ".concat("unlinked"===W?"ring-1 ring-current":"opacity-40 hover:opacity-80"),children:"未关联客户"}),(0,l.jsxs)("span",{className:"ml-auto text-gray-400",children:["共 ",ek.total," 个"]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,l.jsx)("span",{className:"w-12 shrink-0 text-gray-400",children:"客户:"}),(0,l.jsx)(f.Z,{size:"small",showSearch:!0,allowClear:!0,placeholder:"全部客户",style:{minWidth:220},value:W&&"unlinked"!==W?Number(W):void 0,onChange:e=>eS({cust:e?String(e):""}),options:Object.entries(u).sort((e,t)=>e[1].localeCompare(t[1],"zh")).map(e=>{let[t,s]=e;return{value:Number(t),label:s}})})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,l.jsx)("span",{className:"w-12 shrink-0 text-gray-400",children:"招聘状态:"}),(0,l.jsx)(f.Z,{mode:"multiple",size:"small",allowClear:!0,maxTagCount:"responsive",placeholder:"全部",style:{minWidth:260},value:Q,onChange:e=>eS({stage:e}),options:L.map(e=>({value:e.key,label:e.label}))})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,l.jsx)("span",{className:"w-12 shrink-0 text-gray-400",children:"渠道:"}),(0,l.jsx)(f.Z,{mode:"multiple",size:"small",allowClear:!0,maxTagCount:"responsive",placeholder:"全部",style:{minWidth:220},value:V,onChange:e=>eS({ch:e}),options:eA.map(e=>({value:e,label:e}))})]}),(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[eP&&(0,l.jsx)("button",{type:"button",onClick:()=>{et(!1),el(!1),eS({st:[],rel:[],cust:"",stage:[],ch:[]})},className:"text-xs text-gray-400 hover:text-gray-600",children:"清除筛选"}),!ee||es||X?null:(0,l.jsx)("button",{type:"button",title:"无我操作的职位,已显示全部;点击恢复只看自己参与的",onClick:()=>el(!0),className:"rounded bg-indigo-50 px-1.5 py-0.5 text-xs text-indigo-600 hover:bg-indigo-100",children:"已显示全部(无我操作的)→ 只看我的"})]}),ef.bar(eI),eN.length>=2?(0,l.jsxs)("button",{type:"button",onClick:()=>{eb(eN[0]),eh(!0)},className:"mt-1 rounded bg-indigo-600 px-2.5 py-1 text-xs text-white hover:bg-indigo-700",children:["合并所选职位(",eN.length,")"]}):null,ev?(0,l.jsx)("div",{className:"mt-1 text-xs text-emerald-600",children:ev}):null]}),listPanel:ek.error?(0,l.jsxs)("div",{className:"flex-1 overflow-auto p-4 text-center text-sm",children:[(0,l.jsx)("span",{className:"text-red-500",children:"加载失败"}),(0,l.jsx)("button",{type:"button",onClick:()=>ek.refresh(),className:"ml-2 text-blue-500 hover:underline",children:"重试"})]}):(0,l.jsx)(o.L,{items:eI,selectedId:null!=d?d:void 0,onSelect:e=>eS({id:e}),loading:ek.loading,emptyText:"暂无职位",onLoadMore:ek.loadMore,loadingMore:ek.loadingMore,exhausted:ek.exhausted}),detailPanel:eT}),ef.modal(),ex?(0,l.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",children:(0,l.jsxs)("div",{className:"w-96 rounded-lg bg-white p-4 shadow-xl",children:[(0,l.jsxs)("h3",{className:"mb-2 text-sm font-semibold text-gray-900",children:["合并职位(保留目标,其余 ",eN.length-1," 个结束)"]}),(0,l.jsx)("p",{className:"mb-3 text-xs text-gray-500",children:"源职位的推荐流水/发布/简历/画像/评估/沟通记录全部迁到目标职位;同人才匹配冲突保留高分。"}),(0,l.jsx)("div",{className:"mb-3 max-h-48 space-y-1 overflow-auto",children:eN.map(e=>{var t;let s=ek.items.find(t=>String(t.id)===e);return(0,l.jsxs)("label",{className:"flex items-center gap-2 text-sm text-gray-700",children:[(0,l.jsx)("input",{type:"radio",name:"merge-target",checked:ep===e,onChange:()=>eb(e)}),(0,l.jsxs)("span",{className:"min-w-0 flex-1 truncate",children:["#",e," ",s?F(s):"",s?(0,l.jsxs)("span",{className:"text-xs text-gray-400",children:[" ",null!==(t=M(s))&&void 0!==t?t:""]}):null]})]},e)})}),(0,l.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,l.jsx)("button",{type:"button",onClick:()=>eh(!1),className:"rounded border border-gray-300 px-3 py-1 text-xs text-gray-600",children:"取消"}),(0,l.jsx)("button",{type:"button",onClick:()=>void eO(),disabled:!ep||eg,className:"rounded bg-indigo-600 px-3 py-1 text-xs text-white hover:bg-indigo-700 disabled:opacity-40",children:eg?"合并中…":"确认合并"})]})]})}):null]})}function J(e){var t,s,a;let{detail:r,customers:i,placeholderCusts:c,myUserId:o}=e,[u,m]=(0,n.useState)("info"),x=null!=o&&(r.ownerId===o||(null!==(t=r.rsUserIds)&&void 0!==t?t:[]).includes(o));return(0,l.jsxs)("div",{className:"h-full overflow-y-auto p-4",children:[(0,l.jsx)("h2",{className:"mb-1 text-lg font-semibold text-gray-900",children:null!==(s=r.title)&&void 0!==s?s:"职位 #".concat(r.id)}),(0,l.jsxs)("div",{className:"mb-3 text-xs text-gray-400",children:["externalId: ",r.externalId," \xb7 更新于 ",(0,d.d3)(r.updatedAt)]}),(0,l.jsx)("div",{className:"mb-4 flex gap-1 border-b border-gray-200",children:[{key:"info",label:"职位信息"},{key:"members",label:"成员"},{key:"criteria",label:"找人条件"},{key:"history",label:"历史"},{key:"pipeline",label:"推荐流程"},{key:"publish",label:"发布管理"}].map(e=>(0,l.jsx)("button",{onClick:()=>m(e.key),className:"rounded-t px-3 py-1.5 text-sm ".concat(u===e.key?"bg-gray-100 font-medium text-gray-900":"text-gray-500 hover:text-gray-700"),children:e.label},e.key))}),"info"===u?(0,l.jsx)(R,{detail:r,customers:i,placeholderCusts:c,myUserId:o}):"members"===u?(0,l.jsx)(q,{detail:r,myUserId:o},"".concat(r.id,"-").concat(null!=o?o:"anon")):"criteria"===u?(0,l.jsx)(H,{detail:r,myUserId:o},"".concat(r.id,"-").concat(null!=o?o:"anon")):"history"===u?(0,l.jsx)(Y,{jobCaseId:r.id},r.id):"pipeline"===u?(0,l.jsx)(z,{jobCaseId:r.id,canOperate:x},r.id):(0,l.jsx)(Z.I,{jobCaseId:r.id,caseTitle:null!==(a=r.title)&&void 0!==a?a:"职位 #".concat(r.id),canOperate:x},r.id)]})}function R(e){var t,s,a;let{detail:d,customers:c,placeholderCusts:o,myUserId:m}=e,x=(0,r.useRouter)(),[h,p]=(0,n.useState)(!1),[b,g]=(0,n.useState)(null),[y,v]=(0,n.useState)(!1),[j,f]=(0,n.useState)(null!==(t=d.title)&&void 0!==t?t:""),[N,k]=(0,n.useState)(d.customerId?String(d.customerId):""),[w,S]=(0,n.useState)(!1),C=null!=m&&d.ownerId===m,I=null==d.customerId||o.has(d.customerId),A=async(e,t)=>{let s;p(!0),g(null);try{s=await (0,i.aA)("/job-cases/".concat(d.id),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}catch(e){return p(!1),g(t),null}return p(!1),x.refresh(),location.reload(),s},O=async()=>{S(!0),g(null);try{await (0,i.aA)("/job-cases/".concat(d.id,"/op/claim"),{method:"POST"})}catch(e){S(!1),g("申请 op 失败:该职位可能已有 op,或服务无响应");return}S(!1),location.reload()};return(0,l.jsxs)("div",{children:[I&&C?(0,l.jsxs)("div",{className:"mb-4 rounded border border-amber-300 bg-amber-50 p-3",children:[(0,l.jsx)("div",{className:"mb-2 text-sm font-medium text-amber-800",children:"该职位尚未关联客户,请先选择客户公司(客户不能为空)"}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsxs)("select",{value:N,onChange:e=>k(e.target.value),className:"rounded border border-amber-300 px-2 py-1.5 text-sm",children:[(0,l.jsx)("option",{value:"",children:"选择客户…"}),Object.entries(c).sort((e,t)=>e[1].localeCompare(t[1],"zh")).map(e=>{let[t,s]=e;return(0,l.jsx)("option",{value:t,children:s},t)})]}),(0,l.jsx)("button",{type:"button",disabled:!N||h,onClick:()=>void A({customerId:Number(N)},"关联客户失败,请重试"),className:"rounded bg-amber-600 px-3 py-1.5 text-xs text-white hover:bg-amber-700 disabled:opacity-40",children:h?"保存中…":"确认关联"})]})]}):null,I&&!C?(0,l.jsx)("div",{className:"mb-4 rounded border border-gray-200 bg-gray-50 p-3 text-sm text-gray-500",children:"该职位尚未关联客户,请联系 op 选择客户公司"}):null,(0,l.jsxs)("div",{className:"mb-4 rounded border border-gray-200 bg-gray-50 p-2",children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,l.jsx)("span",{className:"text-gray-500",children:"状态:"}),(0,l.jsx)("span",{className:"rounded px-1.5 py-0.5 text-xs ".concat("active"===d.status?"bg-emerald-100 text-emerald-700":"bg-gray-300 text-gray-700"),children:"active"===d.status?"启动中":"结束"}),null==d.ownerId?(0,l.jsx)("button",{type:"button",disabled:w,onClick:()=>void O(),className:"rounded bg-blue-600 px-2.5 py-1 text-xs text-white hover:bg-blue-700 disabled:opacity-40",children:w?"申请中…":"申请做 op(无人管理,直接生效)"}):null,C&&!I?"active"===d.status?(0,l.jsx)("button",{type:"button",disabled:h,onClick:()=>void A({status:"closed"},"状态更新失败(仅 op 可操作)"),className:"rounded border border-gray-300 px-2.5 py-1 text-xs text-gray-600 hover:bg-gray-100",children:"结束职位"}):(0,l.jsx)("button",{type:"button",disabled:h,onClick:()=>void A({status:"active"},"状态更新失败(仅 op 可操作)"),className:"rounded bg-emerald-600 px-2.5 py-1 text-xs text-white hover:bg-emerald-700",children:"重新启动"}):null,C||null==d.ownerId?null:(0,l.jsx)("span",{className:"text-xs text-gray-400",children:"仅 op 可切换状态"})]}),b?(0,l.jsx)("div",{className:"mt-1 text-xs text-red-500",children:b}):null]}),d.customerId?(0,l.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[(0,l.jsxs)("a",{href:"/companies?id=".concat(d.customerId),className:"inline-flex items-center gap-2 rounded border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-800 hover:border-amber-400",children:[(0,l.jsx)("span",{className:"text-gray-500",children:"客户公司:"}),(0,l.jsx)("span",{className:"font-medium",children:null!==(s=c[d.customerId])&&void 0!==s?s:"#".concat(d.customerId)}),(0,l.jsx)("span",{className:"text-xs text-amber-500",children:"查看公司详情 →"})]}),C?(0,l.jsx)("select",{value:String(d.customerId),onChange:e=>{e.target.value&&Number(e.target.value)!==d.customerId&&A({customerId:Number(e.target.value)},"更换客户失败:同客户下可能已有同名职位")},className:"rounded border border-gray-300 px-2 py-1.5 text-xs text-gray-600",children:Object.entries(c).sort((e,t)=>e[1].localeCompare(t[1],"zh")).map(e=>{let[t,s]=e;return(0,l.jsx)("option",{value:t,children:s},t)})}):null]}):null,(0,l.jsxs)("div",{className:"mb-4",children:[(0,l.jsxs)("div",{className:"mb-1 flex items-center gap-2",children:[(0,l.jsx)("h3",{className:"text-sm font-medium text-gray-800",children:"职位名"}),C&&!y?(0,l.jsx)("button",{type:"button",onClick:()=>{var e;f(null!==(e=d.title)&&void 0!==e?e:""),v(!0)},className:"text-xs text-blue-600 hover:underline",children:"修改"}):null]}),y?(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("input",{type:"text",value:j,onChange:e=>f(e.target.value),className:"rounded border border-gray-300 px-2 py-1 text-sm"}),(0,l.jsx)("button",{type:"button",disabled:!j.trim()||h,onClick:()=>{A({title:j.trim()},"改名失败:同客户下可能已有同名职位").then(e=>{e&&v(!1)})},className:"rounded bg-blue-600 px-2.5 py-1 text-xs text-white hover:bg-blue-700 disabled:opacity-40",children:"保存"}),(0,l.jsx)("button",{type:"button",onClick:()=>v(!1),className:"rounded border border-gray-300 px-2.5 py-1 text-xs text-gray-600",children:"取消"})]}):(0,l.jsx)("div",{className:"text-sm text-gray-700",children:null!==(a=d.title)&&void 0!==a?a:"—"})]}),d.folderPath?(0,l.jsxs)("div",{className:"mb-4 break-all text-xs text-gray-500",children:["文件夹:",d.folderPath]}):null,d.requirements&&Object.keys(d.requirements).length>0?(0,l.jsxs)("section",{className:"mb-4",children:[(0,l.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"职位要求(requirements)"}),(0,l.jsx)(u.Y,{data:d.requirements})]}):null,d.rawFiles&&Object.keys(d.rawFiles).length>0?(0,l.jsxs)("section",{children:[(0,l.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"原始文件(rawFiles)"}),(0,l.jsx)(u.Y,{data:d.rawFiles})]}):null]})}function q(e){let{detail:t,myUserId:s}=e,[a,r]=(0,n.useState)({op:null,rs:[]}),[d,c]=(0,n.useState)([]),[o,u]=(0,n.useState)(null),[m,x]=(0,n.useState)(!1),[h,p]=(0,n.useState)(""),[b,g]=(0,n.useState)(""),y=(0,n.useCallback)(()=>{(async()=>{try{let e=await (0,i.aA)("/job-cases/".concat(t.id,"/members"));r(e)}catch(e){}})()},[t.id]);(0,n.useEffect)(()=>{y(),(async()=>{try{let e=await (0,i.aA)("/job-cases/tenant-members");c(e.items)}catch(e){}})()},[y]);let v=e=>{var t,l;return null!==(l=null===(t=d.find(t=>t.hmUserId===e))||void 0===t?void 0:t.label)&&void 0!==l?l:e===s?"我":"用户 #".concat(e)},j=null!=s&&a.op===s,f=async function(e,s){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"操作失败(仅 op 可操作)";x(!0),u(null);try{await (0,i.aA)("/job-cases/".concat(t.id).concat(e),{method:e.startsWith("/rs/")?"DELETE":"POST",headers:{"Content-Type":"application/json"},body:null!=s?JSON.stringify(s):void 0})}catch(e){x(!1),u(l);return}x(!1),y()},N=d.filter(e=>e.hmUserId!==a.op&&!a.rs.includes(e.hmUserId));return(0,l.jsxs)("div",{children:[(0,l.jsxs)("section",{className:"mb-4",children:[(0,l.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"op(职位管理者,唯一)"}),null!=a.op?(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,l.jsxs)("span",{className:"rounded bg-blue-100 px-2 py-0.5 text-blue-700",children:[v(a.op),a.op===s?"(我)":""]}),j?(0,l.jsxs)("span",{className:"flex items-center gap-1 text-xs",children:[(0,l.jsxs)("select",{value:h,onChange:e=>p(e.target.value),className:"rounded border border-gray-300 px-1.5 py-0.5",children:[(0,l.jsx)("option",{value:"",children:"转移给…"}),d.filter(e=>e.hmUserId!==a.op).map(e=>{var t;return(0,l.jsx)("option",{value:e.hmUserId,children:null!==(t=e.label)&&void 0!==t?t:"用户 #".concat(e.hmUserId)},e.hmUserId)})]}),(0,l.jsx)("button",{type:"button",disabled:!h||m,onClick:()=>void f("/op/transfer",{userId:Number(h)},"转移失败,请重试").then(()=>p("")),className:"rounded border border-blue-300 px-2 py-0.5 text-blue-600 hover:bg-blue-50 disabled:opacity-40",children:"确认转移"}),(0,l.jsx)("span",{className:"text-gray-400",children:"直接生效,无需对方确认"})]}):null]}):(0,l.jsx)("div",{className:"text-sm text-gray-500",children:"当前无 op——到「职位信息」tab 点「申请做 op」即可直接接管(无需审批)"})]}),(0,l.jsxs)("section",{className:"mb-4",children:[(0,l.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"rs(协作成员,可多个)"}),a.rs.length?(0,l.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.rs.map(e=>(0,l.jsxs)("span",{className:"flex items-center gap-1 rounded bg-cyan-100 px-2 py-0.5 text-cyan-700",children:[v(e),e===s?"(我)":"",j?(0,l.jsx)("button",{type:"button",disabled:m,onClick:()=>void(0,i.aA)("/job-cases/".concat(t.id,"/rs/").concat(e),{method:"DELETE"}).then(()=>y()).catch(()=>u("移除失败(仅 op 可操作)")),className:"text-cyan-500 hover:text-red-500",title:"移除该 rs",children:"\xd7"}):null]},e))}):(0,l.jsx)("div",{className:"text-sm text-gray-400",children:"暂无 rs"}),j?(0,l.jsxs)("div",{className:"mt-2 flex items-center gap-1 text-xs",children:[(0,l.jsxs)("select",{value:b,onChange:e=>g(e.target.value),className:"rounded border border-gray-300 px-1.5 py-0.5",children:[(0,l.jsx)("option",{value:"",children:"添加 rs(限同租户成员)…"}),N.map(e=>{var t;return(0,l.jsx)("option",{value:e.hmUserId,children:null!==(t=e.label)&&void 0!==t?t:"用户 #".concat(e.hmUserId)},e.hmUserId)})]}),(0,l.jsx)("button",{type:"button",disabled:!b||m,onClick:()=>void f("/rs",{userId:Number(b)},"添加失败:目标须为同租户在租成员").then(()=>g("")),className:"rounded bg-cyan-600 px-2 py-0.5 text-white hover:bg-cyan-700 disabled:opacity-40",children:"添加"})]}):null]}),o?(0,l.jsx)("div",{className:"text-xs text-red-500",children:o}):null]})}function H(e){var t;let{detail:s,myUserId:a}=e,[r,d]=(0,n.useState)([]),[c,o]=(0,n.useState)(null),[u,m]=(0,n.useState)(null),[x,h]=(0,n.useState)(!1),[p,b]=(0,n.useState)(!1),[g,y]=(0,n.useState)([]),v=(0,n.useCallback)(()=>{(async()=>{try{let e=await (0,i.aA)("/job-cases/".concat(s.id,"/criteria"));d(e.items)}catch(e){}})()},[s.id]);(0,n.useEffect)(()=>{v()},[v]);let j=r.find(e=>e.userId===(null!=a?a:0));r.find(e=>{var t;return e.userId===(null!==(t=s.ownerId)&&void 0!==t?t:-1)});let f=null!=a&&(s.ownerId===a||(null!==(t=s.rsUserIds)&&void 0!==t?t:[]).includes(a)),N=()=>{var e;y((null!==(e=null==j?void 0:j.criteria)&&void 0!==e?e:[]).map(e=>{var t;return{dimension:e.dimension,value:"string"==typeof e.value?e.value:JSON.stringify(e.value),weight:String(null!==(t=e.weight)&&void 0!==t?t:1)}})),b(!0),o(null)},k=async()=>{let e;let t=g.filter(e=>e.dimension.trim()&&e.value.trim()).map(e=>{let t=e.value.trim();try{t=JSON.parse(e.value)}catch(e){}return{dimension:e.dimension.trim(),value:t,weight:Number(e.weight)||1}});if(!t.length){o("至少保留一条条件(dimension + value)");return}h(!0),o(null);try{e=await (0,i.aA)("/job-cases/".concat(s.id,"/criteria"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:t})})}catch(e){h(!1),o("保存失败,请重试");return}h(!1),d(e.items),b(!1)},w=async e=>{let t;h(!0),o(null),m(null);try{t=await (0,i.aA)("/job-cases/".concat(s.id,"/criteria/merge"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fromUserId:e,mode:"apply"})})}catch(e){h(!1),o("叠加失败,请重试");return}h(!1),m("已叠加 ".concat(t.applied," 条新条件到我的条件")),v()},S=e=>(0,l.jsx)("ul",{className:"space-y-1",children:e.map((e,t)=>(0,l.jsxs)("li",{className:"text-xs text-gray-600",children:[(0,l.jsx)("span",{className:"rounded bg-gray-100 px-1.5 py-0.5 text-gray-500",children:e.dimension})," ","string"==typeof e.value?e.value:JSON.stringify(e.value),1!==e.weight?(0,l.jsxs)("span",{className:"text-gray-400",children:["(权重 ",e.weight,")"]}):null]},t))});return(0,l.jsxs)("div",{className:"space-y-4",children:[(0,l.jsx)("p",{className:"text-xs text-gray-400",children:"招人条件按人维护:op 一份(=职位共享规则),每个 rs 一份。agent 找人默认按「op 条件 + 自己那份」;可叠加他人条件后选择是否更新自己那份。"}),null==a?(0,l.jsx)("div",{className:"rounded border border-gray-200 bg-gray-50 p-2 text-xs text-gray-500",children:"未登录同步用户,展示全部条件(本机工具视角)"}):null,null==a||f?null:(0,l.jsx)("div",{className:"rounded border border-amber-100 bg-amber-50 p-2 text-xs text-amber-600",children:"仅该职位的 op/rs 可维护找人条件,你可查看"}),0!==r.length||p?r.map(e=>{let t=null!=a&&e.userId===a,n=null!=s.ownerId&&e.userId===s.ownerId,r=t?"我的条件":n?"op 的条件(职位共享,#".concat(e.userId,")"):"用户 #".concat(e.userId," 的条件");return(0,l.jsxs)("section",{className:"rounded border border-gray-200 p-3",children:[(0,l.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,l.jsx)("h3",{className:"text-sm font-medium text-gray-800",children:r}),t&&null!=a&&!p&&f?(0,l.jsx)("button",{type:"button",onClick:N,className:"text-xs text-blue-600 hover:underline",children:"编辑我的条件"}):null,t||null==a||p||!f?null:(0,l.jsx)("button",{type:"button",disabled:x,onClick:()=>void w(e.userId),className:"text-xs text-indigo-600 hover:underline disabled:opacity-40",children:"叠加到我的条件"})]}),t&&p?(0,l.jsx)("div",{className:"text-xs text-gray-400",children:"(正在下方编辑我的条件)"}):e.criteria.length?S(e.criteria):(0,l.jsx)("div",{className:"text-xs text-gray-400",children:"(空)"})]},e.userId)}):(0,l.jsx)("div",{className:"text-sm text-gray-400",children:"暂无找人条件"}),null!=a&&p&&f?(0,l.jsxs)("section",{className:"rounded border border-gray-200 p-3",children:[(0,l.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"我的条件(编辑中)"}),(0,l.jsxs)("div",{className:"space-y-2",children:[g.map((e,t)=>(0,l.jsxs)("div",{className:"flex items-center gap-1.5 text-xs",children:[(0,l.jsx)("input",{type:"text",value:e.dimension,placeholder:"维度,如 city/skill/school",onChange:e=>y(g.map((s,l)=>l===t?{...s,dimension:e.target.value}:s)),className:"w-36 rounded border border-gray-300 px-1.5 py-0.5"}),(0,l.jsx)("input",{type:"text",value:e.value,placeholder:"值(字符串或 JSON)",onChange:e=>y(g.map((s,l)=>l===t?{...s,value:e.target.value}:s)),className:"w-56 rounded border border-gray-300 px-1.5 py-0.5"}),(0,l.jsx)("input",{type:"text",value:e.weight,placeholder:"权重",onChange:e=>y(g.map((s,l)=>l===t?{...s,weight:e.target.value}:s)),className:"w-14 rounded border border-gray-300 px-1.5 py-0.5"}),(0,l.jsx)("button",{type:"button",onClick:()=>y(g.filter((e,s)=>s!==t)),className:"text-gray-400 hover:text-red-500",children:"\xd7"})]},t)),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)("button",{type:"button",onClick:()=>y([...g,{dimension:"",value:"",weight:"1"}]),className:"rounded border border-gray-300 px-2 py-0.5 text-xs text-gray-600",children:"+ 加一条"}),(0,l.jsx)("button",{type:"button",disabled:x,onClick:()=>void k(),className:"rounded bg-blue-600 px-2.5 py-0.5 text-xs text-white hover:bg-blue-700 disabled:opacity-40",children:x?"保存中…":"保存(整体替换我的条件)"}),(0,l.jsx)("button",{type:"button",onClick:()=>b(!1),className:"rounded border border-gray-300 px-2 py-0.5 text-xs text-gray-600",children:"取消"})]})]})]}):null,null==a||j||p||!f?null:(0,l.jsx)("button",{type:"button",onClick:N,className:"rounded bg-blue-600 px-2.5 py-1 text-xs text-white hover:bg-blue-700",children:"添加我的条件"}),u?(0,l.jsx)("div",{className:"text-xs text-emerald-600",children:u}):null,c?(0,l.jsx)("div",{className:"text-xs text-red-500",children:c}):null,(0,l.jsx)(W,{externalId:s.externalId})]})}function W(e){let{externalId:t}=e,[s,a]=(0,n.useState)(null),[r,c]=(0,n.useState)(!1),[o,u]=(0,n.useState)("");(0,n.useEffect)(()=>{let e=!0;return(async()=>{try{var s;let l=await (0,i.aA)("/searchlog?jobCaseExternalId=".concat(encodeURIComponent(t),"&limit=100"));e&&a(null!==(s=l.items)&&void 0!==s?s:[])}catch(t){e&&(a([]),c(!0))}})(),()=>{e=!1}},[t]);let m=Array.from(new Set((null!=s?s:[]).map(e=>e.actorEmail).filter(Boolean))),x=(null!=s?s:[]).filter(e=>!o||e.actorEmail===o),h=e=>{let t="string"==typeof e?e:JSON.stringify(e);return t&&t.length>160?"".concat(t.slice(0,160),"…"):null!=t?t:""};return(0,l.jsxs)("section",{className:"rounded border border-gray-200 p-3",children:[(0,l.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,l.jsx)("h3",{className:"text-sm font-medium text-gray-800",children:"agent 找人历史"}),m.length>1?(0,l.jsxs)("label",{className:"flex items-center gap-1 text-xs text-gray-500",children:["按用户:",(0,l.jsxs)("select",{value:o,onChange:e=>u(e.target.value),className:"rounded border border-gray-300 px-1.5 py-0.5 text-xs",children:[(0,l.jsx)("option",{value:"",children:"全部"}),m.map(e=>(0,l.jsx)("option",{value:e,children:e},e))]})]}):null]}),null===s?(0,l.jsx)("div",{className:"text-xs text-gray-400",children:"加载中…"}):0===x.length?(0,l.jsx)("div",{className:"text-xs text-gray-400",children:r?"历史服务不可用(需 hm 0.1.23+ 且已登录),不影响找人条件":"暂无搜索历史——agent 每轮搜索后会自动登记"}):(0,l.jsx)("ul",{className:"space-y-2",children:x.map(e=>{var t;return(0,l.jsxs)("li",{className:"rounded border border-gray-100 bg-gray-50 p-2 text-xs text-gray-600",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between text-gray-500",children:[(0,l.jsxs)("span",{children:[(0,l.jsx)("span",{className:"rounded bg-blue-50 px-1.5 py-0.5 text-blue-600",children:e.platform})," ",null!==(t=e.actorEmail)&&void 0!==t?t:"#".concat(e.actorHmUserId),e.model&&"unknown"!==e.model?(0,l.jsxs)("span",{className:"text-gray-400",children:[" \xb7 ",e.model]}):null]}),(0,l.jsx)("span",{children:(0,d.d3)(e.createdAt)})]}),(0,l.jsxs)("div",{className:"mt-1",children:[(0,l.jsx)("span",{className:"text-gray-400",children:"条件:"})," ",h(e.conditions)]}),(0,l.jsxs)("div",{className:"mt-0.5",children:[(0,l.jsx)("span",{className:"text-gray-400",children:"结果:"})," ",h(e.stats)]}),e.note?(0,l.jsxs)("div",{className:"mt-0.5",children:[(0,l.jsx)("span",{className:"text-gray-400",children:"备注:"})," ",e.note]}):null]},e.id)})})]})}let K={created:"创建职位",status_change:"状态切换",op_claim:"申请成为 op",op_transfer:"转移 op",op_cleared:"退租清空 op",rs_add:"添加 rs",rs_remove:"移除 rs",customer_change:"客户变更",info_update:"信息更新"};function Y(e){let{jobCaseId:t}=e,[s,a]=(0,n.useState)([]);return((0,n.useEffect)(()=>{let e=!0;return(async()=>{try{let s=await (0,i.aA)("/job-cases/".concat(t,"/history?limit=100"));e&&a(s.items)}catch(e){}})(),()=>{e=!1}},[t]),s.length)?(0,l.jsx)("ol",{className:"relative ml-2 space-y-3 border-l border-gray-200 pl-4",children:s.map(e=>{var t;return(0,l.jsxs)("li",{className:"relative",children:[(0,l.jsx)("span",{className:"absolute -left-[21px] top-1 h-2.5 w-2.5 rounded-full bg-blue-300"}),(0,l.jsx)("div",{className:"text-xs text-gray-400",children:(0,d.d3)(e.createdAt)}),(0,l.jsxs)("div",{className:"text-sm text-gray-800",children:[null!==(t=K[e.action])&&void 0!==t?t:e.action,null!=e.actorId?(0,l.jsxs)("span",{className:"text-gray-400",children:[" \xb7 操作人 #",e.actorId]}):null]}),e.detail&&Object.keys(e.detail).length?(0,l.jsx)("div",{className:"mt-0.5 text-xs text-gray-500",children:JSON.stringify(e.detail)}):null]},e.id)})}):(0,l.jsx)("div",{className:"text-sm text-gray-400",children:"暂无历史记录"})}function G(){return(0,l.jsx)(n.Suspense,{fallback:(0,l.jsx)("div",{className:"p-6 text-gray-500",children:"加载中…"}),children:(0,l.jsx)(B,{})})}function Q(){var e;let[t,s]=(0,n.useState)(""),[a,r]=(0,n.useState)(""),[d,u]=(0,n.useState)(""),[m,x]=(0,n.useState)([]),[h,b]=(0,n.useState)(0),[g,y]=(0,n.useState)(!1),[v,j]=(0,n.useState)(null),[f,N]=(0,n.useState)(null),{sync:k}=(0,p.nu)(),w=null!==(e=null==k?void 0:k.activeTenantId)&&void 0!==e?e:null,S=(0,n.useCallback)(async()=>{y(!0);let e=new URLSearchParams;a&&e.set("q",a),d&&e.set("touched",d),e.set("limit","200");try{let t=await (0,i.aA)("/market/jobs?".concat(e.toString()));j(null),x(t.items),b(t.total)}catch(e){j("加载失败")}finally{y(!1)}},[a,d,w]);(0,n.useEffect)(()=>{let e=setTimeout(()=>r(t.trim()),300);return()=>clearTimeout(e)},[t]),(0,n.useEffect)(()=>{S()},[S]);let C=(0,n.useMemo)(()=>{var e;return null!==(e=m.find(e=>e.key===f))&&void 0!==e?e:null},[m,f]),I=(0,n.useMemo)(()=>m.map(e=>({id:e.key,content:(0,l.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,l.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,l.jsx)("span",{className:"truncate font-medium text-gray-900",children:e.title}),e.touched?(0,l.jsx)("span",{className:"rounded bg-emerald-100 px-1.5 py-0.5 text-[10px] text-emerald-700",children:"已操作"}):null]}),e.company?(0,l.jsx)("div",{className:"truncate text-xs text-gray-500",children:e.company}):null,(0,l.jsxs)("div",{className:"mt-0.5 flex items-center gap-0.5",children:[e.sources.map(e=>(0,l.jsx)(Z.v,{platform:e},e)),(0,l.jsxs)("span",{className:"ml-1 text-[10px] text-gray-400",children:[e.postings.length," 个发布"]})]})]})})),[m]);return(0,l.jsx)(c.m,{filterBar:(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-b border-gray-200 bg-white p-3",children:[(0,l.jsx)("input",{type:"text",value:t,onChange:e=>s(e.target.value),placeholder:"搜索职位/公司…",className:"w-56 rounded border border-gray-300 px-2 py-1.5 text-sm outline-none focus:border-blue-500"}),["","1","0"].map(e=>(0,l.jsx)("button",{type:"button",onClick:()=>u(e),className:"rounded px-2 py-1 text-xs ".concat(d===e?"bg-[color:var(--brand-soft)] font-medium text-[color:var(--brand-strong)]":"text-gray-500 hover:bg-gray-100"),children:""===e?"全部":"1"===e?"已操作过":"未操作"},e)),(0,l.jsxs)("span",{className:"ml-auto text-xs text-gray-400",children:["共 ",h," 组(BD 市场视角)"]})]}),listPanel:v?(0,l.jsxs)("div",{className:"flex-1 overflow-auto p-4 text-center text-sm",children:[(0,l.jsx)("span",{className:"text-red-500",children:v}),(0,l.jsx)("button",{type:"button",onClick:()=>void S(),className:"ml-2 text-blue-500 hover:underline",children:"重试"})]}):(0,l.jsx)(o.L,{items:I,selectedId:null!=f?f:void 0,onSelect:N,loading:g,emptyText:"暂无市场职位(解析库暂无数据)"}),detailPanel:C?(0,l.jsxs)("div",{className:"h-full overflow-y-auto p-4",children:[(0,l.jsx)("h2",{className:"mb-1 text-lg font-semibold text-gray-900",children:C.title}),(0,l.jsxs)("div",{className:"mb-4 text-xs text-gray-400",children:[C.company?"".concat(C.company," \xb7 "):"",C.touched?"本租户已操作过":"本租户未操作"," \xb7 ",C.postings.length," 个平台发布"]}),C.jobCaseIds.length>0?(0,l.jsxs)("div",{className:"mb-4 rounded border border-emerald-200 bg-emerald-50 px-3 py-2 text-sm",children:[(0,l.jsx)("span",{className:"text-emerald-800",children:"我们交付中的案件:"}),C.jobCaseIds.map(e=>(0,l.jsxs)("a",{href:"/jobs?id=".concat(e),className:"ml-2 font-medium text-emerald-700 underline",children:["案件 #",e]},e))]}):null,(0,l.jsxs)("section",{children:[(0,l.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"平台发布"}),(0,l.jsx)("div",{className:"space-y-1",children:C.postings.map(e=>(0,l.jsxs)("div",{className:"flex items-center gap-2 rounded border border-gray-100 px-2 py-1.5 text-sm",children:[(0,l.jsx)(Z.v,{platform:e.source}),(0,l.jsx)("a",{href:e.sourceUrl,target:"_blank",rel:"noreferrer",className:"min-w-0 flex-1 truncate text-blue-600 hover:underline",children:e.sourceUrl}),(0,l.jsx)("span",{className:"text-xs text-gray-400",children:e.updatedAt.slice(0,10)})]},e.id))})]})]}):(0,l.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"选择左侧职位查看各平台发布"})})}var V=s(88801);function X(){let e=(0,V.mJ)();return"1"===new URLSearchParams(window.location.search).get("entities")?(0,l.jsx)("div",{className:"flex h-full flex-col",children:(0,l.jsx)("div",{className:"min-h-0 flex-1",children:(0,l.jsx)(a.EntityListPage,{type:"job",label:"职位",batchDelete:!0})})}):(0,l.jsxs)("div",{className:"flex h-full flex-col",children:["bd"===e?(0,l.jsx)("div",{className:"flex border-b border-gray-200 bg-white px-3 py-1.5",children:(0,l.jsx)("span",{className:"ml-auto rounded bg-[color:var(--brand-soft)] px-2 py-0.5 text-xs text-[color:var(--brand-strong)]",children:"\uD83E\uDDED BD 市场视角"})}):null,(0,l.jsx)("div",{className:"min-h-0 flex-1",children:"bd"===e?(0,l.jsx)(Q,{}):(0,l.jsx)(G,{})})]})}},21717:function(e,t,s){"use strict";s.d(t,{I:function(){return u}});var l=s(72835),a=s(60635),n=s(95909),r=s(86892),i=s(87018),d=s(6443),c=s(74431),o=s(32587);function u(e){var t;let{entityId:s,name:u,open:m,onClose:x}=e,[h,p]=(0,a.useState)(null),[b,g]=(0,a.useState)([]),[y,v]=(0,a.useState)(null),[j,f]=(0,a.useState)(null),[N,k]=(0,a.useState)(!1),[w,S]=(0,a.useState)(!1),[C,I]=(0,a.useState)(0);return(0,a.useEffect)(()=>{if(!m||null==s)return;let e=!0;return k(!0),S(!1),p(null),g([]),v(null),f(null),Promise.all([(0,c.aA)("/entities/talent/".concat(s)),(0,c.aA)("/entities/talent/".concat(s,"/sources")).catch(()=>null),(0,c.aA)("/entities/talent/".concat(s,"/matches")).catch(()=>null)]).then(t=>{var s,l;let[a,n,r]=t;e&&(p(a.entity),g(n?n.items:[]),v(null!==(s=null==r?void 0:r.portraitId)&&void 0!==s?s:null),f(null!==(l=null==r?void 0:r.matches)&&void 0!==l?l:[]))}).catch(()=>{e&&S(!0)}).finally(()=>{e&&k(!1)}),()=>{e=!1}},[m,s,C]),(0,l.jsx)(n.Z,{title:null!==(t=null==h?void 0:h.name)&&void 0!==t?t:u,placement:"right",width:860,open:m,onClose:x,destroyOnHidden:!0,children:N?(0,l.jsx)(r.Z,{active:!0,paragraph:{rows:8}}):w?(0,l.jsx)(i.Z,{type:"error",message:"人才详情加载失败",description:(0,l.jsx)(d.ZP,{size:"small",onClick:()=>I(e=>e+1),children:"重试"})}):h?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(o.n,{entity:h}),(0,l.jsx)(o.z,{entity:h,portraitId:y,matches:j,sources:b})]}):null})}}},function(e){e.O(0,[603,882,187,353,587,327,659,686,400,935,744],function(){return e(e.s=74843)}),_N_E=e.O()}]);
|
|
File without changes
|
|
File without changes
|
/package/dist/web/dist/_next/static/{cC7rsTCys5_15wJ8BiPDm → oL0Npvxb5lQa5gycVwoMf}/_ssgManifest.js
RENAMED
|
File without changes
|