提交 1f3a650b 作者: zhongye-dev

feat: 新增专题研判大屏页与出证/字典管理,工作台改版、全站日期统一为2026

- 可视化大屏:新增专题研判页(对象基本信息、来源国分布地图与排名、检出趋势与首次检出时间轴、寄主分布与处置情况、风险管理建议),支持有害生物/来源国/引进企业三视角切换
- 工作台:移除欢迎条与指标卡,快捷入口改为红色卡片,月度检疫统计延至当前月份,风险等级分布改为检出有害生物情况(滚动播放、悬浮暂停、明细弹窗)
- 新增模块:出证管理(ReleaseCert)、系统字典中心(含 8 类字典)
- 数据:各模块登记/申报/受理等日期及编号内嵌年份统一为 2026;新增地表边界数据 china-provinces.json 与报告模板 docx
- 修复:持久化数据增加默认数据集版本,数据文件更新后自动失效旧本地缓存
- 样式:面板标题栏底色加深为 #eaeaea
上级 c446996b
......@@ -9,6 +9,7 @@
"version": "1.0.0",
"dependencies": {
"@element-plus/icons-vue": "^2.3.1",
"echarts": "^6.1.0",
"element-plus": "^2.6.2",
"jszip": "^3.10.2",
"pinia": "^2.1.7",
......@@ -1134,6 +1135,16 @@
"integrity": "sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==",
"license": "MIT"
},
"node_modules/echarts": {
"version": "6.1.0",
"resolved": "https://registry.npmmirror.com/echarts/-/echarts-6.1.0.tgz",
"integrity": "sha512-q0yaFPggC9FUdsWH4blavRWFmxdrIodbkoKNAjJudAI6CA9gNPxHtV2RcZNEepZVlk4yvBYkOkbk6HIVpIyHZA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "2.3.0",
"zrender": "6.1.0"
}
},
"node_modules/element-plus": {
"version": "2.14.5",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.14.5.tgz",
......@@ -1492,6 +1503,12 @@
"safe-buffer": "~5.1.0"
}
},
"node_modules/tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
"license": "0BSD"
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
......@@ -1625,6 +1642,15 @@
"peerDependencies": {
"vue": "^3.5.0"
}
},
"node_modules/zrender": {
"version": "6.1.0",
"resolved": "https://registry.npmmirror.com/zrender/-/zrender-6.1.0.tgz",
"integrity": "sha512-oEGMDB6pOP2S6OwRR4PdVv610zrjnA3Bh+JnSG12fYJlBKjtNAoEb5fSUoCOOINlH96I2fU38/A2UpRKs67xYQ==",
"license": "BSD-3-Clause",
"dependencies": {
"tslib": "2.3.0"
}
}
}
}
......@@ -5,11 +5,12 @@
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"build": "vite build --base=/jianyi/",
"preview": "vite preview"
},
"dependencies": {
"@element-plus/icons-vue": "^2.3.1",
"echarts": "^6.1.0",
"element-plus": "^2.6.2",
"jszip": "^3.10.2",
"pinia": "^2.1.7",
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -290,7 +290,7 @@ input, select, textarea, button { font-family: inherit; font-size: inherit; outl
align-items: center;
padding: 10px 16px;
border-bottom: 1px solid #f0f0f0;
background: #fafafa;
background: #eaeaea;
border-radius: 4px 4px 0 0;
}
.panel-title { font-size: 16px; font-weight: bold; color: #333; position: relative; padding-left: 10px; }
......@@ -364,6 +364,20 @@ input, select, textarea, button { font-family: inherit; font-size: inherit; outl
.form-field input::placeholder, .form-field select::placeholder { color: #bbb; }
/* ========== 滚动条美化(隐藏但保留可滚动能力) ========== */
/* ========== 大屏全屏模式:隐藏 App 外壳 ========== */
body.dash-fs { overflow: hidden !important; }
body.dash-fs .app { background: #050a1a; }
body.dash-fs .app-header,
body.dash-fs .sidebar,
body.dash-fs .breadcrumb,
body.dash-fs .tabs-bar { display: none !important; }
body.dash-fs .app-body { display: block !important; height: 100vh; overflow: hidden; }
body.dash-fs .content { padding: 0 !important; background: transparent !important; height: 100vh; overflow: hidden; }
body.dash-fs .content-body { padding: 0 !important; height: 100vh; background: transparent; overflow: hidden; }
body.dash-fs .router-view,
body.dash-fs .content-body > * { height: 100%; }
body.dash-fs::-webkit-scrollbar { display: none; }
* { scrollbar-width: thin; scrollbar-color: #d4d4d4 transparent; }
*::-webkit-scrollbar { width: 4px; height: 4px; }
*::-webkit-scrollbar-thumb { background: #d4d4d4; border-radius: 2px; }
......
......@@ -201,21 +201,97 @@ onBeforeUnmount(() => {
});
const weekMap = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"];
// 农历数据表(1900-2099):每项 16 位编码
// bits 4-15:12 位分别表示农历 1-12 月的大小(1=30 天,0=29 天)
// bits 0-3 :闰月月份(0=无闰月)
const lunarInfo = [
{ m: 1, d: 1, txt: "农历正月初一" }, { m: 2, d: 1, txt: "农历正月末" }, { m: 3, d: 1, txt: "农历二月初一" }
0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2, // 1900-1909
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977, // 1910-1919
0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970, // 1920-1929
0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950, // 1930-1939
0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557, // 1940-1949
0x06ca0,0x0b550,0x15355,0x04da0,0x0a5b0,0x14573,0x052b0,0x0a9a8,0x0e950,0x06aa0, // 1950-1959
0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0, // 1960-1969
0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b6a0,0x195a6, // 1970-1979
0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570, // 1980-1989
0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0, // 1990-1999
0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5, // 2000-2009
0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930, // 2010-2019
0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530, // 2020-2029
0x05aa0,0x076a3,0x096d0,0x04afb,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45, // 2030-2039
0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0, // 2040-2049
0x14b63,0x09370,0x049f8,0x04970,0x064b0,0x168a6,0x0ea50,0x06b20,0x1a6c4,0x0aae0, // 2050-2059
0x0a2e0,0x0d2e3,0x0c960,0x0d557,0x0d4a0,0x0da50,0x05d55,0x056a0,0x0a6d0,0x055d4, // 2060-2069
0x052d0,0x0a9b8,0x0a950,0x0b4a0,0x0b6a6,0x0ad50,0x055a0,0x0aba4,0x0a5b0,0x052b0, // 2070-2079
0x0b273,0x06930,0x07337,0x06aa0,0x0ad50,0x14b55,0x04b60,0x0a570,0x054e4,0x0d160, // 2080-2089
0x0e968,0x0d520,0x0daa0,0x16aa6,0x056d0,0x04ae0,0x0a9d4,0x0a2d0,0x0d150,0x0f252 // 2090-2099
];
const LUNAR_BASE = new Date(1900, 0, 31); // 农历 1900-01-01 对应的阳历
function getLunarText(d) {
const m = d.getMonth() + 1;
const day = d.getDate();
const monthLunar = ["正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "冬", "腊"];
const dayLunar = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十",
"十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十",
"廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十"];
if (day <= dayLunar.length) {
return `农历${monthLunar[m - 1]}月${dayLunar[day - 1]}`;
function lunarYearDays(year) {
let sum = 348; // 12 * 29
for (let i = 0x8000; i > 0x8; i >>= 1) {
if (lunarInfo[year - 1900] & i) sum += 1;
}
return sum + lunarLeapDays(year);
}
function lunarLeapMonth(year) { return lunarInfo[year - 1900] & 0xf; }
function lunarLeapDays(year) {
if (lunarLeapMonth(year)) return (lunarInfo[year - 1900] & 0x10000) ? 30 : 29;
return 0;
}
function lunarMonthDays(year, month) {
return (lunarInfo[year - 1900] & (0x10000 >> month)) ? 30 : 29;
}
function toLunar(date) {
if (date < LUNAR_BASE) return null;
let offset = Math.floor((date - LUNAR_BASE) / 86400000);
let i, temp = 0;
for (i = 1900; i < 2100 && offset > 0; i++) {
temp = lunarYearDays(i);
offset -= temp;
}
if (offset < 0) { offset += temp; i--; }
const year = i;
const leap = lunarLeapMonth(i);
let isLeap = false;
for (i = 1; i < 13 && offset > 0; i++) {
if (leap > 0 && i === leap + 1 && !isLeap) {
i--;
isLeap = true;
temp = lunarLeapDays(year);
} else {
temp = lunarMonthDays(year, i);
}
if (isLeap && i === leap + 1) isLeap = false;
offset -= temp;
}
if (offset === 0 && leap > 0 && i === leap + 1) {
if (isLeap) isLeap = false;
} else if (offset < 0) {
offset += temp;
i--;
}
return "";
return { year, month: i, day: offset + 1, isLeap };
}
const heavenlyStems = ["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"];
const earthlyBranches = ["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"];
const monthLunar = ["正","二","三","四","五","六","七","八","九","十","冬","腊"];
const dayLunar = ["初一","初二","初三","初四","初五","初六","初七","初八","初九","初十",
"十一","十二","十三","十四","十五","十六","十七","十八","十九","二十",
"廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十"];
function getLunarText(d) {
const ld = toLunar(d);
if (!ld) return "";
const gz = heavenlyStems[(ld.year - 4) % 10] + earthlyBranches[(ld.year - 4) % 12];
const mPrefix = ld.isLeap ? "闰" : "";
const mName = ld.month >= 1 && ld.month <= 12 ? monthLunar[ld.month - 1] : String(ld.month);
const dName = ld.day >= 1 && ld.day <= 30 ? dayLunar[ld.day - 1] : String(ld.day);
return `${gz}年 ${mPrefix}${mName}月${dName}`;
}
function getSolarTerm(d) {
......
......@@ -34,7 +34,8 @@
:class="{
'is-other': !cell.inMonth,
'is-today': cell.isToday,
'is-selected': cell.isSelected
'is-selected': cell.isSelected,
'is-disabled': isDisabled(cell)
}"
@click="pick(cell)"
>{{ cell.day }}</span>
......@@ -46,9 +47,14 @@
<script setup>
import { ref, computed, onMounted, onBeforeUnmount } from "vue";
const props = defineProps({ modelValue: String, placeholder: { type: String, default: "请选择日期" } });
const props = defineProps({ modelValue: String, placeholder: { type: String, default: "请选择日期" }, options: { type: Object, default: () => ({}) } });
const emit = defineEmits(["update:modelValue"]);
const isDisabled = (cell) => {
const fn = props.options && props.options.disabledDate;
return typeof fn === "function" ? !!fn(cell.date) : false;
};
const visible = ref(false);
const today = new Date();
const year = ref(today.getFullYear());
......@@ -103,6 +109,7 @@ const changeMonth = (delta) => {
const changeYear = (delta) => { year.value += delta; };
const pick = (cell) => {
if (isDisabled(cell)) return;
const y = cell.date.getFullYear();
const m = cell.date.getMonth();
const d = cell.date.getDate();
......@@ -170,4 +177,5 @@ onBeforeUnmount(() => document.removeEventListener("click", onDocClick));
.dp-cell.is-other { color: #ccc; }
.dp-cell.is-today { color: #d71e1e; font-weight: bold; }
.dp-cell.is-selected { background: #d71e1e; color: #fff; font-weight: bold; }
.dp-cell.is-disabled { color: #d0d0d0; cursor: not-allowed; background: transparent; }
</style>
\ No newline at end of file
// 委托书列表数据
// 检疫单证号 / 申报单位 / 植物名称 / 申报时间 / 受理日期 / 受理机构
export const entrustListData = [
{ id: 1, cert: "6204122022007095", unit: "甘肃富赢种子高新科技有限责任公司", plant: "翠菊", declareDate: "2022-03-09", acceptDate: "2022-04-26", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 2, cert: "6205022022007347", unit: "甘肃富赢种子高新科技有限责任公司", plant: "莴苣", declareDate: "2022-02-21", acceptDate: "2022-05-09", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 3, cert: "6205022022007269", unit: "甘肃富赢种子高新科技有限责任公司", plant: "青花菜(西兰花)", declareDate: "2022-02-21", acceptDate: "2022-05-09", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 4, cert: "6204122022007087", unit: "甘肃富赢种子高新科技有限责任公司", plant: "青花菜(西兰花)", declareDate: "2022-02-21", acceptDate: "2022-05-09", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 5, cert: "6202442022007001", unit: "甘肃富赢种子高新科技有限责任公司", plant: "胡萝卜", declareDate: "2022-02-10", acceptDate: "2022-05-09", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 6, cert: "6203122022007067", unit: "甘肃杰尼尔种子有限公司", plant: "辣椒", declareDate: "2022-01-28", acceptDate: "2022-05-19", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 7, cert: "6204122022007065", unit: "甘肃富赢种子高新科技有限责任公司", plant: "翠菊", declareDate: "2022-01-27", acceptDate: "2022-05-09", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 8, cert: "6203072022007093", unit: "酒泉市酒洲种子有限责任公司", plant: "番茄", declareDate: "2022-01-26", acceptDate: "2022-05-07", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 9, cert: "6203092022007071", unit: "张掖市瑞真种业有限公司", plant: "五色菊", declareDate: "2022-01-20", acceptDate: "2022-06-02", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 10, cert: "6201162022007023", unit: "张掖市亚太种业有限责任公司", plant: "南瓜", declareDate: "2022-01-17", acceptDate: "2022-05-06", org: "甘肃省植保植检站", status: "待田间调查" }
{ id: 1, cert: "6204122026007095", unit: "甘肃富赢种子高新科技有限责任公司", plant: "翠菊", declareDate: "2026-03-09", acceptDate: "2026-04-26", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 2, cert: "6205022026007347", unit: "甘肃富赢种子高新科技有限责任公司", plant: "莴苣", declareDate: "2026-02-21", acceptDate: "2026-05-09", org: "甘肃省植保植检站", status: "待田间调查",
approval: {
validDate: "2026年8月21日",
address: "甘肃省张掖市甘州区西街3128号2幢2700号",
contact: "刘玉堂",
phone: "18993607501",
plantLatin: "Lactuca sativa Linnaeus",
originCountry: "美国",
seedlingType: "种子",
exportCountry: "日本",
usage: "对外制种",
plantArea: "甘肃省张掖市甘州区",
approveQty: "50千克",
requireItems: [
"1.限定在五汤口机场口岸入境;",
"2.所有输出国家(地区)官方植物检疫证书,证明符合中国的植物检疫要求;",
"3.禁止携带以下有害生物(中文名和学名):<br />&nbsp;&nbsp;&nbsp;&nbsp;Meloidogyne Goeldi (non-Chinese species) &nbsp;&nbsp;&nbsp;&nbsp;根结线虫属(非中国种)<br />&nbsp;&nbsp;&nbsp;&nbsp;Mycocentrospora acerina (Hartig) Deighton &nbsp;&nbsp;&nbsp;&nbsp;霉突霉<br />&nbsp;&nbsp;&nbsp;&nbsp;Pseudomonas syringae pv.tomato (Okabe) Young et al. &nbsp;&nbsp;&nbsp;&nbsp;番茄细菌性叶斑病<br />&nbsp;&nbsp;&nbsp;&nbsp;Trichodorus Cobb (The species transmit viruses) &nbsp;&nbsp;&nbsp;&nbsp;毛刺线虫属(传毒种类)<br />&nbsp;&nbsp;&nbsp;&nbsp;Pratylenchus Filipjev (non-Chinese species) &nbsp;&nbsp;&nbsp;&nbsp;短体线虫属(非中国种)<br />&nbsp;&nbsp;&nbsp;&nbsp;Ambrosia spp. &nbsp;&nbsp;&nbsp;&nbsp;豚草属<br />&nbsp;&nbsp;&nbsp;&nbsp;Ceratitis Macleay &nbsp;&nbsp;&nbsp;&nbsp;小条实蝇属<br />&nbsp;&nbsp;&nbsp;&nbsp;Arabis mosaic virus、ArMV &nbsp;&nbsp;&nbsp;&nbsp;菊花菊花叶病毒<br />&nbsp;&nbsp;&nbsp;&nbsp;Helix aspersa Muller &nbsp;&nbsp;&nbsp;&nbsp;散大蜗牛<br />&nbsp;&nbsp;&nbsp;&nbsp;Helicoverpa zea (Boddie) &nbsp;&nbsp;&nbsp;&nbsp;谷实夜蛾<br />&nbsp;&nbsp;&nbsp;&nbsp;Liriomyza trifolii (Burgess) &nbsp;&nbsp;&nbsp;&nbsp;三叶斑潜蝇<br />&nbsp;&nbsp;&nbsp;&nbsp;Otala lactea &nbsp;&nbsp;&nbsp;&nbsp;乳状亚热带螺<br />&nbsp;&nbsp;&nbsp;&nbsp;Longidorus (Filipjev) Micoletzky (The species transmit viruses) &nbsp;&nbsp;&nbsp;&nbsp;长针线虫属(传毒种类)<br />&nbsp;&nbsp;&nbsp;&nbsp;Erwinia chrysanthemi Burkholder et al. &nbsp;&nbsp;&nbsp;&nbsp;菊基腐病<br />&nbsp;&nbsp;&nbsp;&nbsp;Paratrichodorus Siddiqi (The species transmit viruses) &nbsp;&nbsp;&nbsp;&nbsp;拟毛刺线虫属(传毒种类)<br />&nbsp;&nbsp;&nbsp;&nbsp;Nacobbus aberrans (Thorne) Thorne et Allen &nbsp;&nbsp;&nbsp;&nbsp;球茎胀线虫<br />&nbsp;&nbsp;&nbsp;&nbsp;Radopholus similis (Cobb) Thorne &nbsp;&nbsp;&nbsp;&nbsp;香蕉穿孔线虫<br />&nbsp;&nbsp;&nbsp;&nbsp;Pseudomonas savastanoi pv. phaseolicola (Burkholder) Gardan et al. &nbsp;&nbsp;&nbsp;&nbsp;菜豆晕疫病菌<br />&nbsp;&nbsp;&nbsp;&nbsp;Euglandina rosea (Ferussac,1821) &nbsp;&nbsp;&nbsp;&nbsp;玫瑰蜗牛<br />&nbsp;&nbsp;&nbsp;&nbsp;中华人民共和国法律规定的其它检疫性有害生物"
],
opinion: "同意引进。种苗属在本审批单指定地区集中种植,引种单位在种植地属5个工作日内通知当地植物检疫机构做好检疫监督,并配合当地植物检疫机构做好疫情监测工作。",
issueDate: "2026年2月22日"
}
},
{ id: 3, cert: "6205022026007269", unit: "甘肃富赢种子高新科技有限责任公司", plant: "青花菜(西兰花)", declareDate: "2026-02-21", acceptDate: "2026-05-09", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 4, cert: "6204122026007087", unit: "甘肃富赢种子高新科技有限责任公司", plant: "青花菜(西兰花)", declareDate: "2026-02-21", acceptDate: "2026-05-09", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 5, cert: "6202642026007001", unit: "甘肃富赢种子高新科技有限责任公司", plant: "胡萝卜", declareDate: "2026-02-10", acceptDate: "2026-05-09", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 6, cert: "6203122026007067", unit: "甘肃杰尼尔种子有限公司", plant: "辣椒", declareDate: "2026-01-28", acceptDate: "2026-05-19", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 7, cert: "6204122026007065", unit: "甘肃富赢种子高新科技有限责任公司", plant: "翠菊", declareDate: "2026-01-27", acceptDate: "2026-05-09", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 8, cert: "6203072026007093", unit: "酒泉市酒洲种子有限责任公司", plant: "番茄", declareDate: "2026-01-26", acceptDate: "2026-05-07", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 9, cert: "6203092026007071", unit: "张掖市瑞真种业有限公司", plant: "五色菊", declareDate: "2026-01-20", acceptDate: "2026-06-02", org: "甘肃省植保植检站", status: "待田间调查" },
{ id: 10, cert: "6201162026007023", unit: "张掖市亚太种业有限责任公司", plant: "南瓜", declareDate: "2026-01-17", acceptDate: "2026-05-06", org: "甘肃省植保植检站", status: "待田间调查" }
];
// 左侧导航菜单配置
export const menuConfig = [
{
id: "home", name: "首页", icon: "HomeFilled", path: "/home"
id: "home", name: "工作台", icon: "HomeFilled", path: "/home"
},
{
id: "entrust", name: "委托书管理", icon: "Document", path: "/entrust/list"
......@@ -16,15 +16,15 @@ export const menuConfig = [
{
id: "lab", name: "实验室检测", icon: "MagicStick",
children: [
{ id: "lab-sample-test", name: "样本抽检", path: "/lab/sample-test" },
{ id: "lab-sample-test", name: "样本初检", path: "/lab/sample-test" },
{ id: "lab-experiment-test", name: "实验检验", path: "/lab/experiment-test" }
]
},
{
id: "isolation", name: "田间调查", icon: "LocationInformation", path: "/field/survey"
id: "isolation", name: "试种观察", icon: "LocationInformation", path: "/field/survey"
},
{
id: "disposal", name: "除害处理", icon: "Delete", path: "/disposal"
id: "disposal", name: "检疫处理", icon: "Delete", path: "/disposal"
},
{
id: "isolation-monitor", name: "隔离监测", icon: "Monitor",
......@@ -34,7 +34,15 @@ export const menuConfig = [
]
},
{
id: "analysis", name: "风险分析", icon: "DataAnalysis", path: "/analysis"
id: "stats", name: "统计分析", icon: "DataAnalysis",
children: [
{ id: "stats-business", name: "业务统计", path: "/stats/business" },
{ id: "stats-analysis", name: "风险分析", path: "/analysis" },
{ id: "stats-dashboard", name: "可视化大屏", path: "/stats/dashboard" }
]
},
{
id: "release-cert", name: "放行证书管理", icon: "Postcard", path: "/release-cert"
},
{
id: "report", name: "报告管理", icon: "Notebook", path: "/report"
......
// 放行证书管理数据(9 条,翠菊因销毁处理,无放行证书)
export const releaseCertData = [
{
id: 2, cert: "6205022026007347", unit: "甘肃富赢种子高新科技有限责任公司",
plant: "莴苣", variety: "生菜", origin: "美国", qty: "0.1500 千克", weight: "0.1500",
plantTypeSel: ["种子"], issueDate: "2026-05-12", validUntil: "2026-08-12",
startDate: "2026-04-14", endDate: "2026-05-12",
isolationSite: "甘州区植物隔离检疫场", resultSel: ["2"],
harmfulBio2: "奇氏根结线虫 Meloidogyne chitwoodi、斑潜蝇属 Liriomyza spp.",
handleMethod2: "药剂拌种与高温灭菌",
releaseWeight: "0.1500",
testOrg: "甘州区农业技术推广中心", issuer: "胡琴", contact: "刘玉堂", phone: "18993607501",
leader: "胡琴", isolationSiteSeal: "(盖章)"
},
{
id: 3, cert: "6205022026007269", unit: "甘肃富赢种子高新科技有限责任公司",
plant: "青花菜 (西兰花)", variety: "西蓝花 VBR007", origin: "美国", qty: "2.2700 千克", weight: "2.2700",
plantTypeSel: ["种子"], issueDate: "2026-05-15", validUntil: "2026-08-15",
startDate: "2026-04-17", endDate: "2026-05-15",
isolationSite: "甘州区植物隔离检疫场", resultSel: ["1"],
releaseWeight: "2.2700",
testOrg: "甘州区农业技术推广中心", issuer: "胡琴", contact: "刘玉堂", phone: "18993607501",
leader: "胡琴", isolationSiteSeal: "(盖章)"
},
{
id: 4, cert: "6204122026007087", unit: "甘肃富赢种子高新科技有限责任公司",
plant: "青花菜 (西兰花)", variety: "西蓝花 VBR005", origin: "智利", qty: "0.2200 千克", weight: "0.2200",
plantTypeSel: ["种子"], issueDate: "2026-05-15", validUntil: "2026-08-15",
startDate: "2026-04-17", endDate: "2026-05-15",
isolationSite: "甘州区植物隔离检疫场", resultSel: ["1"],
releaseWeight: "0.2200",
testOrg: "甘州区农业技术推广中心", issuer: "胡琴", contact: "刘玉堂", phone: "18993607501",
leader: "胡琴", isolationSiteSeal: "(盖章)"
},
{
id: 5, cert: "6202642026007001", unit: "甘肃富赢种子高新科技有限责任公司",
plant: "胡萝卜", variety: "胡萝卜 VCR324", origin: "南非", qty: "0.4900 千克", weight: "0.4900",
plantTypeSel: ["种子"], issueDate: "2026-05-17", validUntil: "2026-08-17",
startDate: "2026-04-20", endDate: "2026-05-17",
isolationSite: "甘州区植物隔离检疫场", resultSel: ["1"],
releaseWeight: "0.4900",
testOrg: "甘州区农业技术推广中心", issuer: "胡琴", contact: "刘玉堂", phone: "18993607501",
leader: "胡琴", isolationSiteSeal: "(盖章)"
},
{
id: 6, cert: "6203122026007067", unit: "甘肃杰尼尔种子有限公司",
plant: "辣椒", variety: "80", origin: "西班牙", qty: "9.8800 千克", weight: "9.8800",
plantTypeSel: ["种子"], issueDate: "2026-05-25", validUntil: "2026-08-25",
startDate: "2026-04-27", endDate: "2026-05-25",
isolationSite: "甘州区植物隔离检疫场", resultSel: ["1"],
releaseWeight: "9.8800",
testOrg: "甘州区农业技术推广中心", issuer: "胡琴", contact: "赵文言", phone: "18993755577",
leader: "胡琴", isolationSiteSeal: "(盖章)"
},
{
id: 7, cert: "6203072026007093", unit: "酒泉市酒洲种子有限责任公司",
plant: "番茄", variety: "番茄", origin: "意大利", qty: "1.8100 千克", weight: "1.8100",
plantTypeSel: ["种子"], issueDate: "2026-05-15", validUntil: "2026-08-15",
startDate: "2026-04-10", endDate: "2026-05-15",
isolationSite: "甘州区植物隔离检疫场", resultSel: ["1"],
releaseWeight: "1.8100",
testOrg: "甘州区农业技术推广中心", issuer: "胡琴", contact: "马世锋", phone: "13993708175",
leader: "胡琴", isolationSiteSeal: "(盖章)"
},
{
id: 8, cert: "6203092026007071", unit: "张掖市瑞真种业有限公司",
plant: "五色菊", variety: "五色菊", origin: "荷兰", qty: "1.8700 千克", weight: "1.8700",
plantTypeSel: ["种子"], issueDate: "2026-05-20", validUntil: "2026-08-20",
startDate: "2026-04-22", endDate: "2026-05-20",
isolationSite: "甘州区植物隔离检疫场", resultSel: ["1"],
releaseWeight: "1.8700",
testOrg: "甘州区农业技术推广中心", issuer: "胡琴", contact: "吴多志", phone: "13993662953",
leader: "胡琴", isolationSiteSeal: "(盖章)"
},
{
id: 9, cert: "6201162026007023", unit: "张掖市亚太种业有限责任公司",
plant: "南瓜", variety: "南瓜", origin: "日本", qty: "3.2800 千克", weight: "3.2800",
plantTypeSel: ["种子"], issueDate: "2026-05-25", validUntil: "2026-08-25",
startDate: "2026-04-30", endDate: "2026-05-25",
isolationSite: "甘州区植物隔离检疫场", resultSel: ["1"],
releaseWeight: "3.2800",
testOrg: "甘州区农业技术推广中心", issuer: "胡琴", contact: "姚庆库", phone: "18919369888",
leader: "胡琴", isolationSiteSeal: "(盖章)"
},
{
id: 10, cert: "6204122026007065", unit: "甘肃富赢种子高新科技有限责任公司",
plant: "翠菊", variety: "翠菊", origin: "智利", qty: "0.0013 千克", weight: "0.0013",
plantTypeSel: ["种子"], issueDate: "2026-06-01", validUntil: "2026-09-01",
startDate: "2026-05-07", endDate: "2026-06-01",
isolationSite: "甘州区植物隔离检疫场", resultSel: ["1"],
releaseWeight: "0.0013",
testOrg: "甘州区农业技术推广中心", issuer: "胡琴", contact: "刘玉堂", phone: "18993607501",
leader: "胡琴", isolationSiteSeal: "(盖章)"
}
];
\ No newline at end of file
......@@ -2,122 +2,122 @@
export const sampleOutData = [
{
id: 1,
cert: "6204122022007095",
cert: "6204122026007095",
unit: "甘肃富赢种子高新科技有限责任公司",
plant: "翠菊",
variety: "翠菊",
inboundQty: "0.0013 千克",
events: [
{ time: "2022-04-10", outQty: "0.0005 千克", purpose: "样本抽检", sampler: "李文娟", samplerPhone: "13909310001", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2022-04-12", outQty: "0.0004 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
{ time: "2026-04-10", outQty: "0.0005 千克", purpose: "样本初检", sampler: "李文娟", samplerPhone: "13909310001", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2026-05-05", outQty: "0.0004 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
]
},
{
id: 2,
cert: "6205022022007347",
cert: "6205022026007347",
unit: "甘肃富赢种子高新科技有限责任公司",
plant: "莴苣",
variety: "生菜",
inboundQty: "0.1500 千克",
events: [
{ time: "2022-04-12", outQty: "0.0500 千克", purpose: "样本抽检", sampler: "李文娟", samplerPhone: "13909310001", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2022-04-14", outQty: "0.0800 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
{ time: "2026-04-12", outQty: "0.0500 千克", purpose: "样本抽检", sampler: "李文娟", samplerPhone: "13909310001", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2026-04-14", outQty: "0.0800 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
]
},
{
id: 3,
cert: "6205022022007269",
cert: "6205022026007269",
unit: "甘肃富赢种子高新科技有限责任公司",
plant: "青花菜 (西兰花)",
variety: "西蓝花 VBR007",
inboundQty: "2.2700 千克",
events: [
{ time: "2022-04-15", outQty: "1.5000 千克", purpose: "样本抽检", sampler: "张建国", samplerPhone: "13809312222", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2022-04-17", outQty: "0.5000 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
{ time: "2026-04-15", outQty: "1.5000 千克", purpose: "样本抽检", sampler: "张建国", samplerPhone: "13809312222", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2026-04-17", outQty: "0.5000 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
]
},
{
id: 4,
cert: "6204122022007087",
cert: "6204122026007087",
unit: "甘肃富赢种子高新科技有限责任公司",
plant: "青花菜 (西兰花)",
variety: "西蓝花 VBR005",
inboundQty: "0.2200 千克",
events: [
{ time: "2022-04-15", outQty: "0.1000 千克", purpose: "样本抽检", sampler: "张建国", samplerPhone: "13809312222", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2022-04-17", outQty: "0.0800 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
{ time: "2026-04-15", outQty: "0.1000 千克", purpose: "样本抽检", sampler: "张建国", samplerPhone: "13809312222", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2026-04-17", outQty: "0.0800 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
]
},
{
id: 5,
cert: "6202442022007001",
cert: "6202642026007001",
unit: "甘肃富赢种子高新科技有限责任公司",
plant: "胡萝卜",
variety: "胡萝卜 VCR324",
inboundQty: "0.4900 千克",
events: [
{ time: "2022-04-18", outQty: "0.2000 千克", purpose: "样本抽检", sampler: "李文娟", samplerPhone: "13909310001", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2022-04-20", outQty: "0.1500 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
{ time: "2026-04-18", outQty: "0.2000 千克", purpose: "样本抽检", sampler: "李文娟", samplerPhone: "13909310001", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2026-04-20", outQty: "0.1500 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
]
},
{
id: 6,
cert: "6203122022007067",
cert: "6203122026007067",
unit: "甘肃杰尼尔种子有限公司",
plant: "辣椒",
variety: "80",
inboundQty: "9.8800 千克",
events: [
{ time: "2022-04-25", outQty: "5.0000 千克", purpose: "样本抽检", sampler: "赵文言", samplerPhone: "18993755577", operator: "黄海涛", operatorPhone: "13893705588" },
{ time: "2022-04-27", outQty: "4.5000 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
{ time: "2026-04-25", outQty: "5.0000 千克", purpose: "样本抽检", sampler: "赵文言", samplerPhone: "18993755577", operator: "黄海涛", operatorPhone: "13893705588" },
{ time: "2026-04-27", outQty: "4.5000 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
]
},
{
id: 7,
cert: "6203072022007093",
cert: "6203072026007093",
unit: "酒泉市酒洲种子有限责任公司",
plant: "番茄",
variety: "番茄",
inboundQty: "1.8100 千克",
events: [
{ time: "2022-04-08", outQty: "0.8000 千克", purpose: "样本抽检", sampler: "马世锋", samplerPhone: "13993708175", operator: "黄海涛", operatorPhone: "13893705588" },
{ time: "2022-04-10", outQty: "0.7000 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
{ time: "2026-04-08", outQty: "0.8000 千克", purpose: "样本抽检", sampler: "马世锋", samplerPhone: "13993708175", operator: "黄海涛", operatorPhone: "13893705588" },
{ time: "2026-04-10", outQty: "0.7000 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
]
},
{
id: 8,
cert: "6203092022007071",
cert: "6203092026007071",
unit: "张掖市瑞真种业有限公司",
plant: "五色菊",
variety: "五色菊",
inboundQty: "1.8700 千克",
events: [
{ time: "2022-04-20", outQty: "0.9000 千克", purpose: "样本抽检", sampler: "吴多志", samplerPhone: "13993662953", operator: "黄海涛", operatorPhone: "13893705588" },
{ time: "2022-04-22", outQty: "0.8000 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
{ time: "2026-04-20", outQty: "0.9000 千克", purpose: "样本抽检", sampler: "吴多志", samplerPhone: "13993662953", operator: "黄海涛", operatorPhone: "13893705588" },
{ time: "2026-04-22", outQty: "0.8000 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
]
},
{
id: 9,
cert: "6201162022007023",
cert: "6201162026007023",
unit: "张掖市亚太种业有限责任公司",
plant: "南瓜",
variety: "南瓜",
inboundQty: "3.2800 千克",
events: [
{ time: "2022-04-28", outQty: "1.5000 千克", purpose: "样本抽检", sampler: "姚庆库", samplerPhone: "18919369888", operator: "黄海涛", operatorPhone: "13893705588" },
{ time: "2022-04-30", outQty: "1.6000 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
{ time: "2026-04-28", outQty: "1.5000 千克", purpose: "样本抽检", sampler: "姚庆库", samplerPhone: "18919369888", operator: "黄海涛", operatorPhone: "13893705588" },
{ time: "2026-04-30", outQty: "1.6000 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
]
},
{
id: 10,
cert: "6204122022007065",
cert: "6204122026007065",
unit: "甘肃富赢种子高新科技有限责任公司",
plant: "翠菊",
variety: "翠菊",
inboundQty: "0.0013 千克",
events: [
{ time: "2022-05-05", outQty: "0.0005 千克", purpose: "样本抽检", sampler: "李文娟", samplerPhone: "13909310001", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2022-05-07", outQty: "0.0004 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
{ time: "2026-05-05", outQty: "0.0005 千克", purpose: "样本抽检", sampler: "李文娟", samplerPhone: "13909310001", operator: "张明远", operatorPhone: "13809312222" },
{ time: "2026-05-07", outQty: "0.0004 千克", purpose: "隔离试种", sampler: "陈思远", samplerPhone: "13909320002", operator: "王芳", operatorPhone: "13909330003" }
]
}
];
\ No newline at end of file
// 样本接收登记数据
export const sampleRegisterData = [
{ id: 1, cert: "6204122022007095", unit: "甘肃富赢种子高新科技有限责任公司", plant: "翠菊", variety: "翠菊", origin: "智利", qty: "0.0014 千克", storeQty: "0.0013 千克", entryPort: "昆明长水国际机场", approveQty: "40 千克", storeDate: "2022-03-01", contact: "刘玉堂", phone: "18993607501" },
{ id: 2, cert: "6205022022007347", unit: "甘肃富赢种子高新科技有限责任公司", plant: "莴苣", variety: "生菜", origin: "美国", qty: "0.2950 千克", storeQty: "0.1500 千克", entryPort: "昆明长水国际机场", approveQty: "50 千克", storeDate: "2022-03-20", contact: "刘玉堂", phone: "18993607501" },
{ id: 3, cert: "6205022022007269", unit: "甘肃富赢种子高新科技有限责任公司", plant: "青花菜 (西兰花)", variety: "西蓝花 VBR007", origin: "美国", qty: "2.3920 千克", storeQty: "2.2700 千克", entryPort: "昆明长水国际机场", approveQty: "50 千克", storeDate: "2022-03-20", contact: "刘玉堂", phone: "18993607501" },
{ id: 4, cert: "6204122022007087", unit: "甘肃富赢种子高新科技有限责任公司", plant: "青花菜 (西兰花)", variety: "西蓝花 VBR005", origin: "智利", qty: "0.3700 千克", storeQty: "0.2200 千克", entryPort: "昆明长水国际机场", approveQty: "50 千克", storeDate: "2022-03-20", contact: "刘玉堂", phone: "18993607501" },
{ id: 5, cert: "6202442022007001", unit: "甘肃富赢种子高新科技有限责任公司", plant: "胡萝卜", variety: "胡萝卜 VCR324", origin: "南非", qty: "0.6150 千克", storeQty: "0.4900 千克", entryPort: "昆明长水国际机场", approveQty: "50 千克", storeDate: "2022-03-20", contact: "刘玉堂", phone: "18993607501" },
{ id: 6, cert: "6203122022007067", unit: "甘肃杰尼尔种子有限公司", plant: "辣椒", variety: "80", origin: "西班牙", qty: "10.0 千克", storeQty: "9.8800 千克", entryPort: "昆明长水国际机场", approveQty: "10 千克", storeDate: "2022-04-01", contact: "赵文言", phone: "18993755577" },
{ id: 7, cert: "6204122022007065", unit: "甘肃富赢种子高新科技有限责任公司", plant: "翠菊", variety: "翠菊", origin: "智利", qty: "0.0014 千克", storeQty: "0.0013 千克", entryPort: "昆明长水国际机场", approveQty: "40 千克", storeDate: "2022-02-18", contact: "刘玉堂", phone: "18993607501" },
{ id: 8, cert: "6203072022007093", unit: "酒泉市酒洲种子有限责任公司", plant: "番茄", variety: "番茄", origin: "意大利", qty: "1.9540 千克", storeQty: "1.8100 千克", entryPort: "昆明长水国际机场", approveQty: "50 千克", storeDate: "2022-03-10", contact: "马世锋", phone: "13993708175" },
{ id: 9, cert: "6203092022007071", unit: "张掖市瑞真种业有限公司", plant: "五色菊", variety: "五色菊", origin: "荷兰", qty: "2.0000 千克", storeQty: "1.8700 千克", entryPort: "昆明长水国际机场", approveQty: "5 千克", storeDate: "2022-03-20", contact: "吴多志", phone: "13993662953" },
{ id: 10, cert: "6201162022007023", unit: "张掖市亚太种业有限责任公司", plant: "南瓜", variety: "南瓜", origin: "日本", qty: "3.4000 千克", storeQty: "3.2800 千克", entryPort: "昆明长水国际机场", approveQty: "5 千克", storeDate: "2022-04-02", contact: "姚庆库", phone: "18919369888" }
{ id: 1, cert: "6204122026007095", unit: "甘肃富赢种子高新科技有限责任公司", plant: "翠菊", variety: "翠菊", origin: "智利", qty: "0.0014 千克", storeQty: "0.0013 千克", entryPort: "昆明长水国际机场", approveQty: "40 千克", storeDate: "2026-04-29", contact: "刘玉堂", phone: "18993607501" },
{ id: 2, cert: "6205022026007347", unit: "甘肃富赢种子高新科技有限责任公司", plant: "莴苣", variety: "生菜", origin: "美国", qty: "0.2950 千克", storeQty: "0.1500 千克", entryPort: "昆明长水国际机场", approveQty: "50 千克", storeDate: "2026-05-13", contact: "刘玉堂", phone: "18993607501" },
{ id: 3, cert: "6205022026007269", unit: "甘肃富赢种子高新科技有限责任公司", plant: "青花菜 (西兰花)", variety: "西蓝花 VBR007", origin: "美国", qty: "2.3920 千克", storeQty: "2.2700 千克", entryPort: "昆明长水国际机场", approveQty: "50 千克", storeDate: "2026-05-13", contact: "刘玉堂", phone: "18993607501" },
{ id: 4, cert: "6204122026007087", unit: "甘肃富赢种子高新科技有限责任公司", plant: "青花菜 (西兰花)", variety: "西蓝花 VBR005", origin: "智利", qty: "0.3700 千克", storeQty: "0.2200 千克", entryPort: "昆明长水国际机场", approveQty: "50 千克", storeDate: "2026-05-13", contact: "刘玉堂", phone: "18993607501" },
{ id: 5, cert: "6202642026007001", unit: "甘肃富赢种子高新科技有限责任公司", plant: "胡萝卜", variety: "胡萝卜 VCR324", origin: "南非", qty: "0.6150 千克", storeQty: "0.4900 千克", entryPort: "昆明长水国际机场", approveQty: "50 千克", storeDate: "2026-05-13", contact: "刘玉堂", phone: "18993607501" },
{ id: 6, cert: "6203122026007067", unit: "甘肃杰尼尔种子有限公司", plant: "辣椒", variety: "80", origin: "西班牙", qty: "10.0 千克", storeQty: "9.8800 千克", entryPort: "昆明长水国际机场", approveQty: "10 千克", storeDate: "2026-05-22", contact: "赵文言", phone: "18993755577" },
{ id: 7, cert: "6204122026007065", unit: "甘肃富赢种子高新科技有限责任公司", plant: "翠菊", variety: "翠菊", origin: "智利", qty: "0.0014 千克", storeQty: "0.0013 千克", entryPort: "昆明长水国际机场", approveQty: "40 千克", storeDate: "2026-05-13", contact: "刘玉堂", phone: "18993607501" },
{ id: 8, cert: "6203072026007093", unit: "酒泉市酒洲种子有限责任公司", plant: "番茄", variety: "番茄", origin: "意大利", qty: "1.9540 千克", storeQty: "1.8100 千克", entryPort: "昆明长水国际机场", approveQty: "50 千克", storeDate: "2026-05-10", contact: "马世锋", phone: "13993708175" },
{ id: 9, cert: "6203092026007071", unit: "张掖市瑞真种业有限公司", plant: "五色菊", variety: "五色菊", origin: "荷兰", qty: "2.0000 千克", storeQty: "1.8700 千克", entryPort: "昆明长水国际机场", approveQty: "5 千克", storeDate: "2026-06-05", contact: "吴多志", phone: "13993662953" },
{ id: 10, cert: "6201162026007023", unit: "张掖市亚太种业有限责任公司", plant: "南瓜", variety: "南瓜", origin: "日本", qty: "3.4000 千克", storeQty: "3.2800 千克", entryPort: "昆明长水国际机场", approveQty: "5 千克", storeDate: "2026-05-09", contact: "姚庆库", phone: "18919369888" }
];
\ No newline at end of file
import { createRouter, createWebHashHistory } from "vue-router";
import { createRouter, createWebHistory } from "vue-router";
import { useTabsStore } from "@/store/tabs";
const routes = [
{ path: "/", redirect: "/home" },
{ path: "/home", name: "home", component: () => import("@/views/HomeView.vue"), meta: { title: "首页", breadcrumb: "首页" } },
{ path: "/home", name: "home", component: () => import("@/views/HomeView.vue"), meta: { title: "工作台", breadcrumb: "工作台" } },
{ path: "/entrust/reg", name: "entrust-reg", component: () => import("@/views/entrust/EntrustReg.vue"), meta: { title: "委托书登记", breadcrumb: "委托书管理 / 委托书登记" } },
{ path: "/entrust/list", name: "entrust-list", component: () => import("@/views/entrust/EntrustList.vue"), meta: { title: "委托书管理", breadcrumb: "委托书管理" } },
{ path: "/entrust/audit", name: "entrust-audit", component: () => import("@/views/entrust/EntrustAudit.vue"), meta: { title: "委托书审核", breadcrumb: "委托书管理 / 委托书审核" } },
{ path: "/entrust/archive", name: "entrust-archive", component: () => import("@/views/entrust/EntrustArchive.vue"), meta: { title: "委托书归档", breadcrumb: "委托书管理 / 委托书归档" } },
{ path: "/sample/register", name: "sample-register", component: () => import("@/views/sample/SampleRegister.vue"), meta: { title: "样本登记入库", breadcrumb: "样本管理 / 样本登记入库" } },
{ path: "/sample/out", name: "sample-out", component: () => import("@/views/sample/SampleOut.vue"), meta: { title: "样本出库管理", breadcrumb: "样本管理 / 样本出库管理" } },
{ path: "/lab/sample-test", name: "lab-sample-test", component: () => import("@/views/lab/SampleTest.vue"), meta: { title: "样本抽检", breadcrumb: "实验室检测 / 样本抽检" } },
{ path: "/lab/sample-test", name: "lab-sample-test", component: () => import("@/views/lab/SampleTest.vue"), meta: { title: "样本初检", breadcrumb: "实验室检测 / 样本初检" } },
{ path: "/lab/experiment-test", name: "lab-experiment-test", component: () => import("@/views/lab/ExperimentTest.vue"), meta: { title: "实验检验", breadcrumb: "实验室检测 / 实验检验" } },
{ path: "/field/survey", name: "field-survey", component: () => import("@/views/field/FieldSurvey.vue"), meta: { title: "田间调查", breadcrumb: "田间调查" } },
{ path: "/disposal", name: "disposal-list", component: () => import("@/views/pest/PestHandle.vue"), meta: { title: "除害处理", breadcrumb: "除害处理 / 除害处理" } },
{ path: "/field/survey", name: "field-survey", component: () => import("@/views/field/FieldSurvey.vue"), meta: { title: "试种观察", breadcrumb: "试种观察" } },
{ path: "/disposal", name: "disposal-list", component: () => import("@/views/pest/PestHandle.vue"), meta: { title: "检疫处理", breadcrumb: "检疫处理 / 检疫处理" } },
{ path: "/isolation/device", name: "isolation-device", component: () => import("@/views/isolation/DeviceOverview.vue"), meta: { title: "设备总览", breadcrumb: "隔离监测 / 设备总览" } },
{ path: "/isolation/data", name: "isolation-data", component: () => import("@/views/isolation/MonitorData.vue"), meta: { title: "监测数据", breadcrumb: "隔离监测 / 监测数据" } },
{ path: "/analysis", name: "analysis", component: () => import("@/views/analysis/DataAnalysis.vue"), meta: { title: "风险分析", breadcrumb: "风险分析" } },
{ path: "/analysis", name: "analysis", component: () => import("@/views/analysis/DataAnalysis.vue"), meta: { title: "风险分析", breadcrumb: "统计分析 / 风险分析" } },
{ path: "/stats/business", name: "stats-business", component: () => import("@/views/stats/BusinessStats.vue"), meta: { title: "业务统计", breadcrumb: "统计分析 / 业务统计" } },
{ path: "/stats/dashboard", name: "stats-dashboard", component: () => import("@/views/stats/Dashboard.vue"), meta: { title: "可视化大屏", breadcrumb: "统计分析 / 可视化大屏" } },
{ path: "/release-cert", name: "release-cert", component: () => import("@/views/release/ReleaseCert.vue"), meta: { title: "放行证书管理", breadcrumb: "放行证书管理" } },
{ path: "/report", name: "report", component: () => import("@/views/report/ReportManage.vue"), meta: { title: "报告管理", breadcrumb: "报告管理" } },
{ path: "/base/quarantine", name: "base-quarantine", component: () => import("@/views/base/Quarantine.vue"), meta: { title: "检疫员管理", breadcrumb: "基础信息管理 / 检疫员管理" } },
{ path: "/base/experimenter", name: "base-experimenter", component: () => import("@/views/base/Experimenter.vue"), meta: { title: "实验员管理", breadcrumb: "基础信息管理 / 实验员管理" } },
{ path: "/settings/users", name: "settings-users", component: () => import("@/views/settings/Users.vue"), meta: { title: "用户管理", breadcrumb: "系统设置 / 用户管理" } },
{ path: "/settings/roles", name: "settings-roles", component: () => import("@/views/settings/Roles.vue"), meta: { title: "角色管理", breadcrumb: "系统设置 / 角色管理" } },
{ path: "/settings/dict", name: "settings-dict", component: () => import("@/views/settings/Dict.vue"), meta: { title: "数据字典", breadcrumb: "系统设置 / 数据字典" } },
{ path: "/settings/dict", name: "settings-dict", component: () => import("@/views/settings/DictHub.vue"), meta: { title: "数据字典", breadcrumb: "系统设置 / 数据字典" } },
{ path: "/settings/dict/port", name: "settings-dict-port", component: () => import("@/views/settings/dict/PortDict.vue"), meta: { title: "入境口岸登记表", breadcrumb: "系统设置 / 数据字典 / 入境口岸登记表" } },
{ path: "/settings/dict/region", name: "settings-dict-region", component: () => import("@/views/settings/dict/RegionDict.vue"), meta: { title: "国家地区(引种原产地)登记表", breadcrumb: "系统设置 / 数据字典 / 国家地区(引种原产地)登记表" } },
{ path: "/settings/dict/plant", name: "settings-dict-plant", component: () => import("@/views/settings/dict/PlantDict.vue"), meta: { title: "常用植物字典表", breadcrumb: "系统设置 / 数据字典 / 常用植物字典表" } },
{ path: "/settings/dict/division", name: "settings-dict-division", component: () => import("@/views/settings/dict/DivisionDict.vue"), meta: { title: "行政区划字典表", breadcrumb: "系统设置 / 数据字典 / 行政区划字典表" } },
{ path: "/settings/dict/pest", name: "settings-dict-pest", component: () => import("@/views/settings/dict/PestDict.vue"), meta: { title: "全国/本省检疫性有害生物表", breadcrumb: "系统设置 / 数据字典 / 全国/本省检疫性有害生物表" } },
{ path: "/settings/dict/newpest", name: "settings-dict-newpest", component: () => import("@/views/settings/dict/NewPestDict.vue"), meta: { title: "新发现潜在的检疫性有害生物列表", breadcrumb: "系统设置 / 数据字典 / 新发现潜在的检疫性有害生物列表" } },
{ path: "/settings/dict/foreign", name: "settings-dict-foreign", component: () => import("@/views/settings/dict/ForeignPestDict.vue"), meta: { title: "对外检疫性有害生物信息表", breadcrumb: "系统设置 / 数据字典 / 对外检疫性有害生物信息表" } },
{ path: "/settings/dict/system", name: "settings-dict-system", component: () => import("@/views/settings/dict/SystemDict.vue"), meta: { title: "系统字典表", breadcrumb: "系统设置 / 数据字典 / 系统字典表" } },
{ path: "/settings/log", name: "settings-log", component: () => import("@/views/settings/Log.vue"), meta: { title: "操作日志", breadcrumb: "系统设置 / 操作日志" } }
];
const router = createRouter({
history: createWebHashHistory(),
history: createWebHistory(import.meta.env.BASE_URL),
routes
});
......
......@@ -3,7 +3,7 @@ import { defineStore } from "pinia";
export const useTabsStore = defineStore("tabs", {
state: () => ({
tabs: [
{ name: "home", title: "首页", path: "/home", closable: false }
{ name: "home", title: "工作台", path: "/home", closable: false }
],
active: "home"
}),
......
import { ref, watch } from "vue";
// 默认数据集版本:改动数据文件中的默认数据后提升此版本号,旧的本地缓存会自动失效并按新默认值重建
const DATA_VERSION = "2026-10-15";
export function usePersistentRef(key, defaultValue) {
const K = "plant_quarantine_" + key;
const VER_KEY = K + "__ver";
const load = () => {
try {
if (localStorage.getItem(VER_KEY) !== DATA_VERSION) {
// 版本不符:丢弃旧缓存并标记为新版本
localStorage.removeItem(K);
localStorage.setItem(VER_KEY, DATA_VERSION);
return JSON.parse(JSON.stringify(defaultValue));
}
const r = localStorage.getItem(K);
if (r) { const p = JSON.parse(r); if (Array.isArray(p) && p.length) return p; }
} catch (e) {}
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -205,7 +205,7 @@
</div>
<div class="form-row">
<label class="form-label">入职时间</label>
<el-input v-model="form.joinDate" placeholder="如 2022-08-15" />
<el-input v-model="form.joinDate" placeholder="如 2026-08-15" />
</div>
<div class="form-row full">
<label class="form-label">联系电话</label>
......@@ -253,7 +253,7 @@
<tr v-for="(c, i) in form.certs" :key="i">
<td><el-input v-model="c.name" placeholder="证书名称" size="small" /></td>
<td><el-input v-model="c.no" placeholder="证书编号" size="small" /></td>
<td><el-input v-model="c.issueDate" placeholder="如 2024-01-01" size="small" /></td>
<td><el-input v-model="c.issueDate" placeholder="如 2026-01-01" size="small" /></td>
<td><el-input v-model="c.expiry" placeholder="如 2027-12-31" size="small" /></td>
<td><a class="op-link danger" @click="removeCertRow(i)">删除</a></td>
</tr>
......@@ -279,7 +279,7 @@
</thead>
<tbody>
<tr v-for="(t, i) in form.trainings" :key="i">
<td><el-input v-model="t.time" placeholder="如 2024-05-18" size="small" /></td>
<td><el-input v-model="t.time" placeholder="如 2026-05-18" size="small" /></td>
<td><el-input v-model="t.topic" placeholder="培训主题" size="small" /></td>
<td><el-input v-model="t.org" placeholder="培训机构" size="small" /></td>
<td><el-input v-model="t.result" placeholder="如 合格" size="small" /></td>
......@@ -317,12 +317,12 @@ const defaultExps = [
school: "中国农业大学", major: "植物病理学", dept: "分子检测实验室", joinDate: "2009-08-20",
address: "甘肃省张掖市甘州区西街 68 号",
certs: [
{ name: "实验室资质认定证", no: "LAB-2024-0035", issueDate: "2024-04-01", expiry: "2028-03-31" },
{ name: "PCR 检测上岗证", no: "PCR-2023-0118", issueDate: "2023-08-15", expiry: "2026-08-14" }
{ name: "实验室资质认定证", no: "LAB-2026-0035", issueDate: "2026-04-01", expiry: "2028-03-31" },
{ name: "PCR 检测上岗证", no: "PCR-2026-0118", issueDate: "2026-08-15", expiry: "2026-08-14" }
],
trainings: [
{ time: "2024-11-10", topic: "实时荧光定量 PCR 技术", org: "中国农业大学", result: "优秀" },
{ time: "2024-05-18", topic: "实验室生物安全规范", org: "省疾控中心", result: "合格" }
{ time: "2026-11-10", topic: "实时荧光定量 PCR 技术", org: "中国农业大学", result: "优秀" },
{ time: "2026-05-18", topic: "实验室生物安全规范", org: "省疾控中心", result: "合格" }
]
},
{
......@@ -332,37 +332,37 @@ const defaultExps = [
school: "西北农林科技大学", major: "食品科学与工程", dept: "化学分析实验室", joinDate: "2016-07-10",
address: "甘肃省张掖市甘州区东街 102 号",
certs: [
{ name: "实验室资质认定证", no: "LAB-2023-0078", issueDate: "2023-09-15", expiry: "2026-12-31" }
{ name: "实验室资质认定证", no: "LAB-2026-0078", issueDate: "2026-09-15", expiry: "2026-12-31" }
],
trainings: [
{ time: "2024-10-08", topic: "气相色谱-质谱联用技术", org: "安捷伦培训中心", result: "优秀" },
{ time: "2024-04-22", topic: "实验室质量管理体系", org: "省市场监管局", result: "合格" }
{ time: "2026-10-08", topic: "气相色谱-质谱联用技术", org: "安捷伦培训中心", result: "优秀" },
{ time: "2026-04-22", topic: "实验室质量管理体系", org: "省市场监管局", result: "合格" }
]
},
{
id: 3, name: "吴雪琴", account: "lab_003", gender: "女", title: "助理实验师", specialty: "微生物检测、培养基制备",
phone: "13788001303", email: "wuxueqin@plantq.cn", certExpiry: "2027-06-30", status: "在岗",
birthday: "1997-02-18", idCard: "622823199702180049", political: "共青团员", education: "本科",
school: "甘肃农业大学", major: "生物技术", dept: "微生物实验室", joinDate: "2021-08-15",
school: "甘肃农业大学", major: "生物技术", dept: "微生物实验室", joinDate: "2026-08-15",
address: "甘肃省张掖市民乐县",
certs: [
{ name: "实验室资质认定证(辅助)", no: "LAB-2025-0012", issueDate: "2025-07-01", expiry: "2027-06-30" }
{ name: "实验室资质认定证(辅助)", no: "LAB-2026-0012", issueDate: "2026-07-01", expiry: "2027-06-30" }
],
trainings: [
{ time: "2025-07-15", topic: "培养基制备与无菌操作", org: "省植保站", result: "合格" }
{ time: "2026-07-15", topic: "培养基制备与无菌操作", org: "省植保站", result: "合格" }
]
},
{
id: 4, name: "何建斌", account: "lab_004", gender: "男", title: "技术员", specialty: "样品制备、称量",
phone: "13688001304", email: "hejianbin@plantq.cn", certExpiry: "2025-10-31", status: "离岗",
phone: "13688001304", email: "hejianbin@plantq.cn", certExpiry: "2026-10-31", status: "离岗",
birthday: "1999-09-30", idCard: "622823199909300053", political: "群众", education: "大专",
school: "甘肃林业职业技术学院", major: "食品检测技术", dept: "样品处理室", joinDate: "2023-04-15",
school: "甘肃林业职业技术学院", major: "食品检测技术", dept: "样品处理室", joinDate: "2026-04-15",
address: "甘肃省张掖市高台县",
certs: [
{ name: "实验室技术员证", no: "LAB-2024-0089", issueDate: "2024-05-01", expiry: "2025-10-31" }
{ name: "实验室技术员证", no: "LAB-2026-0089", issueDate: "2026-05-01", expiry: "2026-10-31" }
],
trainings: [
{ time: "2024-05-10", topic: "样品前处理规范", org: "省植保站", result: "合格" }
{ time: "2026-05-10", topic: "样品前处理规范", org: "省植保站", result: "合格" }
]
}
];
......
......@@ -232,7 +232,7 @@
</div>
<div class="qf-item">
<label class="qf-label">批准日期</label>
<el-input v-model="form.approveDate" :disabled="mode === 'view'" placeholder="如 2022-11-21" />
<el-input v-model="form.approveDate" :disabled="mode === 'view'" placeholder="如 2026-11-21" />
</div>
<div class="qf-item">
<label class="qf-label required">所学专业</label>
......@@ -244,7 +244,7 @@
</div>
<div class="qf-item">
<label class="qf-label">授予时间</label>
<el-input v-model="form.grantDate" :disabled="mode === 'view'" placeholder="如 2020-12" />
<el-input v-model="form.grantDate" :disabled="mode === 'view'" placeholder="如 2026-12" />
</div>
<div class="qf-item">
<label class="qf-label required">检疫年限</label>
......@@ -315,17 +315,17 @@ const STORAGE_KEY = "base_quarantine";
const defaultQuars = [
{
id: 1, quarNo: "62070210", uniformNo: "", name: "彭婷", gender: "女", workOrg: "甘州区农业技术推广中心", grantOrg: "甘肃省农牧厅",
status: "在岗", registerDate: "2022-11-21", cancelDate: "", certIssueDate: "",
status: "在岗", registerDate: "2026-11-21", cancelDate: "", certIssueDate: "",
org: "甘州区农业技术推广中心", idCard: "622201199001015120", education: "本科", school: "甘肃农业大学",
techTitle: "农艺师", adminPos: "干部", lawCertNo: "", inspectCertNo: "", tel: "", account: "zygzpt",
birthday: "1990-01-01", approveDate: "2022-11-21", major: "动物科学", graduateDate: "2015-06",
grantDate: "2020-12", quarYears: "3", lawYears: "", inspectYears: "", phone: "",
birthday: "1990-01-01", approveDate: "2026-11-21", major: "动物科学", graduateDate: "2015-06",
grantDate: "2026-12", quarYears: "3", lawYears: "", inspectYears: "", phone: "",
email: "897721826@qq.com",
resume: "2012年11月 – 2015年3月 在甘浚镇人民政府畜牧兽医站工作\n2015年4月 – 2018年4月 在甘州区动物卫生监督所工作\n2018年5月– 至今 在甘州区农畜产品质量检测服务中心工作",
awards: "", research: "", papers: "", overseas: ""
},
{ id: 2, quarNo: "62070209", uniformNo: "", name: "魏建龙", gender: "男", workOrg: "甘州区农业技术推广中心", grantOrg: "甘肃省农业农村厅", status: "在岗", registerDate: "2018-11-02", cancelDate: "", certIssueDate: "2019-10-12", org: "甘州区农业技术推广中心", idCard: "", education: "本科", school: "", techTitle: "农艺师", adminPos: "干部", lawCertNo: "", inspectCertNo: "", tel: "", account: "", birthday: "", approveDate: "", major: "", graduateDate: "", grantDate: "", quarYears: "", lawYears: "", inspectYears: "", phone: "", email: "", resume: "", awards: "", research: "", papers: "", overseas: "" },
{ id: 3, quarNo: "62070208", uniformNo: "", name: "李科", gender: "男", workOrg: "甘州区农业技术推广中心", grantOrg: "甘肃省农业农村厅", status: "在岗", registerDate: "2018-11-02", cancelDate: "", certIssueDate: "2019-10-12", org: "甘州区农业技术推广中心", idCard: "", education: "", school: "", techTitle: "", adminPos: "", lawCertNo: "", inspectCertNo: "", tel: "", account: "", birthday: "", approveDate: "", major: "", graduateDate: "", grantDate: "", quarYears: "", lawYears: "", inspectYears: "", phone: "", email: "", resume: "", awards: "", research: "", papers: "", overseas: "" },
{ id: 2, quarNo: "62070209", uniformNo: "", name: "魏建龙", gender: "男", workOrg: "甘州区农业技术推广中心", grantOrg: "甘肃省农业农村厅", status: "在岗", registerDate: "2018-11-02", cancelDate: "", certIssueDate: "2026-10-12", org: "甘州区农业技术推广中心", idCard: "", education: "本科", school: "", techTitle: "农艺师", adminPos: "干部", lawCertNo: "", inspectCertNo: "", tel: "", account: "", birthday: "", approveDate: "", major: "", graduateDate: "", grantDate: "", quarYears: "", lawYears: "", inspectYears: "", phone: "", email: "", resume: "", awards: "", research: "", papers: "", overseas: "" },
{ id: 3, quarNo: "62070208", uniformNo: "", name: "李科", gender: "男", workOrg: "甘州区农业技术推广中心", grantOrg: "甘肃省农业农村厅", status: "在岗", registerDate: "2018-11-02", cancelDate: "", certIssueDate: "2026-10-12", org: "甘州区农业技术推广中心", idCard: "", education: "", school: "", techTitle: "", adminPos: "", lawCertNo: "", inspectCertNo: "", tel: "", account: "", birthday: "", approveDate: "", major: "", graduateDate: "", grantDate: "", quarYears: "", lawYears: "", inspectYears: "", phone: "", email: "", resume: "", awards: "", research: "", papers: "", overseas: "" },
{ id: 4, quarNo: "62070207", uniformNo: "", name: "徐克成", gender: "男", workOrg: "甘州区农业技术推广中心", grantOrg: "甘肃省农业农村厅", status: "在岗", registerDate: "2017-07-01", cancelDate: "", certIssueDate: "", org: "", idCard: "", education: "", school: "", techTitle: "", adminPos: "", lawCertNo: "", inspectCertNo: "", tel: "", account: "", birthday: "", approveDate: "", major: "", graduateDate: "", grantDate: "", quarYears: "", lawYears: "", inspectYears: "", phone: "", email: "", resume: "", awards: "", research: "", papers: "", overseas: "" },
{ id: 5, quarNo: "62070206", uniformNo: "", name: "李佳睿", gender: "男", workOrg: "甘州区农业技术推广中心", grantOrg: "甘肃省农业农村厅", status: "在岗", registerDate: "2017-07-01", cancelDate: "", certIssueDate: "", org: "", idCard: "", education: "", school: "", techTitle: "", adminPos: "", lawCertNo: "", inspectCertNo: "", tel: "", account: "", birthday: "", approveDate: "", major: "", graduateDate: "", grantDate: "", quarYears: "", lawYears: "", inspectYears: "", phone: "", email: "", resume: "", awards: "", research: "", papers: "", overseas: "" },
{ id: 6, quarNo: "62070205", uniformNo: "", name: "汤培升", gender: "男", workOrg: "甘州区农业技术推广中心", grantOrg: "甘肃省农业农村厅", status: "在岗", registerDate: "2017-07-01", cancelDate: "", certIssueDate: "", org: "", idCard: "", education: "", school: "", techTitle: "", adminPos: "", lawCertNo: "", inspectCertNo: "", tel: "", account: "", birthday: "", approveDate: "", major: "", graduateDate: "", grantDate: "", quarYears: "", lawYears: "", inspectYears: "", phone: "", email: "", resume: "", awards: "", research: "", papers: "", overseas: "" },
......
......@@ -106,30 +106,30 @@ const coverSvg = (label, color) => {
// 性诱监测仪:1、2 号 -> 1号隔离大棚;3 号 -> 2号隔离大棚
const devices = [
// 性诱监测仪(3)
{ id: 1, type: "sextrap", name: "1号性诱监测仪", station: "1号隔离大棚", lastTime: "2026-09-09 11:24:11", year: "2025", cover: coverSvg("性诱监测仪", "#5b8def") },
{ id: 2, type: "sextrap", name: "2号性诱监测仪", station: "1号隔离大棚", lastTime: "2026-09-09 11:24:13", year: "2025", cover: coverSvg("性诱监测仪", "#5b8def") },
{ id: 3, type: "sextrap", name: "3号性诱监测仪", station: "2号隔离大棚", lastTime: "2026-09-09 11:25:02", year: "2025", cover: coverSvg("性诱监测仪", "#5b8def") },
{ id: 1, type: "sextrap", name: "1号性诱监测仪", station: "1号隔离大棚", lastTime: "2026-09-09 11:24:11", year: "2026", cover: coverSvg("性诱监测仪", "#5b8def") },
{ id: 2, type: "sextrap", name: "2号性诱监测仪", station: "1号隔离大棚", lastTime: "2026-09-09 11:24:13", year: "2026", cover: coverSvg("性诱监测仪", "#5b8def") },
{ id: 3, type: "sextrap", name: "3号性诱监测仪", station: "2号隔离大棚", lastTime: "2026-09-09 11:25:02", year: "2026", cover: coverSvg("性诱监测仪", "#5b8def") },
// 苗情图像(4):1号大棚 → 1、2号;2号大棚 → 3、4号
{ id: 4, type: "image", name: "1号苗情图像", station: "1号隔离大棚", lastTime: "2026-09-09 11:58:06", year: "2025", cover: coverSvg("苗情图像", "#e6a23c") },
{ id: 6, type: "image", name: "2号苗情图像", station: "1号隔离大棚", lastTime: "2026-09-09 12:14:31", year: "2025", cover: coverSvg("苗情图像", "#e6a23c") },
{ id: 5, type: "image", name: "3号苗情图像", station: "2号隔离大棚", lastTime: "2026-09-09 12:02:18", year: "2025", cover: coverSvg("苗情图像", "#e6a23c") },
{ id: 7, type: "image", name: "4号苗情图像", station: "2号隔离大棚", lastTime: "2026-09-09 12:30:05", year: "2025", cover: coverSvg("苗情图像", "#e6a23c") },
{ id: 4, type: "image", name: "1号苗情图像", station: "1号隔离大棚", lastTime: "2026-09-09 11:58:06", year: "2026", cover: coverSvg("苗情图像", "#e6a23c") },
{ id: 6, type: "image", name: "2号苗情图像", station: "1号隔离大棚", lastTime: "2026-09-09 12:14:31", year: "2026", cover: coverSvg("苗情图像", "#e6a23c") },
{ id: 5, type: "image", name: "3号苗情图像", station: "2号隔离大棚", lastTime: "2026-09-09 12:02:18", year: "2026", cover: coverSvg("苗情图像", "#e6a23c") },
{ id: 7, type: "image", name: "4号苗情图像", station: "2号隔离大棚", lastTime: "2026-09-09 12:30:05", year: "2026", cover: coverSvg("苗情图像", "#e6a23c") },
// 虫情测报灯(3):1号大棚 → 1、2号;2号大棚 → 3号
{ id: 8, type: "pestlamp", name: "1号虫情测报灯", station: "1号隔离大棚", lastTime: "2026-09-09 06:54:52", year: "2025", cover: coverSvg("虫情测报灯", "#67c23a") },
{ id: 10, type: "pestlamp", name: "2号虫情测报灯", station: "1号隔离大棚", lastTime: "2026-09-09 06:55:10", year: "2025", cover: coverSvg("虫情测报灯", "#67c23a") },
{ id: 9, type: "pestlamp", name: "3号虫情测报灯", station: "2号隔离大棚", lastTime: "2026-09-09 15:00:00", year: "2025", cover: coverSvg("虫情测报灯", "#67c23a") },
{ id: 8, type: "pestlamp", name: "1号虫情测报灯", station: "1号隔离大棚", lastTime: "2026-09-09 06:54:52", year: "2026", cover: coverSvg("虫情测报灯", "#67c23a") },
{ id: 10, type: "pestlamp", name: "2号虫情测报灯", station: "1号隔离大棚", lastTime: "2026-09-09 06:55:10", year: "2026", cover: coverSvg("虫情测报灯", "#67c23a") },
{ id: 9, type: "pestlamp", name: "3号虫情测报灯", station: "2号隔离大棚", lastTime: "2026-09-09 15:00:00", year: "2026", cover: coverSvg("虫情测报灯", "#67c23a") },
// 小气候仪(2):1号大棚 → 1号;2号大棚 → 2号
{ id: 11, type: "climate", name: "1号小气候仪", station: "1号隔离大棚", lastTime: "2026-09-09 14:00:00", year: "2025", cover: coverSvg("小气候仪", "#d71e1e") },
{ id: 12, type: "climate", name: "2号小气候仪", station: "2号隔离大棚", lastTime: "2026-09-09 14:05:23", year: "2025", cover: coverSvg("小气候仪", "#d71e1e") },
{ id: 11, type: "climate", name: "1号小气候仪", station: "1号隔离大棚", lastTime: "2026-09-09 14:00:00", year: "2026", cover: coverSvg("小气候仪", "#d71e1e") },
{ id: 12, type: "climate", name: "2号小气候仪", station: "2号隔离大棚", lastTime: "2026-09-09 14:05:23", year: "2026", cover: coverSvg("小气候仪", "#d71e1e") },
// 远程实时监控(4):1号大棚 → 1、2号;2号大棚 → 3、4号
{ id: 13, type: "realtime", name: "1号远程实时监控", station: "1号隔离大棚", lastTime: "2026-09-09 14:10:02", year: "2025", cover: coverSvg("远程实时监控", "#9b59b6") },
{ id: 15, type: "realtime", name: "2号远程实时监控", station: "1号隔离大棚", lastTime: "2026-09-09 14:18:30", year: "2025", cover: coverSvg("远程实时监控", "#9b59b6") },
{ id: 14, type: "realtime", name: "3号远程实时监控", station: "2号隔离大棚", lastTime: "2026-09-09 14:12:48", year: "2025", cover: coverSvg("远程实时监控", "#9b59b6") },
{ id: 16, type: "realtime", name: "4号远程实时监控", station: "2号隔离大棚", lastTime: "2026-09-09 14:22:14", year: "2025", cover: coverSvg("远程实时监控", "#9b59b6") }
{ id: 13, type: "realtime", name: "1号远程实时监控", station: "1号隔离大棚", lastTime: "2026-09-09 14:10:02", year: "2026", cover: coverSvg("远程实时监控", "#9b59b6") },
{ id: 15, type: "realtime", name: "2号远程实时监控", station: "1号隔离大棚", lastTime: "2026-09-09 14:18:30", year: "2026", cover: coverSvg("远程实时监控", "#9b59b6") },
{ id: 14, type: "realtime", name: "3号远程实时监控", station: "2号隔离大棚", lastTime: "2026-09-09 14:12:48", year: "2026", cover: coverSvg("远程实时监控", "#9b59b6") },
{ id: 16, type: "realtime", name: "4号远程实时监控", station: "2号隔离大棚", lastTime: "2026-09-09 14:22:14", year: "2026", cover: coverSvg("远程实时监控", "#9b59b6") }
];
const filteredDevices = computed(() => {
......
<template>
<div class="dict-hub">
<div class="dict-grid">
<div class="dict-card" v-for="c in cards" :key="c.path" @click="goTo(c)">
<div class="dict-icon" v-html="c.icon"></div>
<div class="dict-title">{{ c.title }}</div>
</div>
</div>
</div>
</template>
<script setup>
import { useRouter } from "vue-router";
const router = useRouter();
const cards = [
{ title: "入境口岸登记表", path: "/settings/dict/port" },
{ title: "国家地区(引种原产地)登记表", path: "/settings/dict/region" },
{ title: "常用植物字典表", path: "/settings/dict/plant" },
{ title: "行政区划字典表", path: "/settings/dict/division" },
{ title: "全国/本省检疫性有害生物表", path: "/settings/dict/pest" },
{ title: "新发现潜在的检疫性有害生物列表", path: "/settings/dict/newpest" },
{ title: "对外检疫性有害生物信息表", path: "/settings/dict/foreign" },
{ title: "系统字典表", path: "/settings/dict/system" }
];
function goTo(c) { router.push(c.path); }
</script>
<style scoped>
.dict-hub { padding: 20px; }
.dict-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.dict-card { background: #fff; border: 1px solid #d71e1e; border-radius: 6px; padding: 24px 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; cursor: pointer; transition: all 0.2s; min-height: 120px; text-align: center; }
.dict-card:hover { background: #d71e1e; }
.dict-card:hover .dict-title { color: #fff; }
.dict-icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; }
.dict-icon :deep(svg) { width: 100%; height: 100%; }
.dict-title { font-size: 15px; font-weight: 600; color: #d71e1e; text-align: center; line-height: 1.4; transition: color 0.2s; }
</style>
......@@ -110,7 +110,7 @@ import { ElMessage } from "element-plus";
const STORAGE_KEY = "settings_logs";
const actionOptions = ["新增", "修改", "删除", "查询", "登录", "登出", "导入", "导出", "审批", "分配"];
const moduleOptions = ["首页", "委托书管理", "样本管理", "实验室检测", "田间调查", "除害处理", "隔离监测", "风险分析", "报告管理", "系统设置"];
const moduleOptions = ["首页", "委托书管理", "样本管理", "实验室检测", "试种观察", "除害处理", "隔离监测", "统计分析", "报告管理", "系统设置"];
const defaultLogs = [
{ id: 1, operator: "张文博", account: "gs_admin", action: "登录", module: "首页", desc: "登录系统", params: "username=gs_admin", result: "成功", opTime: "2026-09-20 08:30:12" },
......@@ -119,12 +119,12 @@ const defaultLogs = [
{ id: 4, operator: "李建华", account: "quar_001", action: "查询", module: "实验室检测", desc: "查询样本检测列表", params: "{page:1, pageSize:20, status:\"TESTING\"}", result: "成功", opTime: "2026-09-20 10:05:11" },
{ id: 5, operator: "李建华", account: "quar_001", action: "修改", module: "实验室检测", desc: "更新样本 SAMPLE-0006 检测结果:检出线虫", params: "{sampleId:\"SAMPLE-0006\", result:\"UNQUALIFIED\", pest:\"线虫\"}", result: "成功", opTime: "2026-09-20 10:18:55" },
{ id: 6, operator: "孙亚萍", account: "lab_001", action: "新增", module: "实验室检测", desc: "录入实验检验记录 LAB-2026-0312", params: "{labId:\"LAB-2026-0312\", sampleId:\"SAMPLE-0006\"}", result: "成功", opTime: "2026-09-20 10:35:42" },
{ id: 7, operator: "赵晓萌", account: "quar_002", action: "新增", module: "田间调查", desc: "登记田间调查记录 FIELD-2026-0089", params: "{fieldId:\"FIELD-2026-0089\", plot:\"lots\", area:5.6}", result: "成功", opTime: "2026-09-20 11:02:07" },
{ id: 8, operator: "赵晓萌", account: "quar_002", action: "修改", module: "田间调查", desc: "更新调查结论为异常,疑似发生蚜虫", params: "{fieldId:\"FIELD-2026-0089\", result:\"ABNORMAL\", pest:\"蚜虫\"}", result: "成功", opTime: "2026-09-20 11:14:33" },
{ id: 7, operator: "赵晓萌", account: "quar_002", action: "新增", module: "试种观察", desc: "登记田间调查记录 FIELD-2026-0089", params: "{fieldId:\"FIELD-2026-0089\", plot:\"lots\", area:5.6}", result: "成功", opTime: "2026-09-20 11:02:07" },
{ id: 8, operator: "赵晓萌", account: "quar_002", action: "修改", module: "试种观察", desc: "更新调查结论为异常,疑似发生蚜虫", params: "{fieldId:\"FIELD-2026-0089\", result:\"ABNORMAL\", pest:\"蚜虫\"}", result: "成功", opTime: "2026-09-20 11:14:33" },
{ id: 9, operator: "周磊", account: "lab_002", action: "导入", module: "实验室检测", desc: "批量导入检测数据 23 条", params: "{file:\"lab_20260920.xlsx\", count:23}", result: "成功", opTime: "2026-09-20 11:30:19" },
{ id: 10, operator: "王俊凯", account: "gz_admin", action: "分配", module: "除害处理", desc: "创建除害处理任务 DISPOSAL-2026-0034", params: "{disposalId:\"DISPOSAL-2026-0034\", type:\"TREATMENT\"}", result: "成功", opTime: "2026-09-20 12:08:50" },
{ id: 11, operator: "李建华", account: "quar_001", action: "修改", module: "除害处理", desc: "更新处理进度为处理完成", params: "{disposalId:\"DISPOSAL-2026-0034\", status:\"COMPLETED\"}", result: "成功", opTime: "2026-09-20 14:25:31" },
{ id: 12, operator: "张文博", account: "gs_admin", action: "导出", module: "风险分析", desc: "导出风险分析报告 2026年8月", params: "{reportId:\"RISK-2026-08\", format:\"doc\"}", result: "成功", opTime: "2026-09-20 15:02:46" },
{ id: 12, operator: "张文博", account: "gs_admin", action: "导出", module: "统计分析", desc: "导出风险分析报告 2026年8月", params: "{reportId:\"RISK-2026-08\", format:\"doc\"}", result: "成功", opTime: "2026-09-20 15:02:46" },
{ id: 13, operator: "张文博", account: "gs_admin", action: "查询", module: "报告管理", desc: "查询报告列表", params: "{page:1, pageSize:20}", result: "成功", opTime: "2026-09-20 15:10:22" },
{ id: 14, operator: "王俊凯", account: "gz_admin", action: "新增", module: "系统设置", desc: "新增用户 quar_003", params: "{account:\"quar_003\", name:\"马晓东\", roleName:\"检疫员\"}", result: "成功", opTime: "2026-09-20 15:30:08" },
{ id: 15, operator: "王俊凯", account: "gz_admin", action: "修改", module: "系统设置", desc: "修改角色 ROLE_QUARANTINE 权限", params: "{roleId:\"ROLE_QUARANTINE\", perms:[\"sample\",\"field\",\"disposal\"]}", result: "成功", opTime: "2026-09-20 15:45:55" },
......
......@@ -205,7 +205,7 @@ const defaultRoles = [
const menuTree = [
{
id: "home", name: "首页",
id: "home", name: "工作台",
children: []
},
{
......@@ -251,7 +251,7 @@ const menuTree = [
]
},
{
id: "analysis", name: "风险分析",
id: "stats", name: "统计分析",
children: []
},
{
......
<template><DictItem v-bind="config" /></template>
<script setup>
import DictItem from "./DictItem.vue";
const config = {
pageTitle: "行政区划字典表",
storageKey: "dict_division",
defaultData: [
{ id: 1, name: "甘肃省", code: "620000", level: "省" },
{ id: 2, name: "张掖市", code: "620700", level: "市", parent: "甘肃省" },
{ id: 3, name: "甘州区", code: "620702", level: "县/区", parent: "张掖市" },
{ id: 4, name: "甘州镇", code: "620702100", level: "乡镇", parent: "甘州区" },
{ id: 5, name: "梁家墩镇", code: "620702101", level: "乡镇", parent: "甘州区" },
{ id: 6, name: "上秦镇", code: "620702102", level: "乡镇", parent: "甘州区" },
{ id: 7, name: "三闸镇", code: "620702103", level: "乡镇", parent: "甘州区" },
{ id: 8, name: "党寨镇", code: "620702104", level: "乡镇", parent: "甘州区" },
{ id: 9, name: "新墩镇", code: "620702105", level: "乡镇", parent: "甘州区" },
{ id: 10, name: "沙井镇", code: "620702106", level: "乡镇", parent: "甘州区" }
],
columns: [
{ field: "name", label: "行政区划名称", width: "22%" },
{ field: "code", label: "行政区划代码", width: "18%" },
{ field: "level", label: "级别", type: "select", options: ["省", "市", "县/区", "乡镇"], width: "12%" },
{ field: "parent", label: "上级区划", width: "22%" }
],
filters: [
{ field: "name", label: "行政区划名称" },
{ field: "code", label: "行政区划代码" },
{ field: "level", label: "级别" }
]
};
</script>
<template><DictItem v-bind="config" /></template>
<script setup>
import DictItem from "./DictItem.vue";
const config = {
pageTitle: "对外检疫性有害生物信息表",
storageKey: "dict_foreign",
defaultData: [
{ id: 1, name: "南美番茄潜叶蛾", latin: "Tuta absoluta", origin: "南美洲", level: "对外检疫对象", host: "番茄、马铃薯", remark: "中国对外检疫重要有害生物" },
{ id: 2, name: "马铃薯甲虫", latin: "Leptinotarsa decemlineata", origin: "北美洲", level: "对外检疫对象", host: "马铃薯、番茄", remark: "" },
{ id: 3, name: "苹果蠹蛾", latin: "Cydia pomonella", origin: "欧洲", level: "对外检疫对象", host: "苹果、梨", remark: "重点关注对象" },
{ id: 4, name: "地中海实蝇", latin: "Ceratitis capitata", origin: "非洲", level: "对外检疫对象", host: "柑橘、芒果等", remark: "" },
{ id: 5, name: "谷斑皮蠹", latin: "Trogoderma granarium", origin: "亚洲", level: "对外检疫对象", host: "仓储谷物", remark: "" }
],
columns: [
{ field: "name", label: "有害生物名称", width: "16%" },
{ field: "latin", label: "学名", width: "22%" },
{ field: "origin", label: "原产地", width: "12%" },
{ field: "level", label: "对外检疫地位", width: "16%" },
{ field: "host", label: "主要寄主", width: "20%" },
{ field: "remark", label: "备注", width: "20%" }
],
filters: [
{ field: "name", label: "有害生物名称" },
{ field: "origin", label: "原产地" }
]
};
</script>
<template><DictItem v-bind="config" /></template>
<script setup>
import DictItem from "./DictItem.vue";
const config = {
pageTitle: "新发现潜在的检疫性有害生物列表",
storageKey: "dict_newpest",
defaultData: [
{ id: 1, no: "NP-2026-001", name: "疑似番茄斑萎病毒", latin: "Tomato spotted wilt virus (suspected)", discoverDate: "2026-05-12", origin: "荷兰", host: "番茄", method: "分子检测" },
{ id: 2, no: "NP-2026-002", name: "疑似南美番茄潜叶蛾", latin: "Tuta absoluta (suspected)", discoverDate: "2026-06-08", origin: "西班牙", host: "番茄", method: "形态学鉴定" },
{ id: 3, no: "NP-2026-003", name: "疑似甜菜胞囊线虫", latin: "Heterodera schachtii (suspected)", discoverDate: "2026-07-15", origin: "美国", host: "甜菜", method: "镜检+分子检测" }
],
columns: [
{ field: "no", label: "编号", width: "10%" },
{ field: "name", label: "疑似有害生物名称", width: "20%" },
{ field: "latin", label: "学名", width: "20%" },
{ field: "discoverDate", label: "发现日期", width: "12%" },
{ field: "origin", label: "来源国", width: "8%" },
{ field: "host", label: "寄主", width: "10%" },
{ field: "method", label: "检测方法", width: "13%" }
],
filters: [
{ field: "name", label: "疑似名称" },
{ field: "origin", label: "来源国" }
]
};
</script>
<template><DictItem v-bind="config" /></template>
<script setup>
import DictItem from "./DictItem.vue";
const config = {
pageTitle: "常用植物字典表",
storageKey: "dict_plant",
defaultData: [
{ id: 1, name: "翠菊", latin: "Callistephus chinensis", category: "花卉", isQuarantine: "否" },
{ id: 2, name: "莴苣", latin: "Lactuca sativa", category: "蔬菜", isQuarantine: "是" },
{ id: 3, name: "青花菜", latin: "Brassica oleracea var. italica", category: "蔬菜", isQuarantine: "是" },
{ id: 4, name: "胡萝卜", latin: "Daucus carota", category: "蔬菜", isQuarantine: "是" },
{ id: 5, name: "辣椒", latin: "Capsicum annuum", category: "蔬菜", isQuarantine: "是" },
{ id: 6, name: "番茄", latin: "Solanum lycopersicum", category: "蔬菜", isQuarantine: "是" },
{ id: 7, name: "五色菊", latin: "Brachycome multifida", category: "花卉", isQuarantine: "否" },
{ id: 8, name: "南瓜", latin: "Cucurbita moschata", category: "蔬菜", isQuarantine: "是" },
{ id: 9, name: "小麦", latin: "Triticum aestivum", category: "粮食作物", isQuarantine: "否" },
{ id: 10, name: "苹果", latin: "Malus pumila", category: "水果", isQuarantine: "是" }
],
columns: [
{ field: "name", label: "植物名称", width: "18%" },
{ field: "latin", label: "拉丁学名", width: "28%" },
{ field: "category", label: "植物类别", type: "select", options: ["粮食作物", "蔬菜", "花卉", "水果", "林木", "中药材", "草坪草", "繁殖材料"], width: "16%" },
{ field: "isQuarantine", label: "是否需检疫", type: "select", options: ["是", "否"], width: "14%" }
],
filters: [
{ field: "name", label: "植物名称" },
{ field: "latin", label: "拉丁学名" },
{ field: "category", label: "植物类别" }
]
};
</script>
<template><DictItem v-bind="config" /></template>
<script setup>
import DictItem from "./DictItem.vue";
const config = {
pageTitle: "入境口岸登记表",
storageKey: "dict_port",
defaultData: [
{ id: 1, name: "北京首都国际机场", code: "PEK-AIR", type: "航空口岸", address: "北京市朝阳区首都机场", contact: "010-64566600" },
{ id: 2, name: "上海浦东国际机场", code: "PVG-AIR", type: "航空口岸", address: "上海市浦东新区机场大道", contact: "021-68346600" },
{ id: 3, name: "广州白云国际机场", code: "CAN-AIR", type: "航空口岸", address: "广州市花都区机场路", contact: "020-36126600" },
{ id: 4, name: "深圳福田口岸", code: "SZ-LAND", type: "陆路口岸", address: "深圳市福田区福田南路", contact: "0755-83396600" },
{ id: 5, name: "天津新港", code: "TXG-SEA", type: "海运口岸", address: "天津市滨海新区", contact: "022-25706600" },
{ id: 6, name: "青岛港", code: "QD-SEA", type: "海运口岸", address: "青岛市市北区港洲路", contact: "0532-82826600" },
{ id: 7, name: "昆明长水国际机场", code: "KMG-AIR", type: "航空口岸", address: "昆明市官渡区", contact: "0871-67086600" },
{ id: 8, name: "成都双流国际机场", code: "CTU-AIR", type: "航空口岸", address: "成都市双流区", contact: "028-85206600" }
],
columns: [
{ field: "name", label: "口岸名称", width: "20%" },
{ field: "code", label: "口岸代码", width: "12%" },
{ field: "type", label: "口岸类型", type: "select", options: ["航空口岸", "陆路口岸", "海运口岸"], width: "12%" },
{ field: "address", label: "地址", width: "30%" },
{ field: "contact", label: "联系电话", width: "13%" }
],
filters: [
{ field: "name", label: "口岸名称" },
{ field: "code", label: "口岸代码" }
]
};
</script>
<template><DictItem v-bind="config" /></template>
<script setup>
import DictItem from "./DictItem.vue";
const config = {
pageTitle: "国家地区(引种原产地)登记表",
storageKey: "dict_region",
defaultData: [
{ id: 1, name: "智利", code: "CHL", continent: "南美洲", isQuarantine: "是", remark: "番茄、辣椒检疫重点国家" },
{ id: 2, name: "美国", code: "USA", continent: "北美洲", isQuarantine: "是", remark: "瓜类、十字花科重点国家" },
{ id: 3, name: "南非", code: "ZAF", continent: "非洲", isQuarantine: "否", remark: "" },
{ id: 4, name: "荷兰", code: "NLD", continent: "欧洲", isQuarantine: "是", remark: "花卉、种球" },
{ id: 5, name: "西班牙", code: "ESP", continent: "欧洲", isQuarantine: "否", remark: "" },
{ id: 6, name: "意大利", code: "ITA", continent: "欧洲", isQuarantine: "是", remark: "番茄、葫芦科" },
{ id: 7, name: "日本", code: "JPN", continent: "亚洲", isQuarantine: "是", remark: "南瓜、十字花科" },
{ id: 8, name: "法国", code: "FRA", continent: "欧洲", isQuarantine: "否", remark: "" },
{ id: 9, name: "澳大利亚", code: "AUS", continent: "大洋洲", isQuarantine: "是", remark: "果树、坚果" },
{ id: 10, name: "以色列", code: "ISR", continent: "亚洲", isQuarantine: "否", remark: "" }
],
columns: [
{ field: "name", label: "国家/地区", width: "18%" },
{ field: "code", label: "国家代码", width: "12%" },
{ field: "continent", label: "所在洲", type: "select", options: ["亚洲", "欧洲", "北美洲", "南美洲", "非洲", "大洋洲"], width: "14%" },
{ field: "isQuarantine", label: "是否重点检疫", type: "select", options: ["是", "否"], width: "14%" },
{ field: "remark", label: "备注", width: "32%" }
],
filters: [
{ field: "name", label: "国家/地区" },
{ field: "code", label: "国家代码" }
]
};
</script>
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论