|
|
|
@@ -764,7 +764,7 @@
|
|
|
|
|
@drop="handleRouteDrop(index)"
|
|
|
|
|
>
|
|
|
|
|
<el-icon class="loading-manage-dialog__route-handle"><Rank /></el-icon>
|
|
|
|
|
<span class="loading-manage-dialog__route-type">{{ routeTypeText(index) }}</span>
|
|
|
|
|
<span :class="['loading-manage-dialog__route-type', `loading-manage-dialog__route-type--${routeTypeClass(index)}`]">{{ routeTypeText(index) }}</span>
|
|
|
|
|
<span class="loading-manage-dialog__route-address">{{ node.address }}</span>
|
|
|
|
|
<span class="loading-manage-dialog__route-tags">
|
|
|
|
|
<el-tag v-for="tag in node.tags" :key="tag" size="small">{{ tag }}</el-tag>
|
|
|
|
@@ -933,7 +933,7 @@
|
|
|
|
|
<el-table-column label="到货地" min-width="310"><template #default="{ row }"><div class="loading-route-change-dialog__original">原:{{ row.originalArrivalAddress || '-' }}</div><el-input v-model="row.arrivalAddress" placeholder="请选择或输入地址" @input="updateRouteChangeNodes"><template #suffix><el-icon class="loading-route-change-dialog__location" @click="openCommonAddressDialog(row, 'arrival')"><Location /></el-icon></template></el-input></template></el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</section-card>
|
|
|
|
|
<section-card title="路线编辑"><template #extra><span class="loading-route-change-dialog__hint">拖拽调整顺序</span></template><div v-if="routeChangeNodes.length" class="loading-route-change-dialog__route-list"><div v-for="(node, index) in routeChangeNodes" :key="node.key || index" class="loading-route-change-dialog__route-item" draggable="true" @dragstart="handleRouteChangeDragStart(index)" @dragover.prevent @drop="handleRouteChangeDrop(index)"><span class="loading-route-change-dialog__route-type">{{ routeChangeTypeText(index) }}</span><span>{{ node.address }}</span><span class="loading-route-change-dialog__tags"><el-tag v-for="tag in node.tags || []" :key="tag" size="small">{{ tag }}</el-tag></span><el-icon><Rank /></el-icon></div></div><el-empty v-else description="暂无路线" :image-size="60" /></section-card>
|
|
|
|
|
<section-card title="路线编辑"><template #extra><span class="loading-route-change-dialog__hint">拖拽调整顺序</span></template><div v-if="routeChangeNodes.length" class="loading-route-change-dialog__route-list"><div v-for="(node, index) in routeChangeNodes" :key="node.key || index" class="loading-route-change-dialog__route-item" draggable="true" @dragstart="handleRouteChangeDragStart(index)" @dragover.prevent @drop="handleRouteChangeDrop(index)"><span :class="['loading-route-change-dialog__route-type', `loading-route-change-dialog__route-type--${routeChangeTypeClass(index)}`]">{{ routeChangeTypeText(index) }}</span><span>{{ node.address }}</span><span class="loading-route-change-dialog__tags"><el-tag v-for="tag in node.tags || []" :key="tag" size="small">{{ tag }}</el-tag></span><el-icon><Rank /></el-icon></div></div><el-empty v-else description="暂无路线" :image-size="60" /></section-card>
|
|
|
|
|
<el-form label-width="auto"><el-form-item label="变更备注"><el-input v-model="routeChangeRemark" type="textarea" :rows="1" maxlength="200" show-word-limit placeholder="请输入" /></el-form-item></el-form>
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
<el-tab-pane label="变更记录" name="records"><el-table :data="routeChangeRecords" border><el-table-column prop="changeTime" label="变更时间" min-width="170"/><el-table-column prop="changeUser" label="变更人" min-width="120"/><el-table-column prop="content" label="变更内容" min-width="360"><template #default="{ row }"><div class="loading-route-change-dialog__record-content">{{ row.content || '-' }}</div></template></el-table-column><el-table-column prop="remark" label="备注" min-width="200" show-overflow-tooltip/></el-table><el-empty v-if="!routeChangeRecords.length" description="暂无变更记录" :image-size="60"/></el-tab-pane>
|
|
|
|
@@ -1612,6 +1612,11 @@ export default {
|
|
|
|
|
if (index === this.routeChangeNodes.length - 1) return '终';
|
|
|
|
|
return '经';
|
|
|
|
|
},
|
|
|
|
|
routeChangeTypeClass(index) {
|
|
|
|
|
if (index === 0) return 'start';
|
|
|
|
|
if (index === this.routeChangeNodes.length - 1) return 'end';
|
|
|
|
|
return 'middle';
|
|
|
|
|
},
|
|
|
|
|
handleRouteChangeDragStart(index) {
|
|
|
|
|
this.routeChangeDragIndex = index;
|
|
|
|
|
},
|
|
|
|
@@ -1843,6 +1848,11 @@ export default {
|
|
|
|
|
if (index === this.routeNodes.length - 1) return '终';
|
|
|
|
|
return '经';
|
|
|
|
|
},
|
|
|
|
|
routeTypeClass(index) {
|
|
|
|
|
if (index === 0) return 'start';
|
|
|
|
|
if (index === this.routeNodes.length - 1) return 'end';
|
|
|
|
|
return 'middle';
|
|
|
|
|
},
|
|
|
|
|
handleRouteDragStart(index) {
|
|
|
|
|
this.routeDragIndex = index;
|
|
|
|
|
},
|
|
|
|
@@ -2373,7 +2383,10 @@ export default {
|
|
|
|
|
text-align: center;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
color: #fff;
|
|
|
|
|
background: #409eff;
|
|
|
|
|
|
|
|
|
|
&--start { background: #409eff; }
|
|
|
|
|
&--middle { background: #e6a23c; }
|
|
|
|
|
&--end { background: #67c23a; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.loading-manage-dialog__route-address {
|
|
|
|
@@ -2458,7 +2471,20 @@ export default {
|
|
|
|
|
.loading-detail__process-actions .el-select { width: 180px; }
|
|
|
|
|
.loading-detail__map { width: 100%; min-height: 260px; border: 1px solid #eff1f7; }
|
|
|
|
|
}
|
|
|
|
|
.loading-route-change-dialog { .loading-route-change-dialog__original { color: #a8abb2; line-height: 20px; margin-bottom: 4px; }.loading-route-change-dialog__location { cursor: pointer; color: #909399; }.loading-route-change-dialog__hint { color: #909399; }.loading-route-change-dialog__route-list { display: flex; flex-direction: column; gap: 8px; }.loading-route-change-dialog__route-item { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto 24px; align-items: center; gap: 12px; padding: 10px 12px; background: #f5f6f7; cursor: move; }.loading-route-change-dialog__route-type { width: 30px; height: 30px; border-radius: 50%; background: #dcdfe6; text-align: center; line-height: 30px; }.loading-route-change-dialog__tags { display: flex; gap: 4px; }.loading-route-change-dialog__record-content { white-space: normal; overflow-wrap: anywhere; line-height: 22px; } }
|
|
|
|
|
.loading-route-change-dialog {
|
|
|
|
|
.loading-route-change-dialog__original { color: #a8abb2; line-height: 20px; margin-bottom: 4px; }
|
|
|
|
|
.loading-route-change-dialog__location { cursor: pointer; color: #909399; }
|
|
|
|
|
.loading-route-change-dialog__hint { color: #909399; }
|
|
|
|
|
.loading-route-change-dialog__route-list { display: flex; flex-direction: column; gap: 8px; }
|
|
|
|
|
.loading-route-change-dialog__route-item { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto 24px; align-items: center; gap: 12px; padding: 10px 12px; background: #f5f6f7; cursor: move; }
|
|
|
|
|
.loading-route-change-dialog__route-type { width: 30px; height: 30px; border-radius: 50%; text-align: center; line-height: 30px; color: #fff;
|
|
|
|
|
&--start { background: #409eff; }
|
|
|
|
|
&--middle { background: #e6a23c; }
|
|
|
|
|
&--end { background: #67c23a; }
|
|
|
|
|
}
|
|
|
|
|
.loading-route-change-dialog__tags { display: flex; gap: 4px; }
|
|
|
|
|
.loading-route-change-dialog__record-content { white-space: normal; overflow-wrap: anywhere; line-height: 22px; }
|
|
|
|
|
}
|
|
|
|
|
.loading-common-address-dialog__toolbar { display: flex; gap: 8px; margin-bottom: 12px; }.loading-common-address-dialog__toolbar .el-input { flex: 1; }
|
|
|
|
|
@media (max-width: 900px) {
|
|
|
|
|
.loading-manage-dialog__grid {
|
|
|
|
|