feat: 目标站功能逆向与样板库全量采集
- 采集 windoorcraft.com 全部前端路由(42条)、接口清单(约300条) - 样板库 254 套窗型模板全量采集(清单+分类+drawing_data 绘制数据) - 留存 16 个核心接口真实响应样本作为数据模型依据 - 输出克隆实施方案(架构/拖拽编辑器复刻/里程碑)与 API 对照文档 - 初始化 README 与 CHANGELOG
This commit is contained in:
+10
@@ -0,0 +1,10 @@
|
|||||||
|
# Python-generated files
|
||||||
|
__pycache__/
|
||||||
|
*.py[oc]
|
||||||
|
build/
|
||||||
|
dist/
|
||||||
|
wheels/
|
||||||
|
*.egg-info
|
||||||
|
|
||||||
|
# Virtual environments
|
||||||
|
.venv
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
3.14
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# CHANGELOG
|
||||||
|
|
||||||
|
- [2026-09-20 06:41] FEAT: 完成目标站逆向采集——样板库 254 套模板 drawing_data 全量采集(254/254)、16 个核心接口响应样本、约 300 条接口清单;输出《克隆实施方案》《API 接口文档》(Files: doc/克隆实施方案.md, doc/API.md, data/api-endpoint-inventory.txt, data/api-samples/*, data/windoor-drawings/*)
|
||||||
|
- [2026-09-20 06:41] DOCS: 初始化 README 项目导航 (Files: README.md)
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# huamenchuang
|
||||||
|
|
||||||
|
门窗行业云平台(功能对标 windoorcraft.com,全部自研实现)。
|
||||||
|
|
||||||
|
## 文档导航
|
||||||
|
|
||||||
|
- [克隆实施方案](doc/克隆实施方案.md) — 产品画像、架构设计、拖拽画布编辑器复刻方案、里程碑
|
||||||
|
- [API 接口文档](doc/API.md) — 接口规范与目标站对照表
|
||||||
|
- [变更日志](CHANGELOG)
|
||||||
|
|
||||||
|
## 目录
|
||||||
|
|
||||||
|
```
|
||||||
|
doc/ 设计文档
|
||||||
|
data/
|
||||||
|
├── api-endpoint-inventory.txt 目标站接口名清单(≈300 条)
|
||||||
|
├── api-samples/ 核心接口真实响应样本 + 样板库全量清单
|
||||||
|
└── windoor-drawings/ 254 套官方样板库完整绘制数据 (drawing_data)
|
||||||
|
src/huamenchuang/ 后端(FastAPI,规划中)
|
||||||
|
frontend/ 前端(Vue3 + TS,规划中)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 开发
|
||||||
|
|
||||||
|
```bash
|
||||||
|
uv sync # 安装后端依赖(规划)
|
||||||
|
uv run uvicorn huamenchuang.main:app --reload
|
||||||
|
```
|
||||||
@@ -0,0 +1,279 @@
|
|||||||
|
add_try_time
|
||||||
|
add-son-company-code
|
||||||
|
after_sales_orders
|
||||||
|
after_sales_orders/
|
||||||
|
ai_product
|
||||||
|
ai_recommend
|
||||||
|
ai_recommend_draw_data
|
||||||
|
align
|
||||||
|
all-product
|
||||||
|
annotation-drawing/
|
||||||
|
announcement/
|
||||||
|
announcement_feedback
|
||||||
|
announcement_good/
|
||||||
|
announcements
|
||||||
|
bargain
|
||||||
|
bind-email
|
||||||
|
bind-hmc-user
|
||||||
|
bind-kjl-user
|
||||||
|
bind-product
|
||||||
|
bind-third-app
|
||||||
|
bind-third-app-user
|
||||||
|
bind-wechat
|
||||||
|
captcha
|
||||||
|
cc_list
|
||||||
|
cj-contract-orders
|
||||||
|
cj-contracts
|
||||||
|
cj-order-info
|
||||||
|
cj-orders-status
|
||||||
|
cj-return-status
|
||||||
|
cj-user
|
||||||
|
cl_windoor_info/
|
||||||
|
clear-order-process
|
||||||
|
clip
|
||||||
|
clone-order-format/
|
||||||
|
clone-script/
|
||||||
|
code-login
|
||||||
|
color
|
||||||
|
company
|
||||||
|
company_colors
|
||||||
|
company-module
|
||||||
|
company-module-info
|
||||||
|
company-module-try
|
||||||
|
company-push-bind
|
||||||
|
confine
|
||||||
|
content
|
||||||
|
contract_bars_with_stock
|
||||||
|
contract_clone
|
||||||
|
contract_receipt
|
||||||
|
contract_receipt_list
|
||||||
|
contract_receipt_list/
|
||||||
|
contract_receipt_statistics
|
||||||
|
contract_receipt_statistics_tb
|
||||||
|
contract_share
|
||||||
|
contract_share/
|
||||||
|
contract_share_list
|
||||||
|
contract_workshop_list
|
||||||
|
contract-bl/
|
||||||
|
contract-bl-info/
|
||||||
|
contract-bl-list
|
||||||
|
contract-cave
|
||||||
|
contract-cave/
|
||||||
|
contracts
|
||||||
|
contracts/
|
||||||
|
contracts_excel
|
||||||
|
contract-stat
|
||||||
|
convert-contract/
|
||||||
|
current-user
|
||||||
|
current-user/password
|
||||||
|
current-user/phone
|
||||||
|
current-user/son-accounts
|
||||||
|
customer_record
|
||||||
|
customer_records/
|
||||||
|
customers
|
||||||
|
customers_excel_in
|
||||||
|
customers_list
|
||||||
|
cut_solution
|
||||||
|
cut_times
|
||||||
|
data
|
||||||
|
dealer_list
|
||||||
|
default_windoor/
|
||||||
|
default_windoor_catelog
|
||||||
|
default_windoor_catelog_for_ht
|
||||||
|
default_windoor_info/
|
||||||
|
del_materials_configs
|
||||||
|
del_product
|
||||||
|
del_warehouses
|
||||||
|
del-contract-cave
|
||||||
|
description
|
||||||
|
dls-copy-products
|
||||||
|
dls-price-config
|
||||||
|
dls-up-company
|
||||||
|
download-product
|
||||||
|
drawing_data_by_oid/
|
||||||
|
enterable
|
||||||
|
excel-statistics
|
||||||
|
expend_list
|
||||||
|
feedback
|
||||||
|
forget-password
|
||||||
|
get_cutting_boms_for_xn_to_sql_srv
|
||||||
|
get_order_process
|
||||||
|
get_order_process_list
|
||||||
|
get-showdoc-menu
|
||||||
|
get-third-apps
|
||||||
|
graphql
|
||||||
|
guigui-token
|
||||||
|
has_fudafu
|
||||||
|
height
|
||||||
|
hmc-user-list
|
||||||
|
icon
|
||||||
|
interval
|
||||||
|
invited_user_list
|
||||||
|
ip_to_region
|
||||||
|
is-multipoint
|
||||||
|
is-repeat-order
|
||||||
|
large
|
||||||
|
length
|
||||||
|
link
|
||||||
|
ll-up-warehouse
|
||||||
|
login
|
||||||
|
login_users
|
||||||
|
margin
|
||||||
|
material_sale_order
|
||||||
|
materials_config
|
||||||
|
materials_config_excel
|
||||||
|
materials_excel_out
|
||||||
|
model-price-config
|
||||||
|
normal
|
||||||
|
offer-price
|
||||||
|
offer-price/
|
||||||
|
offset
|
||||||
|
operation_logs
|
||||||
|
optimize1d-ai
|
||||||
|
optimize1d-test
|
||||||
|
order_clone
|
||||||
|
order_format
|
||||||
|
order_format/
|
||||||
|
order_format_by_warehouse
|
||||||
|
order_format_sort
|
||||||
|
order_up_logs
|
||||||
|
order_user_list
|
||||||
|
order-by-pid
|
||||||
|
orders/
|
||||||
|
orders_
|
||||||
|
orders-sort
|
||||||
|
orient
|
||||||
|
out_photo_plan/
|
||||||
|
out-contracts/
|
||||||
|
out-order/
|
||||||
|
out-threed/
|
||||||
|
overtime_warning
|
||||||
|
pay-order-list
|
||||||
|
pay-page
|
||||||
|
pay-page-list
|
||||||
|
pay-tc
|
||||||
|
photo_plan
|
||||||
|
photo_plan/
|
||||||
|
pk_default_info
|
||||||
|
product
|
||||||
|
product/
|
||||||
|
product/send_to_shop
|
||||||
|
product_
|
||||||
|
product_addon_sort
|
||||||
|
product_bar_sort
|
||||||
|
product_by_warehouse
|
||||||
|
product_clone_by_script_type
|
||||||
|
product_cost_sort
|
||||||
|
product_glass_sort
|
||||||
|
product_move_in/
|
||||||
|
product_move_out/
|
||||||
|
product_order_format_sort
|
||||||
|
product_ps_hole_open
|
||||||
|
product_rule_sort
|
||||||
|
product_var_sort
|
||||||
|
product_wage_sort
|
||||||
|
product-buy-record
|
||||||
|
product-catelog
|
||||||
|
product-order-format
|
||||||
|
product-order-format/
|
||||||
|
product-vars
|
||||||
|
progressive
|
||||||
|
quotations
|
||||||
|
receipt_account
|
||||||
|
receipt_account/
|
||||||
|
receipt_accounts
|
||||||
|
record
|
||||||
|
record_by_contract_id
|
||||||
|
register-and-login
|
||||||
|
rendering
|
||||||
|
rendering-info
|
||||||
|
reports
|
||||||
|
rotate
|
||||||
|
salesmen
|
||||||
|
salesmen_statistics
|
||||||
|
save-data
|
||||||
|
save-pk-product
|
||||||
|
script
|
||||||
|
script/
|
||||||
|
script_
|
||||||
|
search_default_windoor
|
||||||
|
search-product
|
||||||
|
selector
|
||||||
|
send_contract_to_hmc
|
||||||
|
send-bind-code
|
||||||
|
send-order
|
||||||
|
send-product
|
||||||
|
share-access-log
|
||||||
|
show
|
||||||
|
size
|
||||||
|
sketch-to-window-info
|
||||||
|
snap
|
||||||
|
son_user_update/
|
||||||
|
status
|
||||||
|
sublink
|
||||||
|
subtarget
|
||||||
|
swj-jh-login
|
||||||
|
swj-login
|
||||||
|
swj-son-accounts
|
||||||
|
target
|
||||||
|
team-discount
|
||||||
|
text
|
||||||
|
three-d-data
|
||||||
|
throttle
|
||||||
|
try_render
|
||||||
|
type
|
||||||
|
unbind-wechat
|
||||||
|
up_contract_user_id
|
||||||
|
up_contract_workshop_note/
|
||||||
|
up_material_sale_order_status/
|
||||||
|
up_order_by_key/
|
||||||
|
up_order_format_show
|
||||||
|
up_order_hole_pic
|
||||||
|
up_order_no/
|
||||||
|
up_product_bar_print_sort/
|
||||||
|
up_product_order_format/
|
||||||
|
up_son_user_permission
|
||||||
|
up-contract-confirmed/
|
||||||
|
up-cut-status
|
||||||
|
update-contract-sign-status
|
||||||
|
upload_json
|
||||||
|
upload-order
|
||||||
|
upload-pic
|
||||||
|
uploads
|
||||||
|
up-order-process
|
||||||
|
up-son-account-type
|
||||||
|
user_id
|
||||||
|
users
|
||||||
|
verification-code-new
|
||||||
|
verify_lists
|
||||||
|
void_contract_receipt/
|
||||||
|
void_record
|
||||||
|
warehouse_catelog_sort
|
||||||
|
warehouse_catelogs
|
||||||
|
warehouse_excel
|
||||||
|
warehouse_excel_out
|
||||||
|
warehouse_info
|
||||||
|
warehouse_list
|
||||||
|
wechat_order
|
||||||
|
wechat_pay_annual_fee
|
||||||
|
wechat_pay_gzh
|
||||||
|
wechat-login
|
||||||
|
wechat-login-with-phone
|
||||||
|
width
|
||||||
|
windoor/
|
||||||
|
windoor_default
|
||||||
|
windoor_for_ai
|
||||||
|
windoor_template_sort
|
||||||
|
withdraw-money
|
||||||
|
withdraw-status
|
||||||
|
xcs_list
|
||||||
|
xcs_post_product
|
||||||
|
xf_contract_workshop
|
||||||
|
ywy_feedback
|
||||||
|
ywy-get-track-record/
|
||||||
|
ywy-get-xt-track-record/
|
||||||
|
ywy-set-track-type
|
||||||
|
ywy-set-xt-track-type
|
||||||
|
ywy-wkt-user
|
||||||
|
ywy-xt-wkt-user
|
||||||
|
ywy-ykt-user
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"code":1,"message":"\u83b7\u53d6\u6210\u529f","data":[],"other_data":"","other_data2":""}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
{"id":3562856,"nickname":"\u6e21\u5df1AI\u5b9e\u9a8c\u5ba4","phone_number":"18654831326","facebook_id":null,"google_id":null,"wechat_id":"oXY2Bwyg5dmFTRv5PfKJ9OMlkl4E","created_at":"2026-09-20 21:05:20","updated_at":"2026-09-20 21:05:20","company_id":1,"bounty":"0.00","fid":1,"header_img_url":"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/qTlfVhIBVibaFrldEYutgftiaqvT2eIZhvpCLKID3kVN6uh2YYkiaDR7zceniasgHoNHNtu63BVkPh3oBvaqyqMwkGdGu0jwhibE6HTrYFn4l4uI\/132","email":null,"be_invited_type":0,"user_type":0,"has_first_purchase":0,"be_invited_user_id":0,"order_times":0,"user_company_count":0,"note":"","money":"0.00","sign":"","open_id":null,"apple_id":"","union_id":"o0WrmtzBxMVj9TRuYUE5kuad-RJQ","last_login_time":0,"is_lose":1,"son_account_type":1,"try_expiration_time":"2026-09-23 00:00:00","link_cc":0,"bargain_times":0,"country":"","identity":0,"language":"zh-CN,en-US","ljmoney":null,"uuid":null,"mac_address":null,"has_product":0,"bounty_now":0,"show_old":0,"is_xcs_customer":0,"company_name":"Window Creator","company_logo":"https:\/\/webcc-pro.oss-cn-hangzhou.aliyuncs.com\/imge\/order\/168431128682722213.png","permanent":0,"son_counts":1,"due_time_remind":"2022-04-06","annual_fee":"0.00","invited_count":0,"show_sjbb":0,"is_ty":1,"is_pushable":0,"ty_expiration_time":"2026-09-23 00:00:00","version":"\u4f53\u9a8c\u7248","version_type":2,"is_cost":1}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"code":1,"message":"\u83b7\u53d6\u6210\u529f","data":[{"id":3035,"name":"Charlene Narcisse","phone":"18768681800","address":"8 Dillsbury Avenue, Kingston 6, Jamaica","note":"","created_at":"2024-06-08 03:11:11","updated_at":"2024-10-28 15:35:34","company_id":1,"sort":10,"type":0,"salesmen":null,"discount":null,"balance":"0.00","email":null,"user_id":null,"level":null,"join_date":null},{"id":4759,"name":"23123","phone":"2131232323","address":"214124","note":"","created_at":"2024-10-25 09:35:24","updated_at":"2024-10-28 15:34:55","company_id":1,"sort":null,"type":0,"salesmen":null,"discount":null,"balance":"0.00","email":null,"user_id":null,"level":null,"join_date":null}],"other_data":"","other_data2":""}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"code":1,"message":"\u83b7\u53d6\u6210\u529f","data":[{"id":1,"name":"\u63a8\u62c9\u95e8","fid":0,"note":"","company_id":1,"created_at":"2020-07-07 21:47:09","updated_at":"2026-08-12 01:18:07","is_default":1,"children":[{"id":3,"name":"\u5e73\u5f00","fid":1,"note":"","company_id":1,"created_at":"2020-07-07 21:47:34","updated_at":"2021-05-22 16:12:54"},{"id":4,"name":"\u63a8\u62c9","fid":1,"note":"","company_id":1,"created_at":"2020-07-07 21:47:48","updated_at":"2020-07-07 21:47:48"},{"id":6,"name":"\u590d\u53e4\u95e8","fid":1,"note":"","company_id":1,"created_at":null,"updated_at":"2026-05-22 11:27:30"},{"id":8,"name":"\u80af\u5fb7\u57fa\u95e8","fid":1,"note":"","company_id":1,"created_at":null,"updated_at":"2026-08-29 22:22:08"},{"id":11,"name":"\u4e2d\u5f0f\u95e8\u7a97","fid":1,"note":"","company_id":1,"created_at":"2020-07-07 21:48:13","updated_at":"2025-06-11 16:38:38"},{"id":19714,"name":"\u8f6c\u89d2\u7a97","fid":1,"note":"","company_id":1,"created_at":"2025-07-25 09:54:46","updated_at":"2025-07-25 09:54:46"}]}],"other_data":"","other_data2":""}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"code":1,"message":"ok","data":{"current_page":1,"data":[],"first_page_url":"https:\/\/zzc-serv.thinkerx.com\/api\/invited_user_list?page=1","from":null,"last_page":1,"last_page_url":"https:\/\/zzc-serv.thinkerx.com\/api\/invited_user_list?page=1","next_page_url":null,"path":"https:\/\/zzc-serv.thinkerx.com\/api\/invited_user_list","per_page":15,"prev_page_url":null,"to":null,"total":0},"other_data":"","other_data2":""}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"code":1,"message":"\u83b7\u53d6\u6210\u529f","data":{"current_page":1,"data":[],"first_page_url":"https:\/\/zzc-serv.thinkerx.com\/api\/operation_logs?page=1","from":null,"last_page":1,"last_page_url":"https:\/\/zzc-serv.thinkerx.com\/api\/operation_logs?page=1","next_page_url":null,"path":"https:\/\/zzc-serv.thinkerx.com\/api\/operation_logs","per_page":15,"prev_page_url":null,"to":null,"total":0},"other_data":"","other_data2":""}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"code":1,"message":"\u83b7\u53d6\u6210\u529f","data":[{"id":645,"name":"Tutorials","fid":0,"note":"","company_id":1,"created_at":"2023-11-16 13:17:22","updated_at":"2023-11-16 13:17:22","is_reference":1,"lang":"en-US","sort":0,"children":[{"id":649,"name":"Reference series","fid":645,"note":"","company_id":1,"created_at":"2023-11-16 13:18:03","updated_at":"2023-11-16 13:18:03","is_reference":1,"lang":"en-US","sort":0}]},{"id":120466,"name":"\u5546\u57ce\u8d2d\u4e70","fid":0,"note":"\u5546\u57ce\u8d2d\u4e70\u76ee\u5f55","company_id":1,"created_at":null,"updated_at":null,"is_reference":0,"lang":"","sort":0,"children":[{"id":120467,"name":"\u5546\u57ce\u8d2d\u4e70","fid":120466,"note":"\u5546\u57ce\u8d2d\u4e70\u76ee\u5f55","company_id":1,"created_at":null,"updated_at":null,"is_reference":0,"lang":"","sort":0}]},{"id":1698,"name":"\u6559\u7a0b","fid":0,"note":"","company_id":1,"created_at":"2021-05-07 13:41:16","updated_at":"2021-05-07 13:41:16","is_reference":1,"lang":"zh-CN","sort":0,"children":[{"id":1699,"name":"\u6a21\u677f","fid":1698,"note":"","company_id":1,"created_at":"2021-05-07 13:41:38","updated_at":"2022-11-17 11:12:46","is_reference":1,"lang":"zh-CN","sort":0}]}],"other_data":"","other_data2":""}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"code":1,"message":"\u83b7\u53d6\u5217\u8868\u6210\u529f","data":{"current_page":1,"data":[],"first_page_url":"https:\/\/zzc-serv.thinkerx.com\/api\/quotations?page=1","from":null,"last_page":1,"last_page_url":"https:\/\/zzc-serv.thinkerx.com\/api\/quotations?page=1","next_page_url":null,"path":"https:\/\/zzc-serv.thinkerx.com\/api\/quotations","per_page":15,"prev_page_url":null,"to":null,"total":0},"other_data":"","other_data2":""}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"code":1,"message":"\u83b7\u53d6\u6210\u529f","data":[{"id":324,"company_id":1,"type":1,"name":"123","number":"123","bank":"123","note":"","created_at":"2024-12-05 13:33:21","updated_at":"2025-02-22 18:45:23","pic_url":"","is_default":1,"payee_user_id":null,"balance":251.3}],"other_data":"","other_data2":""}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"code":1,"message":"\u67e5\u8be2\u6210\u529f","data":[],"other_data":"","other_data2":""}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"name": "画门窗",
|
||||||
|
"short_name": "画门窗",
|
||||||
|
"start_url": "./",
|
||||||
|
"display": "standalone",
|
||||||
|
"background_color": "#ffffff",
|
||||||
|
"theme_color": "#ffffff",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "./img/icons/40x40.png",
|
||||||
|
"sizes": "40x40",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "./img/icons/96x96.png",
|
||||||
|
"sizes": "96x96",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "./img/icons/120x120.png",
|
||||||
|
"sizes": "120x120",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "./img/icons/192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"code":1,"message":"\u83b7\u53d6\u6210\u529f","data":{"current_page":1,"data":[],"first_page_url":"https:\/\/zzc-serv.thinkerx.com\/api\/users?page=1","from":null,"last_page":1,"last_page_url":"https:\/\/zzc-serv.thinkerx.com\/api\/users?page=1","next_page_url":null,"path":"https:\/\/zzc-serv.thinkerx.com\/api\/users","per_page":15,"prev_page_url":null,"to":null,"total":0},"other_data":"","other_data2":""}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
{"id": 31700, "name": "", "drawing_data": "{\"s\": {\"cs\": 60, \"cjs\": 100}, \"cp\": [], \"sm\": [{\"cm\": {\"g\": \"rgba(218,238,238,0.6)\", \"bn\": \"#7D808E\", \"hd\": \"#D4D1D9\", \"ben\": \"#7D808E\"}, \"dm\": {\"fh\": [], \"dims\": [{\"at\": 0, \"ds\": true, \"ov\": {\"x\": 0, \"y\": 0, \"name\": \"vector\"}, \"eidx\": 0, \"midx\": -1, \"name\": \"f1\", \"type\": \"line\"}, {\"at\": 0, \"ds\": true, \"ov\": {\"x\": 0, \"y\": 0, \"name\": \"vector\"}, \"eidx\": 1, \"midx\": -1, \"name\": \"f2\", \"type\": \"line\"}, {\"at\": 0, \"ds\": true, \"ov\": {\"x\": 0, \"y\": 0, \"name\": \"vector\"}, \"eidx\": 0, \"midx\": 0, \"name\": \"m1\", \"type\": \"mullion\"}, {\"at\": 0, \"ds\": true, \"ov\": {\"x\": 0, \"y\": 0, \"name\": \"vector\"}, \"eidx\": 0, \"midx\": 1, \"name\": \"m2\", \"type\": \"mullion\"}]}, \"fm\": {\"db\": [], \"ew\": [54, 54, 54, 54], \"vs\": [], \"ast\": [], \"ejw\": [2, 2, 2, 2], \"pew\": []}, \"mm\": {\"sp\": [{\"db\": false, \"ds\": -1, \"es\": false, \"kw\": false, \"ss\": false, \"ws\": false, \"eFd\": false, \"eds\": 0, \"ess\": 0, \"rid\": \"\", \"sFd\": false, \"sts\": 0, \"line\": {\"pt\": {\"x\": 2014.097847573029, \"y\": -155.90401932791565, \"name\": \"point\"}, \"name\": \"line\", \"norm\": {\"x\": 0, \"y\": -1, \"name\": \"vector\"}}, \"polyId\": {\"idx\": -1, \"pos\": -1}, \"alignType\": 0, \"equalSplit\": 0, \"reinforced\": false}], \"dbs\": {\"bars\": []}, \"fls\": {\"fls\": [{\"bd\": {\"fm\": {\"db\": [], \"ew\": [16, 16, 16, 16], \"vs\": [], \"ast\": [], \"ejw\": [0, 0, 0, 0], \"pew\": []}, \"type\": \"Bead\"}, \"hs\": [], \"so\": {\"x\": 0, \"y\": 0, \"name\": \"vector\"}, \"ws\": false, \"pid\": {\"idx\": 0, \"pos\": 0}, \"ser\": {\"text\": \"F1\", \"offvec\": {\"x\": 0, \"y\": 0, \"name\": \"vector\"}}, \"wtf\": true, \"spet\": {\"fs\": false, \"mw\": 0, \"sp\": \"8毫米钢化\", \"te\": [], \"th\": 0, \"tm\": {\"width\": 0, \"height\": 0}}, \"type\": \"Glass\"}, {\"bd\": {\"fm\": {\"db\": [], \"ew\": [16, 16, 16, 16], \"vs\": [], \"ast\": [], \"ejw\": [0, 0, 0, 0], \"pew\": []}, \"type\": \"Bead\"}, \"hs\": [], \"so\": {\"x\": 0, \"y\": 0, \"name\": \"vector\"}, \"ws\": false, \"pid\": {\"idx\": 0, \"pos\": 1}, \"ser\": {\"text\": \"F2\", \"offvec\": {\"x\": 0, \"y\": 0, \"name\": \"vector\"}}, \"wtf\": true, \"spet\": {\"fs\": false, \"mw\": 0, \"sp\": \"8毫米钢化\", \"te\": [], \"th\": 0, \"tm\": {\"width\": 0, \"height\": 0}}, \"type\": \"Glass\"}]}, \"phs\": [], \"lpfs\": [54]}, \"ot\": \"inward\", \"ps\": {\"a\": 24, \"b\": 16, \"f\": 54, \"ag\": 120, \"am\": 45, \"db\": 100, \"fm\": 54, \"gg\": 60, \"il\": 100, \"kw\": 200, \"mf\": 5, \"ms\": 5, \"sa\": 100, \"sc\": 60, \"sm\": 60, \"ahh\": 240, \"ahw\": 240, \"dsa\": 100, \"inf\": 45, \"usa\": 100}, \"sm\": [], \"tn\": false, \"tp\": [], \"tv\": {\"hidden\": false, \"offset\": {\"x\": 0, \"y\": 0, \"name\": \"vector\"}}, \"edm\": [], \"esr\": [], \"ies\": [], \"lds\": false, \"ser\": {\"cr\": \"#0000ff\", \"ia\": 0, \"ml\": false, \"to\": {\"x\": 1451.597847573029, \"y\": -648.9040193279156, \"name\": \"point\"}, \"from\": {\"x\": 1451.597847573029, \"y\": -648.9040193279156, \"name\": \"point\"}, \"text\": \"\", \"fontSize\": 120}, \"uid\": 1, \"type\": \"Frame\", \"polygon\": {\"ep\": [\"down\"], \"ph\": [], \"cpt\": {\"x\": 2576.597847573029, \"y\": 921.0959806720844, \"name\": \"point\"}, \"type\": \"singleTrack\", \"spLine\": {\"db\": false, \"ds\": -1, \"es\": false, \"kw\": false, \"ss\": false, \"ws\": false, \"eFd\": false, \"eds\": 0, \"ess\": 0, \"rid\": \"\", \"sFd\": false, \"sts\": 0, \"polyId\": {\"idx\": -1, \"pos\": -1}, \"alignType\": 0, \"equalSplit\": 0, \"reinforced\": false}, \"polygon\": [[{\"pe\": {\"x\": 1526.597847573029, \"y\": 1971.0959806720844, \"name\": \"point\"}, \"ps\": {\"x\": 1526.597847573029, \"y\": -588.9040193279156, \"name\": \"point\"}, \"name\": \"segment\"}, {\"pe\": {\"x\": 2501.597847573029, \"y\": 1971.0959806720844, \"name\": \"point\"}, \"ps\": {\"x\": 1526.597847573029, \"y\": 1971.0959806720844, \"name\": \"point\"}, \"name\": \"segment\"}, {\"pe\": {\"x\": 2501.597847573029, \"y\": -588.9040193279156, \"name\": \"point\"}, \"ps\": {\"x\": 2501.597847573029, \"y\": 1971.0959806720844, \"name\": \"point\"}, \"name\": \"segment\"}, {\"pe\": {\"x\": 1526.597847573029, \"y\": -588.9040193279156, \"name\": \"point\"}, \"ps\": {\"x\": 2501.597847573029, \"y\": -588.9040193279156, \"name\": \"point\"}, \"name\": \"segment\"}]], \"virtual\": false}}], \"epi\": [], \"sbf\": [], \"wlc\": \"#b4f595\", \"note\": [], \"wall\": [], \"scale\": 0}", "pic_url": "https://webcc-pro.oss-cn-hangzhou.aliyuncs.com:443/imge/order/174969529552780147.png", "catelog_id": 8, "company_id": 1, "script_bar": null, "script_glass": null, "script_addon": null, "script_cost": null, "note": "", "created_at": "2025-06-12 10:28:16", "updated_at": "2025-06-12 10:28:16", "sort": 0, "times": 434, "low_width": 700, "high_width": 1200, "low_height": 2200, "high_height": 2800}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user