chenying 3 年之前
父節點
當前提交
93e823445e

+ 13 - 0
package-lock.json

@@ -16858,6 +16858,11 @@
         "is-plain-obj": "^1.0.0"
       }
     },
+    "sortablejs": {
+      "version": "1.10.2",
+      "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz",
+      "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A=="
+    },
     "source-list-map": {
       "version": "0.1.8",
       "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
@@ -18642,6 +18647,14 @@
       "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
       "dev": true
     },
+    "vuedraggable": {
+      "version": "2.24.3",
+      "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.24.3.tgz",
+      "integrity": "sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g==",
+      "requires": {
+        "sortablejs": "1.10.2"
+      }
+    },
     "vuex": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.0.1.tgz",

+ 119 - 70
src/views/modules/warehouse/stock-order-inbound.vue

@@ -1,86 +1,102 @@
 <template>
   <el-dialog
-    title="入库"
+    title="入库申请"
+    width="80%"
     :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-col :span="12">
+          <el-form-item label="编码" prop="code">
+            <el-input v-model="dataForm.code" placeholder="缺字段"></el-input>
           </el-form-item>
         </el-col>
-        <el-col :span="8" style="padding-left: 20px">
+        <el-col :span="6" 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-col :span="6" 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>
+      <template v-for="(item, index) in dataForm">
+        <div :key="index" class="my-line">
+          <el-row class="my-row">
+            <el-col :span="8">
+              <el-form-item label="名称" prop="materialName">
+                <el-input v-model="item.materialName" placeholder="请填写名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" style="padding-left: 20px">
+              <el-form-item label="批次号" prop="batchNumber">
+                <el-input v-model="item.batchNumber" placeholder="请填写入库物品(零件)批次"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" style="text-align: right;">
+              <el-button @click="removeOne(index)" type="danger" icon="el-icon-delete" circle style="padding: 6px"></el-button>
+            </el-col>
+          </el-row>
+          <el-row class="my-row">
+            <el-col :span="8">
+              <el-form-item label="单位" prop="unitName">
+                <el-input v-model="item.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 :dict-id="item.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="item.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="item.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="item.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">
+                <span>{{ item.price * item.cnt }}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row class="my-row">
+            <el-col :span="8">
+              <el-form-item label="来源" prop="source">
+                <el-input v-model="item.source" placeholder="来源"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" style="padding-left: 20px">
+              <el-form-item label="是否换算" prop="transfer">
+                <el-select v-model="item.transfer">
+                  <el-option label="是" value="1"></el-option>
+                  <el-option label="否" value="0"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-form-item label="备注" prop="notes">
+              <el-input v-model="item.notes" placeholder="备注"></el-input>
+            </el-form-item>
+          </el-row>
+        </div>
+      </template>
+      <el-row style="text-align: center;">
+        <el-button type="primary" icon="el-icon-plus" @click="addOne"></el-button>
       </el-row>
     </el-form>
     <span slot="footer" class="dialog-footer">
@@ -101,7 +117,7 @@
       return {
         visible: false,
         dictType: 'material_type',
-        dataForm: {
+        dataForm: [{
           id: '',
           amount: 0,
           applicant: '',
@@ -120,7 +136,7 @@
           usage: '',
           userId: '',
           orgName: ''
-        },
+        }],
         dataRule: {
         }
       }
