Browse Source

采购需求单和汇总单

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

+ 0 - 0
src/views/purchase/PurchaseDemandList/refers.vue → src/components/Refers/refers.vue


+ 44 - 30
src/views/purchase/DemandSummary/index.vue

@@ -5,25 +5,17 @@
         <el-row :gutter="10">
           <el-col :span="1.5">
             <el-form-item label="单据状态">
-              <el-select v-model="queryParams.code" size="small" style="width: 200px" clearable>
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
+              <el-select v-model="queryParams.status" size="small" style="width: 200px" clearable>
+                <el-option v-for="dict in dict.type.sys_status" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="采购员">
-              <el-input
-              v-model="queryParams.cgy"
-              size="small"
-              placeholder=""
-              clearable
-              style="width: 200px"
-              />
+              <el-select size="small" v-model="queryParams.buyerName" @focus="chooseOrg('CONTACTS_PARAM', true, '采购员')" style="width: 200px">
+                <el-option v-for="item in personOptions" :key="item.id" :label="item.name" :value="item.id" />
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
@@ -305,18 +297,18 @@
           :data="tableList" 
           fit
           show-summary
-          max-height="680"
+          max-height="480"
           @selection-change="handleSelectionChange"
         >
           <el-table-column type="selection" width="55" />
-          <el-table-column label="一级品类" align="center" prop="code"/>
-          <el-table-column label="物料编码" align="center" prop="code"/>
-          <el-table-column label="品名" align="center" prop="code"/>
-          <el-table-column label="规格" align="center" prop="code"/>
-          <el-table-column label="单位" align="center" prop="demandUnit"/>
+          <el-table-column label="一级品类" align="center" prop="materialClassifyOneName"/>
+          <el-table-column label="物料编码" align="center" prop="materialCode"/>
+          <el-table-column label="品名" align="center" prop="materialName"/>
+          <el-table-column label="规格" align="center" prop="specification"/>
+          <el-table-column label="单位" align="center" prop="unit"/>
           <el-table-column label="生产厂家/代理人" align="center" prop="manufacturer"/>
-          <el-table-column label="需求单位数" align="center" prop="code"/>
-          <el-table-column label="总最终净需求量" align="center" prop="code"/>
+          <el-table-column label="需求单位数" align="center" prop="demandNum"/>
+          <el-table-column label="总最终净需求量" align="center" prop="netDemandNum"/>
           <el-table-column label="总月销量" align="center" prop="totalMonthlySales"/>
           <el-table-column label="需求可用周期" align="center" prop="demandCycle"/>
           <el-table-column label="呆滞量" align="center" prop="dullQut"/>
@@ -346,9 +338,9 @@
                 <el-input :disabled="lineDisable" v-model="scope.row.finalBuyQty"/>
             </template>
           </el-table-column>
-          <el-table-column label="二级品类" align="center" prop="code"/>
-          <el-table-column label="三级品类" align="center" prop="code"/>
-          <el-table-column label="四级品类" align="center" prop="code"/>
+          <el-table-column label="二级品类" align="center" prop="materialClassifyTwoName"/>
+          <el-table-column label="三级品类" align="center" prop="materialClassifyThreeName"/>
+          <el-table-column label="四级品类" align="center" prop="materialClassifyFourName"/>
           <el-table-column label="单据状态" align="center" prop="status"/>
           <el-table-column label="采购员" align="center" prop="buyerName">
             <template slot-scope="scope">
@@ -363,15 +355,15 @@
           <el-table-column label="有效期" align="center" prop="validityPeriod"/>
           <el-table-column label="有效期单位" align="center" prop="validityPeriodUnit"/>
           <el-table-column label="业务类型" align="center" prop="businessType"/>
-          <el-table-column label="安全库存量" align="center" prop="code"/>
+          <el-table-column label="安全库存量" align="center" prop="safetyStock"/>
           <el-table-column label="单据来源" align="center" prop="billSource"/>
           <el-table-column label="行号" align="center" prop="rowNo"/>
-          <el-table-column label="注册人" align="center" prop="code"/>
+          <el-table-column label="注册人" align="center" prop="registrant"/>
           <el-table-column label="可用量" align="center" prop="qty"/>
           <el-table-column label="总需与终采差异" align="center" prop="buyDiscrepancy"/>
           <el-table-column label="集团预测分类" align="center" prop="forecastClassification"/>
           <el-table-column label="中心仓占有量" align="center" prop="centerBinPossession"/>
-          <el-table-column label="中心仓可用量" align="center" prop="code"/>
+          <el-table-column label="中心仓可用量" align="center" prop="centralWarehouseAvailable"/>
           <el-table-column label="物料类别" align="center" prop="materialCategory"/>
           <el-table-column label="业务部门" align="center" prop="departmentName"/>
           <el-table-column label="需求单位" align="center" prop="demandUnit"/>
@@ -401,18 +393,23 @@
     </div>
 
     <Add v-model="isList" v-if="!isList" :pageStu="page" :disable="disable" :row="rowDetail" @refresh="getList"/>
+  
+    <Refers ref="refer" @doSubmit="selectionsToInput" :single="true"/>
   </div>
 </template>
 
 <script>
 import Add from './add.vue'
