diff --git a/src/views/order/intention/Step2.vue b/src/views/order/intention/Step2.vue index c71eb03..0908b71 100644 --- a/src/views/order/intention/Step2.vue +++ b/src/views/order/intention/Step2.vue @@ -2,20 +2,15 @@
-
+
车型:
{{ option.label }} @@ -29,56 +24,30 @@
车轴: - +
齿轮箱: - +
车轮: - +
制动盘: - +
查询 - 参数对比 + 参数对比
- +
- +
@@ -90,11 +59,7 @@
- +
{{ item.label }}
@@ -105,249 +70,35 @@
- +
-
-
-
-
- 车型:{{ - selectedCarTypeProxy === "其他" - ? "其他" - : selectedCarTypeProxy - }} -
- 参考车型:{{ referenceCarType || "未选择" }} -
-
- -
-
- 3D结构图 -
-
-
商品参数选择
- -
-
编号:{{ item.code }}
-
名称:{{ item.label }}
-
-
- -
- - - - -
-
- - - -
    -
  • - {{ fourthLevel.label }} - 替换 -
  • -
-
-
-
-
- -
-
编号:{{ selectedNode.code }}
-
名称:{{ selectedNode.label }}
- 替换 -
-
-
- 请选择左侧商品 -
-
-
暂无数据
-
-
-
-
- -
-
- -
-
编号:{{ item.code }}
-
名称:{{ item.label }}
-
-
-
- -
-
- 上一步 - 下一步 + 上一步 + 下一步
- - +
@@ -91,45 +306,448 @@ const form = reactive({ background: #fff; padding: 24px; border-radius: 8px; - height: calc(100vh - 320px); +} +.main-row { + display: flex; + align-items: flex-start; +} +.right-content { + flex: 1; +} +.step { + display: flex; + justify-content: space-between; + margin-bottom: 20px; +} +.step-left { + flex: 1; + margin-right: 10px; +} +.step-title { + font-size: 18px; + margin: 15px 0; + color: #333; + font-weight: 500; + + &.active { + color: #2156f3; + } + + .reference-model { + font-size: 14px; + color: #666; + margin-top: 8px; + padding-left: 20px; + position: relative; + + &::before { + content: ""; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + width: 12px; + height: 12px; + background: #2156f3; + border-radius: 50%; + } + } +} +.image-box.right-align { + display: flex; + justify-content: flex-end; + align-items: flex-start; + margin-bottom: 16px; +} +.table-title { + font-weight: bold; + margin: 16px 0 8px 0; + color: #333; +} +.tree-table-row { display: flex; flex-direction: column; + border: 1px solid #bbb; + border-radius: 4px; + padding: 12px; + background: #fff; } - -.content-wrapper { +.header-title { flex: 1; - overflow: hidden; + padding: 10px; + border-radius: 4px; } - -.left-tabs { +.header-code, +.header-name { + font-size: 14px; + color: #333; + margin-bottom: 5px; +} +.tab-container { + width: 100%; +} +.tab-header { + background: #f5f7fa; + border-radius: 4px; + padding: 16px; + margin-bottom: 20px; +} +.tab-header-item { + display: flex; + gap: 20px; + align-items: center; +} +.tab-header-image { + width: 200px; + height: 150px; + flex-shrink: 0; +} +.tab-header-info { + flex: 1; + display: flex; + flex-direction: column; + gap: 12px; +} +.tab-header-code, +.tab-header-name { + font-size: 14px; + color: #333; + line-height: 1.5; +} +.part-img { + width: 100%; height: 100%; - - :deep(.el-tabs__content) { - height: 100%; - padding: 20px; - } - - :deep(.el-tabs__nav-wrap) { - padding-right: 20px; - } + object-fit: contain; + border-radius: 4px; + border: 1px solid #eee; } - -.editor-container { - height: 100%; - padding: 0 20px; - - :deep(.el-textarea__inner) { - height: 100%; - min-height: 300px; - } +.model-form { + max-width: 900px; + margin-top: 16px; } - .btn-row { display: flex; justify-content: flex-end; gap: 16px; - margin-top: 16px; - padding-top: 16px; - border-top: 1px solid #eee; + margin-top: 20px; } - \ No newline at end of file +.main-img { + width: 580px; + height: 260px; + object-fit: contain; + border-radius: 8px; + border: 1px solid #eee; +} +.custom-tab-label { + display: flex; + flex-direction: column; + align-items: center; + padding: 8px 0; +} + +.tab-label-image { + width: 80px; + height: 60px; + margin-bottom: 8px; +} + +.tab-img { + width: 100%; + height: 100%; + object-fit: contain; + border-radius: 4px; + border: 1px solid #eee; +} + +.tab-label-info { + text-align: center; +} + +.tab-label-code { + font-size: 12px; + color: #666; + margin-bottom: 4px; +} + +.tab-label-name { + font-size: 14px; + color: #333; + font-weight: 500; +} + +:deep(.el-tabs__item) { + height: auto !important; + padding: 0 20px !important; +} + +:deep(.el-tabs__nav) { + display: flex; + gap: 20px; +} + +:deep(.el-tabs__item.is-active) { + .tab-label-code, + .tab-label-name { + color: var(--el-color-primary); + } +} + +.tree-node { + transition: background 0.2s; + padding: 8px 12px; + cursor: pointer; + border-radius: 4px; + margin-bottom: 4px; + display: flex; + align-items: center; + justify-content: space-between; +} +.tree-node.active { + color: #2156f3; +} +.tree-node:hover { + color: #2156f3; +} +.tab-content-flex { + display: flex; + min-height: 300px; + height: 400px; + max-height: 400px; + overflow: hidden; +} +.tab-left { + width: 260px; + border-right: 1px solid #eee; + padding-right: 16px; + overflow-y: auto; + height: 100%; +} +.tab-right { + flex: 1; + padding-left: 24px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + overflow-y: auto; + height: 100%; +} +.right-button { + margin: 15px 0 0 260px; +} +.detail-img { + width: 180px; + height: 120px; + object-fit: contain; + border: 1px solid #eee; + border-radius: 4px; + margin-bottom: 16px; +} +.replace-list { + display: flex; + flex-direction: column; + gap: 12px; +} +.replace-item { + display: flex; + align-items: center; + gap: 16px; + padding: 8px; + border: 1px solid #eee; + border-radius: 4px; + cursor: pointer; +} +.replace-item.selected { + border-color: #2156f3; +} +.replace-img { + width: 80px; + height: 60px; + object-fit: contain; + border-radius: 4px; + border: 1px solid #eee; +} +.no-data { + display: flex; + align-items: center; + justify-content: center; + min-height: 300px; + color: #999; + font-size: 18px; +} + +// 新增样式 +:deep(.el-collapse-item.is-disabled .el-collapse-item__header) { + cursor: default; + color: #303133; + &:hover { + background-color: transparent; + } +} + +:deep(.el-collapse-item.is-disabled .el-collapse-item__arrow) { + display: none; +} + +:deep(.el-collapse-item__header) { + padding: 0; + height: auto; +} + +:deep(.el-collapse-item__content) { + padding: 0; + padding-left: 16px; +} + +:deep(.el-collapse-item__wrap) { + border-bottom: none; +} + +.search-row { + display: flex; + align-items: center; + margin-bottom: 8px; +} +.search-label { + font-size: 15px; + color: #666; + margin-right: 8px; +} +.car-type-text-list { + display: flex; + gap: 32px; +} +.car-type-text { + font-size: 16px; + color: #333; + cursor: pointer; + padding: 0 4px 4px 4px; + border-bottom: 2px solid transparent; + transition: color 0.2s, border 0.2s; +} +.car-type-text.active { + color: #2156f3; + border-bottom: 2px solid #2156f3; + font-weight: 500; +} +.search-divider { + border-bottom: 1px dashed #e5e5e5; + margin: 8px 0 16px 0; +} +.param-group-title { + font-size: 15px; + color: #333; + font-weight: 600; + margin: 12px 0 12px 0; +} +.param-form-row { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + gap: 24px 32px; + margin-bottom: 0; + position: relative; +} +.param-form-item { + display: flex; + align-items: center; + gap: 8px; + margin-bottom: 0; +} +.param-label { + font-size: 14px; + color: #666; + min-width: 60px; + text-align: right; +} +.param-input { + width: 120px; +} +.param-form-btns { + display: flex; + flex-direction: row; + align-items: center; + gap: 12px; + margin-left: auto; + min-width: 200px; +} +.param-btn { + min-width: 90px; +} +.result-card-list { + display: flex; + flex-wrap: wrap; + gap: 24px; + margin-top: 24px; +} +.result-card { + width: 220px; + position: relative; + padding-top: 16px; + box-sizing: border-box; +} +.result-card-checkbox-wrap { + position: absolute; + left: 20px; + top: 22px; + z-index: 2; +} +.result-card-checkbox { + position: static; +} +.result-card-img { + width: 100%; + height: 120px; + object-fit: contain; + border-radius: 4px; + border: 1px solid #eee; + margin-bottom: 12px; +} +.result-card-info { + text-align: left; +} +.result-card-name { + font-size: 15px; + color: #333; + font-weight: 500; + margin-bottom: 4px; +} +.result-card-code { + font-size: 13px; + color: #888; +} +.compare-dialog-cards { + display: flex; + gap: 32px; + margin-bottom: 24px; +} +.compare-card { + width: 220px; + text-align: center; + box-sizing: border-box; +} +.compare-card-img { + width: 100%; + height: 120px; + object-fit: contain; + border-radius: 4px; + border: 1px solid #eee; + margin-bottom: 12px; +} +.compare-card-info { + text-align: center; +} +.compare-card-name { + font-size: 15px; + color: #333; + font-weight: 500; + margin-bottom: 4px; +} +.compare-card-code { + font-size: 13px; + color: #888; +} +.compare-table-wrap { + margin-top: 16px; +} + diff --git a/src/views/order/intention/Step4.vue b/src/views/order/intention/Step4.vue index 2c87927..327abe2 100644 --- a/src/views/order/intention/Step4.vue +++ b/src/views/order/intention/Step4.vue @@ -1,42 +1,88 @@ @@ -45,28 +91,45 @@ const props = defineProps({ background: #fff; padding: 24px; border-radius: 8px; -} -.success-box { + height: calc(100vh - 320px); display: flex; flex-direction: column; - align-items: center; - margin: 48px 0 24px 0; } -.success-icon { - margin-bottom: 24px; + +.content-wrapper { + flex: 1; + overflow: hidden; } -.success-text { - padding: 24px 0; - width: 100%; - text-align: center; - font-size: 22px; - color: #333; - border-radius: 6px; + +.left-tabs { + height: 100%; + + :deep(.el-tabs__content) { + height: 100%; + padding: 20px; + } + + :deep(.el-tabs__nav-wrap) { + padding-right: 20px; + } } + +.editor-container { + height: 100%; + padding: 0 20px; + + :deep(.el-textarea__inner) { + height: 100%; + min-height: 300px; + } +} + .btn-row { display: flex; justify-content: flex-end; gap: 16px; - margin-top: 20px; + margin-top: 16px; + padding-top: 16px; + border-top: 1px solid #eee; } \ No newline at end of file diff --git a/src/views/order/intention/Step5.vue b/src/views/order/intention/Step5.vue new file mode 100644 index 0000000..e260b15 --- /dev/null +++ b/src/views/order/intention/Step5.vue @@ -0,0 +1,72 @@ + + + + + \ No newline at end of file