Forráskód Böngészése

[CODE]: 仓库管理、库位信息

maxianghua 4 éve
szülő
commit
d3142ce4fe

+ 11 - 4
src/api/basicdata/warehouse.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询仓库列表
 export function listWarehouse(query) {
   return request({
-    url: '/basicdata/warehouse/list',
+    url: '/basicdata/area/list',
     method: 'get',
     params: query
   })
@@ -12,7 +12,7 @@ export function listWarehouse(query) {
 // 查询仓库详细
 export function getWarehouse(fId) {
   return request({
-    url: '/basicdata/warehouse/' + fId,
+    url: '/basicdata/area/' + fId,
     method: 'get'
   })
 }
@@ -20,7 +20,7 @@ export function getWarehouse(fId) {
 // 新增仓库
 export function addWarehouse(data) {
   return request({
-    url: '/basicdata/warehouse',
+    url: '/basicdata/area',
     method: 'post',
     data: data
   })
@@ -51,7 +51,7 @@ export function changeWareStatus(fId, fStatus) {
 // 删除仓库
 export function delWarehouse(fId) {
   return request({
-    url: '/basicdata/warehouse/' + fId,
+    url: '/basicdata/area/' + fId,
     method: 'delete'
   })
 }
@@ -72,3 +72,10 @@ export function delCusCon(fId) {
     method: 'delete'
   })
 }
+// 查询部门下拉树结构
+export function treeselect() {
+  return request({
+    url: '/basicdata/warehouse/treeselect',
+    method: 'get'
+  })
+}

+ 1 - 1
src/views/basicdata/dept/index.vue

@@ -273,7 +273,7 @@ export default {
     },
     // 字典状态字典翻译
     statusFormat(row, column) {
-      return this.selectDictLabel(this.statusOptions, row.fStatus);
+      return this.selectDictLabel(this.statusOptions, row.status);
     },
     // 取消按钮
     cancel() {

+ 208 - 254
src/views/basicdata/warehouse/index.vue

@@ -1,188 +1,196 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="编号" prop="fNo">
-        <el-input
-          v-model="queryParams.fNo"
-          placeholder="请输入编号"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="名称" prop="fName">
-        <el-input
-          v-model="queryParams.fName"
-          placeholder="请输入名称"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="地址" prop="fAddr">
-        <el-input
-          v-model="queryParams.fAddr"
-          placeholder="请输入地址"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="状态" prop="fStatus">
-        <!--<el-select v-model="queryParams.fStatus" placeholder="请选择状态" clearable size="small">
-          <el-option label="请选择字典生成" value="" />
-        </el-select>-->
-        <el-select
-          v-model="queryParams.fStatus"
-          placeholder="请选择状态"
-          clearable
-          size="small"
-          style="width: 240px"
-        >
-          <el-option
-            v-for="dict in statusOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
 
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['basicdata:warehouse:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['basicdata:warehouse:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['basicdata:warehouse:remove']"
-        >删除</el-button>
+    <el-row :gutter="20">
+      <!--仓库数据-->
+      <el-col :span="4" :xs="24">
+        <div class="head-container">
+          <el-input
+            v-model="deptName"
+            placeholder="请输入仓库名称"
+            clearable
+            size="small"
+            prefix-icon="el-icon-search"
+            style="margin-bottom: 20px"
+          />
+        </div>
+        <div class="head-container">
+          <el-tree
+            :data="deptOptions"
+            :props="defaultProps"
+            :expand-on-click-node="false"
+            :filter-node-method="filterNode"
+            ref="tree"
+            default-expand-all
+            @node-click="handleNodeClick"
+          />
+        </div>
       </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['basicdata:warehouse:export']"
-        >导出</el-button>
+      <!--库位数据-->
+      <el-col :span="20" :xs="24">
+
+
+        <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+          <el-form-item label="编号" prop="fNo">
+            <el-input
+              v-model="queryParams.fNo"
+              placeholder="请输入编号"
+              clearable
+              size="small"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="名称" prop="fName">
+            <el-input
+              v-model="queryParams.fName"
+              placeholder="请输入名称"
+              clearable
+              size="small"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+
+          <el-form-item label="状态" prop="fStatus">
+            <!--<el-select v-model="queryParams.fStatus" placeholder="请选择状态" clearable size="small">
+              <el-option label="请选择字典生成" value="" />
+            </el-select>-->
+            <el-select
+              v-model="queryParams.fStatus"
+              placeholder="请选择状态"
+              clearable
+              size="small"
+              style="width: 240px"
+            >
+              <el-option
+                v-for="dict in statusOptions"
+                :key="dict.dictValue"
+                :label="dict.dictLabel"
+                :value="dict.dictValue"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+          </el-form-item>
+        </el-form>
+
+        <el-row :gutter="10" class="mb8">
+          <el-col :span="1.5">
+            <el-button
+              type="primary"
+              icon="el-icon-plus"
+              size="mini"
+              @click="handleAdd"
+              v-hasPermi="['basicdata:warehouse:add']"
+            >新增</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="success"
+              icon="el-icon-edit"
+              size="mini"
+              :disabled="single"
+              @click="handleUpdate"
+              v-hasPermi="['basicdata:warehouse:edit']"
+            >修改</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="danger"
+              icon="el-icon-delete"
+              size="mini"
+              :disabled="multiple"
+              @click="handleDelete"
+              v-hasPermi="['basicdata:warehouse:remove']"
+            >删除</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="warning"
+              icon="el-icon-download"
+              size="mini"
+              @click="handleExport"
+              v-hasPermi="['basicdata:warehouse:export']"
+            >导出</el-button>
+          </el-col>
+          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
+
+        <el-table v-loading="loading" :data="warehouseList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column type="index" label="序号" align="center"/>
+          <el-table-column label="编号" align="center" prop="fNo" :show-overflow-tooltip="true" />
+          <el-table-column label="名称" align="center" prop="fName" :show-overflow-tooltip="true" />
+          <el-table-column label="录入人" align="center" prop="createBy" />
+          <el-table-column label="录入时间" align="center" prop="createTime" width="180">
+            <template slot-scope="scope">
+              <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="状态" align="center">
+            <template slot-scope="scope">
+              <el-switch
+                v-model="scope.row.fStatus"
+                active-value="0"
+                inactive-value="1"
+                @change="handleStatusChange(scope.row)"
+              ></el-switch>
+            </template>
+          </el-table-column>
+          <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-edit"
+                @click="handleUpdate(scope.row)"
+                v-hasPermi="['basicdata:warehouse:edit']"
+              >修改</el-button>
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="handleDelete(scope.row)"
+                v-hasPermi="['basicdata:warehouse:remove']"
+              >删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <pagination
+          v-show="total>0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
+        />
+
       </el-col>
-	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
 
-    <el-table v-loading="loading" :data="warehouseList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column type="index" label="序号" align="center"/>
-      <el-table-column label="编号" align="center" prop="fNo" :show-overflow-tooltip="true" />
-      <el-table-column label="名称" align="center" prop="fName" :show-overflow-tooltip="true" />
-      <el-table-column label="地址" align="center" prop="fAddr" :show-overflow-tooltip="true" />
-      <el-table-column label="状态" align="center">
-        <template slot-scope="scope">
-          <el-switch
-            v-model="scope.row.fStatus"
-            active-value="0"
-            inactive-value="1"
-            @change="handleStatusChange(scope.row)"
-          ></el-switch>
-        </template>
-      </el-table-column>
-      <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['basicdata:warehouse:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['basicdata:warehouse:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+    </el-row>
 
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
 
     <!-- 添加或修改仓库对话框 -->
     <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="80%" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
-          <el-col :span="8">
-            <el-form-item label="编号" prop="fNo">
-              <el-input v-model="form.fNo"  placeholder="请输入编号" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="名称" prop="fName">
-              <el-input v-model="form.fName" placeholder="请输入名称" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="地址" prop="fAddr">
-              <el-input v-model="form.fAddr" placeholder="请输入地址" />
+          <el-col :span="12">
+            <el-form-item label="归属库区" prop="fWarehouseid">
+              <treeselect v-model="form.fWarehouseid" :options="deptOptions" :show-count="true" placeholder="请选择归属库区" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="8">
-            <el-form-item label="联系人" prop="fContacts">
-              <el-input v-model="form.fContacts" placeholder="请输入联系人" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="电话" prop="fTel">
-              <el-input v-model="form.fTel"
-               placeholder="请输入电话"
-               oninput='this.value=this.value.replace(/[^\-?\d]/g,"")'
-              />
+            <el-form-item label="编号" prop="fNo">
+              <el-input v-model="form.fNo"  placeholder="请输入编号" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="是否计费" prop="fCharg">
-              <el-select
-                v-model="form.fCharg"
-                style="width: 100%"
-              >
-                <el-option label="是" value="1" />
-                <el-option label="否" value="0" />
-              </el-select>
+            <el-form-item label="名称" prop="fName">
+              <el-input v-model="form.fName" placeholder="请输入名称" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -198,76 +206,13 @@
               </el-radio-group>
             </el-form-item>
           </el-col>
-            <el-form-item label="库容(吨)" prop="fTotalgross" label-width="80">
-              <el-input v-model="form.fTotalgross" placeholder="请输入库容(吨位)" style="width:305px"/>
-            </el-form-item>
         </el-row>
 
-        <!--<el-form-item label="状态,默认 T ,正常T 停用F 下拉选择">
-          <el-radio-group v-model="form.fStatus">
-            <el-radio label="1">请选择字典生成</el-radio>
-          </el-radio-group>
-        </el-form-item>-->
-        <!--<el-form-item label="删除状态" prop="delFlag">
-          <el-input v-model="form.delFlag" placeholder="请输入删除状态" />
-        </el-form-item>-->
+
         <el-form-item label="备注" prop="remark">
           <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
         </el-form-item>
 
-        <div >
-          <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
-              <el-button
-                type="primary"
-                icon="el-icon-plus"
-                size="mini"
-                @click="addRow(contactList)"
-              >添加</el-button>
-            </el-col>
-          </el-row>
-        </div>
-
-        <el-table v-loading="loading" :data="contactList" @selection-change="handleSelectionChange">
-
-          <el-table-column type="index" label="序号" align="center"/>
-
-          <el-table-column label="库区编号" align="center" prop="fNo" >
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.fNo"  placeholder="库区编号" />
-            </template>
-          </el-table-column>
-
-          <el-table-column label="库区名称" align="center" prop="fName" >
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.fName"  placeholder="库区名称" />
-            </template>
-          </el-table-column>
-
-          <el-table-column label="库区地址" align="center" prop="fAddr" >
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.fAddr"  placeholder="库区地址" />
-            </template>
-          </el-table-column>
-
-          <el-table-column label="备注" align="center" prop="remark" >
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.remark"  placeholder="备注" />
-            </template>
-          </el-table-column>
-
-          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
-            <template slot-scope="scope">
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-delete"
-                @click.native.prevent="deleteRow(scope.$index,scope.row.fId, contactList)"
-                v-hasPermi="['basicdata:contact:edit']"
-              >删除</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
 
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -279,14 +224,24 @@
 </template>
 
 <script>
-import { listWarehouse, getWarehouse, delWarehouse, addWarehouse,changeWareStatus, exportWarehouse,delCusCon } from "@/api/basicdata/warehouse";
+import { listWarehouse, getWarehouse, delWarehouse, addWarehouse,changeWareStatus, exportWarehouse,delCusCon,treeselect } from "@/api/basicdata/warehouse";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {addUser, updateUser} from "@/api/system/user";
 
 export default {
   name: "Warehouse",
   components: {
+    Treeselect
   },
   data() {
     return {
+      defaultProps: {
+        children: "children",
+        label: "label"
+      },
+      // 部门树选项
+      deptOptions: undefined,
       // 从表
       contactList:[],
       // 遮罩层
@@ -343,11 +298,28 @@ export default {
   },
   created() {
     this.getList();
+    this.getTreeselect();
     this.getDicts("sys_normal_disable").then(response => {
       this.statusOptions = response.data;
     });
   },
   methods: {
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    // 筛选节点
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+    // 节点单击事件
+    handleNodeClick(data) {
+      this.queryParams.fWarehouseid = data.id;
+      this.getList();
+    },
     // 添加行
     addRow(tableData){
       var obj = {}
@@ -444,6 +416,7 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
+      this.getTreeselect();
       this.contList();
       this.open = true;
       this.title = "添加仓库";
@@ -451,45 +424,26 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
+      this.getTreeselect();
       const fId = row.fId || this.ids
       getWarehouse(fId).then(response => {
-        this.form = response.data['tWarehouse'];
-        var contactList1 = response.data['tWarehouseArea'];
-        if(contactList1!=null){
-          this.contactList=contactList1;
-        }
+        this.form = response.data;
         this.open = true;
         this.title = "修改仓库";
-        this.form.fCharg = this.form.fCharg == '1' ? '是' : '否'
       })
     },
     /** 提交按钮 */
     submitForm() {
       this.$refs["form"].validate(valid => {
-        if (this.contactList.length === 0) {
-          this.msgError("库区为空");
-          return
-        }
         if (valid) {
-          if (this.form.fId != null) {
-            if(this.form.fCharg == '是'  || this.form.fCharg == '1'  ){
-              this.form.fCharg = '1'
-            } else{
-              this.form.fCharg = '0'
-            }
-            let formDate= new FormData()
-            formDate.append('tWarehouse',JSON.stringify(this.form));
-            formDate.append('tWarehouseArea',JSON.stringify(this.contactList));
-            addWarehouse(formDate).then(response => {
+          if (this.form.userId != undefined) {
+            updateUser(this.form).then(response => {
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            let formDate= new FormData()
-            formDate.append('tWarehouse',JSON.stringify(this.form));
-            formDate.append('tWarehouseArea',JSON.stringify(this.contactList));
-            addWarehouse(formDate).then(response => {
+            addWarehouse(this.form).then(response => {
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();