+import Refers from '@/components/Refers/refers.vue'
 import CollapseTransition from '@/components/MyCollapse/collapse.vue'
 import {getSummaryList, auditSummary, confirmSummary , cancelSummary , cancelAuditSummary, editSummaryList } from '@/api/purchase/DemandSummary.js'
 export default {
   name: 'demandSummary',
+  dicts: ['sys_status'],
   components: {
     Add,
-    CollapseTransition
+    CollapseTransition,
+    Refers
   },
   data() {
     return {
@@ -422,8 +419,8 @@ export default {
       // 页面状态
       page: '',
       queryParams: {
-        code: '',
-        cgy: '',
+        status: '',
+        buyerName: '',
         pl: '',
         sccj: '',
         wllb: '',
@@ -437,11 +434,17 @@ export default {
         pageNum: 1,
         pageSize: 10
       },
+      personOptions: [],
       options: [{
         value: '0', label: '是',
       }, {
         value: '2', label: '否'
       }],
+      referCondition: {
+        type: '',
+        isPage: true,
+        title: ''
+      },
       tableList: [],
       total: 0,
       rowDetail: {},
@@ -553,6 +556,16 @@ export default {
         })
       } 
     },
+    // 搜索区参照选择
+    chooseOrg(type, isPage, title) {
+      this.referCondition.type = type
+      this.referCondition.isPage = isPage
+      this.referCondition.title = title
+      this.$refs.refer.init(this.referCondition)
+    },
+    selectionsToInput(selection) {
+
+    }
   }
 }
 </script>
@@ -562,6 +575,7 @@ export default {
   height: calc(100vh - 84px);
   padding: 12px;
   box-sizing: border-box;
+  overflow-y: scroll;
 }
 .btn_grooup {
   margin-bottom: 10px;

+ 138 - 121
src/views/purchase/PurchaseDemandList/add.vue

@@ -16,7 +16,7 @@
 
         <el-col :span="1.5">
             <el-form-item label="组织">
-              <el-select size="small" v-model="basicForm.org" :disabled="disable" @focus="chooseOrg('ORG_PARAM', true, '选择组织')" style="width: 200px">
+              <el-select size="small" v-model="basicForm.org" :disabled="sonDisable" @focus="chooseOrg('ORG_PARAM', true, '选择组织')" style="width: 200px">
                 <el-option v-for="item in orgOptions" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
@@ -42,7 +42,7 @@
 
          <el-col :span="1.5">
             <el-form-item label="需求客户">
-              <el-select size="small" v-model="basicForm.customer" :disabled="disable" @focus="chooseOrg('CUSTOMER_PARAM', true, '选择客户')" style="width: 200px">
+              <el-select size="small" v-model="basicForm.customer" :disabled="sonDisable" @focus="chooseOrg('CUSTOMER_PARAM', true, '选择客户')" style="width: 200px">
                 <el-option v-for="item in customerOptions" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
@@ -62,7 +62,7 @@
 
          <el-col :span="1.5">
             <el-form-item label="需求人员">
-                <el-select size="small" v-model="basicForm.demandPersonal" :disabled="disable" @focus="chooseOrg('CONTACTS_PARAM', true, '需求人员')" style="width: 200px">
+                <el-select size="small" v-model="basicForm.demandPersonal" :disabled="sonDisable" @focus="chooseOrg('CONTACTS_PARAM', true, '需求人员')" style="width: 200px">
                   <el-option v-for="item in personOptions" :key="item.id" :label="item.name" :value="item.id" />
                 </el-select>
             </el-form-item>
@@ -70,7 +70,7 @@
 
          <el-col :span="1.5">
             <el-form-item label="需求部门">
-              <el-select v-model="basicForm.demandDept" size="small" :disabled="disable" @focus="chooseOrg('DEPT_PARAM', true, '需求部门')" style="width: 200px">
+              <el-select v-model="basicForm.demandDept" size="small" :disabled="sonDisable" @focus="chooseOrg('DEPT_PARAM', true, '需求部门')" style="width: 200px">
                 <el-option
                   v-for="item in deptOptions"
                   :key="item.id"
@@ -85,6 +85,7 @@
             <el-form-item label="需求日期">
               <el-date-picker
                 v-model="basicForm.demandDate"
+                :disabled="sonDisable"
                 type="date"
                 value-format="yyyy-MM-dd"
                 size="small"
@@ -96,7 +97,7 @@
 
           <el-col :span="1.5">
             <el-form-item label="单据来源">
-              <el-select v-model="basicForm.source" size="small" style="width: 200px">
+              <el-select v-model="basicForm.source" :disabled="sonDisable" size="small" style="width: 200px">
                 <el-option v-for="dict in dict.type.sys_bill_source" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
               </el-select>
@@ -105,7 +106,7 @@
 
           <el-col :span="1.5">
             <el-form-item label="供应仓库">
-              <el-select size="small" v-model="basicForm.warehouse" :disabled="disable" @focus="chooseOrg('WAREHOUSE_PARAM', true, '供应仓库')" style="width: 200px">
+              <el-select size="small" v-model="basicForm.warehouse" :disabled="sonDisable" @focus="chooseOrg('WAREHOUSE_PARAM', true, '供应仓库')" style="width: 200px">
                 <el-option v-for="item in houseOptions" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
@@ -113,7 +114,7 @@
 
          <el-col :span="1.5">
             <el-form-item label="供应货位">
-              <el-select size="small" v-model="basicForm.goodsAllocation" :disabled="disable" @focus="chooseOrg('ALLOCATION_PARAM', true, '供应货位')" style="width: 200px">
+              <el-select size="small" v-model="basicForm.goodsAllocation" :disabled="sonDisable" @focus="chooseOrg('ALLOCATION_PARAM', true, '供应货位')" style="width: 200px">
                 <el-option v-for="item in goodsOptions" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
@@ -121,7 +122,7 @@
 
          <el-col :span="1.5">
             <el-form-item label="业务类型">
-              <el-select v-model="basicForm.billType" size="small" style="width: 200px">
+              <el-select v-model="basicForm.billType" :disabled="sonDisable" size="small" style="width: 200px">
                 <el-option v-for=" dict in dict.type.sys_business" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
               </el-select>
@@ -130,7 +131,7 @@
 
           <el-col :span="1.5">
             <el-form-item label="是否客户指定">
-              <el-select v-model="basicForm.isSpeical" size="small" style="width: 200px">
+              <el-select v-model="basicForm.isSpeical" :disabled="sonDisable" size="small" style="width: 200px">
                 <el-option v-for=" item in options" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
@@ -165,7 +166,7 @@
               <el-input
                 v-model="basicForm.remark"
                 size="small"
-                placeholder=""
+                :disabled="sonDisable"
                 clearable
                 style="width: 200px"
               />
@@ -177,9 +178,9 @@
     <span>明细信息</span>
     <el-card>
       <div class="btn_grooup">
-        <el-button type="primary" size="small" @click="addLine">增行</el-button>
-        <el-button type="primary" size="small" >批量调整</el-button>
-        <el-button type="primary" size="small" v-if="pageStu == 'check' || pageStu == 'edit'" @click="showReserved">货权预留单</el-button>
+        <el-button type="primary" size="small" @click="addLine" v-if="!sonDisable">增行</el-button>
+        <el-button type="primary" size="small" v-if="!sonDisable">批量调整</el-button>
+        <el-button type="primary" size="small" v-if="sonPageStu == 'check' || sonPageStu == 'edit'" @click="showReserved">货权预留单</el-button>
       </div>
 
       <el-table 
@@ -189,63 +190,57 @@
           @selection-change="handleSelectionChange"
         >
           <el-table-column type="selection"/>
-          <el-table-column label="序号" type="index" align="center" prop="index"/>
+          <el-table-column label="序号" type="index" align="center"/>
           <el-table-column label="行状态" align="center" prop="status" />
-          <el-table-column label="行号" align="center" >
-            <template slot-scope="scope">
-              <el-form-item class="hang">
-                <el-input v-model="scope.row.index"/>
-              </el-form-item>
-            </template>
-          </el-table-column>
-          <el-table-column label="业务部门名称" align="center" width="200px">
+          <el-table-column label="行号" align="center" prop="rowNo" />
+          <el-table-column label="业务部门名称" align="center" width="180px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.businessDeptName"/>
+                <el-input readonly size="small" v-model="scope.row.businessDeptName"/>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="业务部门" align="center" width="200px">
+          <el-table-column label="业务部门" align="center" width="180px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.businessDept">
-                <!-- <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'DEPT_PARAM', true, '选择部门')"></el-button> -->
+                <el-input readonly size="small" v-model="scope.row.businessDept">
+                <!-- <el-button :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'DEPT_PARAM', true, '选择部门')"></el-button> -->
                 </el-input>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="一级品类" align="center" >
