ソースを参照

面料报表功能添加

asd26269546 2 年 前
コミット
6019fa4dcb

+ 1 - 0
src/components/dateSelect/dateSelect.vue

@@ -265,6 +265,7 @@ export default {
 				}
 			}
 			if (_type == 6) {
+				// ((12 - 6 + month) < 10 ? "0" + (12 - 6 + month) : (12 - 6 + month)) +
 				if (month < 7) {
 					v.value.beginTime =
 						year -

+ 2 - 1
src/components/my-table/my-table2.vue

@@ -62,6 +62,7 @@
           <Radio
             :label="radio.value"
             v-if="item.name === 'RadioGroup'"
+            
             v-for="(radio, index) in item.list"
             :key="index"
           >
@@ -156,7 +157,7 @@ export default {
       type: Boolean,
       default: true
     },
-    // 是否显示分页功能
+    // 是否显示分页功能 
     isShowPage: {
       type: Boolean,
       default: true

+ 16 - 4
src/view/material-manege/pay/modals/apply-form.vue

@@ -62,7 +62,10 @@
         </div>
         <div class="col">
           <div class="label">未付金额:</div>
-          <div class="value">
+          <div class="value" v-if="data.accountPeriod <= 0 && data.adjustAmount <= 0">
+            {{ (data.contractAmount - data.hisPayAmount).toFixed(2) || 0 }}元
+          </div>
+          <div class="value" v-else>
             {{ (data.adjustAmount - data.hisPayAmount).toFixed(2) || 0 }}元
           </div>
         </div>
@@ -158,6 +161,7 @@
               v-model="data.payAmount"
               :disabled="data.accountPeriod > 0"
               style="width: 120px"
+              
             />
           </div>
           <span style="padding: 0 10px">元</span>
@@ -179,15 +183,23 @@
         <div class="col" style="flex: none">
           <div class="">实际支付金额:</div>
           <div class="value">
-            <div style="width: 95px; color: red">
+            <div style="width: 95px; color: red" v-if="data.accountPeriod <= 0 && data.adjustAmount <= 0">
+              {{
+                (data.payAmount - 0).toFixed(2) -
+                      Math.abs(data.backAmount) -
+                      data.expressAmount -
+                      data.totalBalance || 0
+              }}元
+            </div>
+            <div style="width: 95px; color: red" v-else>
               {{
                 data.accountPeriod == 0
                   ? (data.payAmount - data.hisPayAmount).toFixed(2) -
-                      data.backAmount -
+                      Math.abs(data.backAmount) -
                       data.expressAmount -
                       data.totalBalance || 0
                   : (data.adjustAmount - data.hisPayAmount).toFixed(2) -
-                      data.backAmount -
+                      Math.abs(data.backAmount) -
                       data.expressAmount -
                       data.totalBalance || 0
               }}元

+ 90 - 67
src/view/material-manege/pay/pay2.vue

@@ -11,35 +11,35 @@
       <div class="bar-2">
         <div
           :class="payTimeType == 1 ? 'active' : ''"
-          @click="selectTime(1)"
+          @click="selectTime(1,columns1)"
           v-if="!isFirstMonth"
         >
           <Table :columns="columns1" :data="data1"></Table>
         </div>
         <div
           :class="payTimeType == 1.5 ? 'active' : ''"
-          @click="selectTime(1.5)"
+          @click="selectTime(1.5,columns2)"
           style="width: 24%"
         >
           <Table :columns="columns2" :data="data2"></Table>
         </div>
         <div
           :class="payTimeType == 2 ? 'active' : ''"
-          @click="selectTime(2)"
+          @click="selectTime(2,columns1)"
           v-if="isFirstMonth"
         >
           <Table :columns="columns1" :data="data1"></Table>
         </div>
-        <div :class="payTimeType == 3 ? 'active' : ''" @click="selectTime(3)">
+        <div :class="payTimeType == 3 ? 'active' : ''" @click="selectTime(3,columns3)">
           <Table :columns="columns3" :data="data3"></Table>
         </div>
-        <div :class="payTimeType == 4 ? 'active' : ''" @click="selectTime(4)">
+        <div :class="payTimeType == 4 ? 'active' : ''" @click="selectTime(4,columns4)">
           <Table :columns="columns4" :data="data4"></Table>
         </div>
-        <div :class="payTimeType == 5 ? 'active' : ''" @click="selectTime(5)">
+        <div :class="payTimeType == 5 ? 'active' : ''" @click="selectTime(5,columns5)">
           <Table :columns="columns5" :data="data5"></Table>
         </div>
-        <div :class="payTimeType == 6 ? 'active' : ''" @click="selectTime(6)">
+        <div :class="payTimeType == 6 ? 'active' : ''" @click="selectTime(6,columns6)">
           <Table :columns="columns6" :data="data6"></Table>
         </div>
       </div>
@@ -343,7 +343,7 @@
                     max-width="600"
                   >
                     <div class="label">
-                      <span style="text-decoration:underline">未付金额:{{ item.unPayAmount }}元</span>
+                      <span style="text-decoration:underline">未付金额:{{ item.unPayAmount.toFixed(2) }}元</span>
                     </div>
                     <div slot="content">
                       <div v-for="(itemPay, index) in paymentList" :key="index">
@@ -354,8 +354,7 @@
                           style="
                             padding-left: 16px;
                             text-align: left;
-                            white-space: normal;
-                          "
+                            white-space: normal;"
                         >
                           合同批次: {{ itemPay.batchno }}
                         </span>
@@ -694,70 +693,92 @@ export default {
       v.params.companySelectId = null;
       v.searchFn();
     },
-    selectTime(num) {
-      if (this.payTimeType == num) {
-        this.payTimeType = null;
-        this.params.payTime = "";
-        this.getList();
-        return;
-      } else {
-        this.payTimeType = num;
+    selectTime(num,columns) {
+      console.log(num)
+      if(num === 1){
+        this.params.payTime = this.titleData.curMonthPay.firDateTime
       }
-      const dateDayNum = new Date().getDate();
-      const dateMonthNum = new Date().getMonth() + 1;
-      const dateYearNum = new Date().getFullYear();
-      if (num == 1) {
-        this.params.payTime = dateYearNum + "-" + dateMonthNum + "-15 00:00:00";
+      if(num === 1.5){
+        this.params.payTime = this.isFirstMonth ? this.titleData.curMonthPay.firDateTime : this.titleData.curMonthPay.secDateTime
       }
-      if (num == 1.5) {
-        if (dateDayNum <= 15) {
-          this.params.payTime =
-            dateYearNum + "-" + dateMonthNum + "-15 00:00:00";
-        } else {
-          this.params.payTime =
-            dateYearNum +
-            "-" +
-            dateMonthNum +
-            "-" +
-            new Date(dateYearNum, dateMonthNum, 0).getDate() +
-            " 00:00:00";
-        }
+      if(num === 2){
+        this.params.payTime = this.titleData.curMonthPay.secDateTime
       }
-      if (num == 2) {
-        this.params.payTime =
-          dateYearNum +
-          "-" +
-          dateMonthNum +
-          "-" +
-          new Date(dateYearNum, dateMonthNum, 0).getDate() +
-          " 00:00:00";
+      if(num === 3){
+        this.params.payTime = this.titleData.nextMonthPay.firDateTime
       }
-      if (num == 3) {
-        this.params.payTime =
-          dateYearNum + "-" + (dateMonthNum * 1 + 1) + "-15 00:00:00";
+      if(num === 4){
+        this.params.payTime = this.titleData.nextMonthPay.secDateTime
       }
-      if (num == 4) {
-        this.params.payTime =
-          dateYearNum +
-          "-" +
-          (dateMonthNum * 1 + 1) +
-          "-" +
-          new Date(dateYearNum, dateMonthNum * 1 + 1, 0).getDate() +
-          " 00:00:00";
+      if(num === 5){
+        this.params.payTime = this.titleData.lastMonthPay.firDateTime
       }
-      if (num == 5) {
-        this.params.payTime =
-          dateYearNum + "-" + (dateMonthNum * 1 + 2) + "-15 00:00:00";
+      if(num === 6){
+        this.params.payTime = this.titleData.lastMonthPay.secDateTime
       }
-      if (num == 6) {
-        this.params.payTime =
-          dateYearNum +
-          "-" +
-          (dateMonthNum * 1 + 2) +
-          "-" +
-          new Date(dateYearNum, dateMonthNum * 1 + 2, 0).getDate() +
-          " 00:00:00";
+      if (this.payTimeType == num) {
+        this.payTimeType = null;
+        this.params.payTime = "";
+        this.getList();
+        return;
+      } else {
+        this.payTimeType = num;
       }
+      // const dateDayNum = new Date().getDate();
+      // const dateMonthNum = new Date().getMonth() + 1;
+      // const dateYearNum = new Date().getFullYear();
+      // if (num == 1) {
+      //   this.params.payTime = dateYearNum + "-" + dateMonthNum + "-15 00:00:00";
+      // }
+      // if (num == 1.5) {
+      //   if (dateDayNum <= 15) {
+      //     this.params.payTime =
+      //       dateYearNum + "-" + dateMonthNum + "-15 00:00:00";
+      //   } else {
+      //     this.params.payTime =
+      //       dateYearNum +
+      //       "-" +
+      //       dateMonthNum +
+      //       "-" +
+      //       new Date(dateYearNum, dateMonthNum, 0).getDate() +
+      //       " 00:00:00";
+      //   }
+      // }
+      // if (num == 2) {
+      //   this.params.payTime =
+      //     dateYearNum +
+      //     "-" +
+      //     dateMonthNum +
+      //     "-" +
+      //     new Date(dateYearNum, dateMonthNum, 0).getDate() +
+      //     " 00:00:00";
+      // }
+      // if (num == 3) {
+      //   this.params.payTime =
+      //     dateYearNum + "-" + (dateMonthNum * 1 + 1) + "-15 00:00:00";
+      // }
+      // if (num == 4) {
+      //   this.params.payTime =
+      //     dateYearNum +
+      //     "-" +
+      //     (dateMonthNum * 1 + 1) +
+      //     "-" +
+      //     new Date(dateYearNum, dateMonthNum * 1 + 1, 0).getDate() +
+      //     " 00:00:00";
+      // }
+      // if (num == 5) {
+      //   this.params.payTime =
+      //     dateYearNum + "-" + (dateMonthNum * 1 + 2) + "-15 00:00:00";
+      // }
+      // if (num == 6) {
+      //   this.params.payTime =
+      //     dateYearNum +
+      //     "-" +
+      //     (dateMonthNum * 1 + 2) +
+      //     "-" +
+      //     new Date(dateYearNum, dateMonthNum * 1 + 2, 0).getDate() +
+      //     " 00:00:00";
+      // }
       this.getList();
     },
     cycleTypeChange() {
@@ -1201,7 +1222,7 @@ export default {
           },
           {
             name: "有账期",
-            yinfu: _total - res.data.result.currentAccountingPeriod,
+            yinfu: (_total - res.data.result.currentAccountingPeriod).toFixed(2),
             yifu: res.data.result.paid[0].PayAmount,
             weifu:
               (_total * 1000 -
@@ -1302,6 +1323,8 @@ export default {
         purchaseBillNo: item.purchaseBillNo,
       }).then((res) => {
         if (res.code === 0) {
+          res.result.payAmount = (res.result.accountPeriod <= 0 && res.result.adjustAmount <= 0) ? 0 : res.result.payAmount.toFixed(2)
+          console.log(res.result.payAmount)
           this.currentItem = {
             ...res.result,
             bankMesList: res.result.bankMesList

+ 406 - 20
src/view/store-out-manage/daily-report/daily-report.vue

@@ -4,13 +4,18 @@
     <div class="tab-nav">
       <div class="date-filter-wrap">
         <span style="font-size: 14px;font-weight: bold;color: black">每日面料使用率报表</span>
+          <Radio-group v-model="navType" @on-change="navTypeChange" style="margin-left:10px">
+            <Radio label="1">按人员汇总</Radio>
+            <Radio label="2">按工艺归类</Radio>
+        </Radio-group>
       </div>
+      
       <div class="date-filter-wrap">
         <date-select v-model="params" @change="selectTime"></date-select>
       </div>
     </div>
     <div class="border"></div>
-    <div class="tab-nav">
+    <div class="tab-nav" v-if="navType === '1'">
       <Row>
         <i-col span="6" style="display: flex">
           <div style="min-width: 40px; line-height: 32px; text-align: center">直喷:</div>
@@ -74,6 +79,94 @@
         </i-col>
       </Row>
     </div>
+    <div class="tab-nav" v-else>
+      <Row>
+        <i-col span="6" style="display: flex">
+          <div style="line-height: 32px; text-align: center;margin-right:5px">
+            <Button 
+              :type="params.tech == '直喷' ? 'primary' : 'default'" 
+              @click="techClick('直喷')">
+                直喷 <span style="color:red">({{ typeList2.zhipeng }}%</span>)
+            </Button>
+          </div>
+          <div class="row">
+            <Button
+              :type="params.userId === item.userId && params.tech == '直喷' ? 'primary' : 'default'"
+              @click="userClick2(item,'直喷')"
+              v-for="(item, index) in typeList2['直喷']"
+              :key="index"
+            >
+              <span>{{ item.realName }}(</span>
+              <span style="color: red">{{ item.useRate }}%</span>
+              <span>)</span>
+            </Button>
+          </div>
+        </i-col>
+        <i-col span="6" style="display: flex">
+          <div style="line-height: 32px; text-align: center;margin-right:5px">
+            <Button 
+              :type="params.tech == '打纸' ? 'primary' : 'default'" 
+              @click="techClick('打纸')">
+                打纸 (<span style="color:red">{{ typeList2.dazhi }}%</span>)
+            </Button>
+          </div>
+          <div class="row">
+            <Button
+              :type="params.userId === item.userId  && params.tech == '打纸' ? 'primary' : 'default'"
+              @click="userClick2(item,'打纸')"
+              v-for="(item, index) in typeList2['打纸']"
+              :key="index"
+            >
+              <span>{{ item.realName }}(</span>
+              <span style="color: red">{{ item.useRate }}%</span>
+              <span>)</span>
+            </Button>
+          </div>
+        </i-col>
+        <i-col span="6" style="display: flex">
+          <div style="line-height: 32px; text-align: center;margin-right:5px">
+            <Button 
+              :type="params.tech == '热转' ? 'primary' : 'default'" 
+              @click="techClick('热转')">
+                热转 (<span style="color:red">{{ typeList2.rezhuang }}%</span>)
+            </Button>
+          </div>
+          <div class="row">
+            <Button
+              :type="params.userId === item.userId  && params.tech == '热转' ? 'primary' : 'default'"
+              @click="userClick2(item,'热转')"
+              v-for="(item, index) in typeList2['热转']"
+              :key="index"
+            >
+              <span>{{ item.realName }}(</span>
+              <span style="color: red">{{ item.useRate }}%</span>
+              <span>)</span>
+            </Button>
+          </div>
+        </i-col>
+        <i-col span="6" style="display: flex">
+          <div style="line-height: 32px; text-align: center;margin-right:5px">
+            <Button 
+              :type="params.tech == '空白旗' ? 'primary' : 'default'" 
+              @click="techClick('空白旗')">
+                空白旗 (<span style="color:red">{{ typeList2.kongbai }}%</span>)
+            </Button>
+          </div>
+          <div class="row">
+            <Button
+              :type="params.userId === item.userId ? 'primary' : 'default'"
+              @click="userClick2(item,'空白旗')"
+              v-for="(item, index) in typeList2['空白旗']"
+              :key="index"
+            >
+              <span>{{ item.realName }}(</span>
+              <span style="color: red">{{ item.useRate }}%</span>
+              <span>)</span>
+            </Button>
+          </div>
+        </i-col>
+      </Row>
+    </div>
     <div class="border"></div>
     <div class="table-filter">
       <div class="fabricOne" :style="technologyType == 5 ? 'border:2px solid #0077ff' : ''" style="width: 13%">
@@ -89,7 +182,7 @@
       </div>
       <div class="fabric" :style="technologyType == 5 ? 'border:2px solid #0077ff' : ''" style="width: 28%">
         <div class="label" style="border-right: 2px solid #dcdcdc">
-          <span>领料</span>
+          <span class="cp" @click="getPicking(null)">领料</span>
         </div>
         <ul>
           <!-- <li>
@@ -112,7 +205,7 @@
       </div>
       <div class="fabric" :style="technologyType == 5 ? 'border:2px solid #0077ff' : ''" style="width: 24%">
         <div class="label" style="border-right: 2px solid #dcdcdc">
-          <span>退料</span>
+          <span  class="cp" @click="getReturnMaterialModal(null)">退料</span>
         </div>
         <ul>
           <!-- <li>
@@ -135,12 +228,13 @@
       </div>
       <div class="fabricOne" :style="technologyType == 5 ? 'border:2px solid #0077ff' : ''" style="width: 10%">
         <div class="labelOne" style="border-right: 2px solid #dcdcdc">
-          <span style="line-height:60px">转仓</span>
+          <span style="line-height:60px"  class="cp"  @click="getCorrect(null)">修正</span>
         </div>
         <ul>
           <li>
             面积
-            <span>{{ (statisticsDetails.transferInArea * 1000 - statisticsDetails.transferOutArea * 1000) / 1000 }}</span>
+            <span>{{statisticsDetails.headTailCorrectArea}}</span>
+            <!-- <span>{{ (statisticsDetails.transferInArea * 1000 - statisticsDetails.transferOutArea * 1000) / 1000 }}</span> -->
           </li>
         </ul>
       </div>
@@ -174,6 +268,27 @@
     <div class="main">
       <my-table ref="table" :data="data" :columns="columns" :table-page="params" @on-change="changePage"></my-table>
     </div>
+    <Modal
+      v-model="pickingModal"
+      title="领料详情"
+      width="800"
+      >
+      <Table :loading="loading" :columns="pickingColumns" :data="pickingData"></Table>
+    </Modal>
+    <Modal
+      v-model="correctModal"
+      title="面料修正"
+      width="900"
+      >
+      <Table :loading="loading" :columns="correctColumns" :data="correctData"></Table>
+    </Modal>
+    <Modal
+      v-model="returnMaterialModal"
+      title="退料详情"
+      width="900"
+      >
+      <Table :loading="loading" :columns="returnMaterialColumns" :data="returnMaterialData"></Table>
+    </Modal>
   </div>
 </template>
 
@@ -187,8 +302,133 @@ export default {
   components: { MyTable, dateSelect },
   data() {
     return {
+      navType:'1',
+      loading:false,
+      returnMaterialColumns:[
+      {
+          title: '序号',
+          type: 'index',
+          width: 60,
+          align: 'center'
+        },
+        {
+          title: '退料时间',
+          key: 'createTime'
+        },
+
+        {
+          title: '退料人员',
+          key: 'realName'
+        },
+        {
+          title: '物料编码',
+          key: 'materialCode' 
+        },
+        {
+          title: '面料名称',
+          key: 'materialName'
+        },
+        {
+          title: '标签值',
+          key: 'rfidCode',
+        },
+        {
+          title: '米数',
+          key: 'changeNum',
+        },
+        {
+          title: '面积',
+          key: 'area'
+        },
+      ],
+      returnMaterialModal:false,
+      returnMaterialData:[],
+      pickingModal:false,
+      correctColumns:[
+        {
+          title: '序号',
+          type: 'index',
+          width: 60,
+          align: 'center'
+        },
+        {
+          title: '物料编码',
+          key: 'materialCode'
+        },
+
+        {
+          title: '面料名称',
+          key: 'materialName'
+        },
+        {
+          title: '喷印人员',
+          key: 'realName' 
+        },
+        {
+          title: '修正面积',
+          key: 'area'
+        },
+        {
+          title: '修正原因',
+          key: 'rfidCode',
+          render: (h, params) => {
+            return h('div', [h('span', '布头布尾')])
+          }
+        },
+        {
+          title: '喷印日期',
+          key: 'createTime',
+          render: (h, params) => {
+            return h('div', [h('span', params.row.createTime.substring(0,11))])
+          }
+        },
+        {
+          title: '修正时间',
+          key: 'createTime'
+        },
+      ],
+      correctModal:false,
+      correctData:[],
+      pickingColumns:[
+        {
+          title: '序号',
+          type: 'index',
+          width: 60,
+          align: 'center'
+        },
+        {
+          title: '领料时间',
+          key: 'createTime'
+        },
+        {
+          title: '领料人员',
+          key: 'realName' 
+        },
+        {
+          title: '物料编码',
+          key: 'materialCode'
+        },
+        {
+          title: '面料名称',
+          key: 'materialName'
+        },
+        {
+          title: '标签值',
+          key: 'rfidCode'
+        },
+        {
+          title: '米数',
+          key: 'changeNum'
+        },
+        {
+          title: '面积',
+          key: 'area'
+        },
+      ],
+      pickingData:[],
       technologyType: '',
       typeList: {},
+      typeList2:{},
       data: [],
       columns: [
         {
@@ -219,26 +459,65 @@ export default {
           title: '领料面积',
           key: 'pickingArea',
           minWidth: 100,
-          align: 'center'
+          align: 'center',
+          render: (h, params) => {
+            const v = this
+            return h('div', [h('span',{style: {
+              borderBottom: '1px solid #ddd',
+              cursor:'pointer'
+            },on: {
+              click () {
+                console.log(v.params)
+                v.params.materialName = params.row.materialName
+                v.getPicking(params.row.userId)
+              }
+            }}, params.row.pickingArea)])
+          }
         },
         {
           title: '退仓面积',
           key: 'backArea',
           minWidth: 100,
-          align: 'center'
-        },
-        {
-          title: '转入面积',
-          key: 'transferInArea',
-          minWidth: 100,
-          align: 'center'
+          align: 'center',
+          render: (h, params) => {
+            const v = this
+            return h('div', [h('span',{style: {
+              borderBottom: '1px solid #ddd',
+              cursor:'pointer'
+            },on: {
+              click () {
+                console.log(v.params)
+                v.params.materialName = params.row.materialName
+                v.getReturnMaterialModal(params.row.userId)
+              }
+            }}, params.row.backArea)])
+          }
         },
         {
-          title: '转出面积',
-          key: 'transferOutArea',
+          title: '修正面积',
+          key: 'headTailCorrectArea',
           minWidth: 100,
-          align: 'center'
+          align: 'center',
+          render: (h, params) => {
+            const v = this
+            return h('div', [h('span',{style: {
+              borderBottom: '1px solid #ddd',
+              cursor:'pointer'
+            },on: {
+              click () {
+                console.log(v.params)
+                v.params.materialName = params.row.materialName
+                v.getCorrect(params.row.userId)
+              }
+            }}, params.row.headTailCorrectArea)])
+          }
         },
+        // {
+        //   title: '转出面积',
+        //   key: 'transferOutArea',
+        //   minWidth: 100,
+        //   align: 'center'
+        // },
         {
           title: '实际使用面积',
           key: 'actualUse',
@@ -287,12 +566,13 @@ export default {
         total: 0,
         technologyType: '',
         jobNo: '',
-        userId: ''
+        userId: '',
+        tech:null,
       },
       statisticsDetails: {
         scheduleArea: '',
         pickingMoney: '',
-        pickingNum: '',
+        pickingNum: '', 
         pickingMeters: '',
         pickingArea: '',
         backMoney: '',
@@ -308,6 +588,78 @@ export default {
     this.getAllList()
   },
   methods: {
+    //顶部radio切换
+    navTypeChange(){
+      this.params = {
+        pageIndex:1,
+        pageNum: 1,
+        pageSize: 10,
+        type: '3',
+        beginTime: this.params.beginTime,
+        endTime: this.params.endTime,
+        total: 0,
+        technologyType: '',
+        jobNo: '',
+        userId: '',
+        tech:null,
+      }
+      this.getList()
+    },
+    //点击工艺
+    techClick(techName){
+      this.params.userId = null
+      this.params.materialName = null
+      this.params.jobNo = null
+      if(techName == this.params.tech){
+        this.params.tech = null
+      }else{
+        this.params.tech = techName
+      }
+      this.getList()
+    },
+    
+    getReturnMaterialModal(_userId){
+      axios
+        .post('/cloudApi/stockBack/returnMaterial', {
+          beginTime: this.params.beginTime,
+          endTime: this.params.endTime,
+          userId:_userId || this.params.userId,
+          tech: this.params.tech,
+          materialName:this.params.materialName,
+        })
+        .then(res => {
+          this.returnMaterialData = res.data.data
+          this.returnMaterialModal = true
+        })
+    },
+    getCorrect(_userId){
+      axios
+        .post('/cloudApi/stockBack/correct', {
+          beginTime: this.params.beginTime,
+          endTime: this.params.endTime,
+          userId:_userId || this.params.userId,
+          tech: this.params.tech,
+          materialName:this.params.materialName,
+        })
+        .then(res => {
+          this.correctData = res.data.data
+          this.correctModal = true
+        })
+    },
+    getPicking(_userId){
+      axios
+        .post('/cloudApi/stockBack/picking', {
+          beginTime: this.params.beginTime,
+          endTime: this.params.endTime,
+          userId:_userId || this.params.userId,
+          tech: this.params.tech,
+          materialName:this.params.materialName,
+        })
+        .then(res => {
+          this.pickingData = res.data.data
+          this.pickingModal = true
+        })
+    },
     selectTime() {
       this.getAllList()
     },
@@ -321,6 +673,34 @@ export default {
           this.typeList = res.data.data
           this.getList()
         })
+      axios
+        .post('/cloudApi/stockBack/techStatistics', {
+          beginTime: this.params.beginTime,
+          endTime: this.params.endTime
+        })
+        .then(res => {
+          res.data.data.zhipeng = res.data.data['直喷use']
+          res.data.data.dazhi = res.data.data['打纸use']
+          res.data.data.rezhuang = res.data.data['热转use']
+          res.data.data.kongbai = res.data.data['空白旗use']
+          this.typeList2 = res.data.data
+          console.log(this.typeList2)
+        })
+    },
+    userClick2(item,techName){
+      const v = this
+      this.params.pageIndex = 1
+      this.params.pageNum = 1
+      if(item.userId == v.params.userId && techName == v.params.tech){
+        v.params.userId = null
+        v.params.tech = null
+        v.params.jobNo = null
+      }else{
+        v.params.userId = item.userId
+        v.params.tech = techName
+        v.params.jobNo = item.jobNo
+      }
+      v.getList()
     },
     userClick(item) {
       this.params.pageIndex = 1
@@ -350,7 +730,8 @@ export default {
           endTime: this.params.endTime,
           technologyType: this.params.technologyType,
           jobNo: this.params.jobNo,
-          userId: this.params.userId
+          userId: this.params.userId,
+          tech:this.params.tech,
         })
         .then(res => {
           this.statisticsDetails = res.data.data
@@ -363,7 +744,8 @@ export default {
           endTime: this.params.endTime,
           technologyType: this.params.technologyType,
           jobNo: this.params.jobNo,
-          userId: this.params.userId
+          userId: this.params.userId,
+          tech:this.params.tech,
         })
         .then(res => {
           this.data = res.data.data.records
@@ -591,4 +973,8 @@ export default {
     color: red;
   }
 }
+.cp{
+  cursor: pointer;
+  border-bottom: 1px solid #000;
+}
 </style>