Browse Source

物料申请单增删改查接口

黄梓星 2 năm trước cách đây
mục cha
commit
1df1eab4e4

+ 40 - 0
src/api/requisition/basic.js

@@ -0,0 +1,40 @@
+import request from '@/utils/request'
+
+// 获取物料申请单列表
+export function getReqList(params) {
+  return request({
+    url: `/system/apply/material/list`,
+    method: 'get',
+    params: params
+  })
+}
+// 物料申请单-新增
+export function addReq(data) {
+  return request({
+    url: `/system/apply/material`,
+    method: 'post',
+    data: data
+  })
+}
+// 获取物料申请单详情
+export function getReqDetail(id) {
+  return request({
+    url: `/system/apply/material/${id}`,
+    method: 'get',
+  })
+}
+// 物料申请单-修改提交
+export function editReq(data) {
+  return request({
+    url: `/system/apply/material`,
+    method: 'put',
+    data: data
+  })
+}
+// 物料申请单-删除
+export function delReq(id) {
+  return request({
+    url: `/system/apply/material/${id}`,
+    method: 'delete',
+  })
+}

+ 2 - 1
src/views/material/changeApply/index.vue

@@ -92,7 +92,7 @@
           >
           <template slot-scope="scope">
             <el-button type="text" size="small" @click="check(scope.row)">查看</el-button>
-            <el-button @click="edit(scope.row)" v-if="scope.row.status == 0 || scope.row.status == 4" type="text" size="small">修改</el-button>
+            <el-button @click="edit(scope.row)" v-if="scope.row.status == 0 || scope.row.status == 4" type="text" size="small">编辑</el-button>
             <el-button type="text" size="small" @click="deleteRow(scope.row)">删除</el-button>
           </template>
         </el-table-column>