+          <el-table-column label="一级品类" align="center" prop="materialClassifyOneName" width="180px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.materialClassifyOneName"/>
+                <el-input readonly size="small" v-model="scope.row.materialClassifyOneName"/>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="二级品类" align="center"  prop="materialClassifyTwoName">
+          <el-table-column label="二级品类" align="center" prop="materialClassifyTwoName" width="180px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.materialClassifyTwoName"/>
+                <el-input readonly size="small" v-model="scope.row.materialClassifyTwoName"/>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="三级品类" align="center"  prop="materialClassifyThreeName">
+          <el-table-column label="三级品类" align="center" prop="materialClassifyThreeName" width="180px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.materialClassifyThreeName"/>
+                <el-input readonly size="small" v-model="scope.row.materialClassifyThreeName"/>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="四级品类" align="center"  prop="materialClassifyFourName">
+          <el-table-column label="四级品类" align="center" prop="materialClassifyFourName" width="180px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.materialClassifyFourName"/>
+                <el-input readonly size="small" v-model="scope.row.materialClassifyFourName"/>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="预留比例" align="center"  prop="reservedProportion">
+          <el-table-column label="预留比例" align="center" prop="reservedProportion" width="150px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-select v-model="scope.row.reservedProportion">
+                <el-select :disabled="sonDisable" size="small" v-model="scope.row.reservedProportion">
                   <el-option v-for=" dict in dict.type.sys_reserve_ratio" :key="dict.value" :label="dict.label" :value="dict.value">
                   </el-option>
                 </el-select>
@@ -253,72 +248,74 @@
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="预留周期" align="center"  prop="reservedPeriod">
+          <el-table-column label="预留周期" align="center" prop="reservedPeriod" width="150px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.reservedPeriod"/>
+                <el-input :readonly="sonDisable" size="small" v-model="scope.row.reservedPeriod"/>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="预留数量" align="center"  prop="reservedQty">
+          <el-table-column label="预留数量" align="center"  prop="reservedQty" width="150px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.reservedQty"/>
+                <el-input :readonly="sonDisable" size="small" v-model="scope.row.reservedQty"/>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="采购员名称" align="center" prop="buyerName" />
-          <el-table-column label="采购员" align="center"  prop="buyer" />
-          <el-table-column label="物料编码" align="center" width="120" prop="materialCode">
+          <el-table-column label="采购员名称" align="center" prop="buyerName" width="120px"/>
+          <el-table-column label="采购员" align="center"  prop="buyer"/>
+          <el-table-column label="物料编码" align="center" prop="materialCode" width="230px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.materialCode">
-                  <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseMaterial(scope.$index)"></el-button>
+                <el-input readonly size="small" v-model="scope.row.materialCode">
+                  <el-button size="small" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseMaterial(scope.$index)"></el-button>
                 </el-input>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="物料名称" align="center"  prop="materialName" />
+          <el-table-column label="物料名称" align="center"  prop="materialName" width="230px" />
           <el-table-column label="规格" align="center"  prop="specification" />
           <el-table-column label="型号" align="center"  prop="model" />
           <el-table-column label="单位" align="center"  prop="unit" />
