| <template> | 
|   <GlobalWindow title="选择物料" :visible.sync="isShowModal" :confirm-working="isLoading" width="1000px" @close="close" | 
|     @confirm="confirm"> | 
|     <el-form ref="searchForm" :model="searchForm" label-width="100px" inline> | 
|       <el-form-item prop="code" label="物料信息"> | 
|         <el-input v-model="searchForm.code" placeholder="请输入物料编码/名称" @keypress.enter.native="search"></el-input> | 
|       </el-form-item> | 
|       <el-form-item prop="areaIds" label="物料分类"> | 
|         <el-cascader v-model="searchForm.areaIds" @change="changeSel" placeholder="请选择物料分类" clearable | 
|           :options="cateList" :props="{ | 
|             label: 'name', | 
|             value: 'id', | 
|             children: 'childCategoryList', | 
|             checkStrictly: true | 
|           }"></el-cascader> | 
|       </el-form-item> | 
|       <span> | 
|         <el-button type="primary" @click="getList(1)">搜索</el-button> | 
|         <el-button @click="reset">重置</el-button> | 
|       </span> | 
|     </el-form> | 
|     <!--  --> | 
|     <el-table @selection-change="handleSelectionChange" :data="list" stripe> | 
|       <el-table-column type="selection"  width="55" /> | 
|       <el-table-column prop="code" label="物料编码" min-width="100px"></el-table-column> | 
|       <el-table-column prop="name" label="物料名称" min-width="80px"></el-table-column> | 
|       <el-table-column prop="qrcode" label="条码" min-width="100px"></el-table-column> | 
|       <el-table-column prop="brand" label="品牌" min-width="80px"></el-table-column> | 
|       <el-table-column prop="attr" label="规格型号" min-width="80px"></el-table-column> | 
|       <el-table-column prop="unitName" label="单位" min-width="80px"></el-table-column> | 
|       <el-table-column prop="maxStock" label="库存" min-width="80px"></el-table-column> | 
|     </el-table> | 
|     <Pagination class="mt10" @size-change="handleSizeChange" @current-change="getList" :pagination="pagination"> | 
|     </Pagination> | 
|   </GlobalWindow> | 
| </template> | 
|   | 
| <script> | 
| import BaseOpera from '@/components/base/BaseOpera' | 
| import GlobalWindow from '@/components/common/GlobalWindow' | 
| import Pagination from '@/components/common/Pagination' | 
| import { fetchList } from '@/api/ywMaterial' | 
| import { ywStockPage } from '@/api/store/index' | 
| import { fetchList as getCateList } from '@/api/business/category.js' | 
| export default { | 
|   name: 'OperaCategoryWindow', | 
|   components: { GlobalWindow, Pagination }, | 
|   data() { | 
|     return { | 
|       // 表单数据 | 
|       searchForm: {}, | 
|       pagination: { | 
|         pageSize: 10, | 
|         page: 1, | 
|         total: 0 | 
|       }, | 
|       isOut: false, | 
|       warehouseId: false, | 
|       list: [], | 
|       selList: [], | 
|       cateList: [], | 
|       isShowModal: false, | 
|       isLoading: false, | 
|       // 验证规则 | 
|       rules: { | 
|         name: [{ required: true, message: '请输入二级分类名称', trigger: 'blur' }], | 
|       }, | 
|       dataList: [] | 
|     } | 
|   }, | 
|   created() { | 
|     this.getCate() | 
|   }, | 
|   methods: { | 
|     confirm() { | 
|       this.$emit('change', this.selList) | 
|       this.close() | 
|     }, | 
|     handleSelectionChange(val) { | 
|       this.selList = val | 
|     }, | 
|     getList(page) { | 
|       const { pagination, searchForm, isOut, warehouseId } = this | 
|       this.listLoading = true | 
|       if(page){pagination.page = page} | 
|       console.log('isOut', isOut); | 
|        | 
|       let fn = isOut ? ywStockPage : fetchList | 
|       fn({ | 
|         capacity: pagination.pageSize, | 
|         page: pagination.page, | 
|         model: {...searchForm,status: 0, warehouseId} | 
|       }).then((res) => { | 
|         this.listLoading = false | 
|         this.list = res.records | 
|         this.pagination.total = res.total || 0 | 
|         if(isOut){ | 
|           this.list.forEach(item => { | 
|             item.brand = item.materialBrand | 
|             item.attr = item.materialAttr | 
|             item.name = item.materialName | 
|             item.id = item.materialId | 
|             item.code = item.materialCode | 
|             item.qrcode = item.materialQrcode | 
|             item.unitName = item.materialUnitName | 
|             item.maxStock = item.stock | 
|           }) | 
|         } | 
|       }, () => { | 
|         this.listLoading = false | 
|       }) | 
|     }, | 
|     getCate() { | 
|       getCateList({ | 
|         model: { type: 7 }, | 
|         capacity: 1000, | 
|         page: 1, | 
|       }).then(res => { | 
|         this.cateList = res.records || [] | 
|       }) | 
|     }, | 
|     changeSel(e) { | 
|       if (e && e.length == 2) { | 
|         this.$set(this.searchForm, 'cateId', e[1]) | 
|         this.$set(this.searchForm, 'parentCateId', '') | 
|       }else if((e && e.length == 1)){ | 
|         this.$set(this.searchForm, 'parentCateId', e[0]) | 
|         this.$set(this.searchForm, 'cateId', '') | 
|       } else { | 
|         this.$set(this.searchForm, 'cateId', '') | 
|       } | 
|     }, | 
|     reset() { | 
|       this.searchForm = {} | 
|       this.pagination.pageSize = 10 | 
|       this.pagination.page = 1 | 
|       this.getList() | 
|     }, | 
|     handleSizeChange(capacity) { | 
|       this.pagination.pageSize = capacity | 
|       this.getList() | 
|     }, | 
|     close() { | 
|       this.isShowModal = false | 
|       this.$emit('close') | 
|     }, | 
|   } | 
| } | 
| </script> |