Qlite 快來報價 | 免費報價單・合約・勞報單產生器・AI 報價助手|一人公司 CRM {"@context":"https://schema.org","@type":"SoftwareApplication","name":"Qlite 快來報價","alternateName":["報價單產生器","合約產生器","勞報單產生器","AI 報價助手","AI 報價健檢"],"description":"免費線上報價單產生器、合約產生器、勞報單產生器,適合室內設計、工程營建、網紅合作等各行業。AI 報價助手智能生成報價、AI 報價健檢分析優化,支援行情參考等實用工具。","url":"https://www.qlite.cc","applicationCategory":"BusinessApplication","operatingSystem":"Web Browser","offers":{"@type":"Offer","price":"0","priceCurrency":"TWD","description":"免費使用"},"aggregateRating":{"@type":"AggregateRating","ratingValue":"4.8","ratingCount":"100","bestRating":"5"},"featureList":["報價單產生器 - 快速建立專業報價單","合約產生器 - 線上製作保密協議 NDA","勞報單產生器 - 自動計算扣繳稅額","AI 報價助手 - 智能生成報價建議","AI 報價健檢 - 檢查報價合理性","行情參考 - 查詢市場報價行情","一鍵匯出 PDF","客戶管理系統"]} { "@context": "https://schema.org", "@type": "Organization", "name": "Qlite 快來報價", "url": "https://www.qlite.cc/", "logo": "https://www.qlite.cc/qlite-logo.svg", "description": "專為台灣一人公司設計的輕量級 CRM 與報價單系統" } (function() { const storageKey = 'landing-theme'; const theme = localStorage.getItem(storageKey); const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; const resolvedTheme = theme === 'system' || !theme ? systemTheme : theme; document.documentElement.classList.add(resolvedTheme); })(); Qlite 快來報價 - 免費報價單・合約・勞報單產生器、AI 報價助手・AI 報價健檢|一人公司 CRM 免費工具 AI 報價助手 AI 報價健檢 報價單/估價單產生器 合約產生器 勞務報酬單產生器 行情參考 部落格 部落格 其他頁面 隱私權政策 服務條款 astro-island,astro-slot,astro-static-slot{display:contents} (()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event("astro:only"));})(); (()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>Number.POSITIVE_INFINITY*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||" ",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),cust
FACT BOX ・ 要点整理
- 出典:PR Times
- 分類:新製品
- 関連組織:Qlite