-          <el-table-column label="生产厂家/代理人" align="center"  prop="manufacturerName"/>
-          <el-table-column label="注册人" align="center"  prop="registrant" />
-          <el-table-column label="采购周期" align="center"  prop="puPeriod">
+          <el-table-column label="生产厂家/代理人" align="center"  prop="manufacturerName" width="230px"/>
+          <el-table-column label="注册人" align="center"  prop="registrant" width="150px"/>
+          <el-table-column label="采购周期" align="center"  prop="puPeriod" width="150px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.puPeriod"/>
+                <el-input :readonly="sonDisable" size="small" v-model="scope.row.puPeriod"/>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="有效期单位" align="center"  prop="expiryUnit" />
-          <el-table-column label="有效期" align="center"  prop="updateTime" />
-          <el-table-column label="最小包装" align="center"  prop="minPackage" />
-          <el-table-column label="最小订货量" align="center"  prop="minOrderQty"/>
-          <el-table-column label="最小批量" align="center"  prop="minBatch" />
-          <el-table-column label="安全库存" align="center"  prop="safeStock">
+          <el-table-column label="有效期单位" align="center"  prop="expiryUnit" width="120px"/>
+          <el-table-column label="有效期" align="center"  prop="expiry" width="120px"/>
+          <el-table-column label="最小包装" align="center"  prop="minPackage" width="120px"/>
+          <el-table-column label="最小订货量" align="center"  prop="minOrderQty" width="120px"/>
+          <el-table-column label="最小批量" align="center"  prop="minBatch" width="120px"/>
+          <el-table-column label="安全库存" align="center"  prop="safeStock" width="120px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.safeStock"/>
+                <el-input :readonly="sonDisable" size="small" v-model="scope.row.safeStock"/>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="月均销量" align="center"  prop="averageQtyMonth" />
-          <el-table-column label="实际(业务)需求量" align="center"  prop="qty">
+          <el-table-column label="月均销量" align="center"  prop="averageQtyMonth" width="120px"/>
+          <el-table-column label="实际(业务)需求量" align="center"  prop="qty" width="120px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.qty"/>
+                <el-input :readonly="sonDisable" size="small" v-model="scope.row.qty"/>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="需求可用周期" align="center"  prop="demandPeriod" />
-          <el-table-column label="集团预测分类" align="center"  prop="forecastClassify" />
-          <el-table-column label="交货日期" align="center"  prop="deliveryDate" width="150px">
+          <el-table-column label="需求可用周期" align="center"  prop="demandPeriod" width="120px"/>
+          <el-table-column label="集团预测分类" align="center"  prop="forecastClassify" width="120px"/>
+          <el-table-column label="交货日期" align="center"  prop="deliveryDate" width="230px">
             <template slot-scope="scope">
               <el-form-item class="hang">
                 <el-date-picker
                   v-model="scope.row.deliveryDate"
+                  :readonly="sonDisable"
                   type="date"
+                  size="small"
                   value-format="yyyy-MM-dd"
                   placeholder="选择日期">
                 </el-date-picker>
@@ -330,12 +327,11 @@
               <el-form-item class="hang">
                 <el-switch
                   v-model="scope.row.isReplenishment"
+                  :disabled="sonDisable"
                   active-value="Y"
                   inactive-value="N"
                   active-color="#13ce66"
-                  inactive-color="#ff4949"
-                  active-text="是"
-                  inactive-text="否">
+                  inactive-color="#a1a3a9">
                 </el-switch>
               </el-form-item>
             </template>
@@ -345,38 +341,37 @@
               <el-form-item class="hang">
                   <el-switch
                     v-model="scope.row.isBatchLock"
+                    :disabled="sonDisable"
                     active-value="Y"
                     inactive-value="N"
                     active-color="#13ce66"
-                    inactive-color="#ff4949"
-                    active-text="是"
-                    inactive-text="否">
+                    inactive-color="#a1a3a9">
                   </el-switch>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="业务备注" align="center"  prop="remark">
+          <el-table-column label="业务备注" align="center"  prop="remark" width="150px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.remark"/>
+                <el-input :readonly="sonDisable" size="small" v-model="scope.row.remark"/>
               </el-form-item>
             </template>
           </el-table-column> 
-          <el-table-column label="采购备注" align="center"  prop="puRemark" />
+          <el-table-column label="采购备注" align="center"  prop="puRemark" width="150px"/>
           <!-- <el-table-column label="末级供应仓库存量" align="center"  prop="lastWarehouseQty" /> -->
           <!-- <el-table-column label="调拨占有量" align="center"  prop="superiorAllotQty"></el-table-column> -->
-          <el-table-column label="最终净需求量" align="center"  prop="resDemandQty">
+          <el-table-column label="最终净需求量" align="center"  prop="resDemandQty" width="150px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.resDemandQty"/>
+                <el-input :readonly="sonDisable" size="small" v-model="scope.row.resDemandQty"/>
               </el-form-item>
             </template>
           </el-table-column>
           <el-table-column label="末级供应仓库" align="center"  prop="lastWarehouseName" width="200px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.lastWarehouseName">
-                  <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'WAREHOUSE_PARAM', true, '选择末级供应仓库')"></el-button>
+                <el-input readonly size="small" v-model="scope.row.lastWarehouseName">
+                  <el-button size="small" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'WAREHOUSE_PARAM', true, '选择末级供应仓库')"></el-button>
                 </el-input>
               </el-form-item>
             </template>
@@ -384,8 +379,8 @@
           <el-table-column label="收货仓库" align="center"  prop="deliveryWarehouseName" width="200px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.deliveryWarehouseName">
