| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="70%" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="创建人编码" prop="creator"> |
| | | <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/> |
| | | <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-item label="创建时间" prop="createDate"> |
| | | <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="更新人编码" prop="editor"> |
| | | <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="更新时间" prop="editDate"> |
| | | <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="是否删除0否 1是" prop="isdeleted"> |
| | | <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="info"> |
| | | <el-input v-model="form.info" placeholder="请输入备注" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="主线路编码(关联category)" prop="categoryId"> |
| | | <el-input v-model="form.categoryId" placeholder="请输入主线路编码(关联category)" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="送货量" prop="totalNum"> |
| | | <el-input v-model="form.totalNum" placeholder="请输入送货量" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="客户数" prop="orderNum"> |
| | | <el-input v-model="form.orderNum" placeholder="请输入客户数" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="状态 0未优化 1优化中 2已优化" prop="status"> |
| | | <el-input v-model="form.status" placeholder="请输入状态 0未优化 1优化中 2已优化" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="排序码" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请输入排序码" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="日期" prop="dateInfo"> |
| | | <el-date-picker v-model="form.dateInfo" value-format="yyyy-MM-dd" placeholder="请输入日期"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="优化记录编码(作为key值存redis)" prop="jobId"> |
| | | <el-input v-model="form.jobId" placeholder="请输入优化记录编码(作为key值存redis)" v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </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, |
| | |
| | | // 表单数据 |
| | | form: { |
| | | id: null, |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | info: '', |
| | | categoryId: '', |
| | | totalNum: '', |
| | | orderNum: '', |
| | | status: '', |
| | | sortnum: '', |
| | | dateInfo: '', |
| | | jobId: '' |
| | | planLineNum: '', |
| | | forceUpdate: 0, |
| | | lineIdList: [] |
| | | }, |
| | | categoryId: null, |
| | | lineList: [], |
| | | lineNum: null, |
| | | // 验证规则 |
| | | rules: { |
| | | lineIdList: [{ required: true, message: '请选择生成线路数量' }], |
| | | forceUpdate: [{ required: true, message: '请选择是否强制优化' }] |
| | | } |
| | | } |
| | | }, |
| | |
| | | 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> |