You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							293 lines
						
					
					
						
							8.2 KiB
						
					
					
				
			
		
		
	
	
							293 lines
						
					
					
						
							8.2 KiB
						
					
					
				| <template>
 | |
| 	<lay-container class="content-box" :style="'padding-top:'+(editType!=1?0:35)+'px'">
 | |
| 		<view class="edit-box">
 | |
| 			<lay-form :model="searchObj" class="search-box edit-info">
 | |
| 				<lay-row class="color666">
 | |
| 					<lay-form-item label="物料号" prop="FCode">
 | |
| 						<lay-input v-model="searchObj.FCode"></lay-input>
 | |
| 					</lay-form-item>
 | |
| 					<lay-form-item label="试验号" prop="FTestCode">
 | |
| 						<lay-input v-model="searchObj.FTestCode"></lay-input>
 | |
| 					</lay-form-item>
 | |
| 					<lay-form-item label="物料描述" prop="FName">
 | |
| 						<lay-input v-model="searchObj.FName"></lay-input>
 | |
| 					</lay-form-item>
 | |
| 					<lay-form-item label="产品分类" prop="FType">
 | |
| 						<lay-select v-model="searchObj.FType">
 | |
| 							<lay-select-option v-for="(tIdv,tIdx) in typeListObj" :key="tIdx" :value="tIdv.FValue"
 | |
| 								:label="tIdv.FName"></lay-select-option>
 | |
| 						</lay-select>
 | |
| 					</lay-form-item>
 | |
| 					<lay-form-item v-if="editType != 1"></lay-form-item>
 | |
| 				</lay-row>
 | |
| 				<lay-form-item class="search-btn">
 | |
| 					<lay-button size="sm" type="primary" @click="_clickSearch">搜索</lay-button>
 | |
| 					<lay-button size="sm" @click="_clickReset">重置</lay-button>
 | |
| 				</lay-form-item>
 | |
| 			</lay-form>
 | |
| 			<lay-form :model="objInfo" class="search-box edit-info color999">
 | |
| 				<lay-form-item label="主物料号" prop="FCode">
 | |
| 					<lay-input :disabled="isDisabled" v-model="objInfo.FCode"></lay-input>
 | |
| 				</lay-form-item>
 | |
| 				<lay-form-item label="主物料描述" prop="FName">
 | |
| 					<lay-input :disabled="isDisabled" v-model="objInfo.FName" type="FName"></lay-input>
 | |
| 				</lay-form-item>
 | |
| 				<lay-form-item :label=" editType == 1 ? '替代料物料号' : '副产物物料号' ">
 | |
| 					<lay-input :disabled="isDisabled" v-model="objInfo.choseData.FCode"></lay-input>
 | |
| 				</lay-form-item>
 | |
| 				<lay-form-item :label=" editType == 1 ? '替代料描述' : '副产物描述' ">
 | |
| 					<lay-input :disabled="isDisabled" v-model="objInfo.choseData.FName"></lay-input>
 | |
| 				</lay-form-item>
 | |
| 				<lay-form-item v-if="editType != 1" label="副产物数量">
 | |
| 					<lay-input v-model="objInfo.choseData.FCount"></lay-input>
 | |
| 				</lay-form-item>
 | |
| 				<lay-form-item v-if="editType != 1" label="副产物单位">
 | |
| 					<lay-input v-model="objInfo.choseData.FUnit"></lay-input>
 | |
| 				</lay-form-item>
 | |
| 				<lay-form-item class="search-btn">
 | |
| 					<lay-button size="sm" type="danger" @click="submitClick">确定</lay-button>
 | |
| 					<lay-button size="sm" @click="cancelClick">取消</lay-button>
 | |
| 				</lay-form-item>
 | |
| 			</lay-form>
 | |
| 		</view>
 | |
| 		<view class="edit-box">
 | |
| 			<lay-table :class=" 'empty-small' + editType " :columns="dataColumn" id="id" :dataSource="dataList"
 | |
| 				v-model:selected-key="selectedKey" :page="dataList.length>0?pageInfo:null" @change="changePage">
 | |
| 			</lay-table>
 | |
| 		</view>
 | |
| 	</lay-container>
 | |
| </template>
 | |
| 
 | |
| <style scoped>
 | |
| 	.content-box {
 | |
| 		height: 744px;
 | |
| 		display: block;
 | |
| 		position: relative;
 | |
| 		clear: both;
 | |
| 		float: none;
 | |
| 	}
 | |
| 
 | |
| 	.edit-box {
 | |
| 		display: block;
 | |
| 		width: 99%;
 | |
| 		text-align: center;
 | |
| 		margin: 0 auto;
 | |
| 		clear: both;
 | |
| 		float: none;
 | |
| 	}
 | |
