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