Browse Source

Merge branch 'master' of http://112.74.164.79:3000/chenying/X-web

chenying 3 years ago
parent
commit
61a57aed3b

+ 1 - 1
src/views/modules/common/user-component.vue

@@ -15,7 +15,7 @@
           :label="item.label"
           :value="item.value">
         </el-option>
-        <el-option label="加载更多" style="font-style: italic; color: #8a979e" value="undefined" @click.native="handleClick()"></el-option>
+        <el-option v-if="options.length > 0" label="加载更多" style="font-style: italic; color: #8a979e" value="undefined" @click.native="handleClick()"></el-option>
       </el-select>
     </div>
 </template>

+ 85 - 0
src/views/modules/cus/customer.vue

@@ -0,0 +1,85 @@
+<template>
+  <div class="stock">
+    <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+      <el-form-item label="名称">
+        <el-input v-model="dataForm.customerName" placeholder="客户名称" clearable/>
+      </el-form-item>
+      <el-form-item label="客户级别">
+        <el-select
+          v-model="value"
+          remote
+          :remote-method="selectCusLevel"
+          placeholder="请选择">
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+<!--        <el-input v-model="dataForm.level" placeholder="客户级别" clearable/>-->
+      </el-form-item>
+      <el-form-item>
+        <el-button @click="getDataList()">查询</el-button>
+        <el-button type="primary" @click="test()">新增客户</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table
+      :data="dataList"
+      border
+      v-loading="dataListLoading"
+      @selection-change="selectionChangeHandle"
+      style="width: 100%;">
+      <el-table-column
+        type="selection"
+        header-align="center"
+        align="center"
+        width="50">
+      </el-table-column>
+      <el-table-column
+        label="序号"
+        type="index"
+        width="50"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="-"
+        header-align="center"
+        align="center"
+        label="编码">
+      </el-table-column>
+      <el-table-column
+        fixed="right"
+        header-align="center"
+        align="center"
+        width="150"
+        label="操作">
+        <template slot-scope="scope">
+          <el-button v-if="isAuth('wh:stock-mg-ctl:info')" type="text" size="small" @click="details(scope.row.customerId)">查看</el-button>
+          <el-button v-if="isAuth('wh:stock-mg-ctl:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.customerId)">编辑</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="sizeChangeHandle"
+      @current-change="currentChangeHandle"
+      :current-page="pageIndex"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="pageSize"
+      :total="totalPage"
+      layout="total, sizes, prev, pager, next, jumper">
+    </el-pagination>
+    <stock-details v-if="detailVisible" ref="details"/>
+    <stock-add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"/>
+  </div>
+</template>
+
+<script>
+  export default {
+    name: 'customer'
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 199 - 0
src/views/modules/warehouse/stock-order-inbound.vue

@@ -0,0 +1,199 @@
+<template>
+  <el-dialog
+    title="入库"
+    :close-on-click-modal="false"
+    :visible.sync="visible">
+    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="auto">
+      <el-row class="my-row">
+        <el-form-item label="编码" prop="code">
+          <el-input v-model="dataForm.code" placeholder="缺字段"></el-input>
+        </el-form-item>
+      </el-row>
+      <el-row class="my-row">
+        <el-col :span="8">
+          <el-form-item label="名称" prop="materialName">
+            <el-input v-model="dataForm.materialName" placeholder="请填写名称"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" style="padding-left: 20px">
+          <el-form-item label="入库申请人" prop="userId">
+            <user-component v-model="dataForm.userId" @userSelected="userChanged"></user-component>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" style="padding-left: 20px">
+          <el-form-item label="申请人部门" prop="orgId">
+            <el-input :disabled="true" v-model="dataForm.orgName" placeholder="请选择入库申请人"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row class="my-row">
+        <el-col :span="8">
+          <el-form-item label="单位" prop="unitName">
+            <el-input v-model="dataForm.unitName" placeholder="缺字段"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" style="padding-left: 20px">
+          <el-form-item label="类别" prop="cateId">
+            <dict-select v-model:dict-id="dataForm.cateId" v-bind:dict-type="dictType"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" style="padding-left: 20px">
+          <el-form-item label="规格" prop="specifications">
+            <el-input v-model="dataForm.specifications" placeholder="缺字段"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row class="my-row">
+        <el-col :span="8">
+          <el-form-item label="单价" prop="price">
+            <el-input-number v-model="dataForm.price" :precision="2" :min="0.00" :step="0.1"></el-input-number>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" style="padding-left: 20px">
+          <el-form-item label="数量" prop="cnt">
+            <el-input-number v-model="dataForm.cnt" :min="0"></el-input-number>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" style="padding-left: 20px">
+          <el-form-item label="金额" prop="amount">
+            <el-input :disabled="true" v-model="dataForm.price * dataForm.cnt"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row class="my-row">
+        <el-col :span="8">
+          <el-form-item label="批次号" prop="batchNumber">
+            <el-input v-model="dataForm.batchNumber" placeholder="请填写入库物品(零件)批次"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" style="padding-left: 20px">
+          <el-form-item label="来源" prop="source">
+            <el-input v-model="dataForm.source" placeholder="来源"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" style="padding-left: 20px">
+          <el-form-item label="是否换算" prop="transfer">
+            <el-input v-model="dataForm.transfer" placeholder="缺字段"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-form-item label="备注" prop="notes">
+          <el-input v-model="dataForm.notes" placeholder="备注"></el-input>
+        </el-form-item>
+      </el-row>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">取消</el-button>
+      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  import UserComponent from '../common/user-component'
+  import DictSelect from '../sys/dict-select'
+  import {getUUID} from '../../../utils'
+  export default {
+    name: 'stock-order-inbound',
+    components: {DictSelect, UserComponent},
+    data () {
+      return {
+        visible: false,
+        dictType: 'material_type',
+        dataForm: {
+          id: '',
+          amount: 0,
+          applicant: '',
+          approver: '',
+          batchNumber: '',
+          cnt: '',
+          materialId: '',
+          materialName: '',
+          notes: '',
+          orgId: '',
+          price: '',
+          recordType: '',
+          source: '',
+          state: 0,
+          templateItemPlanId: '',
+          usage: '',
+          userId: '',
+          orgName: ''
+        },
+        dataRule: {
+        }
+      }
+    },
+    methods: {
+      init () {
+        this.visible = true
+        this.dataForm.code = getUUID()
+      },
+      // 表单提交
+      dataFormSubmit () {
+        this.$refs['dataForm'].validate((valid) => {
+          if (valid) {
+            this.$http({
+              url: this.$http.adornUrl(`/biz-service/in-out-bound-ctl/inbound`),
+              method: 'post',
+              data: this.$http.adornData({
+                'amount': this.dataForm.amount,
+                'applicant': this.dataForm.applicant,
+                'approver': this.dataForm.approver,
+                'batchNumber': this.dataForm.batchNumber,
+                'cnt': this.dataForm.cnt,
+                'materialId': this.dataForm.materialId,
+                'materialName': this.dataForm.materialName,
+                'notes': this.dataForm.notes,
+                'price': this.dataForm.price,
+                'orgId': this.dataForm.orgId,
+                'recordType': this.dataForm.recordType,
+                'source': this.dataForm.source,
+                'state': this.dataForm.state,
+                'templateItemPlanId': this.dataForm.templateItemPlanId,
+                'usage': this.dataForm.usage,
+                'userId': this.dataForm.userId,
+                'creatorId': this.$store.state.user.id
+              })
+            }).then(({data}) => {
+              if (data && data.code === '200') {
+                this.$message({
+                  message: '操作成功',
+                  type: 'success',
+                  duration: 1500,
+                  onClose: () => {
+                    this.visible = false
+                    this.$emit('refreshDataList')
+                  }
+                })
+              } else {
+                this.$message.error(data.msg)
+              }
+            })
+          }
+        })
+      },
+      validateField (type) {
+        this.$refs.dataForm.validateField(type)
+      },
+      userChanged (userId) {
+        this.$http({
+          url: this.$http.adornUrl('/user-service/user/info/' + userId),
+          method: 'get'
+        }).then(({data}) => {
+          if (data && data.code === '200') {
+            this.dataForm.orgId = data.data.orgId
+            this.dataForm.orgName = data.data.orgName
+          } else {
+            this.$message.error(data.msg)
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 125 - 29
src/views/modules/warehouse/stock-order.vue

@@ -1,6 +1,16 @@
 <template>
   <div class="stock-order">
     <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+      <el-form-item label="出入库类型">
+        <el-select v-model="dataForm.recordType" placeholder="请选择">
+          <el-option
+            v-for="item in recordTypeOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item label="申请人姓名">
         <user-component v-model="dataForm.userId"/>
       </el-form-item>
@@ -16,8 +26,8 @@
       </el-form-item>
       <el-form-item>
         <el-button @click="getDataList()">查询</el-button>
-        <el-button type="primary" @click="test()">入库申请</el-button>
-        <el-button type="primary" @click="test()">出库申请</el-button>
+        <el-button v-if="isAuth('wh:in-out-bound-ctl:inbound')" type="primary" @click="inBound()">入库申请</el-button>
+        <el-button v-if="isAuth('wh:in-out-bound-ctl:outbound')" type="primary" @click="outBound()">出库申请</el-button>
 <!--        <el-button v-if="isAuth('sys:user:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>-->
 <!--        <el-button v-if="isAuth('sys:user:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>-->
       </el-form-item>
@@ -35,28 +45,108 @@
         width="50">
       </el-table-column>
       <el-table-column
-        prop="code"
+        label="序号"
+        type="index"
+        width="50"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="-"
         header-align="center"
         align="center"
         label="编码">
       </el-table-column>
+      <el-table-column
+        prop="recordType"
+        header-align="center"
+        align="center"
+        label="申请单类别">
+      </el-table-column>
+      <el-table-column
+        prop="state"
+        header-align="center"
+        align="center"
+        label="申请状态">
+      </el-table-column>
+      <el-table-column
+        prop="approver"
+        header-align="center"
+        align="center"
+        label="当前审批员">
+      </el-table-column>
+      <el-table-column
+        prop="-"
+        header-align="center"
+        align="center"
+        label="申请时间">
+      </el-table-column>
+      <el-table-column
+        prop="recordTime"
+        header-align="center"
+        align="center"
+        label="入库时间">
+      </el-table-column>
+      <el-table-column
+        prop="-"
+        header-align="center"
+        align="center"
+        label="申请人">
+      </el-table-column>
+      <el-table-column
+        fixed="right"
+        header-align="center"
+        align="center"
+        width="150"
+        label="操作">
+        <template slot-scope="scope">
+          <el-button v-if="isAuth('wh:inbound-record-ctl:info')" type="text" size="small" @click="details(scope.row.id)">查看</el-button>
+          <el-button type="text" size="small" @click="exportItem(scope.row.id)">导出</el-button>
+          <el-button type="text" size="small" @click="cancelItem(scope.row.id)">撤回</el-button>
+        </template>
+      </el-table-column>
     </el-table>
+    <el-pagination
+      @size-change="sizeChangeHandle"
+      @current-change="currentChangeHandle"
+      :current-page="pageIndex"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="pageSize"
+      :total="totalPage"
+      layout="total, sizes, prev, pager, next, jumper">
+    </el-pagination>
+    <!--    入库-->
+    <stock-order-inbound v-if="inboundVisible" ref="inbound" @refreshDataList="getDataList"></stock-order-inbound>
   </div>
 </template>
 
 <script>
   import UserComponent from '../common/user-component'
+  import StockOrderInbound from './stock-order-inbound'
   export default {
     name: 'stock-order',
-    components: {UserComponent},
+    components: {StockOrderInbound, UserComponent},
     data () {
       return {
+        inboundVisible: false,
         dataForm: {
           userId: '',
           date: '',
-          dateFrom: '',
-          dateTo: ''
+          recordType: null
         },
+        recordTypeOptions: [
+          {
+            value: null,
+            label: '请选择'
+          },
+          {
+            value: '0',
+            label: '入库'
+          },
+          {
+            value: '1',
+            label: '出库'
+          }
+        ],
         dataList: [],
         pageIndex: 1,
         pageSize: 10,
@@ -68,29 +158,28 @@
     methods: {
       // 获取数据列表
       getDataList () {
-        console.log('orgId = ' + this.$store.state.user.orgId)
-        console.log('参数0:' + this.dataForm.userId)
-        console.log('参数1:' + this.dataForm.dateFrom[0])
-        console.log('参数2:' + this.dataForm.dateFrom[1])
-        // this.dataListLoading = true
-        // this.$http({
-        //   url: this.$http.adornUrl('/user-service/user/list'),
-        //   method: 'get',
-        //   params: this.$http.adornParams({
-        //     'current': this.pageIndex,
-        //     'size': this.pageSize,
-        //     'userId': this.dataForm.userId
-        //   })
-        // }).then(({data}) => {
-        //   if (data && data.code === '200') {
-        //     this.dataList = data.data.records
-        //     this.totalPage = Number(data.data.total)
-        //   } else {
-        //     this.dataList = []
-        //     this.totalPage = 0
-        //   }
-        //   this.dataListLoading = false
-        // })
+        this.dataListLoading = true
+        this.$http({
+          url: this.$http.adornUrl('/biz-service/inbound-record-ctl/list'),
+          method: 'get',
+          params: this.$http.adornParams({
+            'current': this.pageIndex,
+            'size': this.pageSize,
+            'userId': this.dataForm.userId,
+            'beginTime': this.dataForm.date[0],
+            'endTime': this.dataForm.date[1],
+            'recordType': this.dataForm.recordType
+          })
+        }).then(({data}) => {
+          if (data && data.code === '200') {
+            this.dataList = data.data.records
+            this.totalPage = Number(data.data.total)
+          } else {
+            this.dataList = []
+            this.totalPage = 0
+          }
+          this.dataListLoading = false
+        })
       },
       // 每页数
       sizeChangeHandle (val) {
@@ -106,6 +195,13 @@
       // 多选
       selectionChangeHandle (val) {
         this.dataListSelections = val
+      },
+      // 入库申请
+      inBound () {
+        this.inboundVisible = true
+        this.$nextTick(() => {
+          this.$refs.inbound.init()
+        })
       }
     }
   }

+ 14 - 1
src/views/modules/warehouse/stock.vue

@@ -6,7 +6,7 @@
         </el-form-item>
         <el-form-item>
           <el-button @click="getDataList()">查询</el-button>
-          <el-button type="primary" @click="test()">导出Excel</el-button>
+          <el-button type="primary" @click="exportExcel()">导出Excel</el-button>
         </el-form-item>
       </el-form>
       <el-table
@@ -180,6 +180,19 @@
           this.dataListLoading = false
         })
       },
+      exportExcel () {
+        this.$http({
+          url: this.$http.adornUrl('/biz-service/stock-mg-ctl/exportedExcel'),
+          method: 'get',
+          params: this.$http.adornParams({
+            'materialName': this.dataForm.materialName
+          })
+        }).then(({data}) => {
+          if (data && data.code !== '200') {
+            this.$message.error(data.msg || '系统错误,请联系管理员')
+          }
+        })
+      },
       // 每页数
       sizeChangeHandle (val) {
         this.pageSize = val