calculator2026/33/static/js/QuickCalcWorkbenchView-bCXV4JQ3.js
2026-06-25 09:43:48 +08:00

2 lines
14 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{Bt as e,C as t,E as n,Er as r,G as i,H as a,K as o,Kt as s,M as c,Ot as l,Pt as ee,T as u,U as d,W as f,Wn as p,er as m,mn as h,tt as te,xn as g,xr as _}from"./vendor-ag-grid~XmMajorFactor~XmConsultCategoryFactor~xmInfo~ZxFwView~HtFeeMethodTypeLineVie~ntegcu2a-CFxQnYK4.js";import"./vendor-ag-grid~XmMajorFactor~XmConsultCategoryFactor~xmInfo~ZxFwView~HtFeeMethodTypeLineVie~ntegcu2a-BnO-wAhh.js";import"./vendor-vue-CSlAvuUs.js";import{D as ne,u as v}from"./workspace-DxKKyh8w.js";import{d as re,i as ie}from"./decimal-D3bp1pbs.js";import{h as y,p as ae}from"./vendor-ui-B4V4Cf1T.js";import{r as b}from"./numberFormat-jhZZmX17.js";import{_ as oe,a as se,d as ce,h as le,l as ue}from"./sql-C69Jo4HU.js";import{t as x}from"./_plugin-vue_export-helper-DUFB50Ey.js";import{O as de,i as fe,r as pe}from"./index-CAPJG_im.js";import{n as me,t as he}from"./xmFactorDefaults-yPGPQ25R.js";import{t as ge}from"./pricingScaleCalc-CxdG8IMv.js";var _e={class:`quick-calc-shell h-full min-h-0`},ve={class:`quick-calc-layout`},ye={class:`quick-calc-panel quick-calc-panel--catalog`},be={class:`quick-calc-toolbar`},xe={class:`quick-calc-form-section quick-calc-toolbar__section`},Se={class:`quick-calc-field quick-calc-field--wide`},Ce={class:`quick-calc-field__label`},we=[`aria-label`],Te=[`aria-checked`,`onClick`,`onKeydown`],Ee=[`checked`],De={class:`quick-calc-industry-card__text`},Oe={key:0,class:`quick-calc-empty-state`},ke={key:1,class:`quick-calc-empty-state`},Ae={key:2,class:`quick-calc-empty-state`},je={key:3,class:`quick-calc-empty-state`},Me={class:`quick-calc-catalog`},Ne={class:`quick-calc-group__side`},Pe={class:`quick-calc-group__eyebrow`},Fe={class:`quick-calc-group__title quick-calc-group__title--multiline`},Ie={class:`quick-calc-group__rows`},Le=[`checked`,`name`,`onChange`],Re={key:0,class:`quick-calc-selection-row__blank`},ze={class:`quick-calc-panel quick-calc-panel--form`},Be={class:`quick-calc-form`},Ve={class:`quick-calc-form-stack`},He={class:`quick-calc-form-section quick-calc-form-section--summary`},Ue={class:`quick-calc-form-grid quick-calc-form-grid--summary`},We={class:`quick-calc-field`},Ge={class:`quick-calc-field__label`},Ke={class:`quick-calc-field__readonly`},qe={class:`quick-calc-field`},Je={class:`quick-calc-field__label`},Ye={class:`quick-calc-field__readonly`},Xe={class:`quick-calc-form-section`},Ze={class:`quick-calc-form-grid`},Qe={class:`quick-calc-field`},$e={class:`quick-calc-field__label`},et=[`disabled`,`placeholder`],tt={class:`quick-calc-field`},nt={class:`quick-calc-field__label`},rt=[`disabled`,`placeholder`],it={class:`quick-calc-form-section`},at={class:`quick-calc-form-section__header`},ot={class:`quick-calc-form-section__title`},st={class:`quick-calc-form-grid`},ct={class:`quick-calc-field quick-calc-field--wide`},lt={class:`quick-calc-field__label`},ut={class:`quick-calc-field__readonly quick-calc-field__readonly--multiline`},dt={class:`quick-calc-field`},ft={class:`quick-calc-field__label`},pt={class:`quick-calc-field__readonly`},mt={class:`quick-calc-form-section`},ht={class:`quick-calc-form-section__header`},gt={class:`quick-calc-form-section__title`},_t={class:`quick-calc-form-grid`},vt={class:`quick-calc-field`},yt={class:`quick-calc-field__label`},bt={class:`quick-calc-field__readonly`},xt={class:`quick-calc-field`},St={class:`quick-calc-field__label`},Ct={class:`quick-calc-field__readonly`},wt={class:`quick-calc-field`},Tt={class:`quick-calc-field__label`},Et=[`placeholder`,`onKeydown`],Dt={class:`quick-calc-field`},Ot={class:`quick-calc-field__label`},kt={class:`quick-calc-field__readonly quick-calc-field__readonly--emphasis`},S=x(te({__name:`QuickCalcWorkbenchView`,props:{contractId:{},contractName:{},projectConsultCategoryFactorKey:{},projectMajorFactorKey:{}},setup(te){let x=te,S=re(),{t:C,locale:w}=ne(),T=p(new Map),E=p(new Map),D=ce(),O=p(``),k=p(``),A=p(null),j=p(``),M=p(``),N=p(`1`),At=p(!1),jt=0,Mt=a(()=>O.value.trim()!==``),P=a(()=>k.value.trim()!==``),Nt=(e,t)=>t?{id:e,name:String(t.name||``),code:String(t.code||``),defCoe:typeof t.defCoe==`number`?t.defCoe:null,hasCost:t.hasCost===!0,hasArea:t.hasArea===!0,scale:t.scale===!0,onlyCostScale:t.onlyCostScale===!0}:null,Pt=e=>e!=null,F=e=>{if(!e)return``;if(typeof e.id==`string`)return e.id;let t=O.value.trim();return e.id[t]||Object.values(e.id)[0]||``},Ft=(e,t)=>{if(!P.value||!G.value||K.value)return!1;let n=ue(F(t)),r=String(n?.code||``).trim();return r?r.includes(`-`):!1},I=a(()=>{let e=O.value.trim();return D.filter(t=>t.key===`consult`?!0:!e||!P.value?!1:t.industryId?t.industryId===e:!0).map(e=>{let t=e.key===`consult`?e.items:e.items.filter(t=>Ft(e,t)),n=new Map(t.map(e=>[e.key,e]));return{...e,items:t,rows:e.rows.map(e=>e.map(e=>n.get(e)).filter(Pt)).filter(e=>e.length>0)}}).filter(e=>e.key===`consult`||e.items.length>0)});a(()=>{let e=O.value.trim();return e&&se(e,w.value)||C(`quickCalc.notSelected`)});let L=e=>O.value.trim()===String(e).trim(),R=e=>{let t=String(e).trim();O.value=L(t)?``:t},It=a(()=>D.find(e=>e.key===`consult`)?.items.find(e=>e.key===k.value)||null),Lt=a(()=>A.value&&D.find(e=>e.key===A.value?.groupKey)||null),Rt=a(()=>A.value&&I.value.find(e=>e.key===A.value?.groupKey)?.items.find(e=>e.key===A.value?.optionKey)||null),zt=a(()=>F(It.value)),Bt=a(()=>F(Rt.value)),Vt=a(()=>String(B.value?.code||``)),z=a(()=>It.value?.label||``),B=a(()=>Nt(zt.value,le(zt.value))),Ht=a(()=>A.value?Nt(Bt.value,ue(Bt.value)):null),V=a(()=>{if(Ht.value)return Ht.value;if(!K.value)return null;let e=ge(O.value.trim());return e?{id:String(e.id),name:String(e.item?.name||``),code:String(e.item?.code||``),defCoe:typeof e.item?.defCoe==`number`?e.item.defCoe:null,hasCost:e.item?.hasCost===!0,hasArea:e.item?.hasArea===!0}:null}),Ut=a(()=>{let e=B.value?.id;return e?T.value.get(e)??null:null}),Wt=a(()=>{let e=V.value?.id;return e?E.value.get(e)??null:null}),Gt=a(()=>Wt.value),H=a(()=>V.value!=null),U=a(()=>V.value?.hasCost===!0),W=a(()=>V.value?.hasArea===!0),Kt=a(()=>U.value&&W.value),qt=a(()=>b(N.value,{sanitize:!0,precision:3})),G=a(()=>B.value?.scale===!0),K=a(()=>B.value?.onlyCostScale===!0),q=a(()=>G.value&&H.value&&(K.value||U.value&&!Kt.value)),J=a(()=>G.value&&H.value&&!K.value&&W.value),Jt=a(()=>z.value?G.value?H.value?Kt.value?C(`quickCalc.placeholder.preferLandScale`):!K.value&&!U.value?C(`quickCalc.placeholder.investUnavailable`):C(`quickCalc.placeholder.input`):C(`quickCalc.placeholder.selectMajorFirst`):C(`quickCalc.placeholder.scaleUnavailable`):C(`quickCalc.placeholder.selectConsultFirst`)),Yt=a(()=>z.value?G.value?H.value?K.value?C(`quickCalc.placeholder.consultCostOnly`):W.value?C(`quickCalc.placeholder.input`):C(`quickCalc.placeholder.landUnavailable`):C(`quickCalc.placeholder.selectMajorFirst`):C(`quickCalc.placeholder.scaleUnavailable`):C(`quickCalc.placeholder.selectConsultFirst`)),Xt=a(()=>{let e=j.value.trim()!==``,t=M.value.trim()!==``;return q.value&&e?`cost`:J.value&&t?`area`:q.value?`cost`:J.value?`area`:null}),Y=a(()=>{let e=Xt.value;if(!e)return null;let t=b(e===`cost`?j.value:M.value,{sanitize:!0,precision:3});if(t==null)return null;let n=pe(t,e);if(!n)return null;let r={...n,basic:n.basic,optional:n.optional,total:n.total},i=fe({benchmarkBudgetBasic:r.basic,benchmarkBudgetOptional:r.optional,majorFactor:Gt.value,consultCategoryFactor:Ut.value,workStageFactor:qt.value});return{mode:e,scaleValue:t,benchmarkBudgetBasic:r.basic,benchmarkBudgetOptional:r.optional,benchmarkBudget:r.total,basicFormula:n.basicFormula,optionalFormula:n.optionalFormula,budgetFeeBasic:i?.basic??null,budgetFeeOptional:i?.optional??null,budgetFeeTotal:i?.total??null}}),Zt=a(()=>{let e=Y.value;return e?[e.basicFormula,e.optionalFormula].filter(Boolean).join(` + `)||`--`:C(`quickCalc.placeholder.selectScaleFirst`)}),Qt=a(()=>{let e=Y.value?.benchmarkBudget;return e==null?`--`:e.toLocaleString(w.value,{minimumFractionDigits:2,maximumFractionDigits:2})}),$t=a(()=>{let e=Y.value?.budgetFeeTotal;return e==null?`--`:e.toLocaleString(w.value,{minimumFractionDigits:2,maximumFractionDigits:2})}),X=e=>{let t=b(e===`invest`?j.value:M.value,{sanitize:!0,precision:3}),n=t==null?``:String(t);if(e===`invest`){j.value=n;return}M.value=n},en=e=>e==null?`--`:String(ie(e,3)),tn=()=>{let e=b(N.value,{sanitize:!0,precision:3});N.value=e==null?``:String(e)};a(()=>{let e=0;return k.value&&(e+=1),A.value&&(e+=1),e});let Z=(e,t)=>e===`consult`?k.value===t:A.value?.groupKey===e&&A.value?.optionKey===t,nn=(e,t)=>{if(e===`consult`){k.value=k.value===t?``:t;return}if(Z(e,t)){A.value=null;return}A.value={groupKey:e,optionKey:t}},rn=e=>e.key===`consult`?e.label.replace(/([(](?:常用|Common)[)])$/i,`
$1`):e.label,Q=async()=>{let[e,t]=await Promise.all([he(x.projectConsultCategoryFactorKey),me(x.projectMajorFactorKey)]);T.value=e,E.value=t},$=async()=>{try{let e=await S.getItem(v);O.value=typeof e?.projectIndustry==`string`?e.projectIndustry.trim():``}catch(e){console.error(`loadQuickIndustry failed:`,e),O.value=``}},an=async e=>{let t=await S.getItem(v);await S.setItem(v,{...t,projectIndustry:e,projectName:C(`quickCalc.projectName`)})};return ee(async()=>{await Promise.all([$(),Q()])}),l(()=>{Promise.all([$(),Q()])}),h(()=>O.value.trim(),async(e,t)=>{if(e===t)return;Lt.value?.industryId&&Lt.value.industryId!==e&&(A.value=null),!e&&A.value&&(A.value=null);let n=++jt;At.value=!0;try{await an(e),e&&(await de(S,e,x.projectConsultCategoryFactorKey||``,x.projectMajorFactorKey||``),await Q())}finally{n===jt&&(At.value=!1)}}),h([P,G,K],()=>{A.value&&I.value.find(e=>e.key===A.value?.groupKey)?.items.some(e=>e.key===A.value?.optionKey)!==!0&&(A.value=null)}),h(q,e=>{e||(j.value=``)}),h(J,e=>{e||(M.value=``)}),(a,l)=>(e(),o(`div`,_e,[d(`div`,ve,[d(`section`,ye,[d(`div`,be,[d(`section`,xe,[d(`div`,Se,[d(`span`,Ce,r(m(C)(`quickCalc.fields.industry`)),1),d(`div`,{class:`quick-calc-industry-grid`,role:`radiogroup`,"aria-label":m(C)(`quickCalc.fields.industry`)},[(e(!0),o(c,null,s(m(oe),t=>(e(),o(`label`,{key:`quick-workbench-${t.id}`,class:_([`quick-calc-industry-card`,{"is-selected":L(t.id)}]),"aria-checked":L(t.id),role:`radio`,tabindex:`0`,onClick:n(e=>R(t.id),[`prevent`]),onKeydown:[u(n(e=>R(t.id),[`prevent`]),[`enter`]),u(n(e=>R(t.id),[`prevent`]),[`space`])]},[d(`input`,{checked:L(t.id),type:`radio`,name:`quick-calc-industry-choice`,class:`quick-calc-option__input`,tabindex:`-1`},null,8,Ee),d(`span`,{class:_([`quick-calc-industry-card__icon`,{"is-selected":L(t.id)}])},[L(t.id)?(e(),f(m(y),{key:0,class:`h-3.5 w-3.5`})):(e(),f(m(ae),{key:1,class:`h-3.5 w-3.5`}))],2),d(`span`,De,r(m(se)(t.id,m(w))),1)],42,Te))),128))],8,we)])])]),Mt.value?P.value?G.value?K.value?(e(),o(`div`,je,r(m(C)(`quickCalc.empty.consultCostOnly`)),1)):i(``,!0):(e(),o(`div`,Ae,r(m(C)(`quickCalc.empty.scaleUnavailable`)),1)):(e(),o(`div`,ke,r(m(C)(`quickCalc.empty.selectConsult`)),1)):(e(),o(`div`,Oe,r(m(C)(`quickCalc.empty.selectIndustry`)),1)),d(`div`,Me,[(e(!0),o(c,null,s(I.value,t=>(e(),o(`article`,{key:t.key,class:_([`quick-calc-group quick-calc-group--table`,{"quick-calc-group--major":t.key!==`consult`,"quick-calc-group--general":t.key===`general`}])},[d(`div`,Ne,[d(`div`,Pe,r(t.key===`consult`?m(C)(`quickCalc.consultCategory`):m(C)(`quickCalc.majorCategory`)),1),d(`h3`,Fe,r(rn(t)),1)]),d(`div`,Ie,[(e(!0),o(c,null,s(t.rows,(n,a)=>(e(),o(`div`,{key:`${t.key}-${a}`,class:`quick-calc-selection-row`},[(e(!0),o(c,null,s(n,n=>(e(),o(`label`,{key:`${t.key}-${n.key}`,class:_([`quick-calc-inline-option`,{"is-selected":Z(t.key,n.key)}])},[d(`input`,{checked:Z(t.key,n.key),type:`radio`,name:t.key===`consult`?`quick-calc-consult-choice`:`quick-calc-major-choice`,class:`quick-calc-option__input`,onChange:e=>nn(t.key,n.key)},null,40,Le),d(`span`,{class:_([`quick-calc-inline-option__icon`,{"is-selected":Z(t.key,n.key)}])},[Z(t.key,n.key)?(e(),f(m(y),{key:0,class:`h-3.5 w-3.5`})):(e(),f(m(ae),{key:1,class:`h-3.5 w-3.5`}))],2),d(`span`,{class:_([`quick-calc-inline-option__text`,{"is-selected":Z(t.key,n.key)}])},r(n.label),3)],2))),128)),n.length===0?(e(),o(`div`,Re)):i(``,!0)]))),128))])],2))),128))])]),d(`aside`,ze,[d(`div`,Be,[d(`div`,Ve,[d(`section`,He,[d(`div`,Ue,[d(`label`,We,[d(`span`,Ge,r(m(C)(`quickCalc.consultCategory`)),1),d(`div`,Ke,r(z.value||m(C)(`quickCalc.notSelected`)),1)]),d(`label`,qe,[d(`span`,Je,r(m(C)(`quickCalc.fields.code`)),1),d(`div`,Ye,r(Vt.value||`--`),1)])])]),d(`section`,Xe,[d(`div`,Ze,[d(`label`,Qe,[d(`span`,$e,r(m(C)(`quickCalc.fields.investScale`)),1),g(d(`input`,{"onUpdate:modelValue":l[0]||=e=>j.value=e,type:`text`,inputmode:`decimal`,class:_([`quick-calc-field__input`,{"is-disabled":!q.value}]),disabled:!q.value,placeholder:Jt.value,onBlur:l[1]||=e=>X(`invest`),onKeydown:l[2]||=u(n(e=>X(`invest`),[`prevent`]),[`enter`])},null,42,et),[[t,j.value]])]),d(`label`,tt,[d(`span`,nt,r(m(C)(`quickCalc.fields.landScale`)),1),g(d(`input`,{"onUpdate:modelValue":l[3]||=e=>M.value=e,type:`text`,inputmode:`decimal`,class:_([`quick-calc-field__input`,{"is-disabled":!J.value}]),disabled:!J.value,placeholder:Yt.value,onBlur:l[4]||=e=>X(`land`),onKeydown:l[5]||=u(n(e=>X(`land`),[`prevent`]),[`enter`])},null,42,rt),[[t,M.value]])])])]),d(`section`,it,[d(`header`,at,[d(`h3`,ot,r(m(C)(`quickCalc.sections.benchmarkBudget`)),1)]),d(`div`,st,[d(`label`,ct,[d(`span`,lt,r(m(C)(`quickCalc.fields.formula`)),1),d(`div`,ut,r(Zt.value),1)]),d(`label`,dt,[d(`span`,ft,r(m(C)(`quickCalc.fields.amount`)),1),d(`div`,pt,r(Qt.value),1)])])]),d(`section`,mt,[d(`header`,ht,[d(`h3`,gt,r(m(C)(`quickCalc.sections.serviceBudget`)),1)]),d(`div`,_t,[d(`label`,vt,[d(`span`,yt,r(m(C)(`quickCalc.fields.consultFactor`)),1),d(`div`,bt,r(en(Ut.value)),1)]),d(`label`,xt,[d(`span`,St,r(m(C)(`quickCalc.fields.majorFactor`)),1),d(`div`,Ct,r(en(Gt.value)),1)]),d(`div`,wt,[d(`span`,Tt,r(m(C)(`quickCalc.fields.workEnvCoefficient`)),1),g(d(`input`,{"onUpdate:modelValue":l[6]||=e=>N.value=e,class:`quick-calc-field__input`,placeholder:m(C)(`quickCalc.fields.workEnvCoefficientPlaceholder`),onBlur:tn,onKeydown:u(n(tn,[`prevent`]),[`enter`])},null,40,Et),[[t,N.value]])]),d(`label`,Dt,[d(`span`,Ot,r(m(C)(`quickCalc.fields.budgetAmount`)),1),d(`div`,kt,r($t.value||`--`),1)])])])])])])])]))}}),[[`__scopeId`,`data-v-3aadb39f`]]);export{S as default};