| <template> | 
|   <GlobalWindow | 
|     :title="title" | 
|     :visible.sync="visible" | 
|     :confirm-working="isWorking" | 
|     @confirm="confirm" | 
|   > | 
|     <el-form :model="form" ref="form" :rules="rules" v-loading="isWorking.search" > | 
|       <el-form-item label="仓库编码" prop="code"> | 
|         <el-input v-model="form.code" :disabled="form.id" placeholder="可填写,忽略将自动生成" v-trim /> | 
|       </el-form-item> | 
|       <el-form-item label="仓库名称" prop="name"> | 
|         <el-input v-model="form.name" placeholder="请输入仓库名称" v-trim/> | 
|       </el-form-item> | 
|       <el-form-item label="仓库归属" prop="ascription"> | 
|         <el-select v-model="form.ascription" clearable filterable placeholder="请选择"> | 
|           <el-option | 
|             v-for="item in ascriptions" | 
|             :key="item.id" | 
|             :label="item.name" | 
|             :value="item.id"> | 
|           </el-option> | 
|         </el-select> | 
|       </el-form-item> | 
|       <el-form-item label="仓库类型" prop="type"> | 
|         <el-select v-model="form.type" clearable filterable placeholder="请选择"> | 
|           <el-option | 
|             v-for="item in types" | 
|             :key="item.id" | 
|             :label="item.name" | 
|             :value="item.id"> | 
|           </el-option> | 
|         </el-select> | 
|       </el-form-item> | 
|       <el-form-item label="仓库属性" prop="systemDicDataId"> | 
|         <el-select v-model="form.systemDicDataId" clearable filterable placeholder="请选择"> | 
|           <el-option | 
|             v-for="item in properties()" | 
|             :key="item.value" | 
|             :label="item.code" | 
|             :value="item.id"> | 
|           </el-option> | 
|         </el-select> | 
|       </el-form-item> | 
|       <!-- <el-form-item label="所属组织" prop="departId"> | 
|         <el-select v-model="form.departId" placeholder="请选择"> | 
|           <el-option | 
|             v-for="item in departs" | 
|             :key="item.id" | 
|             :label="item.name" | 
|             :value="item.id"> | 
|           </el-option> | 
|         </el-select> | 
|       </el-form-item> --> | 
|       <el-form-item label="仓库管理员" prop="managerId"> | 
|         <el-select v-model="form.managerId" clearable @visible-change="visibleChange" :loading="loading" filterable placeholder="请选择"> | 
|           <el-option | 
|             v-for="item in managerIds" | 
|             :key="item.id" | 
|             :label="item.name + '-' + item.dmodel.name + '-' + item.phone" | 
|             :value="item.userId"> | 
|           </el-option> | 
|         </el-select> | 
|       </el-form-item> | 
|       <el-form-item label="仓库地址" prop="addr"> | 
|         <el-input v-model="form.addr" placeholder="请输入仓库地址" maxlength="50" v-trim/> | 
|       </el-form-item> | 
|       <el-form-item label="是否可销售"  prop="isSales"> | 
|         <el-switch v-model="form.isSales" :inactive-value="'1'" :active-value="'0'"> | 
|         </el-switch> | 
|       </el-form-item> | 
|       <el-form-item label="启用货位"  prop="useLocation"> | 
|         <el-switch v-model="form.useLocation" :inactive-value="0" :active-value="1"> | 
|         </el-switch> | 
|       </el-form-item> | 
|     </el-form> | 
|   </GlobalWindow> | 
| </template> | 
|   | 
| <script> | 
| import BaseOpera from '@/components/base/BaseOpera' | 
| import GlobalWindow from '@/components/common/GlobalWindow' | 
| import ZuzhiSelect from './zuzhiSelect.vue' | 
| import { getDepartmentListByConditon } from '@/api/ext/departmentExt' | 
| import { departments } from '@/api/ext/warehouseExt' | 
| // import { queryListByCode } from '@/api/system/dictData' | 
| import { validateSpecialKey } from '@/assets/js/validate' | 
| export default { | 
|   name: 'OperaWarehouseExtWindow', | 
|   extends: BaseOpera, | 
|   components: { GlobalWindow, ZuzhiSelect }, | 
|   data () { | 
|     return { | 
|       types: [ | 
|         { name: '原材料库', id: '0' }, | 
|         { name: '半成品库', id: '1' }, | 
|         { name: '成品库', id: '2' }, | 
|         { name: '不良品库', id: '3' }, | 
|         { name: '线边库', id: '4' }, | 
|         { name: '客退库', id: '5' }, | 
|         { name: '客返库', id: '6' }, | 
|         { name: '让步库', id: '7' }, | 
|         { name: '废品库', id: '8' }, | 
|       ], | 
|       ascriptions: [ | 
|         //  0公司库 1车间库 2外协库 | 
|         { name: '公司库', id: 0 }, | 
|         { name: '车间库', id: 1 }, | 
|         { name: '外协库', id: 2 }, | 
|       ], | 
|       managerIds: [], | 
|       departs: [], | 
|       loading: false, | 
|       // 表单数据 | 
|       form: { | 
|         ascription: '', | 
|         addr: '', | 
|         code: '', | 
|         createTime: '', | 
|         // departId: null, | 
|         id: '', | 
|         managerId: '', | 
|         name: '', | 
|         remark: '', | 
|         type: null, | 
|         systemDicDataId: null, | 
|         isSales: '1', | 
|         useLocation: 1 | 
|       }, | 
|       // 验证规则 | 
|       rules: { | 
|         // code: [ | 
|         //   { required: true, message: '请输仓库编码', trigger: 'blur' }, | 
|         //   { max: 20, message: '输入字数不超过20', trigger: 'blur' }, | 
|         //   { validator: validateSpecialKey, trigger: 'blur' } | 
|         // ], | 
|         name: [ | 
|           { required: true, message: '请输入仓库名称', trigger: 'blur' }, | 
|           { max: 20, message: '输入字数不超过20', trigger: 'blur' } | 
|         ], | 
|         addr: [{ max: 50, message: '输入字数不超过50', trigger: 'blur' }], | 
|         managerId: [{ required: true, message: '请选择仓库管理员', trigger: 'blur' }], | 
|         type: [{ required: true, message: '请选择仓库类型', trigger: 'change' }], | 
|         ascription: [{ required: true, message: '请选择仓库归属', trigger: 'change' }], | 
|         systemDicDataId: [{ required: true, message: '请选择仓库属性', trigger: 'change' }] | 
|       } | 
|     } | 
|   }, | 
|   inject: ['properties'], | 
|   created () { | 
|     this.config({ | 
|       api: '/ext/warehouseExt', | 
|       'field.id': 'id' | 
|     }) | 
|     // queryListByCode('?dicCode=SYSTEM_APPLIANCE_TYPE') | 
|     //   .then(res => { | 
|     //     // console.log(res) | 
|     //     this.properties = res | 
|     //   }) | 
|     //   .catch(err => { | 
|     //     console.log(err) | 
|     //   }) | 
|     getDepartmentListByConditon({ companyId: this.$store.state.userInfo.curComDepartment.id}) | 
|       .then(res => { | 
|         // console.log(res) | 
|         this.departs = res | 
|       }) | 
|       .catch(() => {}) | 
|     // this.getList() | 
|   }, | 
|   methods: { | 
|     visibleChange(e) { | 
|       if (e) { | 
|         this.getList() | 
|       } | 
|     }, | 
|     changeType (value) { | 
|       // console.log(value, 'value') | 
|       this.form.type = value | 
|     }, | 
|     // 管理员 | 
|     getList () { | 
|       this.loading = true | 
|       // this.form.managerId = null | 
|       departments({ departmentId: this.$store.state.userInfo.curComDepartment.id }) | 
|         .then((res) => { | 
|           // console.log('res', res) | 
|           this.managerIds = res | 
|           this.loading = false | 
|         }).catch((err) => { | 
|           console.log(err) | 
|           this.loading = false | 
|         }) | 
|     } | 
|     // handleNodeClick (data) { | 
|     //   this.form.Id = data.Id | 
|     //   this.form.label = data.label | 
|     //   this.$refs.selectTree.blur() | 
|     // } | 
|   }, | 
|   watch: { | 
|     'form.type': { | 
|       handler (news, old) { | 
|         this.form.type = news.toString() | 
|       } | 
|     }, | 
|     visible(news, old) { | 
|       if (news) { | 
|         this.getList() | 
|       } | 
|     } | 
|   } | 
| } | 
| </script> |