Update linked code labels and alias cache
This commit is contained in:
1 parent
6790991471
commit
a510f34f71
2 files changed
+467
-17
No files matched your search
@@ -635,6 +635,7 @@
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const LINKED_CODE_BY_BUSINESS = {"26-002":{"salesCode":"26-교영-02","designCode":"26-설계-02","constCode":""},"26-004":{"salesCode":"26-교영-04","designCode":"26-설계-03","constCode":"26-시공-03"},"25-003":{"salesCode":"25-교영-02","designCode":"25-설계-01","constCode":"25-시공-01"},"25-005":{"salesCode":"25-교영-04","designCode":"25-설계-02","constCode":"25-시공-37"},"25-008":{"salesCode":"25-교영-07","designCode":"25-설계-04","constCode":"25-시공-08"},"25-009":{"salesCode":"25-교영-09","designCode":"25-설계-05","constCode":"26-시공-02"},"25-004":{"salesCode":"25-교영-03","designCode":"25-설계-06","constCode":""},"25-032":{"salesCode":"25-교영-32","designCode":"26-설계-01","constCode":""},"25-028":{"salesCode":"25-교영-28","designCode":"26-설계-04","constCode":""},"24-035":{"salesCode":"24-교영-35","designCode":"24-설계-01","constCode":""},"24-034":{"salesCode":"24-교영-34","designCode":"24-설계-03","constCode":""},"24-026":{"salesCode":"24-교영-26","designCode":"24-설계-05","constCode":""},"24-039":{"salesCode":"24-교영-39","designCode":"24-설계-09","constCode":"25-시공-13"},"24-044":{"salesCode":"24-교영-44","designCode":"24-설계-14","constCode":"25-시공-30"},"24-056":{"salesCode":"24-교영-85","designCode":"24-설계-31","constCode":"24-시공-24"},"24-061":{"salesCode":"24-교영-63","designCode":"24-설계-20","constCode":"24-시공-25"},"24-068":{"salesCode":"24-교영-69","designCode":"24-설계-21","constCode":"24-시공-27"},"24-072":{"salesCode":"24-교영-75","designCode":"24-설계-23","constCode":""},"24-074":{"salesCode":"24-교영-77","designCode":"24-설계-24","constCode":""},"24-078":{"salesCode":"24-교영-81","designCode":"24-설계-25","constCode":"26-시공-01"},"24-079":{"salesCode":"24-교영-82","designCode":"24-설계-26","constCode":"24-시공-33"},"24-080":{"salesCode":"24-교영-83","designCode":"24-설계-27","constCode":""},"24-081":{"salesCode":"24-교영-86","designCode":"24-설계-30","constCode":""},"24-064":{"salesCode":"24-교영-65","designCode":"24-설계-32","constCode":""},"24-066":{"salesCode":"24-교영-67","designCode":"24-설계-33","constCode":""},"24-067":{"salesCode":"24-교영-68","designCode":"24-설계-34","constCode":""},"24-017":{"salesCode":"24-교영-17","designCode":"24-설계-35","constCode":""},"24-020":{"salesCode":"24-교영-20","designCode":"24-설계-36","constCode":""},"24-084":{"salesCode":"24-교영-89","designCode":"24-설계-37","constCode":""},"24-063":{"salesCode":"24-교영-64","designCode":"25-설계-03","constCode":""},"24-073":{"salesCode":"24-교영-76","designCode":"25-설계-07","constCode":"25-시공-15"},"24-024":{"salesCode":"24-교영-24","designCode":"25-설계-09","constCode":""},"24-019":{"salesCode":"24-교영-19","designCode":"25-설계-11","constCode":"25-시공-24"},"23-042":{"salesCode":"23-교영-38","designCode":"24-설계-28","constCode":""},"23-004":{"salesCode":"23-교영-04","designCode":"23-설계-07","constCode":""},"23-008":{"salesCode":"23-교영-08","designCode":"23-설계-08","constCode":"25-시공-32"},"23-003":{"salesCode":"23-교영-03","designCode":"23-설계-10","constCode":""},"23-019":{"salesCode":"23-교영-19","designCode":"23-설계-12","constCode":""},"23-020":{"salesCode":"23-교영-20","designCode":"23-설계-13","constCode":""},"23-035":{"salesCode":"23-교영-35","designCode":"23-설계-14","constCode":"24-시공-21"},"23-030":{"salesCode":"23-교영-30","designCode":"24-설계-02","constCode":""},"23-037":{"salesCode":"23-교영-37","designCode":"24-설계-18","constCode":""},"24-048":{"salesCode":"23-교영-37","designCode":"24-설계-18","constCode":""},"23-041":{"salesCode":"23-교영-39","designCode":"24-설계-29","constCode":""},"22-046":{"salesCode":"22-교영-46","designCode":"22-설계-01","constCode":""},"22-016":{"salesCode":"22-교영-16","designCode":"22-설계-02","constCode":"23-시공-27"},"22-045":{"salesCode":"22-교영-45","designCode":"22-설계-03","constCode":""},"22-017":{"salesCode":"22-교영-17","designCode":"22-설계-04","constCode":""},"22-014":{"salesCode":"22-교영-14","designCode":"22-설계-05","constCode":""},"22-044":{"salesCode":"22-교영-44","designCode":"22-설계-06","constCode":""},"22-043":{"salesCode":"22-교영-43","designCode":"22-설계-07","constCode":""},"22-011":{"salesCode":"22-교영-11","designCode":"22-설계-08","constCode":""},"22-041":{"salesCode":"22-교영-41","designCode":"22-설계-10","constCode":""},"22-033":{"salesCode":"22-교영-33","designCode":"23-설계-01","constCode":"25-시공-33"},"22-027":{"salesCode":"22-교영-27","designCode":"23-설계-02","constCode":""},"22-012":{"salesCode":"22-교영-12","designCode":"23-설계-03","constCode":""},"22-039":{"salesCode":"22-교영-39","designCode":"23-설계-04","constCode":"25-시공-31"},"22-038":{"salesCode":"22-교영-38","designCode":"23-설계-11","constCode":""},"22-036":{"salesCode":"22-교영-36"Line truncated
|
||||
const state = {
|
||||
rows: [],
|
||||
filteredRows: [],
|
||||
@@ -695,6 +696,29 @@
|
||||
.replace(/(?<=\d)-(?=\d)/g, '-\n');
|
||||
}
|
||||
|
||||
function extractBusinessCodeKey(value) {
|
||||
const text = String(value || '').trim();
|
||||
const match = text.match(/\d{2}-\d{3}/);
|
||||
return match ? match[0] : text;
|
||||
}
|
||||
|
||||
function resolveLinkedCodes(detail) {
|
||||
const apiLinked = detail.linkedCodes || {};
|
||||
if (apiLinked.salesCode || apiLinked.designCode) {
|
||||
return apiLinked;
|
||||
}
|
||||
const key = extractBusinessCodeKey(detail.businessCode);
|
||||
return LINKED_CODE_BY_BUSINESS[key] || { salesCode: '', designCode: '' };
|
||||
}
|
||||
|
||||
function formatLinkedCodeLabel(code, name) {
|
||||
const cleanCode = String(code || '').trim();
|
||||
const cleanName = String(name || '').trim();
|
||||
if (!cleanCode) return '-';
|
||||
if (!cleanName) return cleanCode;
|
||||
return `${cleanName}(${cleanCode})`;
|
||||
}
|
||||
|
||||
function normalizeCrossbeamRows(crossbeam) {
|
||||
if (Array.isArray(crossbeam)) {
|
||||
return crossbeam.length ? crossbeam : [{ height: '', length: '', quantity: '', remarks: '' }];
|
||||
@@ -889,10 +913,16 @@
|
||||
}
|
||||
|
||||
function renderDetailRows(detail) {
|
||||
const linkedCodes = resolveLinkedCodes(detail);
|
||||
const linkedCodeText = [
|
||||
formatLinkedCodeLabel(linkedCodes.salesCode, linkedCodes.salesName),
|
||||
formatLinkedCodeLabel(linkedCodes.designCode, linkedCodes.designName),
|
||||
].join(' · ');
|
||||
const rows = [
|
||||
['사업코드', detail.businessCode],
|
||||
['약칭', detail.projectName],
|
||||
['시공코드', detail.projectCode],
|
||||
['연계코드', linkedCodeText],
|
||||
['현장위치', renderSiteLocationCell(detail.siteLocation, detail.projectName)],
|
||||
['발주처', detail.clientName],
|
||||
['최종계약금액', detail.finalContractAmountText],
|
||||
|
||||
Reference in new issue
Block a user