文件夹整理
BIN
doc/other/ScreenShot_2026-01-30_091448_399.png
Normal file
|
After Width: | Height: | Size: 161 KiB |
BIN
doc/other/ScreenShot_2026-01-30_164916_062.png
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
doc/other/ScreenShot_2026-02-05_154534_027.png
Normal file
|
After Width: | Height: | Size: 393 KiB |
162
doc/other/中介黑名单导入功能修复说明.md
Normal file
@@ -0,0 +1,162 @@
|
||||
# 中介黑名单导入功能修复说明
|
||||
|
||||
## 问题描述
|
||||
|
||||
在导入机构中介黑名单数据时,出现以下错误:
|
||||
|
||||
```
|
||||
Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'certificate_no' cannot be null
|
||||
```
|
||||
|
||||
## 问题原因
|
||||
|
||||
1. **数据库约束**:`ccdi_intermediary_blacklist` 表的 `certificate_no` 字段设置为 `NOT NULL`,不允许存储 null 值。
|
||||
|
||||
2. **代码缺陷**:在 `CcdiIntermediaryBlacklistServiceImpl.java` 的 `importEntityIntermediary` 方法中,导入机构中介时只设置了 `corpCreditCode`(统一社会信用代码),但没有设置 `certificateNo` 字段,导致该字段为 null。
|
||||
|
||||
3. **批量插入失败**:`batchInsert` 方法明确插入 `certificate_no` 字段,当值为 null 时违反数据库约束。
|
||||
|
||||
## 解决方案
|
||||
|
||||
### 1. 代码修改
|
||||
|
||||
**文件**:[CcdiIntermediaryBlacklistServiceImpl.java](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-ccdi\src\main\java\com\ruoyi\dpc\service\impl\CcdiIntermediaryBlacklistServiceImpl.java)
|
||||
|
||||
**修改位置**:第 390-394 行
|
||||
|
||||
**修改前**:
|
||||
```java
|
||||
// 转换为实体
|
||||
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
|
||||
intermediary.setName(excel.getName());
|
||||
intermediary.setIntermediaryType("2");
|
||||
```
|
||||
|
||||
**修改后**:
|
||||
```java
|
||||
// 转换为实体
|
||||
CcdiIntermediaryBlacklist intermediary = new CcdiIntermediaryBlacklist();
|
||||
intermediary.setName(excel.getName());
|
||||
// 对于机构中介,使用统一社会信用代码作为证件号
|
||||
intermediary.setCertificateNo(excel.getCorpCreditCode());
|
||||
intermediary.setIntermediaryType("2");
|
||||
```
|
||||
|
||||
### 2. 验证逻辑增强
|
||||
|
||||
**文件**:[CcdiIntermediaryBlacklistServiceImpl.java](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-ccdi\src\main\java\com\ruoyi\dpc\service\impl\CcdiIntermediaryBlacklistServiceImpl.java)
|
||||
|
||||
**修改位置**:第 484-488 行
|
||||
|
||||
**修改前**:
|
||||
```java
|
||||
private void validateEntityIntermediaryData(CcdiIntermediaryEntityExcel excel) {
|
||||
if (StringUtils.isEmpty(excel.getName())) {
|
||||
throw new RuntimeException("机构名称不能为空");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**修改后**:
|
||||
```java
|
||||
private void validateEntityIntermediaryData(CcdiIntermediaryEntityExcel excel) {
|
||||
if (StringUtils.isEmpty(excel.getName())) {
|
||||
throw new RuntimeException("机构名称不能为空");
|
||||
}
|
||||
// 验证统一社会信用代码不能为空(因为会用作 certificate_no 字段)
|
||||
if (StringUtils.isEmpty(excel.getCorpCreditCode())) {
|
||||
throw new RuntimeException("统一社会信用代码不能为空");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 批量更新 XML 配置优化
|
||||
|
||||
**文件**:[CcdiIntermediaryBlacklistMapper.xml](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-ccdi\src\main\resources\mapper\dpc\CcdiIntermediaryBlacklistMapper.xml)
|
||||
|
||||
**修改位置**:第 125-127 行
|
||||
|
||||
**修改前**:
|
||||
```xml
|
||||
<if test="item.dataSource != null">data_source = #{item.dataSource},</if>
|
||||
update_by = #{item.updateBy},
|
||||
update_time = #{item.updateTime}
|
||||
```
|
||||
|
||||
**修改后**:
|
||||
```xml
|
||||
<if test="item.dataSource != null">data_source = #{item.dataSource},</if>
|
||||
<if test="item.certificateNo != null">certificate_no = #{item.certificateNo},</if>
|
||||
update_by = #{item.updateBy},
|
||||
update_time = #{item.updateTime}
|
||||
```
|
||||
|
||||
## 设计说明
|
||||
|
||||
### 为什么使用统一社会信用代码作为证件号?
|
||||
|
||||
1. **数据一致性**:统一社会信用代码本身就是机构的法定证件号,将其同时存储在 `certificate_no` 字段中可以保持数据的一致性。
|
||||
|
||||
2. **查询便利**:`certificate_no` 字段有索引,设置后可以快速查询机构中介。
|
||||
|
||||
3. **兼容性好**:个人中介和机构中介都使用 `certificate_no` 字段,查询逻辑更统一。
|
||||
|
||||
4. **不破坏现有结构**:不需要修改数据库表结构,只修改代码逻辑。
|
||||
|
||||
## 测试验证
|
||||
|
||||
### 测试用例
|
||||
|
||||
1. **个人中介导入**:正常导入个人中介数据,验证 `certificate_no` 字段正确存储身份证号。
|
||||
|
||||
2. **机构中介导入**:导入机构中介数据,验证 `certificate_no` 字段正确存储统一社会信用代码。
|
||||
|
||||
3. **统一社会信用代码为空**:验证当统一社会信用代码为空时,导入被正确拒绝并给出错误提示。
|
||||
|
||||
4. **批量更新**:验证批量更新时 `certificate_no` 字段能够正确更新。
|
||||
|
||||
### 测试脚本
|
||||
|
||||
测试脚本位于:[doc/test-data/test_import_fix.py](d:\discipline-prelim-check\discipline-prelim-check\doc\test-data\test_import_fix.py)
|
||||
|
||||
运行测试:
|
||||
```bash
|
||||
python doc/test-data/test_import_fix.py
|
||||
```
|
||||
|
||||
## 影响范围
|
||||
|
||||
### 已影响的功能
|
||||
- 机构中介批量导入功能
|
||||
|
||||
### 不影响的功能
|
||||
- 个人中介导入功能
|
||||
- 手动新增中介功能
|
||||
- 中介查询功能
|
||||
- 中介导出功能
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **数据迁移**:如果数据库中已存在机构中介数据且 `certificate_no` 为 null,需要执行以下 SQL 进行数据修复:
|
||||
|
||||
```sql
|
||||
UPDATE ccdi_intermediary_blacklist
|
||||
SET certificate_no = corp_credit_code
|
||||
WHERE intermediary_type = '2' AND certificate_no IS NULL AND corp_credit_code IS NOT NULL;
|
||||
```
|
||||
|
||||
2. **Excel 模板**:确保导入模板中统一社会信用代码字段设置为必填项。
|
||||
|
||||
3. **前端验证**:建议在前端表单中也添加统一社会信用代码的必填验证。
|
||||
|
||||
## 修改文件列表
|
||||
|
||||
1. [CcdiIntermediaryBlacklistServiceImpl.java](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-ccdi\src\main\java\com\ruoyi\dpc\service\impl\CcdiIntermediaryBlacklistServiceImpl.java) - 服务层实现
|
||||
2. [CcdiIntermediaryBlacklistMapper.xml](d:\discipline-prelim-check\discipline-prelim-check\ruoyi-ccdi\src\main\resources\mapper\dpc\CcdiIntermediaryBlacklistMapper.xml) - MyBatis 映射文件
|
||||
3. [test_import_fix.py](d:\discipline-prelim-check\discipline-prelim-check\doc\test-data\test_import_fix.py) - 测试脚本
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 作者 | 说明 |
|
||||
|------|------|------|------|
|
||||
| 1.0 | 2026-01-29 | ruoyi | 初始版本,修复机构中介导入时 certificate_no 为 null 的问题 |
|
||||
BIN
doc/other/纪检初核系统-离线演示包.zip
Normal file
1
doc/other/纪检初核系统-离线演示包/env/2203.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
window.ENV = {"IS_FEAT_FLPAK4GB":true,"IS_FEAT_ABOARD":true,"IS_FEAT_SIGMA":true,"IS_LEGACY_V7":true,"BOMX_API_SDK_URL":"https://sdk.boardmix.cn/bmsdk","BOMX_API_CLIENT_ID":"IpfSMaEsOHWu7cg7","AIPPT_CLIENT_ID":"0ePnORDMD6KJSIIB","AIPPT_API_SDK_URL":"https://sdk.pptgo.cn/pptsdk","PIXSO_API_URL":"https://ps.modao.cc","PIXSO_USER_CLIENT_ID":"pixso_design_online"}
|
||||
@@ -0,0 +1 @@
|
||||
TAG_V++3NXya0fYxmDs8mWSM69pSHMU=|2026-01-27T00_2026-01-27T00:11:10.126Z
|
||||
1
doc/other/纪检初核系统-离线演示包/extra/data.0.js
Normal file
@@ -0,0 +1 @@
|
||||
window["hzv5"] = window["hzv5"] || {};window["hzv5"]["init"] = {"MBServer":"modao.cc","MBClientDownloadURL":"https://cdn-release.modao.cc/desktop/Mockitt-darwin-x64-zh-1.2.5.dmg","MBChromeDownloadURL":"https://www.google.cn/chrome/","MBSketchPluginDownloadURL":"https://cdn-release.modao.cc/sketch/MockingBot.zh.sketchplugin.zip","isOnPremises":false,"isWonderShare":false,"projectUpper":{"owner_id":2209883,"owner_name":"谢小涵","owner_email":"153276082@qq.com","owner_avatar":"https://oss-mb-fog.modao.cc/uploads4/avatars/220/2209883/forum_132.jpeg","id":33418631,"limitation":{"storage":5000,"exportable":["png","pngs","htmlzip"],"encryptable":true,"inspectable":true,"slices":true,"projects":65535,"screens":65535,"commentable":true},"screens_count":5,"cid":"pb2mk0rvsqu5j6763","team_cid":"temk0rv8qmsbc9ft","space_cid":"splopmenp3ricy1f","space_name":"默认空间","name":"纪检初核系统","type":"proto2","attr":{"export_settings":[{"affix":"suffix","scale":"1","format":"png"}],"export_with_device_frame":false},"created_at":1767594090000,"updated_at":1768285464000,"timestamp":"1768285464","access":"public","access_token":"WEvGV4cIt8dobuo9KjUF","version":"v3","icon":null,"cover":"/uploads7/covers/3341/33418631/cover_1769473447.png","custom_cover":null,"is_custom_cover":false,"splash":null,"width":1440,"height":1024,"device":"web","model":"desktop","scale":100,"archived":false,"is_sclib":false,"parent_cid":"pb2m9uxlouyf4dwms","source_upper_cid":null,"clones":11,"shell_type":"device","password":"","wechat":false,"highlight":true,"preview_option":1,"expired":false,"deleted":false,"duplicating":false,"permissions":[{"user_id":2209883,"role":"project_owner"}],"is_org_project":false,"is_sub_project":false,"runner_mode":"preview","comment_permission":"org_member","tabs":null,"visibility":"open","building":"view_sticky","scene_tag":"PC-web","is_solo_lifetime":true,"is_first_canvas_open":null},"projectMeta":{"cid":"pm2mk0rvsquvpcjcs","mtime":1767594090054,"name":"","type":"proto2","ttag":"flat","upper_cid":"pb2mk0rvsqu5j6763","upper_type":"project-basic","is_flat_meta":true}}
|
||||
1
doc/other/纪检初核系统-离线演示包/extra/data.1.js
Normal file
1
doc/other/纪检初核系统-离线演示包/extra/data.2.js
Normal file
@@ -0,0 +1 @@
|
||||
window["hzv5"] = window["hzv5"] || {};window["hzv5"]["mktc"] = {"md_vip_mkt_list":[],"mt_vip_mkt_list":[],"no_wm_mkt_list":["igk8iirffgi4hpfx","igk8iisxdk72zt9","igk8iiv3qpgl3lsx","igk8iiw2zlastfks","igk8ij5zxd43jlud","igk8ijdjkayrsvvz","igk8ijgosea1iye0","igkszmzkoc8bv5fq","igkw1wjh6762ojwr","igkwotlxrcwn19vd"]}
|
||||
44
doc/other/纪检初核系统-离线演示包/index.html
Normal file
@@ -0,0 +1,44 @@
|
||||
<!doctype html><html translate="no"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="mobile-web-app-capable" content="yes"><meta name="renderer" content="webkit"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>墨刀</title><link rel="icon" id="icon" href="mb-proto2/vis/modao/favicon_home_screen_new.ico"><link rel="apple-touch-icon-precomposed" id="apple-touch-icon" href="mb-proto2/vis/modao/favicon_home_screen_new.ico"><link rel="stylesheet" href="mb-proto2/icons/fa5/css/fa5.css"><script>if (
|
||||
function() { try { eval([
|
||||
'for (const a of []) {}',
|
||||
'let b = { fetch, Proxy }',
|
||||
'let c = (async () => {})()',
|
||||
'let { d0, ...d1 } = { ...b }'
|
||||
].join(';')) } catch (e) { console.log('!!', e); return true } }()
|
||||
) location.href = "https://modao.cc/browser-update"</script><script src="mb-static/2410/echarts-map/loadMap.js"></script><script src="env/2203.js"></script><script>window.ENV.NO_SENTRY = true; window.ENV.NO_TRACK = true</script><script>if (ENV.IS_MO) {
|
||||
document.title = 'Mockitt';
|
||||
document.documentElement.classList.add('wonder-share');
|
||||
document.getElementById('icon').href = '/mb-static/2509/favicon-mo.ico';
|
||||
document.getElementById('apple-touch-icon').href = '/mb-static/2509/favicon-mo.ico';
|
||||
}</script><script>window.dataLayer = window.dataLayer || [];
|
||||
function gtag() { dataLayer.push(arguments) };
|
||||
ENV.IS_MO && gtag('js', new Date());
|
||||
ENV.IS_MO && gtag('config', 'UA-4839360-64');
|
||||
ENV.IS_MO && document.write('<script async src="https://www.googletagmanager.com/gtag/js?id=UA-4839360-64"><'+'/script>')</script><script>window.dataLayer = window.dataLayer || [];
|
||||
function gtag() { dataLayer.push(arguments) };
|
||||
ENV.IS_MO && gtag('js', new Date());
|
||||
ENV.IS_MO && gtag('config', 'G-24WTSJBD5B');
|
||||
ENV.IS_MO && document.write('<script async src="https://www.googletagmanager.com/gtag/js?id=G-24WTSJBD5B"><'+'/script>')</script><script src="mb-static/2308/core-js-3.32.1/modern.js"></script><script>ENV.NO_TRACK || document.write('<script src="mb-static/2502/sa-1.26.18/_.js"><'+'/script>')</script><script defer="defer" src="mb-proto2/6.3688a-vendor-0d07687f4be09b8b3eca.js"></script><script defer="defer" src="mb-proto2/5.fxqum-vendor-f8aaf1fb2db7ed4b19df.js"></script><script defer="defer" src="mb-proto2/5.7b24m-vendor-c6215ade32c4d6e04f4c.js"></script><script defer="defer" src="mb-proto2/4.ekpaa-vendor-4a8c0d8af0989de4a89f.js"></script><script defer="defer" src="mb-proto2/4.n9fxu-vendor-121f3fbb2320541a30bc.js"></script><script defer="defer" src="mb-proto2/3.h4vam-vendor-5567a1235ac230e00561.js"></script><script defer="defer" src="mb-proto2/preview-html-zip-40b1c65b44de21c4ab8a.js"></script><link href="mb-proto2/6.3688a-vendor-16f3ece222913e7058d1.css" rel="stylesheet"><link href="mb-proto2/preview-html-zip-f0d9de76208db26b1137.css" rel="stylesheet"><script>function loadGTM() {
|
||||
if (ENV.NO_TRACK) {
|
||||
return
|
||||
}
|
||||
|
||||
(function (w, d, s, l, i) {
|
||||
w[l] = w[l] || [];
|
||||
w[l].push({
|
||||
'gtm.start': new Date().getTime(),
|
||||
event: 'gtm.js',
|
||||
});
|
||||
var f = d.getElementsByTagName(s)[0],
|
||||
j = d.createElement(s),
|
||||
dl = l !== 'dataLayer' ? '&l=' + l : '';
|
||||
j.async = true;
|
||||
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
|
||||
f.parentNode.insertBefore(j, f);
|
||||
})(window, document, 'script', 'dataLayer', 'GTM-TZJK297T');
|
||||
}
|
||||
loadGTM()</script></head><body><div id="workspace"></div><script>HZv5_PREVIEW_MODE="device"</script>
|
||||
<script src="extra/data.0.js"></script>
|
||||
<script src="extra/data.2.js"></script>
|
||||
<script src="extra/data.1.js"></script>
|
||||
</body></html>
|
||||
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 143 KiB |
|
After Width: | Height: | Size: 379 KiB |
|
After Width: | Height: | Size: 129 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 19 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/Xiaomi_14.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/Xiaomi_15.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 118 KiB |
|
After Width: | Height: | Size: 351 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/car_play.png
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/desktop.png
Normal file
|
After Width: | Height: | Size: 361 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/desktop_1920.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 34 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/huawei_p40.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/huawei_p9.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/imac.png
Normal file
|
After Width: | Height: | Size: 375 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/imac_2023.png
Normal file
|
After Width: | Height: | Size: 665 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 10 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/ipad.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/ipad_2023.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/ipad_mini.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/ipad_pro.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/ipad_pro_11.png
Normal file
|
After Width: | Height: | Size: 194 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/ipad_pro_12.png
Normal file
|
After Width: | Height: | Size: 146 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/iphone_11.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/iphone_12.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 88 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/iphone_13.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 42 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/iphone_14.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 67 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/iphone_15.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 68 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/iphone_16.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 62 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/iphone_17.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 30 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/iphone_7.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 94 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/iphone_air.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/iphone_se.png
Normal file
|
After Width: | Height: | Size: 209 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/iphone_x.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 169 KiB |
BIN
doc/other/纪检初核系统-离线演示包/mb-proto2/images/devices/mac_book_pro.png
Normal file
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 559 KiB |
|
After Width: | Height: | Size: 491 KiB |