@@ -128,7 +144,37 @@
     methods: {
       init () {
         this.visible = true
-        this.dataForm.code = getUUID()
+        this.dataForm = []
+        this.addOne()
+      },
+      addOne () {
+        this.dataForm.push({
+          id: '',
+          code: getUUID(),
+          amount: 0,
+          applicant: '',
+          approver: '',
+          batchNumber: '',
+          cnt: '',
+          materialId: '',
+          materialName: '',
+          notes: '',
+          orgId: '',
+          price: '',
+          recordType: '',
+          source: '',
+          state: 0,
+          templateItemPlanId: '',
+          usage: '',
+          userId: '',
+          orgName: ''
+        })
+      },
+      removeOne (index) {
+        this.dataForm.splice(index, 1)
+        if (this.dataForm.length === 0) {
+          this.addOne()
+        }
       },
       // 表单提交
       dataFormSubmit () {
@@ -195,5 +241,8 @@
 </script>
 
 <style scoped>
-
+.my-line{
+  border-bottom: 1px solid #c0c4cc;
+  margin-bottom: 10px;
+}
 </style>

+ 223 - 0
src/views/modules/warehouse/stock-order-outbound.vue

@@ -0,0 +1,223 @@
+<template>
+  <el-dialog
+    title="出库申请"
+    width="80%"
+    :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-col :span="12">
+          <el-form-item label="编码" prop="code">
+            <el-input v-model="dataForm.code" placeholder="缺字段"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6" 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="6" 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>
+      <template v-for="(item, index) in dataForm">
+        <div :key="index" class="my-line">
+          <el-row class="my-row">
+            <el-col :span="8">
+              <el-form-item label="名称" prop="materialName">
+                <el-input v-model="item.materialName" placeholder="请填写名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" style="padding-left: 20px">
+              <el-form-item label="批次号" prop="batchNumber">
+                <el-input v-model="item.batchNumber" placeholder="请填写入库物品(零件)批次"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" style="text-align: right;">
+              <el-button @click="removeOne(index)" type="danger" icon="el-icon-delete" circle style="padding: 6px"></el-button>
+            </el-col>
+          </el-row>
+          <el-row class="my-row">
+            <el-col :span="8">
+              <el-form-item label="单位" prop="unitName">
+                <el-input v-model="item.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 :dict-id="item.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="item.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="cnt">
+                <el-input-number v-model="item.cnt" :min="0"></el-input-number>
+              </el-form-item>
+            </el-col>
+            <el-col :span="16" style="padding-left: 20px">
+              <el-form-item label="用途" prop="notes">
+                <el-input v-model="item.notes" placeholder="出库用于(说明用途)"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </div>
+      </template>
+      <el-row style="text-align: center;">
+        <el-button type="primary" icon="el-icon-plus" @click="addOne"></el-button>
+      </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 = []
+        this.addOne()
+      },
+      addOne () {
+        this.dataForm.push({
+          id: '',
+          code: getUUID(),
+          amount: 0,
+          applicant: '',
+          approver: '',
+          batchNumber: '',
+          cnt: '',
+          materialId: '',
+          materialName: '',
+          notes: '',
+          orgId: '',
+          price: '',
+          recordType: '',
+          source: '',
+          state: 0,
+          templateItemPlanId: '',
+          usage: '',
+          userId: '',
+          orgName: ''
+        })
+      },
+      removeOne (index) {
+        this.dataForm.splice(index, 1)
+        if (this.dataForm.length === 0) {
+          this.addOne()
+        }
+      },
+      // 表单提交
+      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>
+.my-line{
+  border-bottom: 1px solid #c0c4cc;
+  margin-bottom: 10px;
+}
+</style>

+ 14 - 3
src/views/modules/warehouse/stock-order.vue

@@ -26,11 +26,13 @@
       </el-form-item>
       <el-form-item>
         <el-button @click="getDataList()">查询</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>
+      <el-form-item>
+        <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-form-item>
     </el-form>
     <el-table
       :data="dataList"
@@ -116,18 +118,21 @@
     </el-pagination>
     <!--    入库-->
     <stock-order-inbound v-if="inboundVisible" ref="inbound" @refreshDataList="getDataList"></stock-order-inbound>
+    <stock-order-outbound v-if="outboundVisible" ref="outbound" @refreshDataList="getDataList"></stock-order-outbound>
   </div>
 </template>
 
 <script>
   import UserComponent from '../common/user-component'
   import StockOrderInbound from './stock-order-inbound'
+  import StockOrderOutbound from './stock-order-outbound'
   export default {
     name: 'stock-order',
-    components: {StockOrderInbound, UserComponent},
+    components: {StockOrderInbound, UserComponent, StockOrderOutbound},
     data () {
       return {
         inboundVisible: false,
+        outboundVisible: false,
         dataForm: {
           userId: '',
           date: '',
@@ -202,6 +207,12 @@
         this.$nextTick(() => {
           this.$refs.inbound.init()
         })
+      },
+      outBound () {
+        this.outboundVisible = true
+        this.$nextTick(() => {
+          this.$refs.outbound.init()
+        })
       }
     }
   }

+ 172 - 0
src/views/modules/warehouse/template-delivery-look.vue

@@ -0,0 +1,172 @@
+<template>
+  <el-dialog
+    title="查看模板出库"
+    width="70%"
+    :close-on-click-modal="false"
+    :visible.sync="visible">
+    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
+      <el-row class="my-row">
+        <el-col :span="12">
+          <el-form-item label="编码">
+            <el-input v-model="dataForm.code" disabled placeholder="编码"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12" style="padding-left: 20px">
+          <el-form-item label="模板">
+            <el-input v-model="dataForm.code" disabled placeholder="模板"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row class="my-row">
+        <el-form-item label="备注">
+            <el-input v-model="dataForm.code" disabled 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 = []
+        this.addOne()
+      },
+      addOne () {
+        this.dataForm.push({
+          id: '',
+          code: getUUID(),
+          amount: 0,
+          applicant: '',
+          approver: '',
+          batchNumber: '',
+          cnt: '',
+          materialId: '',
+          materialName: '',
+          notes: '',
+          orgId: '',
+          price: '',
+          recordType: '',
+          source: '',
+          state: 0,
+          templateItemPlanId: '',
+          usage: '',
+          userId: '',
+          orgName: ''
+        })
+      },
+      removeOne (index) {
+        this.dataForm.splice(index, 1)
+        if (this.dataForm.length === 0) {
+          this.addOne()
+        }
+      },
+      // 表单提交
+      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>
+.my-line{
+  border-bottom: 1px solid #c0c4cc;
+  margin-bottom: 10px;
+}
+</style>

+ 181 - 2
src/views/modules/warehouse/template-delivery.vue

@@ -1,10 +1,189 @@
 <template>
-    <div>模板出库管理</div>
+  <div class="stock-order">
+    <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+      <el-form-item label="模板名称">
+        <el-input v-model="dataForm.name" placeholder="模板名称" clearable></el-input>
+      </el-form-item>
+      <el-form-item label="申请日期">
+        <el-date-picker
+          v-model="dataForm.date"
+          value-format="yyyy-MM-dd"
+          type="daterange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button @click="getDataList()">查询</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table
+      :data="dataList"
+      border
+      v-loading="dataListLoading"
+      @selection-change="selectionChangeHandle"
+      style="width: 100%;">
+      <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
+        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="-"
+        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>
+        </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>
+    <!--    入库-->
+    <template-delivery-look v-if="inboundVisible" ref="inbound" @refreshDataList="getDataList"></template-delivery-look>
+    <stock-order-outbound v-if="outboundVisible" ref="outbound" @refreshDataList="getDataList"></stock-order-outbound>
+  </div>
 </template>
 
 <script>
+  import templateDeliveryLook from './template-delivery-look'
+  import StockOrderOutbound from './stock-order-outbound'
   export default {
-    name: 'template-delivery'
+    name: 'stock-order',
+    components: {templateDeliveryLook, StockOrderOutbound},
+    data () {
+      return {
+        inboundVisible: false,
+        outboundVisible: false,
+        dataForm: {
+          name: '',
+          date: ''
+        },
+        recordTypeOptions: [
+          {
+            value: null,
+            label: '请选择'
+          },
+          {
+            value: '0',
+            label: '入库'
+          },
+          {
+            value: '1',
+            label: '出库'
+          }
+        ],
+        dataList: [],
+        pageIndex: 1,
+        pageSize: 10,
+        totalPage: 0,
+        dataListLoading: false,
+        dataListSelections: []
+      }
+    },
+    methods: {
+      // 获取数据列表
+      getDataList () {
+        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) {
+        this.pageSize = val
+        this.pageIndex = 1
+        this.getDataList()
+      },
+      // 当前页
+      currentChangeHandle (val) {
+        this.pageIndex = val
+        this.getDataList()
+      },
+      // 多选
+      selectionChangeHandle (val) {
+        this.dataListSelections = val
+      },
+      // 入库申请
+      inBound () {
+        this.inboundVisible = true
+        this.$nextTick(() => {
+          this.$refs.inbound.init()
+        })
+      },
+      outBound () {
+        this.outboundVisible = true
+        this.$nextTick(() => {
+          this.$refs.outbound.init()
+        })
+      }
+    }
   }
 </script>