@@ -156,6 +156,7 @@ export default {
       this.isList = false
       this.isComponent = 'addApply'
       this.page = 'add'
+      this.disable = false
     },
     getList(val) {
       console.log('val',val)

+ 1047 - 0
src/views/material/requisition/add.vue

@@ -0,0 +1,1047 @@
+<template>
+  <div class="requisition_add">
+    <el-tabs type="border-card" v-model="tabValue" @tab-click="handleClick">
+      <el-tab-pane label="基本信息" name="first">
+        <div style="width: 100%;height: 680px;overflow-y: auto; overflow-x: hidden;">
+        <el-form :model="basicForm" :rules="basicRules" ref="basic" label-width="160px">
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="单据编码" prop="billCode">
+                <el-input disabled v-model="basicForm.billCode"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="申请组织" prop="orgId">
+                <el-input disabled v-model="basicForm.orgId"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="四级分类" prop="classifyId">
+                <el-input :disabled="disable" v-model="basicForm.classifyId">
+                  <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test01"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="医药物料" prop="isMedicine">
+                <el-select
+                    v-model="basicForm.isMedicine"
+                    placeholder="医药物料"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                  </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="DI" prop="diCode">
+                <el-input :disabled="disable" v-model="basicForm.diCode"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="物料名称" prop="name">
+                <el-input :disabled="disable" v-model="basicForm.name"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="英文名称" prop="enName">
+                <el-input :disabled="disable" v-model="basicForm.enName"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="简称" prop="commonName">
+                <el-input :disabled="disable" v-model="basicForm.commonName"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="规格" prop="specification">
+                <el-input :disabled="disable" v-model="basicForm.specification"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="型号" prop="model">
+                <el-input :disabled="disable" v-model="basicForm.model"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="计量单位" prop="unitId">
+                <el-input :disabled="disable" v-model="basicForm.unitId">
+                  <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test02"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="生产厂家/代理人" prop="manufacturerId">
+                <el-input :disabled="disable" v-model="basicForm.manufacturerId">
+                  <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test02"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="注册人/上市许可持有人" prop="registrant">
+                <el-input :disabled="disable" v-model="basicForm.registrant"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="产地" prop="originPlace">
+                <el-input :disabled="disable" v-model="basicForm.originPlace"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="厂家物料名称" prop="manufacturersMaterialName">
+                <el-input :disabled="disable" v-model="basicForm.manufacturersMaterialName"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="B2C物料" prop="isB2c">
+                <el-select
+                    v-model="basicForm.medicineMaterial"
+                    placeholder="B2C物料"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="成套件" prop="assembly">
+                <el-select
+                    v-model="basicForm.assembly"
+                    placeholder="成套件"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="批号及库存状态管理" prop="isInventoryStatus">
+                <el-select
+                    v-model="basicForm.isInventoryStatus"
+                    placeholder="批号及库存状态管理"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="效期管理" prop="expiryDateManagerment">
+                <el-select
+                    v-model="basicForm.expiryDateManagerment"
+                    placeholder="效期管理"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="近效期管理" prop="nearOnsetManagerment">
+                <el-select
+                    v-model="basicForm.nearOnsetManagerment"
+                    placeholder="近效期管理"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="有效期" prop="usefulLife">
+                <el-select
+                    v-model="basicForm.usefulLife"
+                    placeholder="有效期"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="有效期单位" prop="expiryUnitId">
+                <el-select
+                    v-model="basicForm.expiryUnitId"
+                    placeholder="有效期单位"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="有效期至单位" prop="usefulLifeUnitId">
+                <el-select
+                    v-model="basicForm.usefulLifeUnitId"
+                    placeholder="有效期至单位"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="近效期预警天数" prop="recentWarningPeriod">
+                <el-select
+                    v-model="basicForm.recentWarningPeriod"
+                    placeholder="近效期预警天数"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="有效期单位" prop="expiryUnitId">
+                <el-select
+                    v-model="basicForm.expiryUnitId"
+                    placeholder="有效期单位"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="有效期至单位" prop="usefulLifeUnitId">
+                <el-select
+                    v-model="basicForm.usefulLifeUnitId"
+                    placeholder="有效期至单位"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="近效期预警天数" prop="recentWarningPeriod">
+                <el-select
+                    v-model="basicForm.recentWarningPeriod"
+                    placeholder="近效期预警天数"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="存储条件" prop="storageCondition">
+                <el-select
+                    v-model="basicForm.storageCondition"
+                    placeholder="存储条件"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="运输条件" prop="transportationCondition">
+                <el-select
+                    v-model="basicForm.transportationCondition"
+                    placeholder="运输条件"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="物料税类" prop="materialRate">
+                <el-input :disabled="disable" v-model="basicForm.materialRate"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="交货周期" prop="deliveryPeriod">
+                <el-select
+                    v-model="basicForm.deliveryPeriod"
+                    placeholder="交货周期"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="最小起定量" prop="minOrderQty">
+                <el-input :disabled="disable" v-model="basicForm.minOrderQty"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="最小包装量" prop="minPackQty">
+                <el-input :disabled="disable" v-model="basicForm.minPackQty"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="采购员" prop="puPersonnelId">
+                <el-input :disabled="disable" v-model="basicForm.puPersonnelId"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="最小批量" prop="minBatchQty">
+                <el-input :disabled="disable" v-model="basicForm.minBatchQty"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="长度(MM)" prop="length">
+                <el-input :disabled="disable" v-model="basicForm.length"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="高度(MM)" prop="height">
+                <el-input :disabled="disable" v-model="basicForm.height"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="宽度(MM)" prop="width">
+                <el-input :disabled="disable" v-model="basicForm.width"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="箱包装数" prop="boxPackaingQty">
+                <el-input :disabled="disable" v-model="basicForm.boxPackaingQty"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="中包装数" prop="mediumPackageQty">
+                <el-input :disabled="disable" v-model="basicForm.mediumPackageQty"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="包装说明" prop="packExplain">
+                <el-input :disabled="disable" v-model="basicForm.packExplain"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="业务线" prop="businessLine">
+                <el-input :disabled="disable" v-model="basicForm.businessLine"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="物料申请人" prop="proposerId">
+                <el-input :disabled="disable" v-model="basicForm.proposerId"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="条形码" prop="barCode">
+                <el-input :disabled="disable" v-model="basicForm.barCode"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="使用期限/次数" prop="serviceLife">
+                <el-input :disabled="disable" v-model="basicForm.serviceLife"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="医保代码" prop="healthCode">
+                <el-input :disabled="disable" v-model="basicForm.healthCode"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="原型系统物料编码" prop="oriMaterialCode">
+                <el-input :disabled="disable" v-model="basicForm.oriMaterialCode"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="生产许可证/经营许可证/备案号" prop="productionPermit">
+                <el-input :disabled="disable" v-model="basicForm.productionPermit"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="一级分类" prop="oneClass">
+                <el-input :disabled="disable" v-model="basicForm.oneClass"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="二级分类" prop="twoClass">
+                <el-input :disabled="disable" v-model="basicForm.twoClass"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="三级分类" prop="threeClass">
+                <el-input :disabled="disable" v-model="basicForm.threeClass"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="启用状态" prop="isEnable">
+                <el-input :disabled="disable" v-model="basicForm.isEnable"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="备注" prop="remark">
+                <el-input :disabled="disable" v-model="basicForm.remark"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        </div>
+      </el-tab-pane>
+
+      <el-tab-pane label="医药属性" name="second">
+        <el-form :model="basicForm2" ref="basic2" label-width="160px">
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="药品" prop="isDrug">
+                <el-select
+                    v-model="basicForm2.isDrug"
+                    placeholder="药品"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="dict in dict.type.sys_medicine"
+                      :key="dict.value"
+                      :label="dict.label"
+                      :value="dict.value"
+                    />
+                  </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="注册证号/备案凭证编号" prop="registrationNo">
+                <el-input :disabled="disable" v-model="basicForm2.registrationNo"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="医疗器械" prop="medicalInstruments">
+                <el-select
+                    v-model="basicForm2.medicalInstruments"
+                    placeholder="医疗器械"
+                    clearable
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="dict in dict.type.medical_instruments"
+                      :key="dict.value"
+                      :label="dict.label"
+                      :value="dict.value"
+                    />
+                  </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="通用名称" prop="commonName">
+                <el-input :disabled="disable" v-model="basicForm2.commonName"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="批准文号" prop="ratifyBatchNo">
+                <el-input :disabled="disable" v-model="basicForm2.ratifyBatchNo"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="剂型" prop="dosageFrom">
+                <el-input :disabled="disable" v-model="basicForm2.dosageFrom"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="旧注册证号" prop="oriRegistrationNo">
+                <el-input :disabled="disable" v-model="basicForm2.oriRegistrationNo"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="养护类型" prop="curingType">
+                <el-input :disabled="disable" v-model="basicForm2.curingType"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <!-- <el-row style="margin-bottom: 12px;">
+          <span>物料类别</span>
+        </el-row>
+        <el-row style="margin-bottom: 12px;">
+          <el-button type="primary" size="small" plain @click="addLine">新增</el-button>
+          <el-button type="primary" size="small" plain @click="handleDelete">删除</el-button>
+          <el-button type="primary" size="small" plain @click="testsave">暂存</el-button>
+        </el-row> -->
+        <!-- <el-row>
+          <el-col :span="12">
+            <el-table 
+            :data="basicForm2.medicineTypeChanges"
+            class="request-table"
+            @selection-change="handleSelectionChange"
+            >
+              <el-table-column type="selection" width="55" />
+              <el-table-column label="序号" align="center" prop="sort">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.sort"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column label="物料类别" align="center" prop="medicineCode">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.medicineCode"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column label="类别名称" align="center" prop="medicineName">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.medicineName"></el-input>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-col>
+        </el-row> -->
+      </el-tab-pane>
+
+      <!-- <el-tab-pane label="修改记录" name="third">
+        <el-table 
+          :data="basicForm.changeRecords"
+          class="request-table"
+          >
+          <el-table-column label="字段名称" align="center" prop="pageCondtion" />
+          <el-table-column label="变更前" align="center" prop="beforeChangeValue" />
+          <el-table-column label="变更后" align="center" prop="afterChangeValue" />
+        </el-table>
+      </el-tab-pane> -->
+
+      <el-tab-pane label="单据信息" name="fourth">
+        <el-form :model="basicForm" ref="info" label-width="160px">
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="申请人" prop="createBy">
+                <el-input disabled v-model="basicForm.createBy"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="申请时间" prop="applicationTime">
+                <el-input disabled v-model="basicForm.applicationTime"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="创建人" prop="createByName">
+                <el-input disabled v-model="basicForm.createByName"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="创建时间" prop="createTime">
+                <el-input disabled v-model="basicForm.createTime"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="最后修改人" prop="updateByName">
+                <el-input disabled v-model="basicForm.updateByName"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="最后修改时间" prop="updateTime">
+                <el-input disabled v-model="basicForm.updateTime"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="最后审核人" prop="reviewedByName">
+                <el-input disabled v-model="basicForm.reviewedByName"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="最后审核时间" prop="approvalTime">
+                <el-input disabled v-model="basicForm.approvalTime"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="单据状态" prop="status">
+                <el-input disabled v-model="basicForm.status"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </el-tab-pane>
+    </el-tabs>
+
+    <div class="btn_group">
+      <el-col :span="1.5">
+        <el-button type="primary" size="small" plain @click="save" v-if="pageStu == 'add' || pageStu == 'edit'">保存</el-button>
+      </el-col>
+      <el-col :span="1.5" style="margin: 0 10px;">
+        <el-button type="primary" size="small" plain @click="submit" v-if="pageStu == 'add' || pageStu == 'edit'">提交</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" size="small" plain @click="back">返回</el-button>
+      </el-col>
+    </div>
+
+    <popDialog
+      ref="contractSelect"
+      @doSubmit="selectionsToInput"
+      :selectData="selectData"
+      :single="true"
+    />
+
+    <factory
+      ref="contractSelect2"
+      @doSubmit="selectionsToInput2"
+      :selectData="selectData2"
+      :single="true"
+    />
+  </div>
+</template>
+
+<script>
+import popDialog from '@/components/PopDialog/index.vue'
+import factory from '@/components/PopDialog/productFactory.vue'
+import { addReq, getReqDetail, editReq } from '@/api/requisition/basic'
+export default {
+  name: 'requisition_add',
+  dicts: ['sys_storage_condition', 'sys_conditions_carriage', 'sys_medicine', 'medical_instruments', 'curing_type'],
+  components: {
+    popDialog,
+    factory
+  },
+  props: ['pageStu', 'row', 'disable'],
+  model: {
+    prop: 'isList',
+    event: 'jugislist'
+  },
+  data() {
+    return{
+      tabValue: 'first',
+      basicForm: {
+        billCode: '',
+        orgId: '',
+        // 四级分类/物料分类
+        classifyId: '',
+        // 是否医药物料
+        isMedicine: '',
+        // DI
+        diCode: '',
+        // 物料名称
+        name: '',
+        // 英文名称
+        enName: '',
+        commonName: '',
+        specification: '',
+        model: '',
+        unitId: '',
+        manufacturerId: '',
+        registrant: '',
+        originPlace: '',
+        manufacturersMaterialName: '',
+        isB2c: '',
+        assembly: '',
+        isInventoryStatus: '',
+        expiryDateManagerment: '',
+        nearOnsetManagerment: '',
+        usefulLife: '',
+        expiryUnitId: '',
+        usefulLifeUnitId: '',
+        recentWarningPeriod: '',
+        storageCondition: '',
+        transportationCondition: '',
+        materialRate: '',
+        deliveryPeriod: '',
+        minOrderQty: '',
+        minPackQty: '',
+        puPersonnelId: '',
+        minBatchQty: '',
+        length: '',
+        height: '',
+        width: '',
+        boxPackaingQty: '',
+        mediumPackageQty: '',
+        packExplain: '',
+        businessLine: '',
+        proposerId: '',
+        barCode: '',
+        serviceLife: '',
+        healthCode: '',
+        oriMaterialCode: '',
+        productionPermit: '',
+        oneClass: '',
+        twoClass: '',
+        threeClass: '',
+        isEnable: '',
+        remark: '',
+        // 物料申请单-单据信息
+        applyBillInfo: {
+          createByName: '',
+          createTime:'',
+          updateByName: '',
+          updateTime: '',
+          reviewedByName: '',
+          auditTime: ''
+        },
+        // 单据信息字段
+        status: ''
+      },
+      options: [{
+        value: '0',
+        label: '是'
+      },{
+        value: '2',
+        label: '否'
+      }],
+      basicRules: {},
+      basicForm2: {
+        // 是否药品
+        isDrug: '',
+        registrationNo: '',
+        medicalInstruments: '',
+        commonName: '',
+        ratifyBatchNo: '',
+        dosageFrom: '',
+        oriRegistrationNo: '',
+        curingType: '',
+        // 医药属性子表
+        // medicineTypeChanges:[
+        // ],
+      },
+      // tableList: [],
+      // 子表选中
+      ids: [],
+      // 弹窗
+      name: '',
+      selectData: [],
+      selectData2: []
+    }
+  },
+  // watch: {
+  //   value: {
+  //     handler (newVal) {
+  //       this.selectData = []
+  //       if (newVal) {
+  //         newVal.split(',').forEach((id) => { // 回显拿数据
+  //           this.contractService.queryById(id).then(({data}) => {
+  //             if (data && data.id !== '') {
+  //               this.selectData.push(data)
+  //             }
+  //           })
+  //         })
+  //       }
+  //     },
+  //     immediate: true,
+  //     deep: false
+  //   },
+  //   selectData: {
+  //     handler (newVal) {
+  //       this.name = newVal.map(contract => contract.contractName).join(',')
+  //     },
+  //     immediate: false,
+  //     deep: false
+  //   }
+  // },
+  mounted() {
+    this.$nextTick(() => {
+      // console.log('页面状态',this.pageStu)
+      if(this.pageStu == 'check') {
+        // alert('详情页面:')
+        console.log('页面状态',this.pageStu)
+        console.log('数据', this.row)
+        this.getDetails(this.row)
+      } else if (this.pageStu == 'edit') {
+        // alert('修改页面')
+        console.log('页面状态',this.pageStu)
+        console.log('数据', this.row)
+        this.getDetails(this.row)
+      } else if(this.pageStu == 'add') {
+        // alert('新增页面')
+        console.log('页面状态',this.pageStu)
+      }
+    })
+  },
+  methods: {
+    handleClick(tab, event) {
+      console.log(tab, event);
+      console.log('页面状态',this.pageStu)
+    },
+    // 如果是详情进入,则调用详情接口
+    getDetails(row) {
+      getReqDetail(row.id).then(res => {
+        console.log('res',res)
+        if(res.code === 200) {
+          this.basicForm = res.data
+          if(res.data.sysMaterialMedcineApply) {
+            this.basicForm2 = res.data.sysMaterialMedcineApply
+          }
+        }
+      })
+    },
+    save() {
+      if(this.pageStu == 'edit') {
+        alert(111)
+        let sparams = {...this.basicForm, ...{status: 0}}
+        sparams.sysMaterialMedcineApply = this.basicForm2
+        console.log('提交参数', sparams)
+        editReq(sparams).then(res => {
+          if(res.code === 200) {
+            this.$message({
+              message: res.msg,
+              type: 'success'
+            });
+            this.back()
+          }
+        })
+      } else {
+        alert(222)
+        // alert('保存传status:0')
+        let sparams = {...this.basicForm, ...{status: 0}}
+        sparams.sysMaterialMedcineApply = this.basicForm2
+        console.log('保存参数', sparams)
+        addReq(sparams).then(res => {
+          if(res.code === 200) {
+            this.$message({
+              message: res.msg,
+              type: 'success'
+            });
+            this.back()
+          }
+        })
+      }
+    },
+    submit() {
+      // alert('提交传status:1')
+      let sparams = {...this.basicForm, ...{status: 1}}
+      sparams.sysMaterialMedcineApply = this.basicForm2
+      console.log('提交参数', sparams)
+      editReq(sparams).then(res => {
+        if(res.code === 200) {
+          this.$message({
+            message: res.msg,
+            type: 'success'
+          });
+          this.back()
+        }
+      })
+    },
+    back() {
+      this.$emit('jugislist', true)
+      let queryParams = {
+        pageNum: 1,
+        pageSize: 10
+      }
+      this.$emit('refresh', queryParams)
+    },
+    // 子表增删行
+    // handleSelectionChange(val) {
+    //   this.ids = val
+    //   console.log('this.ids',this.ids)
+    // },
+    // addLine() {
+    //   //添加行数
+    //   let newValue = {
+    //     sort:'',
+    //     medicineCode: '',
+    //     medicineName: '',
+    //   };
+    //   this.basicForm2.medicineTypeChanges.push(newValue);
+    // },
+    // handleDelete(index) {
+    //   if(this.ids.length == 0) {
+    //     this.$message({
+    //       message: '请选择删除条目',
+    //       type: 'warning'
+    //     });
+    //   } else {
+    //     // console.log('index',index)
+    //     // this.basicForm2.medicineTypeChanges.splice(index, 1);
+    //     this.basicForm2.medicineTypeChanges = this.basicForm2.medicineTypeChanges.filter(item =>
+    //      !this.ids.some(ele =>
+    //      ele.sort == item.sort))
+    //   }
+    // },
+    // testsave() {
+    //   console.log('暂存表格:', this.basicForm2.medicineTypeChanges)
+    //   console.log('暂存表单1', this.basicForm)
+    //   let params = {...this.basicForm, ...this.basicForm2}
+    //   console.log('暂存总表单', params)
+    // },
+    // 设置选中
+    selectionsToInput (selections) {
+      console.log('父组件拿到的:', selections)
+      this.selectData = selections
+      this.$emit('getInfo', this.selectData)
+      getMaterialDetails(selections[0].id).then(res => {
+        console.log('res',res)
+        if (res.code === 200) {
+          let data = res.data.data
+          // 物料id
+          this.basicForm.materialId = data.id
+          // 物料分类Id
+          this.basicForm.materialClassifyId = data.classifyId
+          this.basicForm.materialCode = data.code
+          this.basicForm.materialName = data.name
+          this.basicForm.medicineMaterial = data.isMedicine
+          this.basicForm.oneClass = data.oneClass
+          this.basicForm.twoClass = data.twoClass
+          this.basicForm.threeClass = data.threeClass
+          this.basicForm.fourClass = data.fourClass
+          this.basicForm.specification = data.specification
+          this.basicForm.model = data.model
+          this.basicForm.registrant = data.registrant
+          this.basicForm.storageConditions = data.storageCondition
+          this.basicForm.transportCondition = data.transportationCondition
+          this.basicForm.remark = data.deliveryPeriod
+          if(data.medcines.length !== 0) {
+            this.basicForm2.drug = data.medcines[0].isDrug
+            this.basicForm2.registrationNo = data.medcines[0].registrationNo
+            this.basicForm2.medicalDevices = data.medcines[0].medicalInstruments
+            this.basicForm2.maintenanceType = data.medcines[0].curingType
+          }
+        }
+      })
+    },
+    selectionsToInput2 (selections) {
+      console.log('选择的数据',selections)
+      this.basicForm.factory = selections[0].manufactureName
+    },
+    // 显示列表
+    test01() {
+      console.log('测试点击')
+      this.$refs.contractSelect.init()
+    },
+    test02() {
+      console.log('测试弹窗2');
+      this.$refs.contractSelect2.init()
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+  .requisition_add {
+  height: calc(100vh - 84px);
+  padding: 12px;
+  box-sizing: border-box;
+}
+.btn_group {
+  width: 100%;
+  margin: 20px 0;
+  display: flex;
+  justify-content: center;
+}
+</style>

+ 204 - 179
src/views/material/requisition/index.vue

@@ -1,217 +1,242 @@
-<!-- 物料申请单 -->
 <template>
-  <div class="material-requisition">
-    <!-- 操作栏 -->
+  <div class="requisition">
+    <div class="applyList" v-if="isList">
     <el-row :gutter="10" class="mb10">
-      <!-- 新增、修改、删除、复制 -->
       <el-col :span="1.5">
-        <el-button-group>
-          <el-button size="small" @click="handleInster">新增</el-button>
-          <el-button size="small" @click="handleEdit">修改</el-button>
-          <el-button size="small" @click="handleDel">删除</el-button>
-          <el-button size="small" @click="handleCopy">复制</el-button>
-        </el-button-group>
+
+        <el-select size="small" v-model="textValue" placeholder="请选择">
+        <el-option
+          v-for="item in text"
+          :key="item.value"
+          :label="item.label"
+          :value="item.value">
+        </el-option>
+      </el-select>
+
+      <el-select size="small" v-model="ruleValue" placeholder="请选择">
+        <el-option
+          v-for="item in rule"
+          :key="item.value"
+          :label="item.label"
+          :value="item.value">
+        </el-option>
+      </el-select>
+
+      <el-input
+        v-model="input"
+        size="small"
+        placeholder="请输入"
+        clearable
+        style="width: 240px"
+      />
+
       </el-col>
 
-      <!-- 查询、刷新 -->
       <el-col :span="1.5">
-        <el-button-group>
-          <el-button size="small" @click="handleQuery">查询</el-button>
-          <el-button size="small" @click="handleRefresh">刷新</el-button>
-        </el-button-group>
+        <el-button type="primary" size="small" plain>查询</el-button>
       </el-col>
-
-      <!-- 提交、收回  审批、取消审批、查看审批意见 -->
       <el-col :span="1.5">
-        <el-button-group>
+        <el-button type="primary" size="small" plain>高级查询</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" size="small" plain>重置</el-button>
+      </el-col>
 
-          <el-dropdown split-button size="small" @click="handleSubmit(true)" @command="handleSubmit">
-            提交
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item :command="isSubmit(true)">提交</el-dropdown-item>
-              <el-dropdown-item :command="isSubmit(false)">收回</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
+    </el-row>
 
-          <el-dropdown split-button size="small" @click="handleApproval('approval')" @command="handleApproval">
-            审批
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item :command="approvalState('approval')">审批</el-dropdown-item>
-              <el-dropdown-item :command="approvalState('cancel')">取消审批</el-dropdown-item>
-              <el-dropdown-item :command="approvalState('view')">查看审批意见</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
-        </el-button-group>
+    <el-row :gutter="10" class="mb10">
+      <el-col :span="1.5">
+        <el-button type="primary" size="small" plain @click="newAdd">新增</el-button>
       </el-col>
-
-      <!-- 附件管理 -->
       <el-col :span="1.5">
-        <el-button-group>
-          <el-button size="small" v-if="isComponent == 'requestDetails'">附件管理</el-button>
-          <!-- <el-button size="small">维护物料</el-button> -->
-
-        </el-button-group>
+        <el-button type="primary" size="small" plain>导入</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" size="small" plain>导出</el-button>
+      </el-col>
+      <!-- <el-col :span="1.5">
+        <el-button type="primary" size="small" plain>批量提交</el-button>
       </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" size="small" plain>批量删除</el-button>
+      </el-col> -->
     </el-row>
 
-    <el-card class="request-list">
-      <!-- v-loading="loading" @selection-change="handleSelectionChange" -->
-      <el-table :data="taskList" @cell-dblclick="handledbClick" class="request-table">
-        <el-table-column type="index" label="序号" width="55" align="center" />
-        <el-table-column label="主键" align="center" prop="id" />
-        <el-table-column label="编码" align="center" prop="code" />
-        <el-table-column label="名称" align="center" prop="name" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+    <el-card>
+      <el-table 
+        :data="tableList" 
+        class="request-table"
+        fit
+        max-height="680"
+        @selection-change="handleSelectionChange"
+      >
+        <!-- <el-table-column type="selection" width="55" /> -->
+        <el-table-column label="序号" align="center" prop="sort" />
+        <el-table-column label="申请组织" align="center" prop="orgId" />
+        <el-table-column label="单据编码" align="center" width="200" prop="code" />
+        <el-table-column label="目的组织" align="center" prop="orgId" />
+        <el-table-column label="申请人" align="center" prop="createBy" />
+        <el-table-column label="申请时间" align="center" width="150" prop="applicationTime" />
+        <el-table-column label="单据状态" align="center" prop="status" :formatter="statusJug" />
+        <el-table-column label="启用状态" align="center" prop="status" />
+        <el-table-column label="物料编码" align="center" width="150" prop="materialCode" />
+        <el-table-column label="物料名称" align="center" prop="materialName" />
+        <el-table-column label="最后审批人" align="center" width="120" prop="approver" />
+        <el-table-column label="最后审核时间" align="center" width="150" prop="approvalTime" />
+        <el-table-column label="创建人" align="center" prop="createBy" />
+        <el-table-column label="创建时间" align="center" width="150" prop="createTime" />
+        <el-table-column label="最后修改人" align="center" width="120" prop="updateBy" />
+        <el-table-column label="最后修改时间" align="center" width="150" prop="updateTime" />
+        <el-table-column
+          fixed="right"
+          label="操作"
+          align="center"
+          width="150"
+          >
           <template slot-scope="scope">
-            <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
-              v-hasPermi="['system:task:edit']">修改</el-button>
-            <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
-              v-hasPermi="['system:task:remove']">删除</el-button>
+            <el-button type="text" size="small" @click="check(scope.row)">查看</el-button>
+            <el-button @click="edit(scope.row)" v-if="scope.row.status == 0 || scope.row.status == 4" type="text" size="small">编辑</el-button>
+            <el-button type="text" size="small" @click="deleteRow(scope.row)">删除</el-button>
           </template>
         </el-table-column>
       </el-table>
 
-      <!-- v-show="total > 0" -->
-      <pagination :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
-        @pagination="getList" />
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :page-sizes="[5, 10, 15, 20]"
+        :page-size=queryParams.pageSize
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total"
+        style="text-align: center;">
+      </el-pagination>
     </el-card>
+    </div>
+
+    <component :is="isComponent" v-model="isList" :pageStu="page" :disable="disable" :row="rowDetail" @refresh="getList" v-if="!isList"/>
   </div>
 </template>
 
 <script>
-import './style/index.scss';
-
-import requestList from './list.vue';
-import requestDetails from './details.vue';
-
-import Store from '@/store/index'
+import addReq from './add.vue';
+import { getReqList, delReq } from '@/api/requisition/basic'
 export default {
-  name: "material-requisition",
+  name: 'requisition',
   components: {
-    requestList,
-    requestDetails,
+    addReq
   },
   data() {
-    return {
-      isComponent: 'requestList',
-      // 头部参数
-      headerParams: {
-        // 是否编辑
-        isEdit: false,
-      },
-      // 总条数
-      total: 1,
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        code: null,
-        name: null
-      },
-      // 物料基本信息数据
-      taskList: [
-        {
-          id: 1,
-          code: '001',
-          name: '名称'
-        }
-      ],
-      // 总条数
-      total: 0,
-      // 查询参数
+    return{
+      textValue: 1,
+      text: [{label: '文本字段', value: 1}, {label: '字典字段', value: 2}],
+      ruleValue: 1,
+      rule:[{label: '包含', value: 1}, {label: '不包含', value: 2}, {label: '等于', value: 3}, {label: '不等于', value: 4}],
+      input: '',
+      // 
+      tableList: [],
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
-        code: null,
-        name: null
+        pageSize: 10
       },
-    };
+      total:0,
+      // isComponent
+      isComponent:'addReq',
+      isList: true,
+      // 页面状态
+      page: '',
+      rowDetail: {},
+      disable: false
+    }
   },
   created() {
-    this.getList();
-    console.log(Store.state.user, 'Store');
+    
+  },
+  mounted() {
+    this.getList(this.queryParams)
   },
   methods: {
-    // 新增
-    handleInster() {
-      console.log('新增');
-      this.isComponent = 'requestDetails';
-    },
-    // 修改
-    handleEdit() {
-      console.log('修改');
-    },
-    // 删除
-    handleDel() {
-      console.log('删除');
-    },
-    // 复制
-    handleCopy() {
-      console.log('复制');
-    },
-    // 查询
-    handleQuery() {
-      console.log('查询');
-    },
-    // 刷新
-    handleRefresh() {
-      console.log('刷新');
-    },
-    // 提交
-    handleSubmit(val) {
-      console.log(val, '提交');
-    },
-    isSubmit(type) {
-      return type
-    },
-    // 审批
-    handleApproval(val) {
-      console.log(val, '审批');
-    },
-    approvalState(type) {
-      return type
-    },
-    // 触发动态组件
-    handleActionBar(params) {
-      console.log(`需要更换至${params}~~~`);
-      this.isComponent = params;
-    },
-
-    handleClick() { },
-    /** 查询【请填写功能名称】列表 */
-    getList() {
-
-    },
-    // 取消按钮
-    cancel() {
-
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 双击行
-    handledbClick(e) {
-      console.log(e, '双击行');
-      // console.log(this.$tab.openPage('测试', '/material/requisition/detail'), 'this.$tab');
-      console.log(this.$router.push('/material/requisition/detail'), 'this.$tab');
-      // this.$emit("actionBar", "requestDetails")
-    },
-    handleSelectionChange() { },
-
+    newAdd() {
+      this.isList = false
+      this.isComponent = 'addReq'
+      this.page = 'add'
+      this.disable = false
+    },
+    getList(val) {
+      console.log('val',val)
+      getReqList(val).then(res => {
+        if (res.code === 200) {
+          this.tableList = res.rows
+          this.total = res.total
+        }
+      })
+    },
+    // 表格内状态栏判断值
+    statusJug(row) {
+      if (row.status === 0) {
+        return '未提交'
+      } else if (row.status === 1) {
+        return '审批中'
+      } else if (row.status === 2) {
+        return '已完成'
+      } else if (row.status === 3) {
+        return '已驳回'
+      }
+    },
+    // 
+    handleSelectionChange () {
+
+    },
+    check(row) {
+      console.log('查看详情', row)
+      this.isList = false
+      this.isComponent = 'addReq'
+      this.page = 'check'
+      this.rowDetail = row
+      this.disable = true
+    },
+    edit(row) {
+      console.log('修改先加载详情', row)
+      this.isList = false
+      this.isComponent = 'addReq'
+      this.page = 'edit'
+      this.rowDetail = row
+      this.disable = false
+    },
+    deleteRow(row) {
+      this.$confirm('是否删除此条数据?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          delReq(row.id).then(res => {
+            if(res.code === 200) {
+              this.$message({
+                message: res.msg,
+                type: 'success'
+              });
+              this.getList(this.queryParams)
+            }
+          })
+        }).catch(() => {})
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`);
+      this.queryParams.pageSize = val
+      this.getList(this.queryParams)
+    },
+    handleCurrentChange(val) {
+      console.log(`当前页: ${val}`);
+      this.queryParams.pageNum = val
+      this.getList(this.queryParams)
+    }
   }
-};
+}
 </script>
+
+<style scoped lang="scss">
+.requisition {
+  height: calc(100vh - 84px);
+  padding: 12px;
+  box-sizing: border-box;
+}
+</style>

+ 217 - 0
src/views/material/requisition/index_bak.vue

@@ -0,0 +1,217 @@
+<!-- 物料申请单 -->
+<template>
+  <div class="material-requisition">
+    <!-- 操作栏 -->
+    <el-row :gutter="10" class="mb10">
+      <!-- 新增、修改、删除、复制 -->
+      <el-col :span="1.5">
+        <el-button-group>
+          <el-button size="small" @click="handleInster">新增</el-button>
+          <el-button size="small" @click="handleEdit">修改</el-button>
+          <el-button size="small" @click="handleDel">删除</el-button>
+          <el-button size="small" @click="handleCopy">复制</el-button>
+        </el-button-group>
+      </el-col>
+
+      <!-- 查询、刷新 -->
+      <el-col :span="1.5">
+        <el-button-group>
+          <el-button size="small" @click="handleQuery">查询</el-button>
+          <el-button size="small" @click="handleRefresh">刷新</el-button>
+        </el-button-group>
+      </el-col>
+
+      <!-- 提交、收回  审批、取消审批、查看审批意见 -->
+      <el-col :span="1.5">
+        <el-button-group>
+
+          <el-dropdown split-button size="small" @click="handleSubmit(true)" @command="handleSubmit">
+            提交
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item :command="isSubmit(true)">提交</el-dropdown-item>
+              <el-dropdown-item :command="isSubmit(false)">收回</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+
+          <el-dropdown split-button size="small" @click="handleApproval('approval')" @command="handleApproval">
+            审批
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item :command="approvalState('approval')">审批</el-dropdown-item>
+              <el-dropdown-item :command="approvalState('cancel')">取消审批</el-dropdown-item>
+              <el-dropdown-item :command="approvalState('view')">查看审批意见</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+        </el-button-group>
+      </el-col>
+
+      <!-- 附件管理 -->
+      <el-col :span="1.5">
+        <el-button-group>
+          <el-button size="small" v-if="isComponent == 'requestDetails'">附件管理</el-button>
+          <!-- <el-button size="small">维护物料</el-button> -->
+
+        </el-button-group>
+      </el-col>
+    </el-row>
+
+    <el-card class="request-list">
+      <!-- v-loading="loading" @selection-change="handleSelectionChange" -->
+      <el-table :data="taskList" @cell-dblclick="handledbClick" class="request-table">
+        <el-table-column type="index" label="序号" width="55" align="center" />
+        <el-table-column label="主键" align="center" prop="id" />
+        <el-table-column label="编码" align="center" prop="code" />
+        <el-table-column label="名称" align="center" prop="name" />
+        <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="['system:task:edit']">修改</el-button>
+            <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+              v-hasPermi="['system:task:remove']">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <!-- v-show="total > 0" -->
+      <pagination :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+        @pagination="getList" />
+    </el-card>
+  </div>
+</template>
+
+<script>
+import './style/index.scss';
+
+import requestList from './list.vue';
+import requestDetails from './details.vue';
+
+import Store from '@/store/index'
+export default {
+  name: "material-requisition",
+  components: {
+    requestList,
+    requestDetails,
+  },
+  data() {
+    return {
+      isComponent: 'requestList',
+      // 头部参数
+      headerParams: {
+        // 是否编辑
+        isEdit: false,
+      },
+      // 总条数
+      total: 1,
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        code: null,
+        name: null
+      },
+      // 物料基本信息数据
+      taskList: [
+        {
+          id: 1,
+          code: '001',
+          name: '名称'
+        }
+      ],
+      // 总条数
+      total: 0,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        code: null,
+        name: null
+      },
+    };
+  },
+  created() {
+    this.getList();
+    console.log(Store.state.user, 'Store');
+  },
+  methods: {
+    // 新增
+    handleInster() {
+      console.log('新增');
+      this.isComponent = 'requestDetails';
+    },
+    // 修改
+    handleEdit() {
+      console.log('修改');
+    },
+    // 删除
+    handleDel() {
+      console.log('删除');
+    },
+    // 复制
+    handleCopy() {
+      console.log('复制');
+    },
+    // 查询
+    handleQuery() {
+      console.log('查询');
+    },
+    // 刷新
+    handleRefresh() {
+      console.log('刷新');
+    },
+    // 提交
+    handleSubmit(val) {
+      console.log(val, '提交');
+    },
+    isSubmit(type) {
+      return type
+    },
+    // 审批
+    handleApproval(val) {
+      console.log(val, '审批');
+    },
+    approvalState(type) {
+      return type
+    },
+    // 触发动态组件
+    handleActionBar(params) {
+      console.log(`需要更换至${params}~~~`);
+      this.isComponent = params;
+    },
+
+    handleClick() { },
+    /** 查询【请填写功能名称】列表 */
+    getList() {
+
+    },
+    // 取消按钮
+    cancel() {
+
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 双击行
+    handledbClick(e) {
+      console.log(e, '双击行');
+      // console.log(this.$tab.openPage('测试', '/material/requisition/detail'), 'this.$tab');
+      console.log(this.$router.push('/material/requisition/detail'), 'this.$tab');
+      // this.$emit("actionBar", "requestDetails")
+    },
+    handleSelectionChange() { },
+
+  }
+};
+</script>

+ 1 - 1
src/views/material/requisition/list.vue

@@ -4,7 +4,7 @@
     <!-- v-loading="loading" @selection-change="handleSelectionChange" -->
     <el-table :data="taskList" @cell-dblclick="handledbClick" class="request-table">
       <el-table-column type="index" label="序号" width="55" align="center" />
-      <el-table-column label="主键" align="center" prop="id" />
+      <el-table-column label="主键1" align="center" prop="id" />
       <el-table-column label="编码" align="center" prop="code" />
       <el-table-column label="名称" align="center" prop="name" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">