-                  <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'WAREHOUSE_PARAM', true, '选择收货仓库')"></el-button>
+                <el-input readonly size="small" v-model="scope.row.deliveryWarehouseName">
+                  <el-button size="small" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'WAREHOUSE_PARAM', true, '选择收货仓库')"></el-button>
                 </el-input>
               </el-form-item>
             </template>
@@ -393,60 +388,58 @@
           <el-table-column label="末级供应货位" align="center"  prop="lastAllocationName" width="200px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.lastAllocationName">
-                  <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'ALLOCATION_PARAM', true, '选择末级供应货位')"></el-button>
+                <el-input readonly size="small" v-model="scope.row.lastAllocationName">
+                  <el-button size="small" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'ALLOCATION_PARAM', true, '选择末级供应货位')"></el-button>
                 </el-input>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="收货货位编码" align="center"  prop="deliveryAllocation"/>
+          <el-table-column label="收货货位编码" align="center"  prop="deliveryAllocation" width="200px"/>
           <el-table-column label="收货货位" align="center"  prop="deliveryAllocationName" width="200px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.deliveryAllocationName">
-                  <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'ALLOCATION_PARAM', true, '选择收货货位')"></el-button>
+                <el-input readonly size="small" v-model="scope.row.deliveryAllocationName">
+                  <el-button size="small" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'ALLOCATION_PARAM', true, '选择收货货位')"></el-button>
                 </el-input>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="紧急标识" align="center"  prop="isUrgency" width="100px">
+          <el-table-column label="紧急标识" align="center" prop="isUrgency" width="100px">
             <template slot-scope="scope">
               <el-form-item class="hang">
                 <el-switch
                   v-model="scope.row.isUrgency"
+                  :disabled="sonDisable"
                   active-value="Y"
                   inactive-value="N"
                   active-color="#13ce66"
-                  inactive-color="#ff4949"
-                  active-text="是"
-                  inactive-text="否">
+                  inactive-color="#a1a3a9">
                 </el-switch>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="默认采购组织" align="center"  prop="purOrgName" />
-          <el-table-column label="默认采购组织编码" align="center"  prop="puOrg" />
-          <el-table-column label="末级供应调拨待入量" align="center"  prop="lastStockQty">
+          <el-table-column label="默认采购组织" align="center"  prop="purOrgName" width="200px"/>
+          <el-table-column label="默认采购组织编码" align="center"  prop="puOrg" width="200px"/>
+          <el-table-column label="末级供应调拨待入量" align="center"  prop="lastStockQty" width="150px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.lastStockQty"/>
+                <el-input :readonly="sonDisable" size="small" v-model="scope.row.lastStockQty"/>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="上级供应中心现存量" align="center"  prop="superiorCenterQty" />
-          <el-table-column label="上级库存被调拨占用量" align="center"  prop="superiorAllotQty" />
-          <el-table-column label="可用量" align="center"  prop="availableQty" />
+          <el-table-column label="上级供应中心现存量" align="center"  prop="superiorCenterQty" width="200px"/>
+          <el-table-column label="上级库存被调拨占用量" align="center"  prop="superiorAllotQty" width="200px"/>
+          <el-table-column label="可用量" align="center"  prop="availableQty"/>
           <el-table-column label="调拨状态" align="center"  prop="statusAllot" width="100px">
             <template slot-scope="scope">
               <el-form-item class="hang">
                 <el-switch
                   v-model="scope.row.statusAllot"
+                  :disabled="sonDisable"
                   active-value="Y"
                   inactive-value="N"
                   active-color="#13ce66"
-                  inactive-color="#ff4949"
-                  active-text="是"
-                  inactive-text="否">
+                  inactive-color="#a1a3a9">
                 </el-switch>
               </el-form-item>
             </template>
@@ -454,8 +447,8 @@
           <el-table-column label="补单供应商编码" align="center"  prop="additionalSupplier" width="200px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.additionalSupplier">
-                  <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'SUPPLIER_PARAM', true, '选择补单供应商')"></el-button>
+                <el-input readonly size="small" v-model="scope.row.additionalSupplier">
+                  <el-button size="small" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'SUPPLIER_PARAM', true, '选择补单供应商')"></el-button>
                 </el-input>
               </el-form-item>
             </template>
@@ -463,14 +456,14 @@
           <el-table-column label="补单供应商名称" align="center"  prop="additionalSupplierCode" width="200px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.additionalSupplierCode"/>
+                <el-input readonly size="small" v-model="scope.row.additionalSupplierCode"/>
               </el-form-item>
             </template>
           </el-table-column>
           <el-table-column label="周期单位" align="center"  prop="periodUnit" width="150px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-select v-model="scope.row.periodUnit">
+                <el-select :disabled="sonDisable" size="small" v-model="scope.row.periodUnit">
                   <el-option v-for=" dict in dict.type.sys_period_unit" :key="dict.value" :label="dict.label" :value="dict.value">
                   </el-option>
                 </el-select>
@@ -485,26 +478,26 @@
               </el-form-item>
             </template>
           </el-table-column> -->
-          <el-table-column label="末级供应库存组织" align="center" prop="superiorStockOrgName"></el-table-column>
-          <el-table-column label="中心仓可用量" align="center"  prop="updateTime"></el-table-column>
+          <el-table-column label="末级供应库存组织" align="center" prop="superiorStockOrgName" width="200px"></el-table-column>
+          <el-table-column label="中心仓可用量" align="center"  prop="updateTime" width="200px"></el-table-column>
           <el-table-column label="调拨单号" align="center"  prop="allotCode"></el-table-column>
           <el-table-column label="收货地址" align="center"  prop="deliveryAddressName" width="200px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-input v-model="scope.row.deliveryAddressName">