| 
 | |
| 	.edit-info {
 | |
| 		margin: 20px 0 10px;
 | |
| 		width: 47%;
 | |
| 		padding-left: 1%;
 | |
| 		padding-right: 1%;
 | |
| 		display: inline-block;
 | |
| 		margin-right: 0.75%;
 | |
| 	}
 | |
| 
 | |
| 	.edit-info+.edit-info {
 | |
| 		margin-left: 0.75%;
 | |
| 		margin-right: 0;
 | |
| 	}
 | |
| 
 | |
| 	.layui-form-item {
 | |
| 		margin-bottom: 16px;
 | |
| 	}
 | |
| </style>
 | |
| <script>
 | |
| 	import {
 | |
| 		ref,
 | |
| 		watch
 | |
| 	} from 'vue';
 | |
| 	import {
 | |
| 		updateDataInfo,
 | |
| 		getPageList
 | |
| 	} from "/src/api/api/common";
 | |
| 
 | |
| 	export default {
 | |
| 		setup() {
 | |
| 			const objInfo = ref({
 | |
| 				choseData: {
 | |
| 					FName: "",
 | |
| 					FType: "",
 | |
| 					FCode: ""
 | |
| 				}
 | |
| 			});
 | |
| 			const postData = ref({});
 | |
| 
 | |
| 			const pageInfo = ref({
 | |
| 				total: 0,
 | |
| 				limit: 5,
 | |
| 				current: 1
 | |
| 			});
 | |
| 			let dataColumn = [{
 | |
| 					type: "radio"
 | |
| 				},
 | |
| 				{
 | |
| 					title: "物料号",
 | |
| 					key: "FCode",
 | |
| 					width: "200px"
 | |
| 				},
 | |
| 				{
 | |
| 					title: "试验号",
 | |
| 					key: "FTestCode",
 | |
| 					width: "200px"
 | |
| 				},
 | |
| 				{
 | |
| 					title: "物料描述",
 | |
| 					key: "FName",
 | |
| 					minWidth: "300px"
 | |
| 				},
 | |
| 				{
 | |
| 					title: "产品分类",
 | |
| 					key: "FTypeName",
 | |
| 					width: "110px"
 | |
| 				}
 | |
| 			];
 | |
| 			dataColumn.forEach((item) => {
 | |
| 				item.align = "center";
 | |
| 			});
 | |
| 			const dataList = ref([]);
 | |
| 			const selectedKey = ref("");
 | |
| 			const isDisabled = ref(true);
 | |
| 			const searchObj = ref({});
 | |
| 			watch(selectedKey, function() {
 | |
| 				const choseObj = dataList.value.find(s => s.id == selectedKey.value) || null;
 | |
| 				if (choseObj != null) {
 | |
| 					objInfo.value.choseData.FID = choseObj.FID;
 | |
| 					objInfo.value.choseData.FName = choseObj.FName;
 | |
| 					objInfo.value.choseData.FType = choseObj.FType;
 | |
| 					objInfo.value.choseData.FCode = choseObj.FCode;
 | |
| 				}
 | |
| 			});
 | |
| 			return {
 | |
| 				objInfo,
 | |
| 				postData,
 | |
| 				pageInfo,
 | |
| 				dataColumn,
 | |
| 				dataList,
 | |
| 				selectedKey,
 | |
| 				isDisabled,
 | |
| 				searchObj
 | |
| 			}
 | |
| 		},
 | |
| 		props: {
 | |
| 			dataInfoObj: {
 | |
| 				type: Object,
 | |
| 				default: () => {},
 | |
| 			},
 | |
| 			MaterialModel:{
 | |
| 				type: Object,
 | |
| 				default: () => {},
 | |
| 			},
 | |
| 			typeListObj: {
 | |
| 				type: Array,
 | |
| 				default: () => [],
 | |
| 			},
 | |
| 			editType: {
 | |
| 				type: Number,
 | |
| 				default: () => 1,
 | |
| 			},
 | |
| 		},
 | |
| 		mounted() {
 | |
| 			this.objInfoObj=this.MaterialModel;
 | |
| 			let objInfo = JSON.parse(JSON.stringify(this.objInfoObj));
 | |
| 			objInfo.choseData = {
 | |
| 				FID: this.editType == 1 ? objInfo.FSuccedaneumID : objInfo.FFuProductsID,
 | |
| 				FName: this.editType == 1 ? objInfo.FSuccedaneumInfo : objInfo.FFuProductsInfo,
 | |
| 				FType: this.editType == 1 ? objInfo.FSuccedaneumType : objInfo.FFuProductsType,
 | |
| 				FCode: this.editType == 1 ? objInfo.FSuccedaneumCode : objInfo.FFuProductsCode,
 | |
| 				FCount: objInfo.FFuProductsCount || "",
 | |
| 				FUnit: objInfo.FFuProductsUnit || ""
 | |
| 			};
 | |
| 			if (this.editType == 1) this.pageInfo.limit = 6;
 | |
| 			this.objInfo = objInfo;
 | |
| 			this._getPageList();
 | |
| 		},
 | |
| 		methods: {
 | |
| 			//列表-分页
 | |
| 			changePage(obj) {
 | |
| 				this.pageInfo.current = obj.current;
 | |
| 				this._getPageList();
 | |
| 			},
 | |
| 			//检索-检索
 | |
| 			_clickSearch() {
 | |
| 				this.postData = {};
 | |
| 				for (let key in this.searchObj) {
 | |
| 					let val = this.searchObj[key];
 | |
| 					if (val != null && val != "") this.postData[key] = val;
 | |
| 				}
 | |
| 				this._getPageList(true);
 | |
| 			},
 | |
| 			//检索-重置
 | |
| 			_clickReset() {
 | |
| 				this.searchObj = {};
 | |
| 				this._clickSearch();
 | |
| 			},
 | |
| 			//列表-数据
 | |
| 			async _getPageList(isFirst) {
 | |
| 				this.pageInfo.total = 0;
 | |
| 				if (isFirst) {
 | |
| 					this.pageInfo.current = 1;
 | |
| 					this.pageInfo.total = 0;
 | |
| 				}
 | |
| 				this.postData.FPageIndex = this.pageInfo.current;
 | |
| 				this.postData.FPageSize = this.pageInfo.limit;
 | |
| 				let result = await getPageList(this.postData, "Material");
 | |
| 				result.Data.List = result.Data.List || [];
 | |
| 				let cD = this.objInfo.choseData;
 | |
| 				result.Data.List.forEach((item) => {
 | |
| 					let type = this.typeListObj.find(s => s.FValue == item.FType);
 | |
| 					item.FTypeName = type == null ? "" : type.FName;
 | |
| 					item.id = item.FID;
 | |
| 					if (item.FCode == cD.FCode && item.FName == cD.FName && item.FType == cD.FType &&
 | |
| 						this.selectedKey != item.id) {
 | |
| 						this.selectedKey = item.id
 | |
| 					}
 | |
| 				});
 | |
| 				this.pageInfo.total = result.Data.Total || 0;
 | |
| 				this.dataList = result.Data.List;
 | |
| 			},
 | |
| 			//提交
 | |
| 			async submitClick() {
 | |
| 				let updateInfo = {
 | |
| 					FID: this.objInfo.FID
 | |
| 				};
 | |
| 				if (this.editType == 1) {
 | |
| 					updateInfo.FSuccedaneumID = this.objInfo.choseData.FID || -1;
 | |
| 					updateInfo.FSuccedaneumInfo = this.objInfo.choseData.FName || "";
 | |
| 					updateInfo.FSuccedaneumType = this.objInfo.choseData.FType || "";
 | |
| 					updateInfo.FSuccedaneumCode = this.objInfo.choseData.FCode || "";
 | |
| 				} else {
 | |
| 					updateInfo.FFuProductsID = this.objInfo.choseData.FID || -1;
 | |
| 					updateInfo.FFuProductsInfo = this.objInfo.choseData.FName || "";
 | |
| 					updateInfo.FFuProductsType = this.objInfo.choseData.FType || "";
 | |
| 					updateInfo.FFuProductsCode = this.objInfo.choseData.FCode || "";
 | |
| 					updateInfo.FFuProductsCount = this.objInfo.choseData.FCount || "";
 | |
| 					updateInfo.FFuProductsUnit = this.objInfo.choseData.FUnit || "";
 | |
| 				}
 | |
| 				let result = await updateDataInfo(updateInfo, "Material") || 0;
 | |
| 				if (result > 0) {
 | |
| 					layer.msg("操作成功", {
 | |
| 						time: 1500,
 | |
| 						icon: 1
 | |
| 					});
 | |
| 					setTimeout(() => {
 | |
| 						this.cancelClick(true);
 | |
| 						this.$emit("showEditMaterial");
 | |
| 					}, 150)
 | |
| 				} else {
 | |
| 					layer.msg("操作失败", {
 | |
| 						time: 1000,
 | |
| 						icon: 2
 | |
| 					})
 | |
| 				}
 | |
| 			},
 | |
| 			//取消
 | |
| 			cancelClick(isRefresh) {
 | |
| 				this.$emit('cancelClick', isRefresh == undefined ? false : isRefresh);
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| </script>
 |