Ver Fonte

领料簿模块

asd26269546 há 2 anos atrás
pai
commit
fa249c4211

+ 71 - 42
src/components/dateSelect/dateSelect.vue

@@ -8,7 +8,9 @@
 			placement="bottom-end"
 			placeholder="请选择月份"
 			style="width: 200px; margin-right: 10px"
-			:style="dataArea2 ? 'border:1px solid #3f92f9;border-radius:5px' : ''"
+			:style="
+				dataArea2 ? 'border:1px solid #3f92f9;border-radius:5px' : ''
+			"
 		>
 		</DatePicker>
 		<div class="date-filter">
@@ -22,12 +24,18 @@
 				{{ item.label }}
 			</div>
 			<Poptip placement="bottom">
-				<div class="date-tab" :class="dateTabIndex === 5 ? 'active' : ''" style="width: 50px">其他</div>
+				<div
+					class="date-tab"
+					:class="dateTabIndex === 5 ? 'active' : ''"
+					style="width: 50px"
+				>
+					其他
+				</div>
 				<div slot="content">
 					<div
-                        class="select-time-box"
+						class="select-time-box"
 						v-for="i in modalTimeList"
-						@click="modalTimeSelect(i.type)" 
+						@click="modalTimeSelect(i.type)"
 						:key="i.type"
 					>
 						{{ i.name }}
@@ -36,7 +44,11 @@
 			</Poptip>
 		</div>
 		<DatePicker
-			:style="selectType == 3 ? 'border:1px solid #3f92f9;border-radius:5px' : ''"
+			:style="
+				selectType == 3
+					? 'border:1px solid #3f92f9;border-radius:5px'
+					: ''
+			"
 			:clearable="false"
 			@on-change="dateClick"
 			v-model="dataArea"
@@ -104,19 +116,23 @@ export default {
 			],
 			dataArea2: null,
 			dataArea: [],
