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