md
This commit is contained in:
parent
70c559c7e2
commit
5db418e1ae
336
src/components/XdSteps/index.vue
Normal file
336
src/components/XdSteps/index.vue
Normal file
@ -0,0 +1,336 @@
|
||||
<template>
|
||||
<div class="m-steps-area" :style="`width: ${totalWidth}px;`">
|
||||
<div class="m-steps">
|
||||
<div :class="['m-steps-item',
|
||||
{
|
||||
'finished': current > n,
|
||||
'process': current === n && n !== totalSteps,
|
||||
'last-process': current === totalSteps && n === totalSteps,
|
||||
'middle-wait': current < n && n !== totalSteps,
|
||||
'last-wait': current < n && n === totalSteps
|
||||
}
|
||||
]"
|
||||
v-for="n in totalSteps"
|
||||
:key="n">
|
||||
<div class="m-info-wrap" @click="onChange(n)">
|
||||
<div class="m-steps-icon">
|
||||
<span class="u-icon" v-if="current<=n">{{ n }}</span>
|
||||
<svg class="u-icon" v-else viewBox="64 64 896 896" data-icon="check" aria-hidden="true" focusable="false"><path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"></path></svg>
|
||||
</div>
|
||||
<div class="m-steps-content">
|
||||
<div class="u-steps-title">{{ stepsLabel[n-1] }}</div>
|
||||
<div class="u-steps-description" v-show="stepsDesc[n-1]" :style="`max-width: ${descMaxWidth}px;`">{{ stepsDesc[n-1] }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'Steps',
|
||||
props: {
|
||||
stepsLabel: { // 步骤标题数组
|
||||
type: Array,
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
stepsDesc: { // 步骤描述数组
|
||||
type: Array,
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
totalSteps: { // 步骤总数
|
||||
type: Number,
|
||||
default: 3
|
||||
},
|
||||
currentStep: { // 当前选中的步骤
|
||||
type: Number,
|
||||
default: 1
|
||||
},
|
||||
totalWidth: { // 步骤条总宽度
|
||||
type: Number,
|
||||
default: 900
|
||||
},
|
||||
descMaxWidth: { // 描述文本最大宽度
|
||||
type: Number,
|
||||
default: 140
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
// 若当前选中步骤超过总步骤数,则默认选择步骤1
|
||||
current: this.currentStep > this.totalSteps ? 1 : this.currentStep
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onChange (index) { // 点击切换选择步骤
|
||||
// e.stopPropagation()
|
||||
console.log('index:', index)
|
||||
if (this.current !== index) {
|
||||
this.current = index
|
||||
this.$emit('change', index)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<!-- // #1890FF: #1890FF; -->
|
||||
<style lang="scss" scoped>
|
||||
.m-steps-area {
|
||||
margin: 0px auto;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps {
|
||||
padding: 30px 0;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .m-steps-item {
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
font-size: 16px;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .m-steps-item:not(:last-child) {
|
||||
margin-right: 16px;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .m-steps-item .m-info-wrap {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .m-steps-item .m-info-wrap .m-steps-icon {
|
||||
display: inline-block;
|
||||
margin-right: 8px;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .m-steps-item .m-info-wrap .m-steps-content {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .m-steps-item .m-info-wrap .m-steps-content .u-steps-title {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .m-steps-item .m-info-wrap .m-steps-content .u-steps-description {
|
||||
font-size: 14px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .u-tail {
|
||||
background: #e8e8e8;
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
left: 100%;
|
||||
display: block;
|
||||
width: 3000px;
|
||||
height: 1px;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .finished:hover .m-steps-content .u-steps-title {
|
||||
color: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .finished:hover .m-steps-content .u-steps-description {
|
||||
color: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .finished .m-steps-icon {
|
||||
background: #fff;
|
||||
border: 1px solid rgba(0, 0, 0, 0.25);
|
||||
border-color: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .finished .m-steps-icon .u-icon {
|
||||
fill: #1890FF;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
vertical-align: top;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .finished .m-steps-content {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .finished .m-steps-content .u-steps-title {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .finished .m-steps-content .u-steps-title:after {
|
||||
background: #e8e8e8;
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
left: 100%;
|
||||
display: block;
|
||||
width: 3000px;
|
||||
height: 1px;
|
||||
content: "";
|
||||
background: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .finished .m-steps-content .u-steps-description {
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .process .m-steps-icon {
|
||||
background: #1890FF;
|
||||
border: 1px solid rgba(0, 0, 0, 0.25);
|
||||
border-color: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .process .m-steps-icon .u-icon {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .process .m-steps-content {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .process .m-steps-content .u-steps-title {
|
||||
font-weight: 600;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .process .m-steps-content .u-steps-title:after {
|
||||
background: #e8e8e8;
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
left: 100%;
|
||||
display: block;
|
||||
width: 3000px;
|
||||
height: 1px;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .process .m-steps-content .u-steps-description {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-process .m-steps-icon {
|
||||
background: #1890FF;
|
||||
border: 1px solid rgba(0, 0, 0, 0.25);
|
||||
border-color: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-process .m-steps-icon .u-icon {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-process .m-steps-content {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-process .m-steps-content .u-steps-title {
|
||||
font-weight: 600;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-process .m-steps-content .u-steps-description {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .middle-wait:hover .m-steps-icon {
|
||||
border: 1px solid #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .middle-wait:hover .m-steps-icon .u-icon {
|
||||
color: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .middle-wait:hover .m-steps-content .u-steps-title {
|
||||
color: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .middle-wait:hover .m-steps-content .u-steps-description {
|
||||
color: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .middle-wait .m-steps-icon {
|
||||
background: #fff;
|
||||
border: 1px solid rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .middle-wait .m-steps-icon .u-icon {
|
||||
color: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .middle-wait .m-steps-content {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .middle-wait .m-steps-content .u-steps-title {
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .middle-wait .m-steps-content .u-steps-title:after {
|
||||
background: #e8e8e8;
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
left: 100%;
|
||||
display: block;
|
||||
width: 3000px;
|
||||
height: 1px;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .middle-wait .m-steps-content .u-steps-description {
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-wait {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-wait:hover .m-steps-icon {
|
||||
border: 1px solid #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-wait:hover .m-steps-icon .u-icon {
|
||||
color: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-wait:hover .m-steps-content .u-steps-title {
|
||||
color: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-wait:hover .m-steps-content .u-steps-description {
|
||||
color: #1890FF;
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-wait .m-steps-icon {
|
||||
background: #fff;
|
||||
border: 1px solid rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-wait .m-steps-icon .u-icon {
|
||||
color: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-wait .m-steps-content {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-wait .m-steps-content .u-steps-title {
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
}
|
||||
|
||||
.m-steps-area .m-steps .last-wait .m-steps-content .u-steps-description {
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
}
|
||||
|
||||
</style>
|
||||
426
src/views/emis/emisTmsTransPlan/planDtlPanel.vue
Normal file
426
src/views/emis/emisTmsTransPlan/planDtlPanel.vue
Normal file
@ -0,0 +1,426 @@
|
||||
<template>
|
||||
<div >
|
||||
<el-row :gutter="5" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
plain
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
>新增节点</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table size="mini" v-loading="loading" :data="emisTmsTransPlanDtlList" border stripe @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="序号" align="center" prop="orderNum" width="60" />
|
||||
<el-table-column :label="$t('节点名称')" align="center" prop="stepName" width="100" >
|
||||
<template slot-scope="scope">
|
||||
<div class="link-type" @click="handleUpdate(scope.row)">{{scope.row.stepName}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column label="起始网点" align="center" prop="startSite" min-width="100" /> -->
|
||||
<el-table-column label="起始网点" align="center" prop="startSiteName" min-width="100" :show-overflow-tooltip="true" />
|
||||
|
||||
<!-- <el-table-column label="目的网点" align="center" prop="destSite" min-width="100" /> -->
|
||||
<el-table-column label="目的网点" align="center" prop="destSiteName" width="100" />
|
||||
<el-table-column label="运输方式" align="center" prop="transType" width="80" >
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.emis_biz_shipping_method" :value="scope.row.transType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="运输时效(天)" align="center" prop="estCostDay" width="80" />
|
||||
|
||||
</el-table>
|
||||
|
||||
<!-- @click="handleDelete(scope.row)" -->
|
||||
<!-- 添加或修改费用计算表达式对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="50%" :close-on-click-modal="false" v-dialogDrag append-to-body>
|
||||
<el-row :gutter="0">
|
||||
<el-form ref="form" size="mini" :model="form" :rules="rules" label-width="80px">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="节点名称" prop="stepName">
|
||||
<el-input v-model="form.stepName" placeholder="请输入节点名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="起始网点" prop="startSite">
|
||||
<el-button type="primary" @click="handleSelectSite">选择网点</el-button>
|
||||
<el-button
|
||||
plain
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="handleAddSite"
|
||||
>追加网点</el-button>
|
||||
<el-input v-model="form.startSiteName" type="textarea" rows="5" disabled placeholder="站点列表" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="目的网点" prop="destSite">
|
||||
<EmisSiteSimplePicker1 v-model="form.destSite" :placeholder="$t('目的网点')" isInitiated="true" @onChange="onDestSiteChange"></EmisSiteSimplePicker1>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="运输方式" prop="transType">
|
||||
<el-select v-model="form.transType" placeholder="运输方式" clearable filterable>
|
||||
<el-option
|
||||
v-for="item in dict.type.emis_biz_shipping_method"
|
||||
v-bind:key="item.value"
|
||||
v-bind:label="item.label"
|
||||
v-bind:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="预估时效" prop="estCostDay" label-width="110px">
|
||||
<el-input v-model="form.estCostDay" placeholder="" >
|
||||
<span slot="suffix">(天)</span>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="顺序号" prop="orderNum">
|
||||
<el-input v-model="form.orderNum" placeholder="请输入顺序号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-input v-model="form.status" placeholder="请输入状态" />
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
</el-form>
|
||||
</el-row>
|
||||
<div slot="footer" class="dialog-footer" style="text-align: center;margin-bottom: 10px;">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog :title="titleSiteSelectTreeForm" :visible.sync="openSiteSelectTreeForm" width="40%" :destroy-on-close="true" v-dialogDrag append-to-body>
|
||||
<EmisSiteSelectTreePicker :isAddSite="isAddSite" :selectSiteCode="form.startSite" :selectSiteName="form.startSiteName" @on-changed="onSelectSiteTreeCheckChange" @on-cancel="onCancelSelectSiteTreeForm"></EmisSiteSelectTreePicker>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listEmisTmsTransPlanDtl, getEmisTmsTransPlanDtl, delEmisTmsTransPlanDtl, addEmisTmsTransPlanDtl, updateEmisTmsTransPlanDtl } from "@/api/emis/emisTmsTransPlanDtl";
|
||||
import EmisSiteSimplePicker0 from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
|
||||
import EmisSiteSimplePicker1 from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
|
||||
import EmisSiteSelectTreePicker from '@/views/emis/EmisBaseTools/EmisSiteSelectTreePicker.vue';
|
||||
|
||||
export default {
|
||||
name: "PlanDtlPanel",
|
||||
components: {
|
||||
EmisSiteSimplePicker0,
|
||||
EmisSiteSimplePicker1,
|
||||
EmisSiteSelectTreePicker
|
||||
},
|
||||
dicts: ['emis_biz_shipping_method'],
|
||||
props:{
|
||||
value:{
|
||||
type:Array,
|
||||
},
|
||||
planId:{
|
||||
type:Number
|
||||
},
|
||||
isCopy:{
|
||||
type:Boolean
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value(newVal) {
|
||||
},
|
||||
planId(){
|
||||
this.initData();
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: false,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 费用计算表达式表格数据
|
||||
emisTmsTransPlanDtlList: [],
|
||||
|
||||
isAddSite:false,
|
||||
titleSiteSelectTreeForm:'',
|
||||
openSiteSelectTreeForm:false,
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
currentRow:{},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.initData();
|
||||
},
|
||||
methods: {
|
||||
initData() {
|
||||
this.reset();
|
||||
if(this.planId!=null){
|
||||
this.getList();
|
||||
}else{
|
||||
this.emisTmsTransPlanDtlList=[];
|
||||
}
|
||||
},
|
||||
// 选择网点
|
||||
handleSelectSite(){
|
||||
this.isAddSite=false;
|
||||
// console.log(this.useSiteCode)
|
||||
this.titleSiteSelectTreeForm='选择网点';
|
||||
this.openSiteSelectTreeForm=true;
|
||||
},
|
||||
// 追加网点
|
||||
handleAddSite(){
|
||||
this.isAddSite=true;
|
||||
this.titleSiteSelectTreeForm='追加网点';
|
||||
this.openSiteSelectTreeForm=true;
|
||||
},
|
||||
onSelectSiteTreeCheckChange(item){
|
||||
this.openSiteSelectTreeForm=false;
|
||||
this.form.startSiteName=item.selectSiteNameStr;
|
||||
this.form.startSite=item.selectSiteCodeStr;
|
||||
console.log(item)
|
||||
},
|
||||
onCancelSelectSiteTreeForm(){
|
||||
this.openSiteSelectTreeForm=false;
|
||||
},
|
||||
onDestSiteChange(item){
|
||||
this.form.destSiteName=item.siteName;
|
||||
},
|
||||
getList() {
|
||||
let queryParams={
|
||||
planId:this.planId,
|
||||
}
|
||||
console.log("======>");
|
||||
console.log(queryParams);
|
||||
|
||||
listEmisTmsTransPlanDtl(queryParams).then(response => {
|
||||
this.emisTmsTransPlanDtlList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
this.onChage();
|
||||
});
|
||||
},
|
||||
onChage(){
|
||||
this.$emit("input", this.emisTmsTransPlanDtlList);
|
||||
this.$emit("onChange",this.emisTmsTransPlanDtlList);
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
planId: this.planId,
|
||||
stepName: null,
|
||||
startSite: null,
|
||||
startSiteName: null,
|
||||
destSite: null,
|
||||
destSiteName: null,
|
||||
transType: null,
|
||||
estCostDay: null,
|
||||
orderNum: null,
|
||||
status: null,
|
||||
remark: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
this.currentRow = selection[0];
|
||||
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd(row) {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "新增节点";
|
||||
const orderNum=this.emisTmsTransPlanDtlList.length+1;
|
||||
this.form.orderNum=orderNum;
|
||||
if(orderNum>1){
|
||||
// 获取上一条数据
|
||||
const [lastData]= this.emisTmsTransPlanDtlList.slice(-1);
|
||||
console.log(lastData);
|
||||
this.form.startSiteCode=lastData.destSiteCode;
|
||||
this.form.destSiteCode=null;
|
||||
this.form.transType=lastData.transType;
|
||||
this.form.estCostDay=1;
|
||||
}
|
||||
|
||||
},
|
||||
handleCopy(row){
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "复制节点";
|
||||
console.log(row)
|
||||
const orderNum=this.emisTmsTransPlanDtlList.length+1;
|
||||
if(orderNum>1){
|
||||
// 获取上一条数据
|
||||
let newData =Object.assign({}, row);
|
||||
console.log(newData)
|
||||
this.form=newData;
|
||||
this.form.orderNum=orderNum;
|
||||
// this.form.startWeight=newData.endWeight;
|
||||
// this.form.endWeight='';
|
||||
// this.form.initialWeight=0;
|
||||
// this.form.additionalWeight=0;
|
||||
// this.form.calculateExpression=newData.calculateExpression;
|
||||
}
|
||||
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
|
||||
if(this.quoteId != null && !this.isCopy){
|
||||
this.handleUpdateByQuoteId(row);
|
||||
}else{
|
||||
this.currentRow = row;
|
||||
this.form = row;
|
||||
}
|
||||
|
||||
this.open = true;
|
||||
this.title = "修改节点";
|
||||
},
|
||||
handleUpdateByQuoteId(row){
|
||||
this.loading = true;
|
||||
getEmisTmsTransPlanDtl(row.id).then(response => {
|
||||
this.form = response.data;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
// && !this.isCopy
|
||||
if(this.planId != null ){
|
||||
this.submitFormByPlanId()
|
||||
}else{
|
||||
this.submitFormByNew();
|
||||
}
|
||||
|
||||
this.reset();
|
||||
this.open = false;
|
||||
}
|
||||
});
|
||||
},
|
||||
submitFormByPlanId(){
|
||||
if (this.form.id != null) {
|
||||
console.log("=======1");
|
||||
console.log(this.form);
|
||||
|
||||
updateEmisTmsTransPlanDtl(this.form).then(response => {
|
||||
// this.$modal.msgSuccess("修改成功");
|
||||
// this.$emit("on-changed");
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
console.log("=======2");
|
||||
console.log(this.form);
|
||||
|
||||
addEmisTmsTransPlanDtl(this.form).then(response => {
|
||||
// this.$modal.msgSuccess("添加成功");
|
||||
// this.$emit("on-changed");
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
},
|
||||
submitFormByNew(){
|
||||
// 新增的需要带回数据
|
||||
if (this.form.id == null) {
|
||||
let newItem = Object.assign({}, this.form);
|
||||
newItem.id=-1;
|
||||
this.emisTmsTransPlanDtlList.push(newItem);
|
||||
}
|
||||
this.onChage();
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row,index,list) {
|
||||
if(this.quoteId != null && !this.isCopy){
|
||||
this.handleDeletePlanId(row);
|
||||
}else{
|
||||
this.handleDeleteByNew(row,index,list);
|
||||
}
|
||||
},
|
||||
// 从数据库中删除
|
||||
handleDeletePlanId(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除').then(function() {
|
||||
return delEmisTmsTransPlanDtl(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
// this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
handleDeleteByNew(row,index,list){
|
||||
list.splice(index, 1);
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.el-divider{
|
||||
margin-top: 0px;
|
||||
background: 0 0;
|
||||
border-top: 1px solid #E6EBF5;
|
||||
}
|
||||
.el-divider__text {
|
||||
color: #0955ee;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.el-alert__title {
|
||||
color: black!important;;
|
||||
}
|
||||
|
||||
.el-alert__description {
|
||||
color: black!important;;
|
||||
}
|
||||
</style>
|
||||
Loading…
Reference in New Issue
Block a user