-                  <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'ADDRESS_PARAM', true, '选择收货地址')"></el-button>
+                <el-input readonly size="small" v-model="scope.row.deliveryAddressName">
+                  <el-button size="small" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseDept(scope.$index, 'ADDRESS_PARAM', true, '选择收货地址')"></el-button>
                 </el-input>
               </el-form-item>
             </template>
           </el-table-column>
-          <el-table-column label="收货地址编码" align="center"  prop="deliveryAddress"></el-table-column>
+          <el-table-column label="收货地址编码" align="center" prop="deliveryAddress" width="200px"></el-table-column>
           <el-table-column label="联系人" align="center"  prop="contacts"/>
-          <el-table-column label="联系人电话" align="center"  prop="contactsPhone" />
-          <el-table-column label="详细地址" align="center"  prop="address" />
+          <el-table-column label="联系人电话" align="center"  prop="contactsPhone" width="200px"/>
+          <el-table-column label="详细地址" align="center"  prop="address" width="200px"/>
           <el-table-column label="价格类型" align="center"  prop="priceType" width="150px">
             <template slot-scope="scope">
               <el-form-item class="hang">
-                <el-select v-model="scope.row.priceType">
+                <el-select :disabled="sonDisable" size="small" v-model="scope.row.priceType">
                   <el-option v-for=" dict in dict.type.sys_price_type" :key="dict.value" :label="dict.label" :value="dict.value">
                   </el-option>
                 </el-select>
@@ -518,7 +511,7 @@
             align="center"
             >
           <template slot-scope="scope">
-            <el-button type="text" size="small" @click="delLine(scope.$index, scope.row)">删除</el-button>
+            <el-button type="text" size="small" :disabled="sonDisable" @click="delLine(scope.$index, scope.row)">删除</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -527,13 +520,13 @@
 
     <div class="btn_group">
       <el-col :span="1.5">
-        <el-button type="primary" size="small" plain @click="copy" v-if="pageStu == 'check'">复制</el-button>
+        <el-button type="primary" size="small" plain @click="copy" v-if="sonPageStu == 'check'">复制</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" size="small" plain @click="save" v-if="pageStu == 'add' || pageStu == 'edit'">保存</el-button>
+        <el-button type="primary" size="small" plain @click="save" v-if="sonPageStu == 'add' || sonPageStu == '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 == 'check'">提交</el-button>
+        <el-button type="primary" size="small" plain @click="submit" v-if="sonPageStu == 'check'">提交</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button size="small" plain @click="back">返回</el-button>
@@ -551,7 +544,7 @@
 
 <script>
 import Reserved from './reserved.vue'
-import Refers from './refers.vue'
+import Refers from '@/components/Refers/refers.vue'
 import {addDemand,getDemandDetail, getDemandSonDetail, editDemand, submitDemand, queryMan } from '@/api/purchase/purchaseDemand.js'
 // 用于回显参照框数据
 import {getRefer} from '@/api/purchase/basic.js'
