소스 검색

供应商模块,辅助模块

asd26269546 2 년 전
부모
커밋
265442932a

+ 3 - 4
src/components/dateSelect/dateSelect.vue

@@ -174,7 +174,7 @@ export default {
 				this.value.beginTime = this.$dayjs(monthStartDate).format(
 					'YYYY-MM-DD HH:mm:ss'
 				)
-				this.value.endTime = this.$dayjs(monthEndDate).format(
+				this.value.endTime = this.$dayjs(now).format(
 					'YYYY-MM-DD HH:mm:ss'
 				)
 				this.dataArea = [this.value.beginTime, this.value.endTime]
@@ -190,6 +190,7 @@ export default {
 			this.$emit('change')
 		},
 		modalTimeSelect(_type) {
+			console.log(_type)
 			this.selectType = 0
 			const format = (timeStamp) => {
 				var date = new Date()
@@ -227,7 +228,6 @@ export default {
 				v.value.endTime = format(todayNum - 86400000 * 2)
 			}
 			if (_type == 3) {
-				console.log(nows)
 				v.value.beginTime = format(todayNum - 86400000 * (nows + 6))
 				v.value.endTime = format(todayNum - 86400000 * nows)
 			}
@@ -301,7 +301,6 @@ export default {
 			this.dateTabIndex = null
 			this.dataArea2 = null
 			this.selectType = 3
-			console.log(this.value)
 			this.$emit('change')
 		},
 	},
@@ -315,7 +314,7 @@ export default {
 		this.value.beginTime = this.$dayjs(monthStartDate).format(
 			'YYYY-MM-DD HH:mm:ss'
 		)
-		this.value.endTime = this.$dayjs(monthEndDate).format(
+		this.value.endTime = this.$dayjs(now).format(
 			'YYYY-MM-DD HH:mm:ss'
 		)
 		this.dataArea = [this.value.beginTime, this.value.endTime]

+ 35 - 1
src/components/my-modal-form/my-modal-form.vue

@@ -105,6 +105,7 @@
                   <span>{{ radio.label }}</span>
                 </Radio>
               </RadioGroup>
+              
               <!-- 图片上传 -->
               <div
                 class="upload-input"
@@ -126,6 +127,20 @@
                   >
                 </Upload>
               </div>
+              <div class="upload-flie" v-if="item.type === 'upload-flie'">
+                <Upload
+                  ref="upload-flie"
+                  :before-upload="(flie)=>upload(flie,item)"
+                  :format="['jpg','jpeg','png']"
+                  accept=".jpg,.png,.jpeg"
+                  action=""
+                  style="display: inline">
+                  <Tooltip :content="item.text">
+                      <Button type="primary">上传图片</Button>
+                  </Tooltip>
+                  <span>{{formData[item.key]}}</span>
+                </Upload>
+              </div>
               <Input
                 v-if="item.type === 'upload' && item.disabled"
                 v-model="formData[item.key]"
@@ -265,7 +280,7 @@ import MyTable from '_c/my-table/my-table'
 import MaterialTable from './material-table'
 import Charts from './charts'
 import MyTreeSelect from '_c/my-tree-select/my-tree-select'
-
+import { UploadBase64 } from '@/api/upload'
 export default {
   components: {
     MyTable,
@@ -423,6 +438,25 @@ export default {
     }
   },
   methods: {
+    // 图片上传
+    upload (file,item) {
+      const reader = new FileReader()
+      reader.readAsDataURL(file)
+      reader.onload = (event) => {
+        UploadBase64({
+          fileBase64: event.srcElement.result,
+          fileName: file.name,
+          floder: 'order'
+        }).then(res => {
+          if (res.code === 0) {
+            console.log(this.formData)
+            this.formData[item.key] = res.result
+            // this.form.picUrl = res.result
+          }
+        })
+      }
+      return false
+    },
     // 维护记录新增数据
     historyAdd (data) {
       if (!this.formData.facKeepRecordList) {

+ 6 - 2
src/components/my-table/my-table.vue

@@ -170,7 +170,8 @@ export default {
       type:Function
     },
     // 判断表单显示时的标识
-    showFlag: Boolean
+    showFlag: Boolean,
+    calcHeight:Number,
   },
   computed: {
     newColumns () {
@@ -378,7 +379,10 @@ export default {
     },
     // 获取表格高度
     getComHeight () {
-      if (this.isShowFilter && this.isShowPage) {
+      if(this.calcHeight){
+        console.log(this.isShowPage)
+        return 'calc(100% - '+ this.calcHeight +'px)'
+      }else if (this.isShowFilter && this.isShowPage) {
         return 'calc(100% - 85px)'
       } else if (this.isShowFilter && !this.isShowPage) {
         return 'calc(100% - 42px)'

+ 2 - 2
src/locale/lang/zh-CN.js

@@ -18,12 +18,12 @@ export default {
   store_in_manage: '入库管理',
   store_in_record: '入库记录',
   quality_record: '质检记录',
-  store_manage: '库存管理',
+  store_manage: '* 库存管理',
   store: '库存管理',
   inventory_record: '盘点记录',
   inventory_record_detail: '盘点明细',
   inventory: '发起盘点',
-  store_report: '库存报表',
+  store_report: '* 库存报表',
   store_out_manage: '出库管理',
   apply_manage: '领料管理',
   store_out_record: '出库记录',

+ 18 - 0
src/router/routers.js

@@ -229,6 +229,16 @@ export default [
         component: () => import('@/view/base-manage/provider-maintenance/provider-maintenance')
       },
       {
+        path: '/provider_maintenance2',
+        name: 'provider_maintenance2',
+        meta: {
+          title: '供应商维护'
+        },
+        component: () => import('@/view/base-manage/provider-maintenance/provider-maintenance2')
+      },
+
+      
+      {
         path: '/provider_price_maintenance',
         name: 'provider_price_maintenance',
         meta: {
@@ -482,6 +492,14 @@ export default [
         component: () => import('@/view/store-manage/store-manage/store-manage')
       },
       {
+        path: '/store2',
+        name: 'store',
+        meta: {
+          title: '库存管理'
+        },
+        component: () => import('@/view/store-manage/store-manage/store-manage-2')
+      },
+      {
         path: '/inventory',
         name: 'inventory',
         meta: {

+ 78 - 18
src/view/index/msg/msg.vue

@@ -231,24 +231,73 @@ export default {
           render: (h, params) => {
             let _this = this
             if (params.row.readState === 0) {
-              return h('a', {
-                on: {
-                  click (e) {
-                    e.stopPropagation()
-                    ReadMessageRemind({
-                      id: params.row.id
-                    }).then(res => {
-                      if (res.code === 0) {
-                        _this.$Message.info(res.msg || '操作成功')
-                        _this.$store.commit('setMsgChange', new Date().getTime())
-                        _this.getList()
+              if(params.row.routerPushUrl){
+                return h('div',[
+                  h('a', {
+                    on: {
+                      click (e) {
+                        e.stopPropagation()
+                        ReadMessageRemind({
+                          id: params.row.id
+                        }).then(res => {
+                          if (res.code === 0) {
+                            _this.$Message.info(res.msg || '操作成功')
+                            _this.$store.commit('setMsgChange', new Date().getTime())
+                            _this.getList()
+                          }
+                        })
                       }
-                    })
+                    }
+                  }, '已阅'),
+                  h('a',{
+                    style:{
+                      marginLeft:'10px'
+                    },
+                    on:{
+                      'click':()=>{
+                        this.$router.push('/' + params.row.routerPushUrl)
+                      }
+                    },
+                  },'跳转')
+                ])
+              }else{
+                return h('a', {
+                  on: {
+                    click (e) {
+                      e.stopPropagation()
+                      ReadMessageRemind({
+                        id: params.row.id
+                      }).then(res => {
+                        if (res.code === 0) {
+                          _this.$Message.info(res.msg || '操作成功')
+                          _this.$store.commit('setMsgChange', new Date().getTime())
+                          _this.getList()
+                        }
+                      })
+                    }
                   }
-                }
-              }, '已阅')
+                }, '已阅')
+              }
+              
             } else {
-              return h('span', '消息已读')
+              if(params.row.routerPushUrl){
+                return h('div',[
+                  h('span','消息已读'),
+                  h('a',{
+                    style:{
+                      marginLeft:'10px'
+                    },
+                    on:{
+                      'click':()=>{
+                        this.$router.push('/' + params.row.routerPushUrl)
+                      }
+                    },
+                  },'跳转')
+                ])
+              }else{
+                return h('span', '消息已读')
+              }
+              
             }
           }
         }
@@ -340,10 +389,21 @@ export default {
     getList () {
       GetMessageRemindPage(this.params).then(res => {
         if (res.code === 0) {
-          this.data = res.result.list
-          this.data.forEach(item => {
+          
+          res.result.list.forEach(item => {
             item.readState = this.params.readState
-          })
+            if(item.content.indexOf('请尽快确认合同') != -1) item.routerPushUrl = 'material_contract'
+            if(item.content.indexOf('退货审批') != -1) item.routerPushUrl = 'return_material'
+            if(item.content.indexOf('退货申请') != -1) item.routerPushUrl = 'return_material'
+            if(item.content.indexOf('盘点工作') != -1) item.routerPushUrl = 'inventory_record'
+            if(item.content.indexOf('出库数量超标') != -1) item.routerPushUrl = 'error_out'
+            if(item.content.indexOf('出库物料错误') != -1) item.routerPushUrl = 'error_out'
+            if(item.content.indexOf('信息已发生变化') != -1) item.routerPushUrl = 'material_maintenance'
+            if(item.content.indexOf('驳回') != -1) item.routerPushUrl = 'schedule'
+            if(item.content.indexOf('进行处理') != -1) item.routerPushUrl = 'inventory_record'
+          }) 
+          this.data = res.result.list
+          console.log(this.data)
           this.params.total = res.result.totalCount
         }
       })

+ 99 - 1
src/view/index/schedule/contract-form.vue

@@ -117,6 +117,7 @@
     <side-bar v-model="showSider">
       <div class="content" style="padding: 16px 10px;">
         <div class="title">决策辅助</div>
+        <div v-if="isNewSu == 0" style="color:#fff;background-color: red;padding: 5px 0;text-align: center;">本次申购供应商为新供应商!</div>
         <div class="card">
           <div class="sub-title border">库存信息</div>
           <div class="row">
@@ -182,6 +183,16 @@
         </div>
         <div class="card">
           <div class="sub-title border">供应商记录</div>
+          <div class="supplier-title">
+            <span>{{supplierDetail.name}}</span>
+            <img v-if="supplierDetail.certificate  && supplierDetail.businessLicense" src="@/assets/images/dun.png" alt="">
+            <img v-if="supplierDetail.warningCount > 0" src="@/assets/images/gaojin.png" alt="">
+            <div class="qipao-warp" v-if="supplierDetail.warningTypeCount > 0">
+              <img src="@/assets/images/qipao.png" style="" alt="">
+              <div class="num">{{supplierDetail.warningTypeCount}}</div>
+            </div>
+            
+          </div>
           <div class="row">
             <div class="col">
               <div class="label">累计采购:</div>
@@ -268,6 +279,41 @@
             无其他供应商
           </div>
         </div>
+        <div class="card" v-if="JSON.stringify(newPurData) != '{}'">
+          <div class="sub-title border">面料上次采购信息</div>
+          <div>
+            <div class="row">
+              <div class="col">
+                <div class="label">{{newPurData.materialName }}</div>
+              </div>
+            </div>
+            <div class="row">
+              <div class="col">
+                <div class="label">采购时间:</div>
+                <div class="value">{{ newPurData.approvalTime }}</div>
+              </div>
+            </div>
+            <div class="row">
+              <div class="col">
+                <div class="label">采购数量:</div>
+                <div class="value">{{ newPurData.purchaseQty }}</div>
+              </div>
+            </div>
+            <div class="row">
+              <div class="col">
+                <div class="label">供应商:</div>
+                <div class="value">{{ newPurData.supplierName }}</div>
+              </div>
+            </div>
+            <div class="row">
+              <div class="col">
+                <div class="label">合同号:</div>
+                <div class="value">{{ newPurData.purchaseBillNo }}</div>
+                <modal-contract v-model="show" :data="data"></modal-contract>
+              </div>
+            </div>
+          </div>
+        </div>
       </div>
     </side-bar>
   </modal>
@@ -279,6 +325,7 @@ import LineChart from './line-chart'
 import ModalContract from './modal-contract'
 import { GetApprovalFlows } from '@/api/stock'
 import { ApprovalBillFlow, GetPurContractPolicy } from '@/api/applyPurchase'
+import axios from 'axios'
 export default {
   name: 'contract-form',
   data () {
@@ -289,7 +336,10 @@ export default {
       formData: {},
       remark: '',
       modal: false,
-      showSider: true
+      showSider: true,
+      supplierDetail:{},
+      isNewSu:1,
+      newPurData:{},
     }
   },
   components: {
@@ -320,6 +370,7 @@ export default {
     modal (n) {
       this.$emit('input', n)
       if (n) {
+        console.log()
         GetApprovalFlows({
           linkId: this.data.id
         }).then(res => {
@@ -327,6 +378,21 @@ export default {
             this.flowsList = res.result
           }
         })
+        // axios.get('/supplier/su/detail?id=' + this.data.supplierId, {}).then(res=>{
+        //   if(res.data.code == 200){
+        //     this.supplierDetail = res.data.data
+        //   }
+        // })
+        // axios.get('/purchaseContract/check/isNewSu?materialCode=' + this.data.materialCode + '&supplierId=' + this.data.supplierId, {}).then(res=>{
+        //   if(res.data.code == 200){
+        //     this.isNewSu = res.data.data
+        //   }
+          
+        // })
+        // axios.get('/purchaseContract/last/newPur?materialCode=' + this.data.materialCode, {}).then(res=>{
+        //   res.data.data.purchaseQty = (res.data.data.purchaseQty * 1).toFixed(2)
+        //   this.newPurData = res.data.data
+        // })
         GetPurContractPolicy({
           id: this.data.id
         }).then(res => {
@@ -364,6 +430,38 @@ export default {
 </script>
 
 <style lang="less" scoped>
+.dn{
+  display: none;
+}
+.supplier-title{
+  overflow: hidden;
+  
+  .qipao-warp{
+    position: relative;
+    float: left;
+    .num{
+      position: absolute;
+      top:2px;
+      left: 10px;
+      color: #fff;
+      font-size: 12px;
+      transform:scale(0.8)
+    }
+  }
+  span{
+    margin-left:12px;
+    display: block;
+    float: left;
+    font-size: 14px;
+    color: #1A3AF0;
+  }
+  img{
+    width: 20px;
+    display: block;
+    margin-left: 5px;
+    float: left;
+  }
+}
 .content {
   padding: 10px 0;
   border-radius: 5px;

+ 9 - 0
src/view/material-manege/pay/pay2.vue

@@ -197,9 +197,18 @@
 								</div>
 								<div class="col">
 									<div class="label">付款期限:</div>
+									
 									<div class="value" :style="item.payTimeLimit.indexOf('超过') == -1 ? 'color:rgb(7, 201, 9)' : 'color:red'">
 										{{ item.payTimeLimit }}
+										<Poptip placement="bottom">
+											<Icon type="ios-alert-outline" size="20" style="margin:0 10px 0 5px;position: relative;top:-2px;color:#333" />
+											<div class="api" slot="content" style="padding:10px;color:#333">
+												最后入库时间:{{item.completeStockTime}}<br>
+												供应商账期:{{item.accountDate}}天
+											</div>
+										</Poptip>
 									</div>
+									
 								</div>
 								<div class="col" style="flex: 1">
 									<div class="label">实收发票:</div>

+ 189 - 27
src/view/store-manage/store-report/store-report.vue

@@ -24,37 +24,63 @@
 					@on-change="changePage"
 				></my-table>
 			</TabPane>
-			<TabPane label="领料序时簿" name="3">
+			<TabPane label="* 领料序时簿" name="3">
 				<div style="overflow: hidden;">
+					<Button :type="params7.materialType ? 'default' : 'primary'" @click.native="getAlldata">全部</Button>
 					<date-select v-model="params7" @change="selectTime"></date-select>
+
 				</div>
 				<div class="total-warp">
 					<div class="left-total" style="padding-right: 1px">
-						<div class="total-header">
+						<div class="total-header" @click="dataModalTypeFn">
 							<div class="title">面料</br>领用</div>
 							<div>卷数</br><span>{{pickingStatisticsData.fabricStatistics.total}}</span></div>
 							<div>米数</br><span>{{pickingStatisticsData.fabricStatistics.length}}</span></div>
 							<div>面积</br><span>{{pickingStatisticsData.fabricStatistics.measureArea}}</span></div>
 							<div>金额</br><span>{{pickingStatisticsData.fabricStatistics.money}}</span></div>
 						</div>
-						<div>
-							<Table height="200" size="small" :columns="columns7" :data="data7"></Table>
+						<div v-if="dataModalType">
+							<Table height="175" 
+								@on-expand="expandChange"
+								@on-row-click="moshuiTbleLineCk2" 
+								:columns="columns7" 
+								:row-class-name="rowClassName"
+								:data="data7">
+							 </Table>
 						</div>
 					</div>
 					<div class="right-total">
-						<div class="total-header">
+						<div class="total-header"  @click="dataModalTypeFn">
 							<div class="title">墨水</br>领用</div>
 							<div>件数</br><span>{{pickingStatisticsData.inkStatistics.total}}</span></div>
 							<div>公斤</br><span>{{pickingStatisticsData.inkStatistics.weight}}</span></div>
 							<div>金额</br><span>{{pickingStatisticsData.inkStatistics.money}}</span></div>
 						</div>
-						<div>
-							<Table height="200" :columns="columns8" :data="data8"></Table>
+						<div  v-if="dataModalType">
+							<Table  height="175" @on-row-click="moshuiTbleLineCk" :row-class-name="(row,index)=>rowClassName2('moshui',row,index)" :columns="columns8" :data="data8"></Table>
 						</div>
 					</div>
 				</div>
-				<!-- <Table height="200" :columns="columns3" :data="data3"></Table> -->
-				<div style="height:calc(100vh - 516px)">
+				<div class="h2">
+					领料详情<span v-if="selectMaterialProperties">-{{selectMaterialProperties}}<span v-if="selectUserName">-{{selectUserName}}</span></span>
+				</div>
+				<div style="margin:10px 0">
+					<RadioGroup v-model="params7.type" @on-change="radioChange">
+						<Radio label="0">全部 
+							(<span style="color:red">
+								{{radioTotal.cancellingStocks*1 + radioTotal.exWarehouse*1 + radioTotal.supplementaryDelivery*1}}
+							</span>)
+						</Radio>
+						<Radio label="20">正常出库(<span style="color:red">{{radioTotal.exWarehouse}}</span>)</Radio>
+						<Radio label="23">补出库(<span style="color:red">{{radioTotal.supplementaryDelivery}}</span>)</Radio>
+						<Radio label="15">退库(<span style="color:red">{{radioTotal.cancellingStocks}}</span>)</Radio>
+					</RadioGroup>
+				</div>
+				<Table :height="table3Hiehgt" :columns="columns3" :data="data3"></Table>
+				<div style="text-align:center;margin-top:20px">
+					<Page :current="params7.pageNum" @on-change="changePage3" :total="params3.total" />
+				</div>
+				<!-- <div style="height:calc(100vh - 516px)">
 					<my-table
 						ref="llsxb"
 						:data="data3"
@@ -64,7 +90,7 @@
 						@on-change="changePage3"
 						:table-filter="tableFilter3"
 					></my-table>
-				</div>
+				</div> -->
 			</TabPane>
 			<TabPane label="物料收发汇总" name="4">
 				<my-table
@@ -296,6 +322,10 @@ export default {
 					title: '物料类型',
 					key: 'materialType',
 					minWidth: 150,
+					render:(h,p)=>{
+						const v = this
+						return h('span',v.materialTypeList[p.row.materialType])
+					}
 					
 				},
 				{
@@ -693,8 +723,21 @@ export default {
 					render: (h, params) => {
 						return h(expandRow, {
 							props: {
-								row: params
-							}
+								row: params,
+								params :this.params7
+							},
+							on:{
+								'on-row-click': (item)=>{
+									console.log(params)
+									this.params7.userId = item.userId
+									this.selectUserName = item.name
+									this.selectMaterialProperties = params.row.name
+									this.params7.materialType = params.row.materialType
+									this.params7.pageIndex = 1
+									this.params7.pageNum = 1
+									this.getPickingPage()
+								}
+							},
 						})
 					}
 				},
@@ -908,15 +951,22 @@ export default {
 				total: 0,
 			},
 			params3: {
-				pageIndex: 1,
-				pageSize: 20,
+				pageNum: 1,
+				pageSize: 10,
 				total: 0,
+				beginTime:null,
+				endTime:null,
+				pageIndex:1,
+				type:'0',
+				userId:null,
+				materialType:null,
 			},
 			params4: {},
 			params5: {
 				pageIndex: 1,
 				pageSize: 20,
 				total: 0,
+				
 			},
 			params6: {},
       		params7: {
@@ -925,19 +975,87 @@ export default {
 				total: 0,
 				beginTime:null,
 				endTime:null,
+				pageIndex:1,
+				type:'0',
+				userId:null,
+				materialType:null,
 			},
 			pickingStatisticsData:{
-				fabricStatistics:{},
+				fabricStatistics:{
+				},
+				inkDetails:[],
+				fabricTree:[],
 				inkStatistics:{},
 			},
+			selectUserName:null,
+			selectMaterialProperties:null,
+			table3Hiehgt:300,
+			radioTotal:{},
+			dataModalType:true,
 		}
 		
 	},
 	methods: {
-    	selectTime(){
+		dataModalTypeFn(){
+			this.dataModalType = !this.dataModalType
+			if(this.dataModalType){
+				this.table3Hiehgt = document.body.clientHeight - 630
+			}else{
+				this.table3Hiehgt = document.body.clientHeight - 450
+			}
+			
+		},
+		rowClassName2(type,row,index){
+			if(row.userId == this.params7.userId && this.selectMaterialProperties == '墨水'){
+				return 'table-info-row';
+			}
+		},
+		rowClassName(row,index){
+			if(row.name == this.selectMaterialProperties){
+				return 'table-info-row';
+			}
+		},
+		getAlldata(){
+			this.params7.materialType = null
+			this.params7.userId = null
+			this.params7.pageNum = 1
+			this.params7.pageIndex = 1
+			this.selectUserName = null
+			this.selectMaterialProperties = null
+		},
+		expandChange(){
+			
+		},
+		moshuiTbleLineCk2(row,index){
+			this.params7.materialType = row.materialType
+			this.selectMaterialProperties = row.name
+			this.params7.pageNum = 1
+			this.params7.pageIndex = 1
+			this.selectUserName = null
+			this.params7.userId = null
+			this.getPickingPage()
+		},
+		moshuiTbleLineCk(row,index){
+			this.params7.userId = row.userId
+			this.selectUserName = row.userName
 			this.params7.pageNum = 1
+			this.params7.pageIndex = 1
+			this.selectMaterialProperties = '墨水'
+			this.params7.materialType = '3'
 			this.getPickingPage()
 		},
+		radioChange(){
+			this.params7.pageNum = 1
+			this.params7.pageIndex = 1
+			this.getPickingPage()
+		},
+    	selectTime(){
+			this.params7.materialType = null
+			this.params7.userId = null
+			this.selectUserName = null
+			this.selectMaterialProperties = null
+			this.totalInit()
+		},
 		changePage3(e){
 			this.params7.pageNum = e
 			axios.post('/cloudApi/stockWater/getPickingPage', {
@@ -945,32 +1063,63 @@ export default {
 				})
 				.then((res) => {
 					this.data3 = res.data.data.records
-					this.params3.total = res.data.data.total
+					this.params7.total = res.data.data.total
 					console.log(this.params3.total)
 					
 				})
 		},
-		getPickingPage() {
-
+		totalInit(){
+			if(this.dataModalType){
+				this.table3Hiehgt = document.body.clientHeight - 630
+			}else{
+				this.table3Hiehgt = document.body.clientHeight - 450
+			}
 			axios.post('/cloudApi/stockWater/getPickingStatistics', {
 					...this.params7,
 				})
 				.then((res) => {
-					this.pickingStatisticsData = res.data.data
+					this.pickingStatisticsData.fabricStatistics = res.data.data.fabricStatistics || {
+						total:0,
+						measureArea:0,
+						money:0,
+						length:0
+					}
+					this.pickingStatisticsData.inkStatistics = res.data.data.inkStatistics || {
+						total:0,
+						money:0,
+						weight:0,
+					}
+					
 					this.data7 = res.data.data.fabricTree
 					this.data8 = res.data.data.inkDetails
-					console.log(this.data7)
 					
 				})
+			
+			axios.post('/cloudApi/stockWater/getPickingStockChangeTypeCount',{...this.params7}).then(res=>{
+				this.radioTotal = res.data.data
+			})
+			
 			axios.post('/cloudApi/stockWater/getPickingPage', {
-					...this.params,
+					...this.params7,
 				})
 				.then((res) => {
 					this.data3 = res.data.data.records
 					this.params3.total = res.data.data.total
-					console.log(this.data3)
 					
 				})
+		},
+		getPickingPage() {
+			axios.post('/cloudApi/stockWater/getPickingPage', {
+					...this.params7,
+				})
+				.then((res) => {
+					this.data3 = res.data.data.records
+					this.params3.total = res.data.data.total
+					
+				})
+			axios.post('/cloudApi/stockWater/getPickingStockChangeTypeCount',{...this.params7}).then(res=>{
+				this.radioTotal = res.data.data
+			})
 			
 		},
 		tabClick(name) {
@@ -1014,9 +1163,6 @@ export default {
 			}
 		},
 		getselectedList(list, multiple) {
-			console.log('????????????????????-----')
-			console.log(list)
-			console.log(multiple)
 			this.$refs.table.setModel('materialCode', list[0].code)
 			this.params6.materialCode = list[0].code
 		},
@@ -1189,7 +1335,7 @@ export default {
 	},
 	mounted() {
 		this.tabClick('1') 
-    	this.getPickingPage()
+    	this.totalInit()
 	},
 }
 </script>
@@ -1200,12 +1346,28 @@ export default {
 .total-warp .ivu-table td{
 	height: 32px!important;
 }
+.total-warp .ivu-table-cell-with-expand{
+	height: 32px!important;
+	line-height: 32px;
+}
+.ivu-table .table-info-row td{
+	background-color: #2db7f5;
+	color: #fff;
+}
 </style>
 <style lang="less" scoped>
+.h2{
+	font-size: 18px;
+	font-weight: bold;
+	color: #333;
+	height: 40px;
+	line-height: 40px;
+}
 .total-warp {
 	display: flex;
 	justify-content: space-between;
 	margin-top: 10px;
+	
 	.left-total,
 	.right-total {
 		width: 49%;

+ 16 - 3
src/view/store-manage/store-report/table-expand.vue

@@ -9,11 +9,17 @@
         padding: 0 16px;
         float: left;
         list-style: none;
+        cursor: pointer;
     }
 </style>
 <template>
     <div>
-        <ul class="expand-row" v-for="i in row.row.children" :key="i.materialType">
+        <ul class="expand-row" 
+            v-for="i in row.row.children" 
+            :key="i.materialType" 
+            @click="expandListCk(i)" 
+            :style="params.userId == i.userId && params.materialType != '3' ? 'color:#2db7f5' : ''"
+        >
             <li>{{i.name}}</li>
             <li>{{i.total}}</li>
             <li>{{i.length}}</li>
@@ -26,10 +32,17 @@
 <script>
     export default {
         props: {
-            row: Object
+            row: Object,
+            params:Object
         },
         created(){
-            console.log(this.row)
+            
+        },
+        methods:{
+            expandListCk(item){
+                console.log(this.params)
+                this.$emit('on-row-click',item)
+            },
         },
     };
 </script>

+ 19 - 10
vue.config.js

@@ -24,8 +24,9 @@ const resolve = dir => {
 // iview-admin线上演示打包路径: https://file.iviewui.com/admin-dist/
 const BASE_URL = process.env.NODE_ENV === 'production'
   ? '/'
-  : '/'
-
+  : '/';
+const ip = 'http://120.79.80.64:8050'
+//const ip = 'http://192.168.1.80:8300'
 module.exports = {
   devServer: {
     port: "8080", //代理端口
@@ -35,20 +36,28 @@ module.exports = {
     },
     proxy: {
       '/cloudApi': {
-        //本地服务接口地址
-        target: 'http://120.79.80.64:8050',
-        //远程演示服务地址,可用于直接启动项目
-        //target: 'https://saber.bladex.vip/api',
+        target: ip,
+        ws: true,
+        pathRewrite: {
+          '^/api': '/'
+        }
+      },
+      '/purchaseContract': {
+        target: ip,
+        ws: true,
+        pathRewrite: {
+          '^/api': '/'
+        }
+      },
+      '/supplier': {
+        target: ip,
         ws: true,
         pathRewrite: {
           '^/api': '/'
         }
       },
       '/javaApi': {
-        //本地服务接口地址
-        target: 'http://120.79.80.64:8050',
-        //远程演示服务地址,可用于直接启动项目
-        //target: 'https://saber.bladex.vip/api',
+        target: ip,
         ws: true,
         pathRewrite: {
           '^/api': '/'