<template>
|
<GlobalWindow
|
:title="title"
|
width="70%"
|
:visible.sync="visible"
|
:confirm-working="isWorking"
|
@confirm="confirm"
|
>
|
<p class="tip-warn"><i class="el-icon-warning"></i>优化说明:<br>
|
1、当前优化任务最多支持<span class="orange">【 {{lineNum}} 】</span>条线路;<br>
|
2、合理选择线路,选择线路的总客户数和总送货量需要满足当日订单累计值;<br>
|
3、强制优化表示忽略该主线优化中的任务,重新开启优化任务(不建议);<br>
|
</p>
|
<!-- <el-form :model="form" ref="form" :rules="rules">
|
<el-form-item label="生成线路数量" prop="planLineNum">
|
<el-input type="number" disabled v-model="form.planLineNum" placeholder="请输入线路数" v-trim/>
|
</el-form-item>
|
</el-form>-->
|
<div>
|
<el-form :model="form" ref="form" :rules="rules">
|
<el-form-item label="是否强制优化" prop="forceUpdate">
|
<el-radio-group v-model="form.forceUpdate">
|
<el-radio :label="0" :value="0">不强制</el-radio>
|
<el-radio :label="1" :value="1">强制</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="选择生成线路" prop="lineIdList" >
|
<el-table :data="lineList" stripe @selection-change="handleSelectionChange">
|
<el-table-column type="selection" width="55"></el-table-column>
|
<el-table-column prop="name" label="送货线路" min-width="130px" show-tooltip-when-overflow> </el-table-column>
|
<el-table-column prop="maxCustomer" label="客户数(户)" min-width="100px" show-tooltip-when-overflow></el-table-column>
|
<el-table-column prop="maxOrder" label="送货量(条)" min-width="100px" show-tooltip-when-overflow></el-table-column>
|
<el-table-column prop="carCode" label="车牌号" min-width="100px"></el-table-column>
|
<el-table-column prop="memberName" label="送货司机" min-width="100px"></el-table-column>
|
</el-table>
|
</el-form-item>
|
</el-form>
|
</div>
|
</GlobalWindow>
|
</template>
|
|
<script>
|
import BaseOpera from '@/components/base/BaseOpera'
|
import GlobalWindow from '@/components/common/GlobalWindow'
|
import { allList } from '@/api/business/jkLine'
|
export default {
|
name: 'OperaJkSketchWindow',
|
extends: BaseOpera,
|
components: { GlobalWindow },
|
data () {
|
return {
|
// 表单数据
|
form: {
|
id: null,
|
planLineNum: '',
|
forceUpdate: 0,
|
lineIdList: []
|
},
|
categoryId: null,
|
lineList: [],
|
lineNum: null,
|
// 验证规则
|
rules: {
|
lineIdList: [{ required: true, message: '请选择生成线路数量' }],
|
forceUpdate: [{ required: true, message: '请选择是否强制优化' }]
|
}
|
}
|
},
|
created () {
|
this.config({
|
api: '/business/jkSketch',
|
'field.id': 'id'
|
})
|
},
|
methods: {
|
handleSelectionChange (rows) {
|
this.form.lineIdList = []
|
if (rows || rows.length) {
|
rows.forEach(item => {
|
this.form.lineIdList.push(item.id)
|
})
|
}
|
},
|
open (title, target) {
|
if (!target || !target.id) {
|
return
|
}
|
this.lineList = []
|
this.title = title
|
this.visible = true
|
this.categoryId = target.categoryId
|
this.form.id = target.id
|
this.form.planLineNum = target.planLineNum
|
this.form.forceUpdate = 0
|
this.form.lineIdList = []
|
this.loadLines()
|
},
|
confirm () {
|
this.$refs.form.validate((valid) => {
|
if (!valid) {
|
return
|
}
|
/* if (this.form.planLineNum <= 0 || this.form.planLineNum > this.lineNum) {
|
this.$message.error('优化线路数必须在[1-' + this.lineNum + ']范围内!')
|
return
|
}*/
|
this.confirmDo()
|
})
|
},
|
confirmDo () {
|
// 调用新建接口
|
this.isWorking = true
|
this.api.updateById({
|
id: this.form.id,
|
lineIdList: this.form.lineIdList,
|
forceUpdate: this.form.forceUpdate
|
})
|
.then(() => {
|
this.visible = false
|
this.$tip.apiSuccess('优化任务正在后台执行,请等待优化完成后查看优化结果!')
|
this.$emit('success')
|
})
|
.catch(e => {
|
// this.$tip.apiFailed(e)
|
})
|
.finally(() => {
|
this.isWorking = false
|
})
|
},
|
loadLines () {
|
allList({
|
categoryId: this.categoryId
|
}).then(res => {
|
this.lineList = res || []
|
this.lineNum = this.lineList.length
|
})
|
}
|
}
|
}
|
</script>
|