| <template> | 
|   <GlobalWindow | 
|     :title="title" | 
|     :visible.sync="visible" | 
|     width="80%" | 
|     :confirm-working="isWorking" | 
|     @confirm="confirm" | 
|   > | 
|     <el-table | 
|       ref="orderTable" | 
|       :data="form.list" | 
|       stripe | 
|       border | 
|       @selection-change="handleSelectionChange" | 
|     > | 
|       <el-table-column type="selection" fixed="left" width="55"></el-table-column> | 
|       <el-table-column prop="code" label="工单编号" min-width="140px"></el-table-column> | 
|       <el-table-column prop="code" label="工单类型" min-width="80px"> | 
|          <template slot-scope="{row}"> | 
|           {{ typeToStr(row.type)}} | 
|         </template> | 
|       </el-table-column> | 
|       <el-table-column prop="mmodel.name" label="物料名称" min-width="100px"></el-table-column> | 
|       <el-table-column prop="mmodel.code" label="物料编码" min-width="160px"></el-table-column> | 
|       <el-table-column prop="procedureName" label="工序" show-overflow-tooltip min-width="100px"> | 
|         <template slot-scope="{row}"> | 
|           <span class="long-title-style">{{ row.procedureName }}</span> | 
|         </template> | 
|       </el-table-column> | 
|       <el-table-column prop="planNum" label="计划生产数量" min-width="80px"> | 
|         <template slot-scope="{row}"> | 
|           {{ row.planNum + row.umodel.name }} | 
|         </template> | 
|       </el-table-column> | 
|       <el-table-column prop="proUserName" label="生产人员" show-overflow-tooltip min-width="140px"> | 
|         <template slot-scope="{row}"> | 
|           <span class="long-title-style">{{ proUserName(row.proUserList) }}</span> | 
|         </template> | 
|       </el-table-column> | 
|       <el-table-column prop="pgmodel.name" label="生产设备" show-overflow-tooltip min-width="100px"> | 
|         <template slot-scope="{row}"> | 
|           <span class="long-title-style">{{ '【' + row.pgmodel.code + '】' + row.pgmodel.name }}</span> | 
|         </template> | 
|       </el-table-column> | 
|     </el-table> | 
|   </GlobalWindow> | 
| </template> | 
|   | 
| <script> | 
| import BaseOpera from '@/components/base/BaseOpera' | 
| import GlobalWindow from '@/components/common/GlobalWindow' | 
| import { preparationWTransfer } from '@/api/ext/workorderExt' | 
| export default { | 
|   name: 'OperaWorkorderExtWindow', | 
|   extends: BaseOpera, | 
|   components: { GlobalWindow }, | 
|   data () { | 
|     return { | 
|       // 表单数据 | 
|       form: { | 
|         list: [ | 
|         ] | 
|       }, | 
|       // 验证规则 | 
|       rules: { | 
|       }, | 
|       selectedRows: [], | 
|       types: [ | 
|         // 0正常、1返工、2客户返修 | 
|         { name: '正常', id: 0 }, | 
|         { name: '返工返修', id: 2 }, | 
|         // { name: '客户返修', id: 2 } | 
|       ], | 
|     } | 
|   }, | 
|   created () { | 
|     this.config({ | 
|       api: '/ext/workorderExt', | 
|       'field.id': 'id' | 
|     }) | 
|   }, | 
|   methods: { | 
|     open (title, target) { | 
|       this.title = title | 
|       this.visible = true | 
|       // 编辑 | 
|       this.$nextTick(() => { | 
|         this.form.list = target | 
|       }) | 
|       setTimeout(()=>{ | 
|           this.form.list.forEach(item => { | 
|             this.$refs.orderTable.toggleRowSelection(item) | 
|           }) | 
|         },50) | 
|     }, | 
|     handleSelectionChange (selectedRows) { | 
|       this.selectedRows = selectedRows | 
|     }, | 
|     confirm () { | 
|       if (this.selectedRows.length === 0) { | 
|         this.$tip.warning('请至少选择一条数据') | 
|         return | 
|       } | 
|       const ids = this.selectedRows.map(element => { | 
|         return element.id | 
|       }).join(',') | 
|       this.isWorking = true | 
|       preparationWTransfer(ids) | 
|         .then(() => { | 
|           this.$tip.success('备料成功') | 
|           this.$emit('success') | 
|           this.visible = false | 
|         }) | 
|         .catch(err => { | 
|           this.$tip.error(err) | 
|         }) | 
|         .finally(() => { | 
|           this.isWorking = false | 
|         }) | 
|     }, | 
|     typeToStr (type) { | 
|       for (const item of this.types) { | 
|         if (item.id === type) { | 
|           return item.name | 
|         } | 
|       } | 
|     }, | 
|     proUserName (proUserList) { | 
|       return proUserList.map((item) => {return item.proUserDepartName}).join(',') | 
|     } | 
|   } | 
| } | 
| </script> |