@@ -572,6 +565,9 @@ export default {
   },
   data() {
     return {
+      // 不能直接改变props传来的值
+      sonPageStu: this.pageStu,
+      sonDisable: this.disable,
       dialog: {
         config: false
       },
@@ -633,20 +629,39 @@ export default {
   methods: {
     copy() {
       this.$modal.msgSuccess("复制成功");
-      this.pageStu = 'add'
+      this.sonPageStu = 'add'
+      this.sonDisable = false
       this.getDetails(this.row)
+      this.basicForm.id = ''
+      this.basicForm.code = ''
+    },
+    handleData() {
+      console.log('222')
+      // 复制新增把id,编码置为空,子表去掉id
+      this.basicForm.id = ''
+      this.basicForm.code = ''
+      if (this.basicForm.puDemandItemList.length !== 0) {
+        this.basicForm.puDemandItemList.forEach(item => {
+          if (item.id) {
+            delete item.id
+          }
+          if (item.demandId) {
+            delete item.demandId
+          }
+        })
+      }
     },
-    save() {
-      if(this.pageStu == 'add') {
-        // 复制新增把id置为空
-        this.basicForm.id = ''
-        addDemand(this.basicForm).then(res => {
+    async save() {
+      if(this.sonPageStu == 'add') {
+        await this.handleData()
+        await addDemand(this.basicForm).then(res => {
+          console.log(333)
           if (res.code === 200) {
             this.$modal.msgSuccess("保存成功");
             this.back()
           }
         })
-      } else if (this.pageStu == 'edit') {
+      } else if (this.sonPageStu == 'edit') {
         editDemand(this.basicForm).then(res => {
           if (res.code === 200) {
             this.$modal.msgSuccess("编辑成功");
@@ -691,6 +706,7 @@ export default {
         registrant: null,
         puPeriod: null,
         expiryUnit: null,
+        expiry: null,
         minPackage: null,
         minOrderQty: null,
         minBatch: null,
@@ -799,6 +815,7 @@ export default {
               if(this.basicForm.warehouse) { this.reBackRefer('WAREHOUSE_PARAM', this.basicForm.warehouse) }
               if(this.basicForm.goodsAllocation) { this.reBackRefer('ALLOCATION_PARAM', this.basicForm.goodsAllocation) }
             }
+            console.log('111')
           })
         }
       })

+ 156 - 92
src/views/purchase/PurchaseDemandList/index.vue

@@ -5,37 +5,24 @@
         <el-row :gutter="10">
           <el-col :span="1.5">
             <el-form-item label="单据编码">
-              <el-select v-model="queryParams.code" size="small" style="width: 200px" clearable 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="queryParams.code"
+                size="small"
+                style="width: 200px"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="供应仓库">
-              <el-select v-model="queryParams.warehouse" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
+              <el-select size="small" v-model="queryParams.warehouse" @focus="chooseOrg('WAREHOUSE_PARAM', true, '供应仓库')" style="width: 200px">
+                <el-option v-for="item in houseOptions" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="需求客户">
-              <el-select v-model="queryParams.customer" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
+              <el-select size="small" v-model="queryParams.customer" @focus="chooseOrg('CUSTOMER_PARAM', true, '选择客户')" style="width: 200px">
+                <el-option v-for="item in customerOptions" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -53,8 +40,8 @@
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="" label-width="20px">
-              <el-button type="primary" size="small" icon="el-icon-search" plain>搜索</el-button>
-              <el-button size="small" icon="el-icon-refresh" plain>重置</el-button>
+              <el-button type="primary" size="small" icon="el-icon-search" plain @click="searchList">搜索</el-button>
+              <el-button size="small" icon="el-icon-refresh" plain @click="resetList">重置</el-button>
             </el-form-item>
           </el-col>
         </el-row>
@@ -62,49 +49,23 @@
         <div v-show="expanded">
         <el-row :gutter="10">
           <el-col :span="1.5">
-            <el-form-item label="单据类型">
-              <el-select v-model="queryParams.threeName" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="1.5">
             <el-form-item label="需求人员">
-              <el-select v-model="queryParams.demandPersonal" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
+              <el-select size="small" v-model="queryParams.demandPersonal" @focus="chooseOrg('CONTACTS_PARAM', true, '需求人员')" style="width: 200px">
+                <el-option v-for="item in personOptions" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="供应货位">
-              <el-select v-model="queryParams.goodsAllocation" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
+              <el-select size="small" v-model="queryParams.goodsAllocation" @focus="chooseOrg('ALLOCATION_PARAM', true, '供应货位')" style="width: 200px">
+                <el-option v-for="item in goodsOptions" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="单据来源">
-              <el-select v-model="queryParams.source" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
+              <el-select v-model="queryParams.source" size="small" style="width: 200px">
+                <el-option v-for="dict in dict.type.sys_bill_source" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
               </el-select>
             </el-form-item>
@@ -114,37 +75,34 @@
         <el-row :gutter="10">
           <el-col :span="1.5">
             <el-form-item label="业务类型">
-              <el-select v-model="queryParams.billType" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
+              <el-select v-model="queryParams.billType" size="small" style="width: 200px">
+                <el-option v-for=" dict in dict.type.sys_business" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="需求部门">
-              <el-select v-model="queryParams.demandDept" size="small" style="width: 200px" clearable placeholder="请选择">
+              <el-select v-model="queryParams.demandDept" size="small" :disabled="disable" @focus="chooseOrg('DEPT_PARAM', true, '需求部门')" style="width: 200px">
                 <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
+                  v-for="item in deptOptions"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id">
                 </el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="需求日期">
-            <el-input
-              v-model="queryParams.demandDate"
-              size="small"
-              placeholder=""
-              clearable
-              style="width: 200px"
-            />
+              <el-date-picker
+                v-model="queryParams.demandDate"
+                type="date"
+                value-format="yyyy-MM-dd"
+                size="small"
+                style="width: 200px"
+              >
+              </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
@@ -152,7 +110,6 @@
             <el-input
               v-model="queryParams.remark"
               size="small"
-              placeholder=""
               clearable
               style="width: 200px"
             />
@@ -189,7 +146,7 @@
           </el-dropdown>
 
           <el-button type="primary" size="small" @click="delItems">删除</el-button>
-          <el-button type="primary" size="small">打印</el-button>
+          <!-- <el-button type="primary" size="small">打印</el-button> -->
         </div>
         <el-table 
           :data="tableList" 
@@ -198,19 +155,19 @@
           @selection-change="handleSelectionChange"
         >
           <el-table-column type="selection" width="55" />
-          <el-table-column label="编码" align="center" prop="code"/>
-          <el-table-column label="需求日期" align="center" width="200" prop="demandDate" />
-          <el-table-column label="单据状态" align="center" prop="status" />
+          <el-table-column label="编码" align="center" width="200" prop="code"/>
+          <el-table-column label="需求日期" align="center" width="120" prop="demandDate"/>
+          <el-table-column label="单据状态" align="center" prop="satus" :formatter="formatterStatus"/>
           <!-- <el-table-column label="是否已处理需求" align="center" width="150" prop="isProcess" /> -->
-          <el-table-column label="业务类型" align="center" width="150" prop="billType"/>
+          <el-table-column label="业务类型" align="center" prop="billType" :formatter="formatterBillType"/>
           <!-- <el-table-column label="是否特殊需求" align="center" width="150" prop="isSpeical" /> -->
-          <el-table-column label="需求人员" align="center" width="150" prop="demandPersonalName" />
-          <el-table-column label="需求客户" align="center" prop="customerName" />
-          <el-table-column label="需求部门" align="center" width="150" prop="demandDeptName" />
+          <el-table-column label="需求人员" align="center" prop="demandPersonalName" />
+          <el-table-column label="需求客户" align="center" prop="customerName" width="150"/>
+          <el-table-column label="需求部门" align="center" prop="demandDeptName" width="150"/>
           <!-- <el-table-column label="供应仓库" align="center" width="120" prop="warehouseName" /> -->
           <!-- <el-table-column label="供应货位" align="center" width="150" prop="goodsAllocationName" /> -->
-          <el-table-column label="单据来源" align="center" width="150" prop="source" />
-          <el-table-column label="组织" align="center" width="150" prop="orgName" />
+          <el-table-column label="单据来源" align="center" prop="source" width="120" :formatter="formatterSource"/>
+          <el-table-column label="组织" align="center" width="200" prop="orgName"/>
           <el-table-column label="备注" align="center" width="150" prop="remark" />
           <el-table-column
           fixed="right"
@@ -220,8 +177,8 @@
           >
           <template slot-scope="scope">
             <el-button type="text" size="small" @click="check(scope.row)">查看</el-button>
-            <el-button type="text" size="small" @click="edit(scope.row)">编辑</el-button>
-            <el-button type="text" size="small" @click="deleteids(scope.row)">删除</el-button>
+            <el-button type="text" size="small" v-if="scope.row.status == '0' || scope.row.status == '3'" @click="edit(scope.row)">编辑</el-button>
+            <el-button type="text" size="small" v-if="scope.row.status == '0' || scope.row.status == '3'" @click="deleteids(scope.row)">删除</el-button>
           </template>
         </el-table-column>
         </el-table>
@@ -239,19 +196,24 @@
     </div>
 
     <Add v-model="isList" v-if="!isList" :pageStu="page" :disable="disable" :row="rowDetail" @refresh="getList"/>
+  
+    <Refers ref="refer" @doSubmit="selectionsToInput" :single="true"/>
   </div>
 </template>
 
 <script>
 import Add from './add.vue'
+import Refers from '@/components/Refers/refers.vue'
 import CollapseTransition from '@/components/MyCollapse/collapse.vue'
 import {getDemandList, delDemand, downLoadDemand, exportDemand } from '@/api/purchase/purchaseDemand.js'
 export default {
   name: 'PurchaseDemandList',
   components: {
     Add,
-    CollapseTransition
+    CollapseTransition,
+    Refers
   },
+  dicts: ['sys_processing_mode', 'sys_status', 'sys_bill_source', 'sys_business', 'sys_reserve_ratio', 'sys_period_unit', 'sys_price_type'],
   data() {
     return {
       expanded: false,
@@ -264,7 +226,6 @@ export default {
         warehouse: '',
         customer: '',
         isProcess: '',
-        threeName: '',
         demandPersonal: '',
         goodsAllocation: '',
         source: '',
@@ -273,13 +234,23 @@ export default {
         demandDate: '',
         remark: '',
         pageNum: 1,
-        pageSize: 10
+        pageSize: 5
+      },
+      referCondition: {
+        type: '',
+        isPage: true,
+        title: ''
       },
       options: [{
-        value: '1', label: '是',
+        value: '0', label: '是',
       }, {
-        value: '0', label: '否'
+        value: '2', label: '否'
       }],
+      houseOptions: [],
+      customerOptions: [],
+      personOptions: [],
+      goodsOptions: [],
+      deptOptions: [],
       tableList: [],
       total: 0,
       rowDetail: {},
@@ -291,6 +262,70 @@ export default {
     this.getList(this.queryParams)
   },
   methods: {
+    // 格式化表格内容
+    formatterStatus(row) {
+      switch(row.status){
+        case '0':
+          return '未提交'
+        case '1':
+          return '审批中'
+        case '2':
+          return '已完成'
+        case '3':
+          return '已驳回'
+      }
+    },
+    formatterBillType(row) {
+      switch (row.billType) {
+        case 'ZQBH':
+          return '周期备货'
+        case 'FXXQ':
+          return '分销需求'
+        case 'TSXQ':
+          return '特殊采购需求'
+        case 'BDXQ':
+          return '补单需求'
+        case 'JJXQ':
+          return '紧急需求单'
+        case 'XPXQ':
+          return '新品需求'
+        case 'HZBM':
+          return '合作部门需求'
+      }
+    },
+    formatterSource(row) {
+      switch (row.source) {
+        case '1':
+          return '手工导入'
+        case '2':
+          return '按客户计算'
+        case '3':
+          return '按仓库计算'
+        case '4':
+          return '手工新增'
+      }
+    },
+    searchList() {
+      this.getList(this.queryParams)
+    },
+    resetList() {
+      this.queryParams = {
+        code: '',
+        warehouse: '',
+        customer: '',
+        isProcess: '',
+        demandPersonal: '',
+        goodsAllocation: '',
+        source: '',
+        billType: '',
+        demandDept: '',
+        demandDate: '',
+        remark: '',
+        pageNum: 1,
+        pageSize: 10
+      }
+      this.getList(this.queryParams)
+    },
     getList(params){
       getDemandList(params).then(res => {
         if (res.code === 200) {
@@ -426,6 +461,35 @@ export default {
     },
     drop() {
       this.expanded = !this.expanded
+    },
+    // 搜索区参照选择
+    chooseOrg(type, isPage, title) {
+      this.referCondition.type = type
+      this.referCondition.isPage = isPage
+      this.referCondition.title = title
+      this.$refs.refer.init(this.referCondition)
+    },
+    selectionsToInput(selection) {
+      if (this.referCondition.type == 'WAREHOUSE_PARAM') {
+        this.houseOptions = selection
+        this.queryParams.warehouse = selection[0].id
+      }
+      if (this.referCondition.type == 'CUSTOMER_PARAM') {
+        this.customerOptions = selection
+        this.queryParams.customer = selection[0].id
+      }
+      if (this.referCondition.type == 'CONTACTS_PARAM') {
+        this.personOptions = selection
+        this.queryParams.demandPersonal = selection[0].id
+      }
+      if (this.referCondition.type == 'ALLOCATION_PARAM') {
+        this.goodsOptions = selection
+        this.queryParams.goodsAllocation = selection[0].id
+      }
+      if (this.referCondition.type == 'DEPT_PARAM') {
+        this.deptOptions = selection
+        this.queryParams.demandDept = selection[0].id
+      }
     }
   }
 }