|  |  |  | 
|---|
|  |  |  | <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> | 
|---|