v1.0.30: companies 表删除 name_en(英文名称)字段及全部关联 - 迁移SQL+helpers白名单+add/import/export/list+person关联查询(companies/company_options/products)+completeness核心层与标签+company.js搜索/筛选/列表/详情
This commit is contained in:
@@ -20,7 +20,7 @@ const COMPLETENESS_LAYERS = [
|
|||||||
'virtual' => ['phone' => 'core', 'email' => 'core'], // 关联 social_accounts.platform
|
'virtual' => ['phone' => 'core', 'email' => 'core'], // 关联 social_accounts.platform
|
||||||
],
|
],
|
||||||
'companies' => [
|
'companies' => [
|
||||||
'core' => ['display_name', 'name_zh', 'name_en', 'business_role', 'industry'],
|
'core' => ['display_name', 'name_zh', 'business_role', 'industry'],
|
||||||
'important' => ['address', 'country'],
|
'important' => ['address', 'country'],
|
||||||
'optional' => ['registration_number', 'legal_form', 'legal_representative', 'business_scope',
|
'optional' => ['registration_number', 'legal_form', 'legal_representative', 'business_scope',
|
||||||
'established_date', 'registered_capital', 'industry_subdivision',
|
'established_date', 'registered_capital', 'industry_subdivision',
|
||||||
@@ -50,7 +50,7 @@ const COMPLETENESS_LABELS = [
|
|||||||
'gender' => '性别', 'nationality' => '国籍', 'education' => '学历', 'graduated_from' => '毕业院校',
|
'gender' => '性别', 'nationality' => '国籍', 'education' => '学历', 'graduated_from' => '毕业院校',
|
||||||
'hometown' => '家乡', 'id_type' => '证件类型', 'id_number' => '证件号码',
|
'hometown' => '家乡', 'id_type' => '证件类型', 'id_number' => '证件号码',
|
||||||
'display_name' => '名称', 'industry' => '行业', 'address' => '地址', 'business_role' => '业务类型',
|
'display_name' => '名称', 'industry' => '行业', 'address' => '地址', 'business_role' => '业务类型',
|
||||||
'country' => '国家/地区', 'name_zh' => '中文名', 'name_en' => '英文名', 'registration_number' => '注册号',
|
'country' => '国家/地区', 'name_zh' => '中文名', 'registration_number' => '注册号',
|
||||||
'legal_form' => '企业类型', 'legal_representative' => '法定代表人', 'business_scope' => '经营范围',
|
'legal_form' => '企业类型', 'legal_representative' => '法定代表人', 'business_scope' => '经营范围',
|
||||||
'established_date' => '成立日期', 'registered_capital' => '注册资本', 'industry_subdivision' => '行业细分',
|
'established_date' => '成立日期', 'registered_capital' => '注册资本', 'industry_subdivision' => '行业细分',
|
||||||
'latest_employee_count' => '员工数', 'latest_annual_revenue' => '年营收', 'is_listed' => '是否上市',
|
'latest_employee_count' => '员工数', 'latest_annual_revenue' => '年营收', 'is_listed' => '是否上市',
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ require_once __DIR__ . '/response.php';
|
|||||||
|
|
||||||
/** 企业表可写入字段白名单(key => 类型标记:s字符串/i整数/d日期/n数字) */
|
/** 企业表可写入字段白名单(key => 类型标记:s字符串/i整数/d日期/n数字) */
|
||||||
const COMPANY_FIELDS = [
|
const COMPANY_FIELDS = [
|
||||||
'name_zh' => 's', 'name_en' => 's', 'display_name' => 's',
|
'name_zh' => 's', 'display_name' => 's',
|
||||||
'business_role' => 's', 'country' => 's', 'registration_number' => 's',
|
'business_role' => 's', 'country' => 's', 'registration_number' => 's',
|
||||||
'address' => 's', 'legal_form' => 's', 'legal_representative' => 's',
|
'address' => 's', 'legal_form' => 's', 'legal_representative' => 's',
|
||||||
'business_scope' => 's', 'established_date' => 'd', 'registered_capital' => 's',
|
'business_scope' => 's', 'established_date' => 'd', 'registered_capital' => 's',
|
||||||
|
|||||||
+3
-3
@@ -14,12 +14,12 @@ checkAjax();
|
|||||||
checkPermission('company');
|
checkPermission('company');
|
||||||
|
|
||||||
$data = extractFields(COMPANY_FIELDS);
|
$data = extractFields(COMPANY_FIELDS);
|
||||||
// 显示名称不再单独录入:优先取中文名称,其次英文名称(数据库 display_name 为 NOT NULL)
|
// 显示名称不再单独录入:取中文名称(数据库 display_name 为 NOT NULL)
|
||||||
if (empty($data['display_name'])) {
|
if (empty($data['display_name'])) {
|
||||||
$data['display_name'] = $data['name_zh'] ?? ($data['name_en'] ?? '');
|
$data['display_name'] = $data['name_zh'] ?? '';
|
||||||
}
|
}
|
||||||
if (empty($data['display_name'])) {
|
if (empty($data['display_name'])) {
|
||||||
Response::error('企业名称(中文名称或英文名称)为必填项', 400);
|
Response::error('企业名称(中文名称)为必填项', 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdo = DB::getInstance()->getPdo();
|
$pdo = DB::getInstance()->getPdo();
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ if (!$idList) {
|
|||||||
$pdo = DB::getInstance()->getPdo();
|
$pdo = DB::getInstance()->getPdo();
|
||||||
$in = implode(',', array_fill(0, count($idList), '?'));
|
$in = implode(',', array_fill(0, count($idList), '?'));
|
||||||
$stmt = $pdo->prepare(
|
$stmt = $pdo->prepare(
|
||||||
"SELECT id, name_zh, name_en, business_role, country, registration_number,
|
"SELECT id, name_zh, business_role, country, registration_number,
|
||||||
address, legal_representative, industry, industry_subdivision, website,
|
address, legal_representative, industry, industry_subdivision, website,
|
||||||
registered_capital, established_date, latest_employee_count, latest_annual_revenue,
|
registered_capital, established_date, latest_employee_count, latest_annual_revenue,
|
||||||
is_listed, stock_code, source_channel, source_detail, created_at
|
is_listed, stock_code, source_channel, source_detail, created_at
|
||||||
@@ -44,10 +44,10 @@ header('Content-Type: text/csv; charset=utf-8');
|
|||||||
header('Content-Disposition: attachment; filename="companies_' . date('Ymd_His') . '.csv"');
|
header('Content-Disposition: attachment; filename="companies_' . date('Ymd_His') . '.csv"');
|
||||||
echo "\xEF\xBB\xBF"; // UTF-8 BOM,便于 Excel 直接打开
|
echo "\xEF\xBB\xBF"; // UTF-8 BOM,便于 Excel 直接打开
|
||||||
$out = fopen('php://output', 'w');
|
$out = fopen('php://output', 'w');
|
||||||
fputcsv($out, ['ID', '公司名称', '英文名称', '业务角色', '国家/地区', '注册号', '地址', '法人', '行业', '行业细分', '官网', '注册资本', '成立日期', '员工数', '年营收', '是否上市', '股票代码', '来源渠道', '来源详情', '创建时间']);
|
fputcsv($out, ['ID', '公司名称', '业务角色', '国家/地区', '注册号', '地址', '法人', '行业', '行业细分', '官网', '注册资本', '成立日期', '员工数', '年营收', '是否上市', '股票代码', '来源渠道', '来源详情', '创建时间']);
|
||||||
foreach ($list as $r) {
|
foreach ($list as $r) {
|
||||||
fputcsv($out, [
|
fputcsv($out, [
|
||||||
$r['id'], $r['name_zh'], $r['name_en'], $r['business_role'],
|
$r['id'], $r['name_zh'], $r['business_role'],
|
||||||
$r['country'], $r['registration_number'], $r['address'], $r['legal_representative'],
|
$r['country'], $r['registration_number'], $r['address'], $r['legal_representative'],
|
||||||
$r['industry'], $r['industry_subdivision'], $r['website'], $r['registered_capital'],
|
$r['industry'], $r['industry_subdivision'], $r['website'], $r['registered_capital'],
|
||||||
$r['established_date'], $r['latest_employee_count'], $r['latest_annual_revenue'],
|
$r['established_date'], $r['latest_employee_count'], $r['latest_annual_revenue'],
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* 企业 CSV 导入接口 POST /api/company/import.php (multipart/form-data, 字段名 file)
|
* 企业 CSV 导入接口 POST /api/company/import.php (multipart/form-data, 字段名 file)
|
||||||
* CSV 表头:name_zh,name_en,display_name,business_role,country,registration_number,address,
|
* CSV 表头:name_zh,display_name,business_role,country,registration_number,address,
|
||||||
* legal_form,legal_representative,industry,industry_subdivision,website,
|
* legal_form,legal_representative,industry,industry_subdivision,website,
|
||||||
* registered_capital,established_date,is_listed,stock_code
|
* registered_capital,established_date,is_listed,stock_code
|
||||||
* 仅 display_name 为必填。
|
* 仅 display_name 为必填。
|
||||||
@@ -31,7 +31,7 @@ $first = preg_replace('/^\xEF\xBB\xBF/', '', $first);
|
|||||||
$header = str_getcsv(trim($first));
|
$header = str_getcsv(trim($first));
|
||||||
|
|
||||||
$map = [
|
$map = [
|
||||||
'name_zh' => 'name_zh', 'name_en' => 'name_en', 'display_name' => 'display_name',
|
'name_zh' => 'name_zh', 'display_name' => 'display_name',
|
||||||
'business_role' => 'business_role', 'country' => 'country', 'registration_number' => 'registration_number',
|
'business_role' => 'business_role', 'country' => 'country', 'registration_number' => 'registration_number',
|
||||||
'address' => 'address', 'legal_form' => 'legal_form', 'legal_representative' => 'legal_representative',
|
'address' => 'address', 'legal_form' => 'legal_form', 'legal_representative' => 'legal_representative',
|
||||||
'industry' => 'industry', 'industry_subdivision' => 'industry_subdivision', 'website' => 'website',
|
'industry' => 'industry', 'industry_subdivision' => 'industry_subdivision', 'website' => 'website',
|
||||||
@@ -46,7 +46,7 @@ $failed = 0;
|
|||||||
|
|
||||||
$stmt = $pdo->prepare(
|
$stmt = $pdo->prepare(
|
||||||
"INSERT INTO companies
|
"INSERT INTO companies
|
||||||
(name_zh, name_en, display_name, business_role, country, registration_number,
|
(name_zh, display_name, business_role, country, registration_number,
|
||||||
address, legal_form, legal_representative, industry, industry_subdivision, website,
|
address, legal_form, legal_representative, industry, industry_subdivision, website,
|
||||||
registered_capital, established_date, is_listed, stock_code, source_channel, source_detail)
|
registered_capital, established_date, is_listed, stock_code, source_channel, source_detail)
|
||||||
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
|
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
|
||||||
@@ -68,7 +68,7 @@ while (($row = fgetcsv($handle)) !== false) {
|
|||||||
$rec['established_date'] = ($rec['established_date'] ?? '') !== '' ? date('Y-m-d', strtotime($rec['established_date'])) : null;
|
$rec['established_date'] = ($rec['established_date'] ?? '') !== '' ? date('Y-m-d', strtotime($rec['established_date'])) : null;
|
||||||
try {
|
try {
|
||||||
$stmt->execute([
|
$stmt->execute([
|
||||||
$rec['name_zh'] ?? null, $rec['name_en'] ?? null, $rec['display_name'],
|
$rec['name_zh'] ?? null, $rec['display_name'],
|
||||||
$rec['business_role'] ?? null, $rec['country'] ?? null, $rec['registration_number'] ?? null,
|
$rec['business_role'] ?? null, $rec['country'] ?? null, $rec['registration_number'] ?? null,
|
||||||
$rec['address'] ?? null, $rec['legal_form'] ?? null, $rec['legal_representative'] ?? null,
|
$rec['address'] ?? null, $rec['legal_form'] ?? null, $rec['legal_representative'] ?? null,
|
||||||
$rec['industry'] ?? null, $rec['industry_subdivision'] ?? null, $rec['website'] ?? null,
|
$rec['industry'] ?? null, $rec['industry_subdivision'] ?? null, $rec['website'] ?? null,
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ $active = isset($_REQUEST['is_active']) && $_REQUEST['is_active'] !== '' ? (int
|
|||||||
|
|
||||||
// 可指定筛选的字段白名单(下拉选项来自前端「筛选」)
|
// 可指定筛选的字段白名单(下拉选项来自前端「筛选」)
|
||||||
$searchableFields = [
|
$searchableFields = [
|
||||||
'name_zh', 'name_en', 'registration_number', 'legal_representative',
|
'name_zh', 'registration_number', 'legal_representative',
|
||||||
'address', 'industry', 'industry_subdivision', 'website',
|
'address', 'industry', 'industry_subdivision', 'website',
|
||||||
'source_channel', 'source_detail', 'business_scope', 'stock_code',
|
'source_channel', 'source_detail', 'business_scope', 'stock_code',
|
||||||
];
|
];
|
||||||
@@ -109,7 +109,7 @@ if ($keyword !== '') {
|
|||||||
$params[] = "%$keyword%";
|
$params[] = "%$keyword%";
|
||||||
} else {
|
} else {
|
||||||
// 全部字段:匹配常用字段
|
// 全部字段:匹配常用字段
|
||||||
$where[] = '(name_zh LIKE ? OR name_en LIKE ? OR display_name LIKE ? OR registration_number LIKE ? OR legal_representative LIKE ? OR industry LIKE ? OR industry_subdivision LIKE ? OR website LIKE ? OR source_detail LIKE ? OR stock_code LIKE ?)';
|
$where[] = '(name_zh LIKE ? OR display_name LIKE ? OR registration_number LIKE ? OR legal_representative LIKE ? OR industry LIKE ? OR industry_subdivision LIKE ? OR website LIKE ? OR source_detail LIKE ? OR stock_code LIKE ?)';
|
||||||
$like = "%$keyword%";
|
$like = "%$keyword%";
|
||||||
array_push($params, $like, $like, $like, $like, $like, $like, $like, $like, $like, $like);
|
array_push($params, $like, $like, $like, $like, $like, $like, $like, $like, $like, $like);
|
||||||
}
|
}
|
||||||
@@ -132,7 +132,7 @@ $total = (int)$stmt->fetchColumn();
|
|||||||
|
|
||||||
$offset = ($page - 1) * $limit;
|
$offset = ($page - 1) * $limit;
|
||||||
$stmt = $pdo->prepare(
|
$stmt = $pdo->prepare(
|
||||||
"SELECT id, name_zh, name_en, display_name, business_role, legal_form, country, registration_number,
|
"SELECT id, name_zh, display_name, business_role, legal_form, country, registration_number,
|
||||||
address, legal_representative, industry, industry_subdivision, website,
|
address, legal_representative, industry, industry_subdivision, website,
|
||||||
latest_employee_count, latest_annual_revenue, is_listed, stock_code,
|
latest_employee_count, latest_annual_revenue, is_listed, stock_code,
|
||||||
source_channel, source_detail, is_active, created_at, updated_at
|
source_channel, source_detail, is_active, created_at, updated_at
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ switch ($table) {
|
|||||||
|
|
||||||
case 'companies':
|
case 'companies':
|
||||||
$collect([
|
$collect([
|
||||||
'display_name' => 's', 'name_zh' => 's', 'name_en' => 's', 'business_role' => 's',
|
'display_name' => 's', 'name_zh' => 's', 'business_role' => 's',
|
||||||
'country' => 's', 'registration_number' => 's', 'address' => 's', 'legal_form' => 's',
|
'country' => 's', 'registration_number' => 's', 'address' => 's', 'legal_form' => 's',
|
||||||
'legal_representative' => 's', 'business_scope' => 's', 'established_date' => 'd',
|
'legal_representative' => 's', 'business_scope' => 's', 'established_date' => 'd',
|
||||||
'registered_capital' => 's', 'industry' => 's', 'industry_subdivision' => 's',
|
'registered_capital' => 's', 'industry' => 's', 'industry_subdivision' => 's',
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ $offset = ($page - 1) * $limit;
|
|||||||
$stmt = $pdo->prepare(
|
$stmt = $pdo->prepare(
|
||||||
"SELECT pwe.id AS work_id, pwe.company_id,
|
"SELECT pwe.id AS work_id, pwe.company_id,
|
||||||
CASE WHEN c.name_zh IS NOT NULL AND c.name_zh <> '' THEN c.name_zh
|
CASE WHEN c.name_zh IS NOT NULL AND c.name_zh <> '' THEN c.name_zh
|
||||||
ELSE COALESCE(c.name_en, c.display_name) END AS company_name,
|
ELSE c.display_name END AS company_name,
|
||||||
c.industry, pwe.department, pwe.position, pwe.job_level,
|
c.industry, pwe.department, pwe.position, pwe.job_level,
|
||||||
pwe.start_date, pwe.end_date, pwe.is_current
|
pwe.start_date, pwe.end_date, pwe.is_current
|
||||||
FROM person_work_experiences pwe
|
FROM person_work_experiences pwe
|
||||||
|
|||||||
@@ -18,13 +18,13 @@ $pdo = DB::getInstance()->getPdo();
|
|||||||
$where = 'is_active = 1';
|
$where = 'is_active = 1';
|
||||||
$params = [];
|
$params = [];
|
||||||
if ($keyword !== '') {
|
if ($keyword !== '') {
|
||||||
$where .= ' AND (name_zh LIKE ? OR name_en LIKE ? OR display_name LIKE ?)';
|
$where .= ' AND (name_zh LIKE ? OR display_name LIKE ?)';
|
||||||
$like = "%$keyword%";
|
$like = "%$keyword%";
|
||||||
array_push($params, $like, $like, $like);
|
array_push($params, $like, $like, $like);
|
||||||
}
|
}
|
||||||
|
|
||||||
$stmt = $pdo->prepare(
|
$stmt = $pdo->prepare(
|
||||||
"SELECT id, COALESCE(NULLIF(display_name,''), name_zh, name_en) AS name
|
"SELECT id, COALESCE(NULLIF(display_name,''), name_zh) AS name
|
||||||
FROM companies WHERE $where ORDER BY id ASC LIMIT $limit"
|
FROM companies WHERE $where ORDER BY id ASC LIMIT $limit"
|
||||||
);
|
);
|
||||||
$stmt->execute($params);
|
$stmt->execute($params);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ $offset = ($page - 1) * $limit;
|
|||||||
$stmt = $pdo->prepare(
|
$stmt = $pdo->prepare(
|
||||||
"SELECT DISTINCT cp.id, cp.category_name, cp.category_description, cp.is_core, cp.is_active,
|
"SELECT DISTINCT cp.id, cp.category_name, cp.category_description, cp.is_core, cp.is_active,
|
||||||
CASE WHEN c.name_zh IS NOT NULL AND c.name_zh <> '' THEN c.name_zh
|
CASE WHEN c.name_zh IS NOT NULL AND c.name_zh <> '' THEN c.name_zh
|
||||||
ELSE COALESCE(c.name_en, c.display_name) END AS company_name
|
ELSE c.display_name END AS company_name
|
||||||
$join
|
$join
|
||||||
ORDER BY company_name, cp.id DESC
|
ORDER BY company_name, cp.id DESC
|
||||||
LIMIT $limit OFFSET $offset"
|
LIMIT $limit OFFSET $offset"
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
-- ============================================================
|
||||||
|
-- SuperLink Web - v1.0.30 数据库结构变更
|
||||||
|
-- companies 表删除 name_en(英文名称)字段
|
||||||
|
-- ============================================================
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
|
||||||
|
ALTER TABLE `companies`
|
||||||
|
DROP COLUMN `name_en`;
|
||||||
@@ -31,7 +31,7 @@ $(function () {
|
|||||||
' <button class="btn" id="btn-filter" title="按字段设置多个筛选条件(支持 且/或 逻辑)">筛选</button>' +
|
' <button class="btn" id="btn-filter" title="按字段设置多个筛选条件(支持 且/或 逻辑)">筛选</button>' +
|
||||||
' <div class="search-wrap">' +
|
' <div class="search-wrap">' +
|
||||||
' <select id="search-field"><option value="">全字段</option>' +
|
' <select id="search-field"><option value="">全字段</option>' +
|
||||||
' <option value="name_zh">企业名称</option><option value="name_en">英文名称</option>' +
|
' <option value="name_zh">企业名称</option>' +
|
||||||
' <option value="registration_number">注册号</option><option value="legal_representative">法定代表人</option>' +
|
' <option value="registration_number">注册号</option><option value="legal_representative">法定代表人</option>' +
|
||||||
' <option value="address">注册地址</option><option value="industry">行业</option>' +
|
' <option value="address">注册地址</option><option value="industry">行业</option>' +
|
||||||
' <option value="industry_subdivision">行业细分</option><option value="website">官网</option>' +
|
' <option value="industry_subdivision">行业细分</option><option value="website">官网</option>' +
|
||||||
@@ -103,7 +103,7 @@ $(function () {
|
|||||||
html += '<tr>' +
|
html += '<tr>' +
|
||||||
'<td><input type="checkbox" class="row-check" value="' + r.id + '"></td>' +
|
'<td><input type="checkbox" class="row-check" value="' + r.id + '"></td>' +
|
||||||
'<td>' + r.id + '</td>' +
|
'<td>' + r.id + '</td>' +
|
||||||
'<td title="' + escHtml(r.name_zh || r.name_en || '') + '">' + escHtml(r.name_zh || r.name_en || '-') + '</td>' +
|
'<td title="' + escHtml(r.name_zh || '') + '">' + escHtml(r.name_zh || '-') + '</td>' +
|
||||||
'<td>' + escHtml(r.industry || '-') + '</td>' +
|
'<td>' + escHtml(r.industry || '-') + '</td>' +
|
||||||
'<td>' + escHtml(r.industry_subdivision || '-') + '</td>' +
|
'<td>' + escHtml(r.industry_subdivision || '-') + '</td>' +
|
||||||
'<td>' + escHtml(r.country || '-') + '</td>' +
|
'<td>' + escHtml(r.country || '-') + '</td>' +
|
||||||
@@ -144,7 +144,7 @@ $(function () {
|
|||||||
|
|
||||||
/* ---------- 筛选弹窗:多字段条件 + 且/或 逻辑关系 ---------- */
|
/* ---------- 筛选弹窗:多字段条件 + 且/或 逻辑关系 ---------- */
|
||||||
var FILTER_FIELDS = [
|
var FILTER_FIELDS = [
|
||||||
['name_zh', '企业名称'], ['name_en', '英文名称'], ['registration_number', '注册号'],
|
['name_zh', '企业名称'], ['registration_number', '注册号'],
|
||||||
['legal_representative', '法定代表人'], ['address', '注册地址'], ['country', '国家/地区'],
|
['legal_representative', '法定代表人'], ['address', '注册地址'], ['country', '国家/地区'],
|
||||||
['industry', '行业'], ['industry_subdivision', '行业细分'], ['legal_form', '企业类型'],
|
['industry', '行业'], ['industry_subdivision', '行业细分'], ['legal_form', '企业类型'],
|
||||||
['business_role', '业务角色'], ['website', '官网'], ['source_channel', '来源渠道'],
|
['business_role', '业务角色'], ['website', '官网'], ['source_channel', '来源渠道'],
|
||||||
@@ -674,7 +674,7 @@ $(function () {
|
|||||||
|
|
||||||
var html =
|
var html =
|
||||||
'<div style="padding:18px 22px;">' +
|
'<div style="padding:18px 22px;">' +
|
||||||
' <h3 style="margin-bottom:14px;">' + escHtml(c.name_zh || c.name_en || '企业 #' + c.id) + '</h3>' +
|
' <h3 style="margin-bottom:14px;">' + escHtml(c.name_zh || '企业 #' + c.id) + '</h3>' +
|
||||||
' <div class="detail-grid" style="display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;font-size:13px;">' +
|
' <div class="detail-grid" style="display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;font-size:13px;">' +
|
||||||
detailRow('企业名称', c.name_zh) + detailRow('企业类型', c.legal_form) +
|
detailRow('企业名称', c.name_zh) + detailRow('企业类型', c.legal_form) +
|
||||||
detailRow('业务角色', c.business_role) + detailRow('国家/地区', c.country) +
|
detailRow('业务角色', c.business_role) + detailRow('国家/地区', c.country) +
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ var BASE_URL = '/api/';
|
|||||||
var PAGE_SIZE = 20;
|
var PAGE_SIZE = 20;
|
||||||
|
|
||||||
/** 系统版本号(logo旁展示):修改代码后运行 tools/bump_version.php 自动递增 */
|
/** 系统版本号(logo旁展示):修改代码后运行 tools/bump_version.php 自动递增 */
|
||||||
var APP_VERSION = 'v1.0.29';
|
var APP_VERSION = 'v1.0.30';
|
||||||
|
|
||||||
/** 页脚版权/备案信息(在 config.js 中修改) */
|
/** 页脚版权/备案信息(在 config.js 中修改) */
|
||||||
var FOOTER_TEXT = '© 2026 SuperLink 管理系统 版权所有 | 备案号:请替换为真实备案号';
|
var FOOTER_TEXT = '© 2026 SuperLink 管理系统 版权所有 | 备案号:请替换为真实备案号';
|
||||||
|
|||||||
Reference in New Issue
Block a user