@@ -2158,7 +2158,7 @@ async function searchOrders(model: QueryModel) {
< FirstLegOrderEditorShell v-model = "editorOpen" :page="isCreatePage" :title="editingId ? '编辑订单草稿' : (routeCopySourceId ? '复制订单' : '创建订单')" :before-close="requestCloseEditor" @back="closeEditor" >
< el -form ref = "orderFormRef" v-loading = "isCreatePage && supportingDataLoading" :model="form" :rules="orderFormRules" label-position="top" class="order-form prototype-order-form" :class="{ 'is-dialog-order-form': !isCreatePage }" scroll -to -error >
< section class = "order-form-section prototype-section order-basic-section" >
< div class = "order-section-heading" > < div > < h3 > 客户下单 < / h3 > < p > 创建新订单 < / p > < / div > < / div >
< div class = "order-section-heading" > < span class = "order-step-badge" > 01 < / span > < h3 > 客户下单 < / h3 > < span class = "order-section-context" > 国内交货与运输信息 < / span > < / div >
< div class = "prototype-form-flow shipping-form-flow" >
< el-form-item label = "履约类型" prop = "fulfillmentType" required class = "prototype-form-row prototype-form-row--tabs" > < el-radio-group v-model = "form.fulfillmentType" class="segmented-options" @change="changeFulfillmentType"><el-radio-button value="STANDARD">普通头程</el-radio-button><el-radio-button value="ONE_CLICK_DROPSHIP">一件代发</el-radio-button></el-radio-group><small v-if="form.fulfillmentType === 'ONE_CLICK_DROPSHIP'" class="field-guidance" > 测量完成后不办理国内库存入库 , 将直接推送 PDA 合托 。 < / small > < / el -form -item >
< el-form-item v-if = "form.fulfillmentType === 'ONE_CLICK_DROPSHIP'" label="LX入库单号" prop="lxCode" class="prototype-form-row prototype-form-row--wide"><el-input v-model="form.lxCode" maxlength="128" placeholder="请输入LX入库单号" /><small class="field-guidance" > 用于绑定领星入库单 , 提交后可在尾程订单 、 入库单和出库单中查询 。 < / small > < / el -form -item >
@@ -2197,7 +2197,7 @@ async function searchOrders(model: QueryModel) {
< / section >
< section class = "order-form-section prototype-section destination-section" >
< div class = "order-section-heading destination-section-heading" > < div > < h3 > 目的地信息 < / h3 > < / div > < / div >
< div class = "order-section-heading destination-section-heading" > < span class = "order-step-badge" > 02 < / span > < h3 > 目的地信息 < / h3 > < span class = "order-section-context" > 美国目的仓与收件信息 < / span > < / div >
< div class = "prototype-form-flow destination-form-flow" >
< el-form-item label = "目的仓类型" prop = "destinationType" required class = "prototype-form-row prototype-form-row--tabs destination-type-row" > < el-radio-group v-model = "form.destinationType" class="segmented-options destination-type-options" @change="changeDestinationType"><el-radio-button v-if="form.fulfillmentType !== 'ONE_CLICK_DROPSHIP'" value="FBA">FBA 仓</el-radio-button><el-radio-button value="OVERSEAS">海外仓</el-radio-button><el-radio-button v-if="form.fulfillmentType !== 'ONE_CLICK_DROPSHIP'" value="PRIVATE" > 私人仓 < / el -radio -button > < / el-radio-group > < / el-form-item >
@@ -2550,24 +2550,42 @@ async function searchOrders(model: QueryModel) {
. is - create - route { gap : 0 ; }
. is - create - route . first - leg - editor - page { width : 100 % ; }
. is - create - route . supporting - data - error , . is - create - route > . el - alert { margin - bottom : 14 px ; }
. is - create - route . prototype - order - form { display : grid ; width : 100 % ; grid - template - columns : repeat ( 2 , minmax ( 0 , 1 fr ) ) ; align - items : start ; gap : 14 px ; margin : 0 ; padding : 0 0 14 px ; }
. is - create - route . prototype - section { min - width : 0 ; margin : 0 ; padding : 0 20 px 18 px ; border : 1 px solid # dfe6ee ; border - radius : 8 px ; background : # fff ; }
. is - create - route . prototype - order - form { display : grid ; width : 100 % ; grid - template - columns : repeat ( 2 , minmax ( 0 , 1 fr ) ) ; align - items : start ; gap : 10 px ; margin : 0 ; padding : 0 0 10 px ; }
. is - create - route . prototype - section { position : relative ; min - width : 0 ; margin : 0 ; padding : 0 16 px 14 px ; overflow : hidden ; border : 1 px solid # d9e4ea ; border - radius : 8 px ; background : # fff ; box - shadow : 0 8 px 26 px rgba ( 24 , 55 , 75 , .065 ) ; transition : border - color .22 s ease , box - shadow .22 s ease ; }
. is - create - route . order - basic - section : : before , . is - create - route . destination - section : : before { position : absolute ; z - index : 2 ; top : 0 ; right : 0 ; left : 0 ; height : 3 px ; background : linear - gradient ( 90 deg , # 16 a394 , # 176 b87 55 % , transparent 92 % ) ; content : '' ; }
. is - create - route . destination - section : : before { background : linear - gradient ( 90 deg , # 2563 eb , # 4 f46e5 55 % , transparent 92 % ) ; }
. is - create - route . order - basic - section : focus - within { border - color : rgba ( 22 , 163 , 148 , .45 ) ; box - shadow : 0 12 px 34 px rgba ( 22 , 113 , 113 , .1 ) ; }
. is - create - route . destination - section : focus - within { border - color : rgba ( 37 , 99 , 235 , .4 ) ; box - shadow : 0 12 px 34 px rgba ( 37 , 99 , 235 , .1 ) ; }
. is - create - route . prototype - section + . prototype - section { margin - top : 0 ; }
. is - create - route . cargo - section , . is - create - route . cost - estimate - section { grid - column : 1 / - 1 ; }
. is - create - route . order - basic - section > . order - section - heading , . is - create - route . destination - section > . order - section - heading { box - sizing : border - box ; height : 74 px ; min - height : 74 px ; align - items : flex - start ; margin : 0 - 20 px 16 px ; padding : 12 px 20 px ; border - bottom : 1 px solid # e7ecf2 ; }
. is - create - route . order - basic - section > . order - section - heading , . is - create - route . destination - section > . order - section - heading { box - sizing : border - box ; align - items : center ; margin : 0 - 16 px 12 px ; padding : 10 px 16 px ; border - bottom : 1 px solid # e7ecf2 ; background : linear - gradient ( 90 deg , # f8fbfc , # fff 58 % ) ; }
. is - create - route . destination - section > . order - section - heading { background : linear - gradient ( 90 deg , # f7f9ff , # fff 58 % ) ; }
. is - create - route . order - basic - section > . order - section - heading h3 , . is - create - route . destination - section > . order - section - heading h3 { margin : 0 ; color : var ( -- navy ) ; font - size : 17 px ; font - weight : 700 ; line - height : 24 px ; }
. is - create - route . cargo - section > . order - section - heading , . is - create - route . cost - estimate - section > . order - section - heading { min - height : 58 px ; align - items : flex - start ; margin : 0 - 20 px 16 px ; padding : 12 px 20 px ; border - bottom : 1 px solid # e7ecf2 ; }
. is - create - route . order - section - heading p { margin - top : 2 px ; color : # 8 a98a8 ; }
. is - create - route . order - step - badge { display : grid ; width : 30 px ; height : 30 px ; flex : 0 0 30 px ; color : # fff ; border - radius : 8 px ; background : linear - gradient ( 135 deg , # 16 a394 , # 176 b87 ) ; box - shadow : 0 5 px 12 px rgba ( 23 , 107 , 135 , .2 ) ; font - size : 11 px ; font - weight : 800 ; place - items : center ; }
. is - create - route . destination - section . order - step - badge { background : linear - gradient ( 135 deg , # 367 ae8 , # 4 f46e5 ) ; box - shadow : 0 5 px 12 px rgba ( 37 , 99 , 235 , .2 ) ; }
. is - create - route . order - section - context { margin - left : auto ; color : # 8 a98a8 ; font - size : 11 px ; font - weight : 500 ; }
. is - create - route . cargo - section > . order - section - heading , . is - create - route . cost - estimate - section > . order - section - heading { align - items : center ; margin : 0 - 16 px 10 px ; padding : 9 px 16 px ; border - bottom : 1 px solid # e7ecf2 ; }
. is - create - route . order - section - heading p { margin : 0 ; color : # 8 a98a8 ; }
. is - create - route . prototype - form - flow , . is - create - route . destination - form - flow { width : 100 % ; max - width : none ; }
. is - create - route . prototype - form - row , . is - create - route . prototype - form - row -- wide , . is - create - route . prototype - form - row -- compact , . is - create - route . prototype - form - row -- short , . is - create - route . prototype - form - row -- tabs { grid - template - columns : 120 px minmax ( 0 , 1 fr ) ; }
. is - create - route . prototype - form - row : deep ( . el - form - item _ _label ) { display : flex ; height : 40 px ; min - height : 40 px ; align - items : center ; justify - content : flex - end ; padding : 0 18 px 0 0 ; font - size : 13 px ; line - height : 1.35 ; text - align : right ; }
. is - create - route . prototype - form - row , . is - create - route . prototype - form - row -- wide , . is - create - route . prototype - form - row -- compact , . is - create - route . prototype - form - row -- short , . is - create - route . prototype - form - row -- tabs { grid - template - columns : 108 px minmax ( 0 , 1 fr ) ; }
. is - create - route . prototype - form - row : deep ( . el - form - item _ _label ) { display : flex ; height : 36 px ; min - height : 36 px ; align - items : center ; justify - content : flex - end ; padding : 0 10 px 0 0 ; font - size : 13 px ; line - height : 1.35 ; text - align : right ; }
. is - create - route . segmented - options , . is - create - route . destination - type - options { width : 100 % ; max - width : 560 px ; background : # f3f6f9 ; }
. is - create - route . order - basic - section . segmented - options : deep ( . el - radio - button _ _original - radio : checked + . el - radio - button _ _inner ) { background : linear - gradient ( 105 deg , # 1596 a6 , # 176 b87 ) ; }
. is - create - route . destination - section . segmented - options : deep ( . el - radio - button _ _original - radio : checked + . el - radio - button _ _inner ) { background : linear - gradient ( 105 deg , # 367 ae8 , # 4 f46e5 ) ; box - shadow : 0 4 px 10 px rgba ( 37 , 99 , 235 , .2 ) ; }
. is - create - route . compact - transport - grid { width : 100 % ; margin - top : 4 px ; }
. is - create - route . compact - transport - grid > : deep ( . el - form - item ) , . is - create - route . compact - transport - grid > : deep ( . el - form - item : nth - child ( 1 ) ) , . is - create - route . compact - transport - grid > : deep ( . el - form - item : nth - child ( 6 ) ) , . is - create - route . compact - transport - grid > : deep ( . el - form - item : nth - child ( 7 ) ) { grid - template - columns : 120 px minmax ( 0 , 1 fr ) ; }
. is - create - route . compact - transport - grid > : deep ( . el - form - item _ _label ) { display : flex ; height : 40 px ; min - height : 40 px ; align - items : center ; justify - content : flex - end ; padding : 0 18 px 0 0 ; line - height : 1.35 ; text - align : right ; }
. is - create - route . selected - destination { width : auto ; margin - left : 138 px ; }
. is - create - route . shipping - form - flow . prototype - form - row , . is - create - route . destination - form - flow . prototype - form - row , . is - create - route . compact - transport - grid > : deep ( . el - form - item ) { margin - bottom : 8 px ; }
. is - create - route . cargo - table - heading , . is - create - route . cost - estimate - section . order - section - heading { margin - bottom : 16 px ; }
. is - create - route . compact - transport - grid > : deep ( . el - form - item ) , . is - create - route . compact - transport - grid > : deep ( . el - form - item : nth - child ( 1 ) ) , . is - create - route . compact - transport - grid > : deep ( . el - form - item : nth - child ( 6 ) ) , . is - create - route . compact - transport - grid > : deep ( . el - form - item : nth - child ( 7 ) ) { grid - template - columns : 108 px minmax ( 0 , 1 fr ) ; }
. is - create - route . compact - transport - grid > : deep ( . el - form - item _ _label ) { display : flex ; height : 36 px ; min - height : 36 px ; align - items : center ; justify - content : flex - end ; padding : 0 10 px 0 0 ; line - height : 1.35 ; text - align : right ; }
. is - create - route . selected - destination { width : auto ; margin - left : 108 px ; }
. is - create - route . shipping - form - flow . prototype - form - row , . is - create - route . destination - form - flow . prototype - form - row , . is - create - route . compact - transport - grid > : deep ( . el - form - item ) { margin - bottom : 5 px ; }
. is - create - route . prototype - form - row : deep ( . el - input _ _wrapper ) , . is - create - route . prototype - form - row : deep ( . el - select _ _wrapper ) , . is - create - route . compact - transport - grid : deep ( . el - input _ _wrapper ) , . is - create - route . compact - transport - grid : deep ( . el - select _ _wrapper ) { min - height : 36 px ; }
. is - create - route . segmented - options : deep ( . el - radio - button _ _inner ) { min - height : 36 px ; padding : 8 px 12 px ; }
. is - create - route . warehouse - options { gap : 8 px ; padding - top : 1 px ; }
. is - create - route . warehouse - options : deep ( . el - radio ) { min - height : 32 px ; margin : 0 ; padding : 5 px 11 px ; border : 1 px solid # d7e0e7 ; border - radius : 7 px ; background : # f8fafb ; color : # 596779 ; transition : color .18 s ease , border - color .18 s ease , background .18 s ease , box - shadow .18 s ease , transform .18 s ease ; }
. is - create - route . warehouse - options : deep ( . el - radio : hover ) { transform : translateY ( - 1 px ) ; border - color : # 91 b8c3 ; background : # f3fafb ; color : var ( -- primary ) ; }
. is - create - route . warehouse - options : deep ( . el - radio _ _input ) { position : absolute ; width : 1 px ; height : 1 px ; overflow : hidden ; opacity : 0 ; pointer - events : none ; }
. is - create - route . warehouse - options : deep ( . el - radio _ _label ) { padding - left : 0 ; color : inherit ; }
. is - create - route . warehouse - options : deep ( . el - radio . is - checked ) { border - color : var ( -- primary ) ; background : linear - gradient ( 105 deg , # 1596 a6 , # 176 b87 ) ; box - shadow : 0 4 px 10 px rgba ( 23 , 107 , 135 , .2 ) ; color : # fff ; }
. is - create - route . cargo - table - heading , . is - create - route . cost - estimate - section . order - section - heading { margin - bottom : 10 px ; }
. order - form { width : min ( 100 % , 1000 px ) ; margin : 0 ; padding : 0 0 12 px ; }
. order - form . is - dialog - order - form { width : 100 % ; max - width : none ; }
. is - dialog - order - form > . cargo - section , . is - dialog - order - form > . cost - estimate - section { width : 100 % ; max - width : none ; }