| 
									
										
										
										
											2024-10-29 18:03:06 +08:00
										 |  |  |  | <template> | 
					
						
							|  |  |  |  |   <div class="app-container"> | 
					
						
							|  |  |  |  |     <!-- 对话框(添加 / 修改) --> | 
					
						
							|  |  |  |  |     <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="45%" v-dialogDrag append-to-body> | 
					
						
							|  |  |  |  |       <el-form ref="formRef" :model="formData" :rules="formRules" v-loading="formLoading" label-width="100px"> | 
					
						
							|  |  |  |  |         <el-form-item label="检测项目名称" prop="projectName"> | 
					
						
							|  |  |  |  |           <el-input v-model="formData.projectName" placeholder="请输入检测项目名称"/> | 
					
						
							|  |  |  |  |         </el-form-item> | 
					
						
							|  |  |  |  |         <el-form-item label="角色" prop="roleId"> | 
					
						
							|  |  |  |  |           <el-select v-model="formData.roleId" placeholder="请选择角色"> | 
					
						
							|  |  |  |  |             <el-option | 
					
						
							|  |  |  |  |               v-for="role in roleList" | 
					
						
							|  |  |  |  |               :key="role.id" | 
					
						
							|  |  |  |  |               :label="role.name" | 
					
						
							|  |  |  |  |               :value="role.id" | 
					
						
							|  |  |  |  |             /> | 
					
						
							|  |  |  |  |           </el-select> | 
					
						
							|  |  |  |  |         </el-form-item> | 
					
						
							|  |  |  |  |         <el-form-item label="备注" prop="remark"> | 
					
						
							|  |  |  |  |           <el-input v-model="formData.remark" placeholder="请输入备注"/> | 
					
						
							|  |  |  |  |         </el-form-item> | 
					
						
							| 
									
										
										
										
											2024-11-07 14:50:34 +08:00
										 |  |  |  |         <el-form-item label="提成价格"> | 
					
						
							|  |  |  |  |           <el-table :data="tableData" style="width: 100%" height="250"> | 
					
						
							|  |  |  |  |             <el-table-column fixed prop="title" label="商品名称"> | 
					
						
							|  |  |  |  |             </el-table-column> | 
					
						
							|  |  |  |  |             <el-table-column label="提成价格"> | 
					
						
							|  |  |  |  |               <template #default="scope"> | 
					
						
							|  |  |  |  |                 <el-input v-model="scope.row.royaltyAmount" placeholder="输入价格"></el-input> | 
					
						
							|  |  |  |  |               </template> | 
					
						
							|  |  |  |  |             </el-table-column> | 
					
						
							|  |  |  |  |           </el-table> | 
					
						
							|  |  |  |  |         </el-form-item> | 
					
						
							| 
									
										
										
										
											2024-10-29 18:03:06 +08:00
										 |  |  |  |       </el-form> | 
					
						
							|  |  |  |  |       <div slot="footer" class="dialog-footer"> | 
					
						
							|  |  |  |  |         <el-button type="primary" @click="submitForm" :disabled="formLoading">确 定</el-button> | 
					
						
							|  |  |  |  |         <el-button @click="dialogVisible = false">取 消</el-button> | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |     </el-dialog> | 
					
						
							|  |  |  |  |   </div> | 
					
						
							|  |  |  |  | </template> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | <script> | 
					
						
							|  |  |  |  | import * as DlInspectionProjectApi from '@/api/inspection/project'; | 
					
						
							| 
									
										
										
										
											2024-11-07 14:50:34 +08:00
										 |  |  |  | import {getGoods, getRole} from "@/api/inspection/project"; | 
					
						
							|  |  |  |  | import ElementBaseInfo from "@/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue"; | 
					
						
							| 
									
										
										
										
											2024-10-29 18:03:06 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | export default { | 
					
						
							|  |  |  |  |   name: "DlInspectionProjectForm", | 
					
						
							| 
									
										
										
										
											2024-11-07 14:50:34 +08:00
										 |  |  |  |   components: {ElementBaseInfo}, | 
					
						
							| 
									
										
										
										
											2024-10-29 18:03:06 +08:00
										 |  |  |  |   data() { | 
					
						
							|  |  |  |  |     return { | 
					
						
							|  |  |  |  |       // 弹出层标题
 | 
					
						
							|  |  |  |  |       dialogTitle: "", | 
					
						
							|  |  |  |  |       // 是否显示弹出层
 | 
					
						
							|  |  |  |  |       dialogVisible: false, | 
					
						
							|  |  |  |  |       // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
 | 
					
						
							|  |  |  |  |       formLoading: false, | 
					
						
							|  |  |  |  |       // 表单参数
 | 
					
						
							|  |  |  |  |       formData: { | 
					
						
							|  |  |  |  |         projectName: undefined, | 
					
						
							|  |  |  |  |         roleId: undefined, | 
					
						
							|  |  |  |  |         remark: undefined, | 
					
						
							|  |  |  |  |       }, | 
					
						
							|  |  |  |  |       // 表单校验
 | 
					
						
							|  |  |  |  |       formRules: { | 
					
						
							|  |  |  |  |         projectName: [ | 
					
						
							|  |  |  |  |           {required: true, message: '检测项目名称不能为空', trigger: 'blur'} | 
					
						
							|  |  |  |  |         ], | 
					
						
							|  |  |  |  |         roleId: [ | 
					
						
							|  |  |  |  |           {required: true, message: '角色不能为空', trigger: 'change'} | 
					
						
							|  |  |  |  |         ] | 
					
						
							|  |  |  |  |       }, | 
					
						
							|  |  |  |  |       roleList: [], | 
					
						
							| 
									
										
										
										
											2024-11-07 14:50:34 +08:00
										 |  |  |  |       tableData: [] | 
					
						
							| 
									
										
										
										
											2024-10-29 18:03:06 +08:00
										 |  |  |  |     }; | 
					
						
							|  |  |  |  |   }, | 
					
						
							|  |  |  |  |   methods: { | 
					
						
							|  |  |  |  |     /** 打开弹窗 */ | 
					
						
							|  |  |  |  |     async open(id) { | 
					
						
							|  |  |  |  |       this.getRole() | 
					
						
							| 
									
										
										
										
											2024-11-07 14:50:34 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-29 18:03:06 +08:00
										 |  |  |  |       this.dialogVisible = true; | 
					
						
							|  |  |  |  |       this.reset(); | 
					
						
							|  |  |  |  |       // 修改时,设置数据
 | 
					
						
							|  |  |  |  |       if (id) { | 
					
						
							|  |  |  |  |         this.formLoading = true; | 
					
						
							|  |  |  |  |         try { | 
					
						
							|  |  |  |  |           const res = await DlInspectionProjectApi.getDlInspectionProject(id); | 
					
						
							|  |  |  |  |           this.formData = res.data; | 
					
						
							| 
									
										
										
										
											2024-11-07 14:50:34 +08:00
										 |  |  |  |           if (res.data.projectRoyaltyList.length > 0){ | 
					
						
							|  |  |  |  |             this.tableData = res.data.projectRoyaltyList | 
					
						
							|  |  |  |  |             console.log('tableData', this.tableData) | 
					
						
							|  |  |  |  |           } | 
					
						
							| 
									
										
										
										
											2024-10-29 18:03:06 +08:00
										 |  |  |  |           this.title = "修改检测项目"; | 
					
						
							|  |  |  |  |         } finally { | 
					
						
							|  |  |  |  |           this.formLoading = false; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2024-11-07 14:50:34 +08:00
										 |  |  |  |       }else { | 
					
						
							|  |  |  |  |         this.getGoods() | 
					
						
							| 
									
										
										
										
											2024-10-29 18:03:06 +08:00
										 |  |  |  |       } | 
					
						
							|  |  |  |  |       this.title = "新增检测项目"; | 
					
						
							|  |  |  |  |     }, | 
					
						
							|  |  |  |  |     /** 提交按钮 */ | 
					
						
							|  |  |  |  |     async submitForm() { | 
					
						
							|  |  |  |  |       // 校验主表
 | 
					
						
							|  |  |  |  |       await this.$refs["formRef"].validate(); | 
					
						
							|  |  |  |  |       this.formLoading = true; | 
					
						
							|  |  |  |  |       try { | 
					
						
							|  |  |  |  |         const data = this.formData; | 
					
						
							| 
									
										
										
										
											2024-11-07 14:50:34 +08:00
										 |  |  |  |         this.tableData.map(item => { | 
					
						
							|  |  |  |  |           item.goodsId = item.id | 
					
						
							|  |  |  |  |           /*如果royaltyAmount 为空,则设置为0*/ | 
					
						
							|  |  |  |  |           if (!item.royaltyAmount) { | 
					
						
							|  |  |  |  |             item.royaltyAmount = 0 | 
					
						
							|  |  |  |  |           }else { | 
					
						
							|  |  |  |  |             /*将royaltyAmount的单位转为分*/ | 
					
						
							|  |  |  |  |             item.royaltyAmount = item.royaltyAmount * 100 | 
					
						
							|  |  |  |  |           } | 
					
						
							|  |  |  |  |           delete item.id | 
					
						
							|  |  |  |  |         }) | 
					
						
							|  |  |  |  |         data.projectRoyaltyList = this.tableData | 
					
						
							| 
									
										
										
										
											2024-11-11 16:43:31 +08:00
										 |  |  |  |         // 修改的提交
 | 
					
						
							|  |  |  |  |         if (data.id) { | 
					
						
							|  |  |  |  |           console.log('商品及提成', this.tableData) | 
					
						
							|  |  |  |  |           await DlInspectionProjectApi.updateDlInspectionProject(data); | 
					
						
							|  |  |  |  |           this.$modal.msgSuccess("修改成功"); | 
					
						
							|  |  |  |  |           this.dialogVisible = false; | 
					
						
							|  |  |  |  |           this.$emit('success'); | 
					
						
							|  |  |  |  |           return; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2024-11-07 14:50:34 +08:00
										 |  |  |  |         console.log('商品及提成', this.tableData) | 
					
						
							| 
									
										
										
										
											2024-10-29 18:03:06 +08:00
										 |  |  |  |         // 添加的提交
 | 
					
						
							|  |  |  |  |         await DlInspectionProjectApi.createDlInspectionProject(data); | 
					
						
							|  |  |  |  |         this.$modal.msgSuccess("新增成功"); | 
					
						
							|  |  |  |  |         this.dialogVisible = false; | 
					
						
							|  |  |  |  |         this.$emit('success'); | 
					
						
							|  |  |  |  |       } finally { | 
					
						
							|  |  |  |  |         this.formLoading = false; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     }, | 
					
						
							|  |  |  |  |     /** 表单重置 */ | 
					
						
							|  |  |  |  |     reset() { | 
					
						
							|  |  |  |  |       this.formData = { | 
					
						
							|  |  |  |  |         projectName: undefined, | 
					
						
							|  |  |  |  |         roleId: undefined, | 
					
						
							|  |  |  |  |         remark: undefined, | 
					
						
							|  |  |  |  |       }; | 
					
						
							|  |  |  |  |       this.resetForm("formRef"); | 
					
						
							|  |  |  |  |     }, | 
					
						
							|  |  |  |  |     /** 获取角色下拉框数据 */ | 
					
						
							|  |  |  |  |     async getRole() { | 
					
						
							|  |  |  |  |       const res = await getRole(); | 
					
						
							|  |  |  |  |       this.roleList = res.data | 
					
						
							|  |  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2024-11-07 14:50:34 +08:00
										 |  |  |  |     /** 获取角色下拉框数据 */ | 
					
						
							|  |  |  |  |     async getGoods() { | 
					
						
							|  |  |  |  |       const res = await getGoods(); | 
					
						
							|  |  |  |  |       this.tableData = res.data.records | 
					
						
							|  |  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2024-10-29 18:03:06 +08:00
										 |  |  |  |   } | 
					
						
							|  |  |  |  | }; | 
					
						
							|  |  |  |  | </script> |