Преглед изворни кода

面料修正:用户进入页面,选择日期、人员、物料等操作后,填写对应的原因后进行“提交”,提交后保存对应的数据

l1069030731 пре 2 година
родитељ
комит
a079dc9a10
3 измењених фајлова са 326 додато и 2 уклоњено
  1. 3 0
      pages.json
  2. 5 2
      pages/index/index.vue
  3. 318 0
      pages/warehouse/fabric-correction.vue

+ 3 - 0
pages.json

@@ -204,6 +204,9 @@
 		},{
 			"path": "pages/warehouse/tag-scan",
 			"style": {}
+		},{
+			"path": "pages/warehouse/fabric-correction",
+			"style": {}
 		}
 	],
 	"globalStyle": {

+ 5 - 2
pages/index/index.vue

@@ -151,8 +151,11 @@
 						break
 					case '24' :
 						this.$utils.open('/pages/warehouse/review')
-						break	
-					
+						break
+					/* 面料修正 */
+					case '25' :
+						this.$utils.open('/pages/warehouse/fabric-correction')
+						break
 				}
 			},
 			/* 扫码贴标 */

+ 318 - 0
pages/warehouse/fabric-correction.vue

@@ -0,0 +1,318 @@
+<template>
+	<div>
+		<uni-nav-bar title="面料修正" :status-bar="true" background-color="#3F92F9" color="#FFF">
+			<view slot="left">
+				<u-icon name="account-fill" color="#FFF" size="35"></u-icon>
+				<span style="padding: 0 5rpx;color: #FFFFFF;">{{ userInfo.name }}</span>
+			</view>
+			<view slot="right" @tap="$utils.open(`/pages/index/index`)">
+				<span style="color: #FFFFFF;">返回</span>
+			</view>
+		</uni-nav-bar>
+		<view class="container">
+			<view style="display: flex; padding: 4px; height: 50px">
+				<view style="width: 90px">喷印日期:</view>
+				<view @click="showDate = true">{{ SprayPrintDate ? SprayPrintDate : '点此选择时间' }}
+				</view>
+				<u-picker mode="time" end-year="2030" v-model="showDate" :params="params" @confirm="confirmEnd">
+				</u-picker>
+			</view>
+			<view style="display: flex; padding: 4px; height: 50px">
+				<view style="width: 90px">喷印人员:</view>
+				<view @click="showSelectOne = true">
+					{{ printingWorkers ? printingWorkers : '点此选择状态' }}
+				</view>
+				<u-select v-model="showSelectOne" :default-value="[0]" :list="selectOneList" @cancel="showSelect=false"
+					@confirm="selectWorkers"></u-select>
+			</view>
+			<view style="display: flex; padding: 4px; height: 50px">
+				<view style="width: 90px">面料:</view>
+				<view @click="showSelectTwo = true">
+					{{ fabric ? fabric : '点此选择面料' }}
+				</view>
+				<u-select v-model="showSelectTwo" :default-value="[0]" :list="selectTwoList" @cancel="showSelect=false"
+					@confirm="selectFabric"></u-select>
+			</view>
+			<view style="display: flex; padding: 4px; height: 50px">
+				<view style="width: 90px">供应商:</view>
+				<view @click="showSelectThree = true">
+					{{ supplier ? supplier : '点此选择供应商' }}
+				</view>
+				<u-select v-model="showSelectThree" :default-value="[0]" :list="selectThreeList"
+					@cancel="showSelect=false" @confirm="selectSupplier"></u-select>
+			</view>
+			<view style="display: flex; padding: 4px; height: 50px">
+				<view style="width: 90px">修正面积:</view>
+				<u-input v-model="fixedArea" :type="number" :border="true" />
+			</view>
+			<view style="display: flex; padding: 4px; height: 50px">
+				<view style="width: 90px">修正原因</view>
+			</view>
+			<view class="wenti-list">
+				<view class="list-box" :class="i.active ? 'active' : ''" v-for="(i,index) in whyList" :key="i.type"
+					@click="wentiSelect(i,index)">
+					{{i.name}}
+				</view>
+			</view>
+			<view>
+				<u-input v-model="remark" :type="textarea" placeholder="备注信息" :border="true" :height="100"
+					:auto-height="true" />
+			</view>
+			<my-fixed-button :customClick="true" @click="cfm" text="提交"></my-fixed-button>
+		</view>
+	</div>
+</template>
+
+<script>
+	export default {
+		name: "xx",
+		data() {
+			return {
+				SprayPrintDate: '',
+				params: {
+					year: true,
+					month: true,
+					day: true
+				},
+				showDate: false,
+				showSelectOne: false,
+				showSelectTwo: false,
+				showSelectThree: false,
+				printingWorkers: '',
+				printingWorkersId: '',
+				fabric: '',
+				fabricId: '',
+				supplier: '',
+				supplierId: '',
+				fixedArea: null,
+				selectOneList: [],
+				selectTwoList: [],
+				selectThreeList: [],
+				whyList: [{
+						type: 1,
+						name: "短少",
+						active: false
+					},
+					{
+						type: 2,
+						name: "抽纱",
+						active: false
+					},
+					{
+						type: 3,
+						name: "褶皱",
+						active: false
+					},
+					{
+						type: 4,
+						name: "脏污",
+						active: false
+					},
+					{
+						type: 5,
+						name: "破洞",
+						active: false
+					},
+					{
+						type: 6,
+						name: "缩水",
+						active: false
+					}
+				],
+				number: 'number',
+				textarea: 'textarea',
+				remark: '',
+			}
+		},
+		created() {
+			this.selectList()
+		},
+		methods: {
+			toDtl(_id) {
+				const v = this
+				uni.removeStorage({
+					key: 'reviewDtl',
+					success: function(res) {
+						v.$utils.open(`/pages/warehouse/reviewDtl?id=${_id}`)
+					},
+					fail() {
+						v.$utils.open(`/pages/warehouse/reviewDtl?id=${_id}`)
+					}
+				});
+
+			},
+			confirmEnd(e) {
+				var endDate = ''
+				if (this.params.year) endDate += e.year
+				if (this.params.month) endDate += '-' + e.month
+				if (this.params.day) endDate += '-' + e.day
+				this.SprayPrintDate = endDate
+			},
+			selectList() {
+				uni.request({
+					url: 'http://120.79.80.64:8050' + '/cloudApi/supplier/selectList',
+					method: 'POST',
+					header: {
+						'Content-Type': 'application/json',
+					},
+					data: {
+						pageNum: 1,
+						pageSize: 9999,
+					},
+					success: res => {
+						this.selectThreeList = res.data.data.map(item => {
+							return {
+								...item,
+								value: item.id,
+								label: item.name,
+							}
+						})
+					},
+				});
+				uni.request({
+					url: 'http://120.79.80.64:8050' + '/cloudApi/material/selectList',
+					method: 'POST',
+					header: {
+						'Content-Type': 'application/json',
+					},
+					data: {
+						pageNum: 1,
+						pageSize: 9999,
+					},
+					success: res => {
+						this.selectTwoList = res.data.data.map(item => {
+							return {
+								...item,
+								value: item.id,
+								label: item.name,
+							}
+						})
+					},
+				});
+				this.$http.GetUserPageList({
+					pageIndex: 1,
+					pageSize: 9999,
+					takeUser: true
+				}).then(res => {
+					if (res.code == 0) {
+						let list = res.result.list.map(item => {
+							return {
+								label: item.realName,
+								value: item.id
+							}
+						})
+						this.selectOneList = list
+					}
+				})
+			},
+			selectWorkers(val) {
+				if (val && val.length > 0) {
+					this.printingWorkersId = val[0].value
+					this.printingWorkers = val[0].label
+				}
+			},
+			selectFabric(val) {
+				if (val && val.length > 0) {
+					this.fabricId = val[0].value
+					this.fabric = val[0].label
+				}
+			},
+			selectSupplier(val) {
+				if (val && val.length > 0) {
+					this.supplierId = val[0].value
+					this.supplier = val[0].label
+				}
+			},
+			wentiSelect(item, index) {
+				this.whyList[index].active = !this.whyList[index].active
+			},
+			cfm() {
+				if (!this.SprayPrintDate) {
+					this.$msg.showToast('请选择喷印日期')
+					return
+				}
+				if (!this.printingWorkers) {
+					this.$msg.showToast('请选择喷印人员')
+					return
+				}
+				if (!this.fabric) {
+					this.$msg.showToast('请选择面料')
+					return
+				}
+				if (!this.supplier) {
+					this.$msg.showToast('请选择供应商')
+					return
+				}
+				if (!this.fixedArea) {
+					this.$msg.showToast('请输入修正面积')
+					return
+				}
+				let data = this.whyList.filter(item => item.active)
+				if (!(data && data.length > 0)) {
+					this.$msg.showToast('请输入修正原因')
+					return
+				}
+				uni.request({
+					url: 'http://120.79.80.64:8050' + '/cloudApi/stockBack/correctSave',
+					method: 'POST',
+					header: {
+						'Content-Type': 'application/json',
+					},
+					data: {
+						correctTime: this.SprayPrintDate + ' 00:00:00',
+						userId: this.printingWorkersId,
+						materialId: this.fabricId,
+						supplierId: this.supplierId,
+						correctArea: this.fixedArea,
+						correctReason: data.map(item => {
+							return item.type
+						}).join(","),
+						remarks: this.remark,
+					},
+					success: res => {
+						console.log(res)
+						if (res.data.code === 200) {
+							this.$msg.showToast(res.data.msg || '操作成功!')
+							this.timer = setTimeout(() => {
+								this.$utils.back()
+							}, 1000)
+						} else {
+							this.$msg.showToast(res.data.msg)
+						}
+					},
+				});
+			}
+		},
+	}
+</script>
+
+<style scoped lang="less">
+	.container {
+		padding: 20rpx;
+		height: calc(100vh - var(--status-bar-height) - 44px);
+		overflow: auto;
+		padding-bottom: 100rpx;
+	}
+
+	.wenti-list {
+		overflow: hidden;
+
+		.list-box {
+
+			width: 28%;
+			margin: 0 2% 20rpx;
+			float: left;
+			height: 60rpx;
+			line-height: 60rpx;
+			text-align: center;
+			border: 1px solid #DDDCDC;
+			border-radius: 10rpx;
+		}
+
+		.list-box.active {
+			border: 1px solid #1A3AF0;
+			background-color: #1A3AF0;
+			color: #fff;
+		}
+	}
+</style>