update
This commit is contained in:
		
							
								
								
									
										4
									
								
								.env.dev
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								.env.dev
									
									
									
									
									
								
							@@ -12,8 +12,8 @@ ENV = 'development'
 | 
				
			|||||||
VUE_APP_TITLE = MES系统
 | 
					VUE_APP_TITLE = MES系统
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 芋道管理系统/开发环境
 | 
					# 芋道管理系统/开发环境
 | 
				
			||||||
VUE_APP_BASE_API = 'http://100.64.0.26:48082'
 | 
					# VUE_APP_BASE_API = 'http://100.64.0.26:48082'
 | 
				
			||||||
# VUE_APP_BASE_API = 'http://192.168.0.33:48082'
 | 
					VUE_APP_BASE_API = 'http://192.168.0.33:48082'
 | 
				
			||||||
# VUE_APP_BASE_API = 'http://192.168.4.173:48080'
 | 
					# VUE_APP_BASE_API = 'http://192.168.4.173:48080'
 | 
				
			||||||
# VUE_APP_BASE_API = 'http://192.168.2.173:48080'
 | 
					# VUE_APP_BASE_API = 'http://192.168.2.173:48080'
 | 
				
			||||||
# VUE_APP_BASE_API = 'http://192.168.1.49:48080'
 | 
					# VUE_APP_BASE_API = 'http://192.168.1.49:48080'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,32 +18,43 @@
 | 
				
			|||||||
			</el-col>
 | 
								</el-col>
 | 
				
			||||||
		</el-row>
 | 
							</el-row>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<el-row style="border: 1px solid #ccc; display: flex;">
 | 
							<el-row style="border: 1px solid #ccc; display: flex">
 | 
				
			||||||
			<el-col :span="8">
 | 
								<el-col :span="8">
 | 
				
			||||||
				<div class="select-list">
 | 
									<div class="select-list">
 | 
				
			||||||
					<div class="sl__header" style="background: #f3f4fb; padding: 12px">
 | 
										<div class="sl__header" style="background: #f3f4fb; padding: 12px">
 | 
				
			||||||
						<span style="">可分配设备</span>
 | 
											<span style="">可分配设备</span>
 | 
				
			||||||
						<span>1/24</span>
 | 
											<span>{{ selectedEquipments.length }}/{{ bomList.length }}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<el-checkbox-group v-model="selectedEquipments" class="sl__body">
 | 
										<el-checkbox-group v-model="selectedEquipments" class="sl__body">
 | 
				
			||||||
						<el-checkbox
 | 
											<el-checkbox
 | 
				
			||||||
							v-for="n in 10"
 | 
												v-for="eq in bomList"
 | 
				
			||||||
							:key="n"
 | 
												:key="eq.id"
 | 
				
			||||||
							:label="'设备' + n"
 | 
												:label="`${eq.name} (${
 | 
				
			||||||
							@change="() => handleChange(n)"
 | 
													selectedMBom[currentEquipment].length +
 | 
				
			||||||
 | 
													selectedPBom[currentEquipment].length
 | 
				
			||||||
 | 
												} / 2)`"
 | 
				
			||||||
 | 
												@change="(e) => handleEquipmentChange(eq, e)"
 | 
				
			||||||
							class="sl__body-item"></el-checkbox>
 | 
												class="sl__body-item"></el-checkbox>
 | 
				
			||||||
					</el-checkbox-group>
 | 
										</el-checkbox-group>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</el-col>
 | 
								</el-col>
 | 
				
			||||||
			<el-col :span="8" style="border-left: 1px solid #ccc;">
 | 
								<el-col :span="8" style="border-left: 1px solid #ccc">
 | 
				
			||||||
				<div class="select-list">
 | 
									<div class="select-list">
 | 
				
			||||||
					<div class="sl__header" style="background: #f3f4fb; padding: 12px">
 | 
										<div class="sl__header" style="background: #f3f4fb; padding: 12px">
 | 
				
			||||||
						<span style="">物料BOM</span>
 | 
											<span style="">物料BOM</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<el-checkbox-group v-model="selectedMBom" class="sl__body">
 | 
										<el-checkbox-group
 | 
				
			||||||
 | 
											v-model="selectedMBom[currentEquipment]"
 | 
				
			||||||
 | 
											class="sl__body">
 | 
				
			||||||
						<el-checkbox
 | 
											<el-checkbox
 | 
				
			||||||
							v-for="n in materialBomList"
 | 
												v-for="mb in materialsBomList"
 | 
				
			||||||
							:key="n"
 | 
												:key="mb.id"
 | 
				
			||||||
 | 
												:label="mb.name"
 | 
				
			||||||
 | 
												:disabled="mb.disabled || false"
 | 
				
			||||||
 | 
												@change="
 | 
				
			||||||
 | 
													(e) =>
 | 
				
			||||||
 | 
														handleMaterialBomChange(mb, materialsBomList.equipmentId, e)
 | 
				
			||||||
 | 
												"
 | 
				
			||||||
							class="sl__body-item"></el-checkbox>
 | 
												class="sl__body-item"></el-checkbox>
 | 
				
			||||||
					</el-checkbox-group>
 | 
										</el-checkbox-group>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
@@ -53,10 +64,17 @@
 | 
				
			|||||||
					<div class="sl__header" style="background: #f3f4fb; padding: 12px">
 | 
										<div class="sl__header" style="background: #f3f4fb; padding: 12px">
 | 
				
			||||||
						<span style="">参数BOM</span>
 | 
											<span style="">参数BOM</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<el-checkbox-group v-model="selectedPBom" class="sl__body">
 | 
										<el-checkbox-group
 | 
				
			||||||
 | 
											v-model="selectedPBom[currentEquipment]"
 | 
				
			||||||
 | 
											class="sl__body">
 | 
				
			||||||
						<el-checkbox
 | 
											<el-checkbox
 | 
				
			||||||
							v-for="n in paramBomList"
 | 
												v-for="vb in valuesBomList"
 | 
				
			||||||
							:key="n"
 | 
												:key="vb.id"
 | 
				
			||||||
 | 
												:label="vb.name"
 | 
				
			||||||
 | 
												:disabled="vb.disabled || false"
 | 
				
			||||||
 | 
												@change="
 | 
				
			||||||
 | 
													(e) => handleValueBomChange(vb, valuesBomList.equipmentId, e)
 | 
				
			||||||
 | 
												"
 | 
				
			||||||
							class="sl__body-item"></el-checkbox>
 | 
												class="sl__body-item"></el-checkbox>
 | 
				
			||||||
					</el-checkbox-group>
 | 
										</el-checkbox-group>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
@@ -69,16 +87,22 @@
 | 
				
			|||||||
export default {
 | 
					export default {
 | 
				
			||||||
	name: 'BomSelector',
 | 
						name: 'BomSelector',
 | 
				
			||||||
	components: {},
 | 
						components: {},
 | 
				
			||||||
	props: {},
 | 
						props: {
 | 
				
			||||||
 | 
							bomList: {
 | 
				
			||||||
 | 
								type: Array,
 | 
				
			||||||
 | 
								default: () => [],
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	data() {
 | 
						data() {
 | 
				
			||||||
		return {
 | 
							return {
 | 
				
			||||||
			searchText: '',
 | 
								searchText: '',
 | 
				
			||||||
			selectedEquipments: [],
 | 
								selectedEquipments: [],
 | 
				
			||||||
			selectedMBom: [],
 | 
								selectedMBom: { default: [] },
 | 
				
			||||||
			selectedPBom: [],
 | 
								selectedPBom: { default: [] },
 | 
				
			||||||
			selected: [],
 | 
								selected: [],
 | 
				
			||||||
            materialBomList: [],
 | 
								materialsBomList: [],
 | 
				
			||||||
            paramBomList: [],
 | 
								valuesBomList: [],
 | 
				
			||||||
 | 
								currentEquipment: 'default',
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	watch: {
 | 
						watch: {
 | 
				
			||||||
@@ -90,24 +114,72 @@ export default {
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	computed: {},
 | 
						computed: {},
 | 
				
			||||||
 | 
						created() {},
 | 
				
			||||||
 | 
						mounted() {
 | 
				
			||||||
 | 
							// 准备v-model
 | 
				
			||||||
 | 
							this.bomList.forEach((item) => {
 | 
				
			||||||
 | 
								this.$set(this.selectedMBom, item.id, []);
 | 
				
			||||||
 | 
								this.$set(this.selectedPBom, item.id, []);
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	methods: {
 | 
						methods: {
 | 
				
			||||||
		handleChange(id) {
 | 
							handleEquipmentChange(eq, selected) {
 | 
				
			||||||
            this.materialBomList = [];
 | 
								this.currentEquipment = eq.id;
 | 
				
			||||||
            this.paramBomList = [];
 | 
								this.materialsBomList =
 | 
				
			||||||
			this.selected.push({
 | 
									// [
 | 
				
			||||||
				id: id,
 | 
									// 	{
 | 
				
			||||||
 | 
									// 		id: 1,
 | 
				
			||||||
 | 
									// 		name: 'mb-1',
 | 
				
			||||||
 | 
									// 	},
 | 
				
			||||||
 | 
									// 	{
 | 
				
			||||||
 | 
									// 		id: 2,
 | 
				
			||||||
 | 
									// 		name: 'mb-2',
 | 
				
			||||||
 | 
									// 	},
 | 
				
			||||||
 | 
									// 	{
 | 
				
			||||||
 | 
									// 		id: 3,
 | 
				
			||||||
 | 
									// 		name: 'mb-3',
 | 
				
			||||||
 | 
									// 	},
 | 
				
			||||||
 | 
									// ] ||
 | 
				
			||||||
 | 
									eq.materialsBom || [];
 | 
				
			||||||
 | 
								this.valuesBomList = eq.valuesBom || [];
 | 
				
			||||||
 | 
								// 重新确保equipmentId已经被加载上去了
 | 
				
			||||||
 | 
								this.materialsBomList.equipmentId = eq.id;
 | 
				
			||||||
 | 
								this.valuesBomList.equipmentId = eq.id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								console.log('eq', selected, eq, this.selectedEquipments);
 | 
				
			||||||
 | 
								if (selected) {
 | 
				
			||||||
 | 
									this.selected.push({
 | 
				
			||||||
 | 
										equipmentId: eq.id,
 | 
				
			||||||
 | 
										equValueBomId: null,
 | 
				
			||||||
 | 
										equMaterialBomId: null,
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									// 清空选择状态
 | 
				
			||||||
 | 
									this.selected = this.selected.filter(
 | 
				
			||||||
 | 
										(item) => item.equipmentId !== eq.id
 | 
				
			||||||
 | 
									);
 | 
				
			||||||
 | 
									this.selectedMBom[eq.id] = [];
 | 
				
			||||||
 | 
									this.selectedPBom[eq.id] = [];
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							handleValueBomChange(vb, equipmentId, selected) {
 | 
				
			||||||
 | 
								const selectedItem = this.selected.find(
 | 
				
			||||||
 | 
									(item) => item.equipmentId == equipmentId
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								selectedItem.equValueBomId = selected ? vb.id : null;
 | 
				
			||||||
 | 
								this.valuesBomList.forEach((item) => {
 | 
				
			||||||
 | 
									item.disabled = selected ? item.id !== vb.id : false;
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		handleBomChange(eqId, id, type) {
 | 
							handleMaterialBomChange(mb, equipmentId, selected) {
 | 
				
			||||||
			const record = this.selected.find((item) => item.id === eqId);
 | 
								debugger;
 | 
				
			||||||
			if (record) {
 | 
								const selectedItem = this.selected.find(
 | 
				
			||||||
				record[type == 'param' ? 'paramBomId' : 'materialBomId'] = id;
 | 
									(item) => item.equipmentId == equipmentId
 | 
				
			||||||
			} else {
 | 
								);
 | 
				
			||||||
				this.selected.push({
 | 
								selectedItem.equMaterialBomId = selected ? mb.id : null;
 | 
				
			||||||
					id: eqId,
 | 
								this.materialsBomList.forEach((item) => {
 | 
				
			||||||
					[type == 'param' ? 'paramBomId' : 'materialBomId']: id,
 | 
									item.disabled = selected ? item.id !== mb.id : false;
 | 
				
			||||||
				});
 | 
								});
 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -68,7 +68,7 @@
 | 
				
			|||||||
			@cancel="cancel"
 | 
								@cancel="cancel"
 | 
				
			||||||
			@confirm="submitForm">
 | 
								@confirm="submitForm">
 | 
				
			||||||
			<!-- <CustomTransfer /> -->
 | 
								<!-- <CustomTransfer /> -->
 | 
				
			||||||
			<BomSelector />
 | 
								<BomSelector :bom-list="bomList" />
 | 
				
			||||||
		</base-dialog>
 | 
							</base-dialog>
 | 
				
			||||||
	</section>
 | 
						</section>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
@@ -90,6 +90,7 @@ export default {
 | 
				
			|||||||
		return {
 | 
							return {
 | 
				
			||||||
			open: false,
 | 
								open: false,
 | 
				
			||||||
			eqList: [],
 | 
								eqList: [],
 | 
				
			||||||
 | 
								bomList: [],
 | 
				
			||||||
			finalList: [],
 | 
								finalList: [],
 | 
				
			||||||
			choosedEquipments: [],
 | 
								choosedEquipments: [],
 | 
				
			||||||
			searchBarFormConfig: [{ label: '工序下设备' }],
 | 
								searchBarFormConfig: [{ label: '工序下设备' }],
 | 
				
			||||||
@@ -111,6 +112,7 @@ export default {
 | 
				
			|||||||
	watch: {
 | 
						watch: {
 | 
				
			||||||
		currentDet: {
 | 
							currentDet: {
 | 
				
			||||||
			handler(val) {
 | 
								handler(val) {
 | 
				
			||||||
 | 
									console.log('currentDet', val);
 | 
				
			||||||
				if (val != null) {
 | 
									if (val != null) {
 | 
				
			||||||
					this.getList(val);
 | 
										this.getList(val);
 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
@@ -188,7 +190,14 @@ export default {
 | 
				
			|||||||
			});
 | 
								});
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		submitForm() {},
 | 
							submitForm() {},
 | 
				
			||||||
		async getList({ detId, detName, detDesc, flowId, sectionName } = {}) {
 | 
							async getList({
 | 
				
			||||||
 | 
								detId,
 | 
				
			||||||
 | 
								detName,
 | 
				
			||||||
 | 
								detDesc,
 | 
				
			||||||
 | 
								flowId,
 | 
				
			||||||
 | 
								sectionName,
 | 
				
			||||||
 | 
								sectionId,
 | 
				
			||||||
 | 
							} = {}) {
 | 
				
			||||||
			console.log('get list', detId, detName, flowId);
 | 
								console.log('get list', detId, detName, flowId);
 | 
				
			||||||
			const { data, code } = await this.http(
 | 
								const { data, code } = await this.http(
 | 
				
			||||||
				'/extend/process-flow-det-equipment/page',
 | 
									'/extend/process-flow-det-equipment/page',
 | 
				
			||||||
@@ -202,6 +211,22 @@ export default {
 | 
				
			|||||||
				this.list.splice(0);
 | 
									this.list.splice(0);
 | 
				
			||||||
				this.total = 0;
 | 
									this.total = 0;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// 获取设备及bom列表
 | 
				
			||||||
 | 
								this.http(
 | 
				
			||||||
 | 
									'/extend/process-flow-det/getEquipmentDetBySectionId?id=' + sectionId,
 | 
				
			||||||
 | 
									'post'
 | 
				
			||||||
 | 
								).then(({ code, data }) => {
 | 
				
			||||||
 | 
									if (code == 0) {
 | 
				
			||||||
 | 
										this.bomList = data.map(eq => {
 | 
				
			||||||
 | 
											if (eq.materialsBom) eq.materialsBom.equipmentId = eq.id 
 | 
				
			||||||
 | 
											if (eq.valuesBom) eq.valuesBom.equipmentId = eq.id
 | 
				
			||||||
 | 
											return eq;
 | 
				
			||||||
 | 
										});
 | 
				
			||||||
 | 
									} else {
 | 
				
			||||||
 | 
										this.bomList.splice(0);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		async handleAddEquipment() {
 | 
							async handleAddEquipment() {
 | 
				
			||||||
			this.open = true;
 | 
								this.open = true;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user