-            time:[],
+			time: [],
 		}
 	},
 	methods: {
-        /* 选项卡切换 */
+		/* 选项卡切换 */
 		dateTabToggle(index) {
 			this.selectType = 0
 			this.dateTabIndex = index
-            this.dataArea2 = null
+			this.dataArea2 = null
 			if (index === 0) {
 				let time = new Date().getTime()
-				this.value.beginTime = this.$dayjs(time).format('YYYY-MM-DD HH:mm:ss')
-				this.value.endTime = this.$dayjs(time).format('YYYY-MM-DD HH:mm:ss')
+				this.value.beginTime = this.$dayjs(time).format(
+					'YYYY-MM-DD HH:mm:ss'
+				)
+				this.value.endTime = this.$dayjs(time).format(
+					'YYYY-MM-DD HH:mm:ss'
+				)
 				this.dataArea = [this.value.beginTime, this.value.endTime]
 			} else if (index === 1) {
 				let Nowdate = new Date()
@@ -175,22 +191,22 @@ export default {
 		},
 		modalTimeSelect(_type) {
 			this.selectType = 0
-            const format = (timeStamp) => {
-                var date = new Date();
-                date.setTime(timeStamp * 1);
-                var y = date.getFullYear();
-                var m = date.getMonth() + 1;
-                m = m < 10 ? ('0' + m) : m;
-                var d = date.getDate();
-                d = d < 10 ? ('0' + d) : d;
-                var h = date.getHours();
-                h = h < 10 ? ('0' + h) : h;
-                var minute = date.getMinutes();
-                var second = date.getSeconds();
-                minute = minute < 10 ? ('0' + minute) : minute;
-                second = second < 10 ? ('0' + second) : second;
-                return y + '-' + m + '-' + d;
-            }
+			const format = (timeStamp) => {
+				var date = new Date()
+				date.setTime(timeStamp * 1)
+				var y = date.getFullYear()
+				var m = date.getMonth() + 1
+				m = m < 10 ? '0' + m : m
+				var d = date.getDate()
+				d = d < 10 ? '0' + d : d
+				var h = date.getHours()
+				h = h < 10 ? '0' + h : h
+				var minute = date.getMinutes()
+				var second = date.getSeconds()
+				minute = minute < 10 ? '0' + minute : minute
+				second = second < 10 ? '0' + second : second
+				return y + '-' + m + '-' + d
+			}
 			const v = this
 			const todayNum = new Date(new Date().toLocaleDateString()).getTime()
 			const today = new Date()
@@ -213,7 +229,7 @@ export default {
 			if (_type == 3) {
 				console.log(nows)
 				v.value.beginTime = format(todayNum - 86400000 * (nows + 6))
-				v.value.endTime = format(todayNum - 86400000 * (nows))
+				v.value.endTime = format(todayNum - 86400000 * nows)
 			}
 			if (_type == 4) {
 				if (month == 1) {
@@ -260,8 +276,8 @@ export default {
 				}
 			}
 			v.dataArea = [v.value.beginTime, v.value.endTime]
-            v.dateTabIndex = 5
-            this.$emit('change')
+			v.dateTabIndex = 5
+			this.$emit('change')
 		},
 		dateClick2(date) {
 			const dateDayNum = new Date(date).getDate()
@@ -277,7 +293,7 @@ export default {
 				new Date(dateYearNum, dateMonthNum * 1, 0).getDate()
 			this.dataArea = []
 			this.selectType = 0
-            this.$emit('change')
+			this.$emit('change')
 		},
 		dateClick(date) {
 			this.value.beginTime = date[0]
@@ -285,25 +301,38 @@ export default {
 			this.dateTabIndex = null
 			this.dataArea2 = null
 			this.selectType = 3
-            console.log(this.value)
-            this.$emit('change')
+			console.log(this.value)
+			this.$emit('change')
 		},
 	},
-	created(){
-		console.log(this.dateTabIndex)
+	created() {
+		let now = new Date() // 当前日期
+		let nowYear = now.getFullYear() // 当前年
+		// 本年的开始时间
+		let monthStartDate = new Date(nowYear, 0, 1)
+		// 本年的结束时间
+		let monthEndDate = new Date(nowYear, 11, 31)
+		this.value.beginTime = this.$dayjs(monthStartDate).format(
+			'YYYY-MM-DD HH:mm:ss'
+		)
+		this.value.endTime = this.$dayjs(monthEndDate).format(
+			'YYYY-MM-DD HH:mm:ss'
+		)
+		this.dataArea = [this.value.beginTime, this.value.endTime]
 	},
 }
 </script>
 <style scoped lang="less">
-.select-time-box{
-    height: 30px;
-    line-height: 30px;
-    text-align: center;
-    cursor: pointer;
+.select-time-box {
+	height: 30px;
+	line-height: 30px;
+	text-align: center;
+	cursor: pointer;
 }
-.select-time-box:hover,.select-time-box.active{
-    background: #3f92f9;
-    color: #fff;
+.select-time-box:hover,
+.select-time-box.active {
+	background: #3f92f9;
+	color: #fff;
 }
 .date-filter-wrap {
 	display: flex;

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

@@ -11,10 +11,10 @@ export default {
   material_maintenance: '物料维护',
   provider_maintenance: '供应商维护',
   provider_price_maintenance: '价格维护',
-  material_manage: '申购管理',
+  material_manage: '* 申购管理',
   material_apply: '申购单',
   material_contract: '合同管理',
-  material_pay: '合同付款',
+  material_pay: '* 合同付款',
   store_in_manage: '入库管理',
   store_in_record: '入库记录',
   quality_record: '质检记录',

+ 44 - 5
src/view/material-manege/pay/pay2.vue

@@ -80,14 +80,14 @@
 						<Radio :label="0">
 							<span>
 								全部
-								<span class="red">({{ data.totalCount }})</span>
+								<span class="red">({{ unApprovalOrunCompleteCount }})</span>
 							</span>
 						</Radio>
 						<Radio :label="1">
 							<span>
 								可发起
 								<span class="red"
-									>({{ data.unApprovalCount }})</span
+									>({{ unApprovalCount }})</span
 								>
 							</span>
 						</Radio>
@@ -95,7 +95,7 @@
 							<span>
 								待补齐
 								<span class="red"
-									>({{ data.unCompleteCount }})</span
+									>({{ unCompleteCount }})</span
 								>
 							</span>
 						</Radio>
@@ -197,7 +197,7 @@
 								</div>
 								<div class="col">
 									<div class="label">付款期限:</div>
-									<div class="value">
+									<div class="value" :style="item.payTimeLimit.indexOf('超过') == -1 ? 'color:rgb(7, 201, 9)' : 'color:red'">
 										{{ item.payTimeLimit }}
 									</div>
 								</div>
@@ -603,6 +603,9 @@ export default {
 				currentPeriod:0,
 				nextCycle:0,
 			},
+			unApprovalCount:0,
+			unCompleteCount:0,
+			unApprovalOrunCompleteCount:0,
 		}
 	},
 	methods: {
@@ -678,6 +681,8 @@ export default {
 		},
 		searchFn(){
 			const v = this
+			v.unApprovalCount = 0
+			v.unCompleteCount = 0
 			if(v.salesVolumeCompanyTotalType){
 
 			}else{
@@ -694,6 +699,40 @@ export default {
 					}
 				}
 			}
+			v.unApprovalOrunCompleteCount = list.length
+			for (let i = 0; i < list.length; i++) {
+				const element = list[i];
+				if(element.canApplyPay == 0 || element.canApplyPay == 1){
+						v.unApprovalCount++
+				}
+				if(element.toBeComplete){
+					v.unCompleteCount++
+				}
+			}
+			if(!v.params.payBillStatus == 0){
+				for (let i = 0; i < list.length; i++) {
+					const element = list[i];
+					if(v.params.payBillStatus == 1){
+						if(element.canApplyPay != 0 && element.canApplyPay != 1){
+							list.splice(i,1);
+							i--
+							continue
+						}else{
+
+						}
+						
+					}
+					if(v.params.payBillStatus == 2){
+						if(!element.toBeComplete){
+							list.splice(i,1);
+							i--
+							continue
+						}
+					}
+				}
+
+			}
+			
 			const dateDayNum = new Date().getDate()
 			const dateMonthNum = new Date().getMonth() + 1
 			const dateYearNum = new Date().getFullYear()
@@ -1114,7 +1153,7 @@ export default {
 		statusChange() {
 			this.params.pageIndex = 1
 			this.keyWord = ''
-			this.getList()
+			this.searchFn()
 		},
 		
 		search() {

+ 9 - 1
src/view/material-manege/purchaseTotal/purchaseTotal.vue

@@ -3,7 +3,15 @@
 		<div class="bar-title" style="overflow: hidden;">
 			<span style="font-size: 16px; font-weight: bold; color: #000"
 				>申购统计</span
-			> <span v-if="this.params.beginTime">({{(this.params.beginTime ?  this.params.beginTime.slice(0,11) : '') + '-' + (this.params.endTime ?  this.params.endTime.slice(0,11) : '')}})</span>
+			> 
+			<Poptip placement="bottom">
+				<Icon type="ios-alert-outline" size="20" style="margin:0 10px 0 5px;position: relative;top:-3px" />
+				<div class="api" slot="content" style="padding:10px">
+					取申购审批通过,生成合同后的数据;<br>
+					合同未质检取合同金额,已质检取质检金额
+				</div>
+			</Poptip>
+			<span v-if="this.params.beginTime">({{(this.params.beginTime ?  this.params.beginTime.slice(0,11) : '') + '-' + (this.params.endTime ?  this.params.endTime.slice(0,11) : '')}})</span>
             <date-select v-model="params" @change="selectTime"></date-select>
 			
 		</div>

+ 155 - 89
src/view/store-manage/store-report/store-report.vue

@@ -1,30 +1,6 @@
 <!-- 库存报表 -->
 <template>
 	<div class="container">
-		<div style="overflow: hidden;">
-			<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="title">面料</br>领用</div>
-					<div>卷数</br><span>12312312</span></div>
-					<div>米数</br><span>12312312</span></div>
-					<div>面积</br><span>12312312</span></div>
-					<div>金额</br><span>12312312</span></div>
-				</div>
-				<div>
-					<Table :columns="columns7" :data="data7"></Table>
-				</div>
-			</div>
-			<div class="right-total">
-				<div class="total-header"></div>
-				<div>
-					<Table :columns="columns8" :data="data8"></Table>
-				</div>
-			</div>
-		</div> -->
-		
 		<Tabs :value="tabName" @on-click="tabClick">
 			<TabPane label="盘盈亏单" name="1">
 				<my-table
@@ -49,16 +25,46 @@
 				></my-table>
 			</TabPane>
 			<TabPane label="领料序时簿" name="3">
-				
-				<my-table
-					ref="llsxb"
-					:data="data3"
-					:columns="columns3"
-					:table-filter="tableFilter3"
-					:table-page="params3"
-					@event-handle="eventHandle"
-					@on-change="changePage"
-				></my-table>
+				<div style="overflow: hidden;">
+					<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="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>
+					</div>
+					<div class="right-total">
+						<div class="total-header">
+							<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>
+					</div>
+				</div>
+				<!-- <Table height="200" :columns="columns3" :data="data3"></Table> -->
+				<div style="height:calc(100vh - 516px)">
+					<my-table
+						ref="llsxb"
+						:data="data3"
+						:columns="columns3"
+						:table-page="params3"
+						@event-handle="eventHandle"
+						@on-change="changePage3"
+						:table-filter="tableFilter3"
+					></my-table>
+				</div>
 			</TabPane>
 			<TabPane label="物料收发汇总" name="4">
 				<my-table
@@ -273,6 +279,7 @@ export default {
 					minWidth: 150,
 				},
 			],
+			materialTypeList:['直喷','热转','打纸','墨水','其他'],
 			columns3: [
 				{
 					title: '序号',
@@ -287,8 +294,9 @@ export default {
 				},
 				{
 					title: '物料类型',
-					key: 'materialCategoryName',
+					key: 'materialType',
 					minWidth: 150,
+					
 				},
 				{
 					title: '物料编码',
@@ -302,32 +310,32 @@ export default {
 				},
 				{
 					title: '物料规格',
-					key: 'spec',
+					key: 'materialSpec',
 					minWidth: 150,
 				},
 				{
 					title: '单位',
-					key: 'untilName',
+					key: 'materialUnit',
 					minWidth: 150,
 				},
 				{
 					title: '领料数量',
-					key: 'quantity',
+					key: 'changeNum',
 					minWidth: 150,
 				},
 				{
 					title: '单价',
-					key: 'price',
+					key: 'materialPrice',
 					minWidth: 150,
 				},
 				{
 					title: '金额',
-					key: 'amount',
+					key: 'money',
 					minWidth: 150,
 				},
 				{
 					title: '人员',
-					key: 'userName',
+					key: 'realName',
 					minWidth: 150,
 				},
 				{
@@ -791,30 +799,30 @@ export default {
 				},
 			],
 			tableFilter3: [
-				{
-					name: 'Input',
-					value: 'workKey',
-					placeholder: '请输入关键字',
-				},
-				{
-					name: 'DatePicker',
-					value: 'yearMonth',
-					placeholder: '请选择日期',
-					unClearable: true,
-					type: 'month',
-				},
-				{
-					name: 'Button',
-					type: 'primary',
-					text: '查询',
-					e: 'search',
-				},
-				{
-					name: 'Button',
-					type: 'primary',
-					text: '导出Excel',
-					e: 'export',
-				},
+				// {
+				// 	name: 'Input',
+				// 	value: 'workKey',
+				// 	placeholder: '请输入关键字',
+				// },
+				// {
+				// 	name: 'DatePicker',
+				// 	value: 'yearMonth',
+				// 	placeholder: '请选择日期',
+				// 	unClearable: true,
+				// 	type: 'month',
+				// },
+				// {
+				// 	name: 'Button',
+				// 	type: 'primary',
+				// 	text: '查询',
+				// 	e: 'search',
+				// },
+				// {
+				// 	name: 'Button',
+				// 	type: 'primary',
+				// 	text: '导出Excel',
+				// 	e: 'export',
+				// },
 			],
 			tableFilter4: [
 				{
@@ -911,29 +919,59 @@ export default {
 				total: 0,
 			},
 			params6: {},
-      params7: {
+      		params7: {
 				pageNum: 1,
 				pageSize: 10,
 				total: 0,
-        beginTime:null,
-        endTime:null,
+				beginTime:null,
+				endTime:null,
+			},
+			pickingStatisticsData:{
+				fabricStatistics:{},
+				inkStatistics:{},
 			},
 		}
+		
 	},
 	methods: {
-    selectTime(){},
+    	selectTime(){
+			this.params7.pageNum = 1
+			this.getPickingPage()
+		},
+		changePage3(e){
+			this.params7.pageNum = e
+			axios.post('/cloudApi/stockWater/getPickingPage', {
+					...this.params7,
+				})
+				.then((res) => {
+					this.data3 = res.data.data.records
+					this.params3.total = res.data.data.total
+					console.log(this.params3.total)
+					
+				})
+		},
 		getPickingPage() {
 
 			axios.post('/cloudApi/stockWater/getPickingStatistics', {
-					...this.params,
+					...this.params7,
 				})
 				.then((res) => {
-          
+					this.pickingStatisticsData = res.data.data
 					this.data7 = res.data.data.fabricTree
 					this.data8 = res.data.data.inkDetails
 					console.log(this.data7)
 					
 				})
+			axios.post('/cloudApi/stockWater/getPickingPage', {
+					...this.params,
+				})
+				.then((res) => {
+					this.data3 = res.data.data.records
+					this.params3.total = res.data.data.total
+					console.log(this.data3)
+					
+				})
+			
 		},
 		tabClick(name) {
 			this.tabName = name
@@ -942,13 +980,13 @@ export default {
 			} else if (this.tabName === '2') {
 				this.$refs.rkxsb.setModel('yearMonth', new Date())
 			} else if (this.tabName === '3') {
-				this.$refs.llsxb.setModel('yearMonth', new Date())
+				// this.$refs.llsxb.setModel('yearMonth', new Date())
 			} else if (this.tabName === '4') {
 				this.$refs.wlsfhz.setModel('yearMonth', new Date())
 			} else if (this.tabName === '6') {
 				this.$refs.table.setModel('yearMonth', new Date())
 			} // 物料进出信息要选择物料所以默认不查找列表
-			if (this.tabName !== '6') {
+			if (this.tabName !== '6' && this.tabName !== '3') {
 				this.getList()
 			}
 		},
@@ -1119,12 +1157,13 @@ export default {
 					}
 				})
 			} else if (this.tabName === '3') {
-				GetStockTakeDocumentList(this.params3).then((res) => {
-					if (res.code === 0) {
-						this.data3 = res.result.list
-						this.params3.total = res.result.totalCount
-					}
-				})
+				
+				// GetStockTakeDocumentList(this.params3).then((res) => {
+				// 	if (res.code === 0) {
+				// 		this.data3 = res.result.list
+				// 		this.params3.total = res.result.totalCount
+				// 	}
+				// })
 			} else if (this.tabName === '4') {
 				GetMaterialStockInOutSum(this.params4).then((res) => {
 					if (res.code === 0) {
@@ -1150,37 +1189,64 @@ export default {
 	},
 	mounted() {
 		this.tabClick('1') 
-    this.getPickingPage()
+    	this.getPickingPage()
 	},
 }
 </script>
 <style>
-.ivu-table-expanded-cell{
-	padding-right:0px!important;
+.ivu-table-expanded-cell {
+	padding-right: 0px !important;
+}
+.total-warp .ivu-table td{
+	height: 32px!important;
 }
 </style>
 <style lang="less" scoped>
-.total-warp{
+.total-warp {
 	display: flex;
 	justify-content: space-between;
-	.left-total,.right-total{
+	margin-top: 10px;
+	.left-total,
+	.right-total {
 		width: 49%;
-		.total-header{
+		background: #fff;
+		.total-header {
 			width: 100%;
 			height: 60px;
 			border: 1px solid #dcdcdc;
+			border-bottom: 0px;
+			div{
+				color: #666;
+				font-size: 16px;
+				height: 100%;
+				overflow: hidden;
+				line-height: 30px;
+				span{
+					font-size: 18px;
+					color: #000;
+				}
+			}
 		}
 	}
-	.left-total{
-		.total-header{
-			padding-left: 40px;
-			div{
+	.left-total {
+		.total-header {
+			padding-left: 50px;
+			div {
 				width: 20%;
 				float: left;
 				padding: 0 16px;
 			}
 		}
 	}
+	.right-total {
+		.total-header {
+			div {
+				width: 25%;
+				float: left;
+				padding: 0 16px;
+			}
+		}
+	}
 }
 .container {
 	height: 100%;