Compare commits
	
		
			28 Commits
		
	
	
		
			9702f23d55
			...
			zhp
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | a17d258934 | ||
|  | 837991ee91 | ||
| 258b9f1256 | |||
|  | bcdb04059b | ||
|  | 2ba0a42a1f | ||
| 94a359fe1e | |||
| d942fd83f8 | |||
| 931fb70ee9 | |||
| 97fe6d23b3 | |||
| 93f92f42c5 | |||
|  | ab30435246 | ||
| 26a0d9827c | |||
| 7d1e82b818 | |||
| 005143cd2d | |||
|  | 05c4374d36 | ||
|  | b810720fbd | ||
| cdca6407ff | |||
|  | f002123cf5 | ||
|  | bc6ae3a005 | ||
| 7cee18e20d | |||
| 675b716a32 | |||
| 7acd83e501 | |||
| 0626237912 | |||
| bef845eb3d | |||
|  | f8dd086cf9 | ||
|  | 3e9e5f82db | ||
|  | 229b59f424 | ||
| 2866927528 | 
| @@ -15,7 +15,7 @@ | ||||
|     "axios": "^0.19.2", | ||||
|     "babel-eslint": "^8.0.1", | ||||
|     "babel-plugin-component": "^1.1.1", | ||||
|     "code-brick-zj": "0.0.7", | ||||
|     "code-brick-zj": "1.0.2", | ||||
|     "core-js": "^3.6.5", | ||||
|     "echarts": "^5.4.2", | ||||
|     "element-theme": "^2.0.1", | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| <!-- | ||||
|  * @Author: zwq | ||||
|  * @Date: 2022-08-22 14:57:50 | ||||
|  * @LastEditors: zhp | ||||
|  * @LastEditTime: 2023-07-11 10:23:31 | ||||
|  * @LastEditors: DY | ||||
|  * @LastEditTime: 2023-07-21 16:45:57 | ||||
|  * @Description:  | ||||
| --> | ||||
| <!DOCTYPE html> | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/add_new.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.3 KiB | 
| @@ -599,13 +599,19 @@ img { | ||||
|             display: none; | ||||
|           } | ||||
|           & > .el-tabs__item { | ||||
|             height: $content--tabs-header-height; | ||||
|             border: 0; | ||||
|             padding: 0 10px; | ||||
|             color: rgba(89, 89, 89, 1); | ||||
|             margin: 6px 5px 6px 0px; | ||||
|             height: 24px; | ||||
|             font-size: 12px; | ||||
|             line-height: 24px; | ||||
|             border-radius: 5px; | ||||
|             background-color: rgba(239, 239, 239, 1); | ||||
|             &:focus, | ||||
|             &:hover, | ||||
|             &.is-active { | ||||
|               color: rgba(255, 255, 255, 1); | ||||
|               background-color: rgba(62, 142, 247, 1); | ||||
|               &:after { | ||||
|                 display: block; | ||||
|               } | ||||
| @@ -630,6 +636,7 @@ img { | ||||
|               line-height: 24px; | ||||
|               border-radius: 5px; | ||||
|               background-color: rgba(239, 239, 239, 1); | ||||
|               &:hover, | ||||
|               &.is-active { | ||||
|                 color: rgba(255, 255, 255, 1); | ||||
|                 background-color: rgba(62, 142, 247, 1); | ||||
|   | ||||
| @@ -18,6 +18,10 @@ const table = { | ||||
|     1: '需要审批', | ||||
|     0: '不需要审批', | ||||
|   }, | ||||
|   gradeFinish: { | ||||
|     1: '已打分', | ||||
|     0: '未打分', | ||||
|   }, | ||||
|   step: { | ||||
|     0: 'D0', | ||||
|     1: 'D1', | ||||
|   | ||||
							
								
								
									
										29
									
								
								src/filters/incoming/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,29 @@ | ||||
| /* | ||||
|  * @Date: 2020-12-29 16:49:28 | ||||
|  * @LastEditors: zhp | ||||
|  * @LastEditTime: 2023-07-17 09:36:52 | ||||
|  * @FilePath: \basic-admin\src\filters\DataDict\index.js | ||||
|  * @Description: 部分常量的数据字典定义 | ||||
|  */ | ||||
| import i18n from "@/i18n" | ||||
| const table = { | ||||
|   upload: { | ||||
|       0: '未上传', | ||||
|       1:' 已上传', | ||||
|   }, | ||||
|   VerifyType: { | ||||
|     0: i18n.t('gage.insideVerify'), | ||||
|     1:  i18n.t('gage.outsideVerify') | ||||
|   }, | ||||
|   judgmentResult: { | ||||
|     0: '未判定  ', | ||||
|     1: '合格', | ||||
|     2: '不合格' | ||||
|    }, | ||||
| } | ||||
|  | ||||
| export default function (dictTable) { | ||||
|   return function (val) { | ||||
|     return table?.[dictTable]?.[val] | ||||
|   } | ||||
| } | ||||
| @@ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * @Date: 2020-12-14 09:07:03 | ||||
|  * @LastEditors: zhp | ||||
|  * @LastEditTime: 2023-04-18 15:14:26 | ||||
|  * @LastEditTime: 2023-07-17 14:34:42 | ||||
|  * @FilePath: \basic-admin\src\filters\index.js | ||||
|  * @Description: 过滤器定义、多语言过滤器修改 | ||||
|  */ | ||||
| @@ -146,6 +146,22 @@ export function handleLimit(string) { | ||||
|   } | ||||
| } | ||||
|  | ||||
| export function handleProductType(Array) { | ||||
|   let arr = [] | ||||
|   Array.forEach(ele => { | ||||
|     arr.push(ele.productTypeName) | ||||
|   }) | ||||
|   return arr.join(',') | ||||
| } | ||||
|  | ||||
| export function handleProcess(Array) { | ||||
|   let arr = [] | ||||
|   Array.forEach(ele => { | ||||
|     arr.push(ele.processName) | ||||
|   }) | ||||
|   return arr.join(',') | ||||
| } | ||||
|  | ||||
| export function getSimpleText(html) { | ||||
|   var re1 = new RegExp('<.+?>', 'g') | ||||
|   var msg = html.replace(re1, '') | ||||
|   | ||||
							
								
								
									
										46
									
								
								src/filters/quality/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,46 @@ | ||||
| /* | ||||
|  * @Date: 2020-12-29 16:49:28 | ||||
|  * @LastEditors: zhp | ||||
|  * @LastEditTime: 2023-07-18 14:08:41 | ||||
|  * @FilePath: \basic-admin\src\filters\DataDict\index.js | ||||
|  * @Description: 部分常量的数据字典定义 | ||||
|  */ | ||||
| import i18n from "@/i18n" | ||||
| const table = { | ||||
|   monitor: { | ||||
|       0: '否', | ||||
|       1:'是', | ||||
|   }, | ||||
|   characteristicsType: { | ||||
|       0: '计量', | ||||
|       1:'计数', | ||||
|   }, | ||||
|   VerifyType: { | ||||
|     0: i18n.t('gage.insideVerify'), | ||||
|     1:  i18n.t('gage.outsideVerify') | ||||
|   }, | ||||
|   inspectionType: { | ||||
|       0: '监控', | ||||
|         1:'电芯来料检验', | ||||
|         2: 'IQC抽检', | ||||
|         3: 'IQC抽检2', | ||||
|         4: '原料抽检', | ||||
|         5: '进货外观检验', | ||||
|         6: '库内原料检验', | ||||
|         7: '来料检验', | ||||
|         8: '胶片', | ||||
|         9: '抽检', | ||||
|         10: '巡检', | ||||
|         11: '首检', | ||||
|         12: '末检', | ||||
|         13: '实时监测', | ||||
|         14: 'FQC抽检', | ||||
|         15: 'OQC抽检' | ||||
|   } | ||||
| } | ||||
|  | ||||
| export default function (dictTable) { | ||||
|   return function (val) { | ||||
|     return table?.[dictTable]?.[val] | ||||
|   } | ||||
| } | ||||
| @@ -43,6 +43,9 @@ t.notAvailable = '不可用' | ||||
| t.time = '时间段' | ||||
| t.parameter = '台差参数' | ||||
| t.configuration = '配置' | ||||
| t.uploadFile = '上传' | ||||
| t.detail = '查看详情' | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -300,6 +303,10 @@ t.basic.course = '过程检验' | ||||
| t.basic.shipment = '出货检验' | ||||
| t.basic.userName = '用户名' | ||||
| t.basic.departName = '部门名' | ||||
| t.basic.productCode = '产品编码' | ||||
| t.basic.productName = '产品名称' | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -360,7 +367,23 @@ t.quality.sampleRangeHigh = '取样范围高' | ||||
| t.quality.inspectionLevel = '检验水平' | ||||
| t.quality.sampleSizeCode = '样本量字码' | ||||
| t.quality.sampleSize = '样本量' | ||||
|  | ||||
| t.quality.inspectionPlan = '是否有检验计划' | ||||
| t.quality.analyzeDrawings = '分析图形' | ||||
| t.quality.characteristicsType = '特性类型' | ||||
| t.quality.company = '单位' | ||||
| t.quality.decimalDigits = '小数位数' | ||||
| t.quality.measuringToolsType = '量具类型' | ||||
| t.quality.monitor = '是否监控' | ||||
| t.quality.parameterName = '参数名称' | ||||
| t.quality.parameterCode = '	参数编码' | ||||
| t.quality.sampleSize = '样本大小' | ||||
| t.quality.source = '来源' | ||||
| t.quality.specificationCenterline = 'SL' | ||||
| t.quality.specificationOffline = 'LSL' | ||||
| t.quality.specifications = '规格' | ||||
| t.quality.targetCpk = '目标CPK' | ||||
| t.quality.targetPpk = '目标PPK' | ||||
| t.quality.upperSpecificationLimit = 'USL' | ||||
| 	 | ||||
| 	 | ||||
|  | ||||
| @@ -552,6 +575,7 @@ t.gage.repeatabilityAndReproducibility = '重复性和再现性(R&R)' | ||||
| t.gage.partVariation = '零件变差(TV)' | ||||
| t.gage.decide = '综合判定' | ||||
| t.gage.tabularComputations = '表格计算' | ||||
| t.gage.tabularComputationsAdd = '表格计算新增' | ||||
| t.gage.fabrication = '制作' | ||||
|  | ||||
|  | ||||
| @@ -581,7 +605,9 @@ t.laboratory.title = '主题' | ||||
| t.laboratory.trainContent	= '培训内容' | ||||
| t.laboratory.trainDate	= '培训日期' | ||||
| t.laboratory.trainDuration = '培训时长' | ||||
| t.laboratory.trainType	= '培训类型' | ||||
| t.laboratory.trainType = '培训类型' | ||||
| t.laboratory.timeSlot	= '时间段' | ||||
|  | ||||
|  | ||||
|  | ||||
| t.code = {} | ||||
| @@ -675,7 +701,6 @@ t.researchquality.registrationDate = '登记日期' | ||||
| t.researchquality.changeSource = '变更来源' | ||||
| t.researchquality.owner = '所有者' | ||||
| t.researchquality.category = 'Category' | ||||
| t.researchquality.title = '标题' | ||||
| t.researchquality.currentStage = '当前阶段' | ||||
| t.researchquality.productName = '产品名称' | ||||
| t.researchquality.qualityChangeStatus = '状态' | ||||
| @@ -694,6 +719,9 @@ t.researchquality.stageTwoDate = '阶段2时间' | ||||
| t.researchquality.stageThreeDate = '阶段3时间' | ||||
| t.researchquality.stageFourDate = '阶段4时间' | ||||
| t.researchquality.approvedMemo = '审核记录' | ||||
| t.researchquality.phase = '阶段' | ||||
| t.researchquality.realTime = '实际完成时间' | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -718,7 +746,19 @@ t.customerquality.qualityAcceptanceDate = '质量接收日期' | ||||
| t.customerquality.confirmDeliveryDate = '确认交付日期' | ||||
| t.customerquality.deliveryRequiredDate = '要求交付日期' | ||||
| t.customerquality.status = '状态' | ||||
| 	 | ||||
| t.customerquality.file = '清单文件' | ||||
| t.customerquality.previousVersionCode = '上一版本号' | ||||
| t.customerquality.first = '首次' | ||||
| t.customerquality.confidentialityAgreement = '保密协议' | ||||
| t.customerquality.ppapGrade = '	ppap等级' | ||||
| t.customerquality.version = '	版本' | ||||
| t.customerquality.amendment = '	修订' | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| 	 | ||||
| 	 | ||||
| 	 | ||||
|   | ||||
							
								
								
									
										12
									
								
								src/icons/svg/icon-del.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,12 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
|     <title>删除</title> | ||||
|     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.69689"> | ||||
|         <g id="供应商评估_评估模版" transform="translate(-1241.000000, -403.000000)" fill-rule="nonzero"> | ||||
|             <g id="删除" transform="translate(1241.000000, 403.000000)"> | ||||
|                 <rect id="矩形" opacity="0" x="0" y="0" width="40" height="40"></rect> | ||||
|                 <path d="M25.5755088,1.28498542 C27.8552525,1.28498542 29.739258,3.1141321 29.8368374,5.37516257 L29.840807,5.5594082 L29.84046,6.86781876 L36.7102456,6.86802554 C37.3996072,6.86802554 37.8113884,7.26595838 38.0368575,7.91362769 L38.0794942,8.04644746 L38.1173248,8.18566341 L38.13,8.28889447 C38.13,9.06911419 37.5468225,9.64626258 36.8307452,9.70485377 L36.7102456,9.70976341 L35.16042,9.70934985 L35.1607368,33.8468114 C35.1607368,36.0667398 33.4366512,37.9141397 31.2664665,38.1049823 L31.079388,38.1172534 L30.8954386,38.1212342 L9.6157193,38.1212342 C7.3359756,38.1212342 5.45197012,36.2920875 5.3543907,34.0310571 L5.35042105,33.8468114 L5.35024,9.70934985 L3.42975439,9.70976341 C2.69477563,9.70976341 2.14173305,9.19187233 2.03050853,8.53418971 L2.01489493,8.40932835 L2.01,8.28889447 C2.01,7.50867476 2.59317752,6.93152637 3.30925482,6.87293518 L3.42975439,6.86802554 L9.92802,6.86781876 L9.92803509,5.5594082 C9.92803509,3.33947983 11.6521207,1.49207995 13.8223054,1.30123731 L14.0093839,1.28896619 L14.1933333,1.28498542 L25.5755088,1.28498542 Z M32.3207,9.70934985 L8.31122,9.70934985 L8.18992982,33.970879 C8.18992982,34.6086332 8.93553979,35.2156816 9.73635524,35.274792 L9.86315789,35.2794963 L31.1428772,35.2794963 C31.7547945,35.2794963 32.2675306,34.5542502 32.3172744,33.6232439 L32.3212281,33.4746088 L32.3207,9.70934985 Z M14.4407719,14.1880115 C15.1760909,14.1880115 15.5955852,14.6407706 15.8100205,15.3664334 L15.8478511,15.5056493 L15.8605263,15.6088804 L15.8605263,28.8841091 C15.8605263,29.7076744 15.2107514,30.3049781 14.4407719,30.3049781 C13.7113177,30.3049781 13.0897479,29.7688939 13.0263401,29.0122113 L13.0210175,28.8841091 L13.0210175,15.6088804 C13.0210175,14.7526239 13.5840451,14.1880115 14.4407719,14.1880115 Z M20.6267368,14.1880115 C21.3620559,14.1880115 21.7815501,14.6407706 21.9959854,15.3664334 L22.0338161,15.5056493 L22.0464912,15.6088804 L22.0464912,28.8841091 C22.0464912,29.7076744 21.3967163,30.3049781 20.6267368,30.3049781 C19.8972826,30.3049781 19.2757128,29.7688939 19.212305,29.0122113 L19.2069825,28.8841091 L19.2069825,15.6088804 C19.2069825,14.7526239 19.77001,14.1880115 20.6267368,14.1880115 Z M26.8127018,14.1880115 C27.5480208,14.1880115 27.967515,14.6407706 28.1819503,15.3664334 L28.219781,15.5056493 L28.2324561,15.6088804 L28.2324561,28.8841091 C28.2324561,29.7076744 27.5826812,30.3049781 26.8127018,30.3049781 C26.0832476,30.3049781 25.4616777,29.7688939 25.39827,29.0122113 L25.3929474,28.8841091 L25.3929474,15.6088804 C25.3929474,14.7526239 25.9559749,14.1880115 26.8127018,14.1880115 Z M25.6992281,4.1267233 L14.3170526,4.1267233 C13.6049877,4.1267233 12.9624425,4.73349464 12.8967786,5.44069788 L12.8912632,5.5594082 L12.89072,6.86781876 L27.12458,6.86781876 L27.1250175,5.5594082 C27.1250175,4.84260863 26.5199494,4.19811099 25.8171749,4.13225473 L25.6992281,4.1267233 Z" id="形状结合" fill="#000000"></path> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 3.5 KiB | 
							
								
								
									
										12
									
								
								src/icons/svg/icon-del1.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,12 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
|     <title>删除</title> | ||||
|     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> | ||||
|         <g id="供应商评估_评估模版" transform="translate(-689.000000, -403.000000)" fill-rule="nonzero"> | ||||
|             <g id="删除" transform="translate(689.000000, 403.000000)"> | ||||
|                 <rect id="矩形" opacity="0" x="0" y="0" width="40" height="40"></rect> | ||||
|                 <path d="M25.5755088,1.28498542 C27.8552525,1.28498542 29.739258,3.1141321 29.8368374,5.37516257 L29.840807,5.5594082 L29.84046,6.86781876 L36.7102456,6.86802554 C37.3996072,6.86802554 37.8113884,7.26595838 38.0368575,7.91362769 L38.0794942,8.04644746 L38.1173248,8.18566341 L38.13,8.28889447 C38.13,9.06911419 37.5468225,9.64626258 36.8307452,9.70485377 L36.7102456,9.70976341 L35.16042,9.70934985 L35.1607368,33.8468114 C35.1607368,36.0667398 33.4366512,37.9141397 31.2664665,38.1049823 L31.079388,38.1172534 L30.8954386,38.1212342 L9.6157193,38.1212342 C7.3359756,38.1212342 5.45197012,36.2920875 5.3543907,34.0310571 L5.35042105,33.8468114 L5.35024,9.70934985 L3.42975439,9.70976341 C2.69477563,9.70976341 2.14173305,9.19187233 2.03050853,8.53418971 L2.01489493,8.40932835 L2.01,8.28889447 C2.01,7.50867476 2.59317752,6.93152637 3.30925482,6.87293518 L3.42975439,6.86802554 L9.92802,6.86781876 L9.92803509,5.5594082 C9.92803509,3.33947983 11.6521207,1.49207995 13.8223054,1.30123731 L14.0093839,1.28896619 L14.1933333,1.28498542 L25.5755088,1.28498542 Z M32.3207,9.70934985 L8.31122,9.70934985 L8.18992982,33.970879 C8.18992982,34.6086332 8.93553979,35.2156816 9.73635524,35.274792 L9.86315789,35.2794963 L31.1428772,35.2794963 C31.7547945,35.2794963 32.2675306,34.5542502 32.3172744,33.6232439 L32.3212281,33.4746088 L32.3207,9.70934985 Z M14.4407719,14.1880115 C15.1760909,14.1880115 15.5955852,14.6407706 15.8100205,15.3664334 L15.8478511,15.5056493 L15.8605263,15.6088804 L15.8605263,28.8841091 C15.8605263,29.7076744 15.2107514,30.3049781 14.4407719,30.3049781 C13.7113177,30.3049781 13.0897479,29.7688939 13.0263401,29.0122113 L13.0210175,28.8841091 L13.0210175,15.6088804 C13.0210175,14.7526239 13.5840451,14.1880115 14.4407719,14.1880115 Z M20.6267368,14.1880115 C21.3620559,14.1880115 21.7815501,14.6407706 21.9959854,15.3664334 L22.0338161,15.5056493 L22.0464912,15.6088804 L22.0464912,28.8841091 C22.0464912,29.7076744 21.3967163,30.3049781 20.6267368,30.3049781 C19.8972826,30.3049781 19.2757128,29.7688939 19.212305,29.0122113 L19.2069825,28.8841091 L19.2069825,15.6088804 C19.2069825,14.7526239 19.77001,14.1880115 20.6267368,14.1880115 Z M26.8127018,14.1880115 C27.5480208,14.1880115 27.967515,14.6407706 28.1819503,15.3664334 L28.219781,15.5056493 L28.2324561,15.6088804 L28.2324561,28.8841091 C28.2324561,29.7076744 27.5826812,30.3049781 26.8127018,30.3049781 C26.0832476,30.3049781 25.4616777,29.7688939 25.39827,29.0122113 L25.3929474,28.8841091 L25.3929474,15.6088804 C25.3929474,14.7526239 25.9559749,14.1880115 26.8127018,14.1880115 Z M25.6992281,4.1267233 L14.3170526,4.1267233 C13.6049877,4.1267233 12.9624425,4.73349464 12.8967786,5.44069788 L12.8912632,5.5594082 L12.89072,6.86781876 L27.12458,6.86781876 L27.1250175,5.5594082 C27.1250175,4.84260863 26.5199494,4.19811099 25.8171749,4.13225473 L25.6992281,4.1267233 Z" id="形状结合" fill="#FF2323"></path> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 3.4 KiB | 
							
								
								
									
										17
									
								
								src/icons/svg/icon-edit0.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,17 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
|     <title>编辑</title> | ||||
|     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> | ||||
|         <g id="供应商评估_评估模版" transform="translate(-513.000000, -404.000000)"> | ||||
|             <g id="编组-2备份" transform="translate(512.000000, 404.000000)"> | ||||
|                 <g id="编辑" transform="translate(1.000000, 0.000000)"> | ||||
|                     <rect id="矩形" x="0" y="0" width="35.5555556" height="35.5555556"></rect> | ||||
|                     <g id="常用购票人/编辑32" fill-rule="nonzero"> | ||||
|                         <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="40" height="40"></rect> | ||||
|                         <path d="M21.9461538,3.08333333 C22.4935031,3.08333333 22.9992746,3.37534065 23.2729492,3.84935897 C23.5466238,4.32337729 23.5466238,4.90739194 23.2729492,5.38141027 C23.0241541,5.81233601 22.5835434,6.09283945 22.0942569,6.14027869 L21.9461538,6.1474359 L9.74358974,6.1474359 C7.82155659,6.1474359 6.25170159,7.65528983 6.15242066,9.55260178 L6.1474359,9.74358974 L6.1474359,30.2564103 C6.1474359,32.1784434 7.65528983,33.7482984 9.55260178,33.8475793 L9.74358974,33.8525641 L30.2564103,33.8525641 C32.1784434,33.8525641 33.7482984,32.3447102 33.8475793,30.4473982 L33.8525641,30.2564103 L33.8525641,19.5602564 C33.8525641,18.7141279 34.5384868,18.0282051 35.3846154,18.0282051 C36.1837368,18.0282051 36.8399586,18.6400313 36.9104057,19.4208085 L36.9166667,19.5602564 L36.9166667,30.2564103 C36.9166667,33.8565054 34.0603077,36.7894621 30.4902312,36.912639 L30.2564103,36.9166667 L9.74358974,36.9166667 C6.14349464,36.9166667 3.21053791,34.0603077 3.08736098,30.4902312 L3.08333333,30.2564103 L3.08333333,9.74358974 C3.08333333,6.14349464 5.93969229,3.21053791 9.50976879,3.08736098 L9.74358974,3.08333333 L21.9461538,3.08333333 Z M35.5111781,5.19079908 C36.0819035,5.72326795 36.1560265,6.59166826 35.7034748,7.2136457 L35.6059332,7.334583 L21.6187527,22.3371482 C21.2454671,22.7375271 20.6869374,22.908347 20.1535563,22.7852616 C19.6201753,22.6621763 19.1929761,22.2638853 19.0328806,21.7404211 C18.8873392,21.2645445 18.9826458,20.7509435 19.2816371,20.3606783 L19.3774079,20.2474599 L33.3698382,5.24073629 C33.951474,4.64500849 34.9024043,4.62283227 35.5111781,5.19079908 Z" id="形状结合" fill="#0B58FF"></path> | ||||
|                     </g> | ||||
|                 </g> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 2.5 KiB | 
							
								
								
									
										17
									
								
								src/icons/svg/icon-edit1.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,17 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
|     <title>编辑</title> | ||||
|     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.69689"> | ||||
|         <g id="供应商评估_评估模版" transform="translate(-1065.000000, -404.000000)"> | ||||
|             <g id="编组-2备份-3" transform="translate(1064.000000, 404.000000)"> | ||||
|                 <g id="编辑" transform="translate(1.000000, 0.000000)"> | ||||
|                     <rect id="矩形" x="0" y="0" width="35.5555556" height="35.5555556"></rect> | ||||
|                     <g id="常用购票人/编辑32" fill="#000000" fill-rule="nonzero"> | ||||
|                         <rect id="矩形" opacity="0" x="0" y="0" width="40" height="40"></rect> | ||||
|                         <path d="M21.9461538,3.08333333 C22.4935031,3.08333333 22.9992746,3.37534065 23.2729492,3.84935897 C23.5466238,4.32337729 23.5466238,4.90739194 23.2729492,5.38141027 C23.0241541,5.81233601 22.5835434,6.09283945 22.0942569,6.14027869 L21.9461538,6.1474359 L9.74358974,6.1474359 C7.82155659,6.1474359 6.25170159,7.65528983 6.15242066,9.55260178 L6.1474359,9.74358974 L6.1474359,30.2564103 C6.1474359,32.1784434 7.65528983,33.7482984 9.55260178,33.8475793 L9.74358974,33.8525641 L30.2564103,33.8525641 C32.1784434,33.8525641 33.7482984,32.3447102 33.8475793,30.4473982 L33.8525641,30.2564103 L33.8525641,19.5602564 C33.8525641,18.7141279 34.5384868,18.0282051 35.3846154,18.0282051 C36.1837368,18.0282051 36.8399586,18.6400313 36.9104057,19.4208085 L36.9166667,19.5602564 L36.9166667,30.2564103 C36.9166667,33.8565054 34.0603077,36.7894621 30.4902312,36.912639 L30.2564103,36.9166667 L9.74358974,36.9166667 C6.14349464,36.9166667 3.21053791,34.0603077 3.08736098,30.4902312 L3.08333333,30.2564103 L3.08333333,9.74358974 C3.08333333,6.14349464 5.93969229,3.21053791 9.50976879,3.08736098 L9.74358974,3.08333333 L21.9461538,3.08333333 Z M35.5111781,5.19079908 C36.0819035,5.72326795 36.1560265,6.59166826 35.7034748,7.2136457 L35.6059332,7.334583 L21.6187527,22.3371482 C21.2454671,22.7375271 20.6869374,22.908347 20.1535563,22.7852616 C19.6201753,22.6621763 19.1929761,22.2638853 19.0328806,21.7404211 C18.8873392,21.2645445 18.9826458,20.7509435 19.2816371,20.3606783 L19.3774079,20.2474599 L33.3698382,5.24073629 C33.951474,4.64500849 34.9024043,4.62283227 35.5111781,5.19079908 Z" id="形状结合"></path> | ||||
|                     </g> | ||||
|                 </g> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 2.5 KiB | 
							
								
								
									
										12
									
								
								src/icons/svg/icon-look.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,12 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
|     <title>预览</title> | ||||
|     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> | ||||
|         <g id="供应商评估_评估模版" transform="translate(-333.000000, -404.000000)" fill-rule="nonzero"> | ||||
|             <g id="预览" transform="translate(333.000000, 404.000000)"> | ||||
|                 <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="39.7350993" height="40"></rect> | ||||
|                 <path d="M38.0837006,36.8192237 L34.2436156,32.9468752 C34.9636315,31.7367663 35.4436422,30.2846356 35.4436422,28.8325049 C35.4436422,24.7181346 32.0835677,21.3298297 28.0034774,21.3298297 C23.923387,21.3298297 20.5633126,24.7181346 20.5633126,28.8325049 C20.5633126,32.9468752 23.923387,36.3351801 28.0034774,36.3351801 C29.6835146,36.3351801 31.1235465,35.8511366 32.3235731,34.8830494 L36.1636581,38.7553979 C36.6436687,39.2394415 37.60369,39.2394415 38.0837006,38.7553979 C38.5637113,38.2713544 38.5637113,37.3032673 38.0837006,36.8192237 Z M27.7634721,33.4309188 C25.1234136,33.4309188 23.2033711,31.2527227 23.2033711,28.8325049 C23.2033711,26.1702653 25.3634189,24.234091 27.7634721,24.234091 C30.4035305,24.234091 32.3235731,26.4122871 32.3235731,28.8325049 C32.5635784,31.4947445 30.4035305,33.4309188 27.7634721,33.4309188 Z M8.5630468,39.4814633 C6.64300427,39.4814633 2.56291391,38.2713544 2.56291391,34.1569841 L2.56291391,8.26065345 C2.56291391,3.42021782 5.68298301,1 8.5630468,1 L29.4435093,1 C33.043589,1 35.4436422,3.42021782 35.4436422,7.29256632 L35.4436422,16.0053505 C35.4436422,16.7314158 34.9636315,17.6995029 34.0036103,17.6995029 C32.8035837,17.4574812 32.3235731,16.9734376 32.3235731,16.0053505 L32.3235731,7.77660989 C32.3235731,5.11437029 29.9235199,4.14628316 28.9634986,4.14628316 L8.5630468,4.14628316 C7.36302022,4.14628316 5.4429777,5.59841385 5.4429777,8.74469702 L5.4429777,32.9468752 C5.4429777,36.5772019 7.84303085,36.5772019 8.80305212,36.5772019 L16.0032116,36.5772019 C16.9632329,36.3351801 17.4432435,37.3032673 17.4432435,38.0293326 C17.4432435,38.7553979 16.9632329,39.4814633 15.7632063,39.4814633 L8.5630468,39.4814633 Z M10.7230946,7.53458811 L27.0434561,7.53458811 C27.7634721,7.53458811 28.2434827,8.01863167 28.2434827,8.74469702 C28.2434827,9.47076236 27.7634721,9.95480592 27.0434561,9.95480592 L10.7230946,9.95480592 C10.0030787,9.95480592 9.52306806,9.47076236 9.52306806,8.74469702 C9.52306806,8.01863167 9.76307338,7.53458811 10.7230946,7.53458811 Z M10.7230946,14.5532198 L27.0434561,14.5532198 C27.7634721,14.5532198 28.2434827,15.0372633 28.2434827,15.7633287 C28.2434827,16.489394 27.7634721,16.9734376 27.0434561,16.9734376 L10.7230946,16.9734376 C10.0030787,16.9734376 9.52306806,16.489394 9.52306806,15.7633287 C9.52306806,15.2792851 9.76307338,14.5532198 10.7230946,14.5532198 Z M10.7230946,21.8138732 L17.6832488,21.8138732 C18.4032647,21.8138732 18.8832754,22.2979168 18.8832754,23.0239821 C18.8832754,23.7500475 18.1632594,24.234091 17.6832488,24.234091 L10.7230946,24.234091 C10.0030787,24.234091 9.52306806,23.7500475 9.52306806,23.0239821 C9.52306806,22.2979168 9.76307338,21.8138732 10.7230946,21.8138732 Z" id="形状" fill="#0B58FF"></path> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 3.3 KiB | 
							
								
								
									
										12
									
								
								src/icons/svg/icon-look1.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,12 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
|     <title>预览</title> | ||||
|     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.69689"> | ||||
|         <g id="供应商评估_评估模版" transform="translate(-885.000000, -404.000000)" fill="#000000" fill-rule="nonzero"> | ||||
|             <g id="预览" transform="translate(885.000000, 404.000000)"> | ||||
|                 <rect id="矩形" opacity="0" x="0" y="0" width="39.7350993" height="40"></rect> | ||||
|                 <path d="M38.0837006,36.8192237 L34.2436156,32.9468752 C34.9636315,31.7367663 35.4436422,30.2846356 35.4436422,28.8325049 C35.4436422,24.7181346 32.0835677,21.3298297 28.0034774,21.3298297 C23.923387,21.3298297 20.5633126,24.7181346 20.5633126,28.8325049 C20.5633126,32.9468752 23.923387,36.3351801 28.0034774,36.3351801 C29.6835146,36.3351801 31.1235465,35.8511366 32.3235731,34.8830494 L36.1636581,38.7553979 C36.6436687,39.2394415 37.60369,39.2394415 38.0837006,38.7553979 C38.5637113,38.2713544 38.5637113,37.3032673 38.0837006,36.8192237 Z M27.7634721,33.4309188 C25.1234136,33.4309188 23.2033711,31.2527227 23.2033711,28.8325049 C23.2033711,26.1702653 25.3634189,24.234091 27.7634721,24.234091 C30.4035305,24.234091 32.3235731,26.4122871 32.3235731,28.8325049 C32.5635784,31.4947445 30.4035305,33.4309188 27.7634721,33.4309188 Z M8.5630468,39.4814633 C6.64300427,39.4814633 2.56291391,38.2713544 2.56291391,34.1569841 L2.56291391,8.26065345 C2.56291391,3.42021782 5.68298301,1 8.5630468,1 L29.4435093,1 C33.043589,1 35.4436422,3.42021782 35.4436422,7.29256632 L35.4436422,16.0053505 C35.4436422,16.7314158 34.9636315,17.6995029 34.0036103,17.6995029 C32.8035837,17.4574812 32.3235731,16.9734376 32.3235731,16.0053505 L32.3235731,7.77660989 C32.3235731,5.11437029 29.9235199,4.14628316 28.9634986,4.14628316 L8.5630468,4.14628316 C7.36302022,4.14628316 5.4429777,5.59841385 5.4429777,8.74469702 L5.4429777,32.9468752 C5.4429777,36.5772019 7.84303085,36.5772019 8.80305212,36.5772019 L16.0032116,36.5772019 C16.9632329,36.3351801 17.4432435,37.3032673 17.4432435,38.0293326 C17.4432435,38.7553979 16.9632329,39.4814633 15.7632063,39.4814633 L8.5630468,39.4814633 Z M10.7230946,7.53458811 L27.0434561,7.53458811 C27.7634721,7.53458811 28.2434827,8.01863167 28.2434827,8.74469702 C28.2434827,9.47076236 27.7634721,9.95480592 27.0434561,9.95480592 L10.7230946,9.95480592 C10.0030787,9.95480592 9.52306806,9.47076236 9.52306806,8.74469702 C9.52306806,8.01863167 9.76307338,7.53458811 10.7230946,7.53458811 Z M10.7230946,14.5532198 L27.0434561,14.5532198 C27.7634721,14.5532198 28.2434827,15.0372633 28.2434827,15.7633287 C28.2434827,16.489394 27.7634721,16.9734376 27.0434561,16.9734376 L10.7230946,16.9734376 C10.0030787,16.9734376 9.52306806,16.489394 9.52306806,15.7633287 C9.52306806,15.2792851 9.76307338,14.5532198 10.7230946,14.5532198 Z M10.7230946,21.8138732 L17.6832488,21.8138732 C18.4032647,21.8138732 18.8832754,22.2979168 18.8832754,23.0239821 C18.8832754,23.7500475 18.1632594,24.234091 17.6832488,24.234091 L10.7230946,24.234091 C10.0030787,24.234091 9.52306806,23.7500475 9.52306806,23.0239821 C9.52306806,22.2979168 9.76307338,21.8138732 10.7230946,21.8138732 Z" id="形状"></path> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 3.3 KiB | 
							
								
								
									
										12
									
								
								src/icons/svg/首页.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,12 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
|     <title>首页</title> | ||||
|     <g id="页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> | ||||
|         <g id="icon" transform="translate(-506.000000, -176.000000)" fill-rule="nonzero"> | ||||
|             <g id="首页" transform="translate(506.000000, 176.000000)"> | ||||
|                 <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="24" height="24"></rect> | ||||
|                 <path d="M11.1710783,2.42919989 C11.7298936,2.09409047 12.4328291,2.12455473 12.9654367,2.52059014 L12.9654367,2.52059014 L20.3218013,7.99000647 L20.4665209,8.10559268 C21.0744501,8.62656431 21.4302636,9.40344805 21.4302636,10.227099 L21.4302636,10.227099 L21.4302636,19.0470569 L21.4250327,19.2212289 C21.3382831,20.6611171 20.1833875,21.8011882 18.7715031,21.8011882 L18.7715031,21.8011882 L5.2284969,21.8011882 L5.06035624,21.7957697 C3.67032883,21.7059084 2.56973638,20.5095861 2.56973638,19.0470569 L2.56973638,19.0470569 L2.56973638,10.2273587 L2.57600507,10.0381789 C2.63012926,9.22282649 3.03207443,8.47038558 3.67819781,7.99000711 L3.67819781,7.99000711 L11.034559,2.52059336 Z M12.0713092,3.55793652 C11.9772762,3.53774358 11.8769764,3.55793433 11.7954857,3.6185066 L11.7954857,3.6185066 L4.43911542,9.0879271 L4.32641124,9.18150853 C4.04059293,9.44596068 3.87451485,9.82573182 3.87451485,10.2273587 L3.87451485,10.2273587 L3.87451485,19.0470569 L3.880713,19.1821318 C3.94632222,19.8933667 4.52470053,20.4496068 5.2284969,20.4496068 L5.2284969,20.4496068 L11.2507497,20.4487759 L11.3507364,20.3451977 L11.3512202,14.4627186 L11.3582338,14.3683764 C11.4044406,14.0603828 11.6734228,13.8227675 12,13.8227675 C12.3345637,13.8227675 12.6123182,14.0734451 12.6454705,14.3976012 L12.6454705,14.3976012 L12.6489183,14.4681588 L12.6487364,20.3451881 L12.7487231,20.4487759 L18.7714898,20.4496068 L18.9018895,20.4431864 C19.5885066,20.3752237 20.1254851,19.7760987 20.1254851,19.0470569 L20.1254851,19.0470569 L20.1254851,10.2273587 L20.1177907,10.0779557 C20.0769951,9.68325297 19.8759128,9.32208831 19.5608746,9.08791971 L19.5608746,9.08791971 L12.2045243,3.61851399 L12.1402672,3.58065321 Z" id="形状结合" fill="#000"></path> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 2.3 KiB | 
| @@ -2,7 +2,7 @@ | ||||
|  * @Author: zwq | ||||
|  * @Date: 2023-01-04 10:29:39 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-01-05 16:14:45 | ||||
|  * @LastEditTime: 2023-07-19 16:33:56 | ||||
|  * @Description:  | ||||
|  */ | ||||
| import Vue from 'vue' | ||||
| @@ -28,11 +28,11 @@ export default new Vuex.Store({ | ||||
|     contentIsNeedRefresh: false, | ||||
|     // 内容, 标签页(默认添加首页) | ||||
|     contentTabs: [ | ||||
|       { | ||||
|         ...window.SITE_CONFIG['contentTabDefault'], | ||||
|         'name': 'home', | ||||
|         'title': '首页' | ||||
|       } | ||||
|       // { | ||||
|       //   ...window.SITE_CONFIG['contentTabDefault'], | ||||
|       //   'name': 'home', | ||||
|       //   'title': '首页' | ||||
|       // } | ||||
|     ], | ||||
|     contentTabsActiveName: 'home' | ||||
|   }, | ||||
|   | ||||
| @@ -1,3 +1,10 @@ | ||||
| <!-- | ||||
|  * @Author: zwq | ||||
|  * @Date: 2023-07-13 15:31:21 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-07-20 09:05:48 | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <main :class="['aui-content', { 'aui-content--tabs': $route.meta.isTab }]"> | ||||
|     <!-- tab展示内容 --> | ||||
| @@ -16,11 +23,13 @@ | ||||
|           :key="item.name" | ||||
|           :name="item.name" | ||||
|           :label="item.title" | ||||
|           :closable="item.name !== 'home'" | ||||
|           closable | ||||
|           :class="{ 'is-iframe': tabIsIframe(item.iframeURL) }"> | ||||
|           <template v-if="item.name === 'home'"> | ||||
|             <svg slot="label" class="icon-svg aui-content--tabs-icon-nav" aria-hidden="true"><use xlink:href="#icon-home"></use></svg> | ||||
|           </template> | ||||
|           <!-- <template v-if="item.name === 'home'"> | ||||
|             <svg slot="label" class="icon-svg aui-content--tabs-icon-nav" aria-hidden="true"> | ||||
|               <use xlink:href="#首页"></use> | ||||
|             </svg> | ||||
|           </template> --> | ||||
|           <iframe v-if="tabIsIframe(item.iframeURL)" :src="item.iframeURL" width="100%" height="100%" frameborder="0" scrolling="yes"></iframe> | ||||
|           <!-- <keep-alive > --> | ||||
|             <router-view v-if="item.name === $store.state.contentTabsActiveName" /> | ||||
| @@ -62,9 +71,9 @@ export default { | ||||
|     }, | ||||
|     // tabs, 删除tab | ||||
|     tabRemoveHandle (tabName) { | ||||
|       if (tabName === 'home') { | ||||
|         return false | ||||
|       } | ||||
|       // if (tabName === 'home') { | ||||
|       //   return false | ||||
|       // } | ||||
|       this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName) | ||||
|       if (this.$store.state.contentTabs.length <= 0) { | ||||
|         this.$store.state.sidebarMenuActiveName = this.$store.state.contentTabsActiveName = 'home' | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * @Author: zwq | ||||
|  * @Date: 2022-08-22 14:57:51 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-05-12 12:46:50 | ||||
|  * @LastEditTime: 2023-07-19 09:27:53 | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
| @@ -36,10 +36,11 @@ | ||||
|           | ||||
|         <el-menu-item index="6" @click="$router.push({ name: 'home' })"> | ||||
|           <svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"> | ||||
|             <use xlink:href="#icon-home"></use> | ||||
|             <use xlink:href="#首页"></use> | ||||
|           </svg> | ||||
|         </el-menu-item> | ||||
|         <el-menu-item index="7"> | ||||
|         <!-- 中英文 --> | ||||
|         <!-- <el-menu-item index="7"> | ||||
|           <el-dropdown trigger="click" class="international" @command="handleSetLanguage"> | ||||
|             <div> | ||||
|               <svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"> | ||||
| @@ -55,7 +56,7 @@ | ||||
|               </el-dropdown-item> | ||||
|             </el-dropdown-menu> | ||||
|           </el-dropdown> | ||||
|         </el-menu-item> | ||||
|         </el-menu-item> --> | ||||
|         <el-menu-item index="4" @click="fullscreenHandle()"> | ||||
|           <svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"> | ||||
|             <use xlink:href="#icon-fullscreen"></use> | ||||
|   | ||||
| @@ -1,20 +1,21 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-12 13:49:47 | ||||
|  * @LastEditTime: 2023-07-18 16:55:42 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px"> | ||||
|   <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="120px"> | ||||
|     <el-form-item prop="controlCode" :label="$t('basic.code')"> | ||||
|       <el-input v-model="dataForm.controlCode" :placeholder="$t('basic.code')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.controlCode" :placeholder="$t('basic.code')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="controlName" :label="$t('basic.name')"> | ||||
|       <el-input v-model="dataForm.controlName" :placeholder="$t('basic.name')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.controlName" :placeholder="$t('basic.name')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="specifications" :label="$t('basic.specification')"> | ||||
|       <el-input v-model="dataForm.specifications" :placeholder="$t('basic.specification')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.specifications" :placeholder="$t('basic.specification')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="incomingInspection" :label="$t('basic.stock')"> | ||||
|       <el-switch v-model="dataForm.incomingInspection" :active-value="1" :inactive-value="0"> | ||||
| @@ -33,13 +34,13 @@ | ||||
|       </el-switch> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="controlStatus" :label="$t('basic.status')"> | ||||
|       <el-select v-model="dataForm.controlStatus" :placeholder="$t('basic.status')"> | ||||
|       <el-select clearable v-model="dataForm.controlStatus" :placeholder="$t('basic.status')"> | ||||
|         <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="remark" :label="$t('basic.remark')"> | ||||
|       <el-input v-model="dataForm.remark" :placeholder="$t('basic.remark')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.remark" :placeholder="$t('basic.remark')"></el-input> | ||||
|     </el-form-item> | ||||
|   </el-form> | ||||
| </template> | ||||
|   | ||||
| @@ -1,26 +1,27 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-12 13:57:14 | ||||
|  * @LastEditTime: 2023-07-18 16:55:57 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px"> | ||||
|   <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="120px"> | ||||
|     <el-form-item prop="customerCode" :label="$t('basic.code')"> | ||||
|       <el-input v-model="dataForm.customerCode" :placeholder="$t('basic.code')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.customerCode" :placeholder="$t('basic.code')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="customerName" :label="$t('basic.name')"> | ||||
|       <el-input v-model="dataForm.customerName" :placeholder="$t('basic.name')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="customerTypeId" :label="$t('basic.customerTypeName')"> | ||||
|       <el-select v-model="dataForm.customerTypeId" :placeholder="$t('basic.customerTypeName')"> | ||||
|       <el-select clearable v-model="dataForm.customerTypeId" :placeholder="$t('basic.customerTypeName')"> | ||||
|         <el-option v-for="item in customerTypeList" :key="item.id" :label="item.customerTypeName" :value="item.id"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="customerTypeStatus" :label="$t('basic.status')"> | ||||
|       <el-select v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')"> | ||||
|       <el-select clearable v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')"> | ||||
|         <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-12 13:55:20 | ||||
|  * @LastEditTime: 2023-07-18 16:56:08 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -9,13 +9,13 @@ | ||||
|   <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="120px"> | ||||
|     <el-form-item prop="customerTypeCode" :label="$t('basic.code')"> | ||||
|       <el-input v-model="dataForm.customerTypeCode" :placeholder="$t('basic.code')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.customerTypeCode" :placeholder="$t('basic.code')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="customerTypeName" :label="$t('basic.name')"> | ||||
|       <el-input v-model="dataForm.customerTypeName" :placeholder="$t('basic.name')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.customerTypeName" :placeholder="$t('basic.name')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="customerTypeStatus" :label="$t('basic.status')"> | ||||
|       <el-select v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')"> | ||||
|       <el-select clearable v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')"> | ||||
|         <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-12 13:52:25 | ||||
|  * @LastEditTime: 2023-07-18 16:56:16 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -9,13 +9,13 @@ | ||||
|   <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="120px"> | ||||
|     <el-form-item prop="failureTypeCode" :label="$t('basic.code')"> | ||||
|       <el-input v-model="dataForm.failureTypeCode" :placeholder="$t('basic.code')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.failureTypeCode" :placeholder="$t('basic.code')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="failureTypeName" :label="$t('basic.name')"> | ||||
|       <el-input v-model="dataForm.failureTypeName" :placeholder="$t('basic.name')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.failureTypeName" :placeholder="$t('basic.name')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="failureTypeStatus" :label="$t('basic.status')"> | ||||
|       <el-select v-model="dataForm.failureTypeStatus" :placeholder="$t('basic.status')"> | ||||
|       <el-select clearable v-model="dataForm.failureTypeStatus" :placeholder="$t('basic.status')"> | ||||
|         <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|   | ||||
| @@ -121,13 +121,6 @@ export default { | ||||
|           param: 'name', | ||||
|           clearable:true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain:true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
| @@ -135,6 +128,13 @@ export default { | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain:true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "关联产品列表", | ||||
|   | ||||
| @@ -147,17 +147,17 @@ export default { | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|   | ||||
| @@ -128,17 +128,17 @@ export default { | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-11 10:07:22 | ||||
|  * @LastEditTime: 2023-07-18 10:19:11 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -128,17 +128,17 @@ export default { | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           // plain: true, | ||||
|         } | ||||
|       ], | ||||
|   | ||||
| @@ -120,17 +120,17 @@ export default { | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-21 14:30:17 | ||||
|  * @LastEditTime: 2023-07-11 10:24:01 | ||||
|  * @LastEditTime: 2023-07-18 10:19:37 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -135,17 +135,17 @@ export default { | ||||
|         // }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-21 14:30:17 | ||||
|  * @LastEditTime: 2023-07-11 10:16:26 | ||||
|  * @LastEditTime: 2023-07-18 10:19:49 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -151,17 +151,17 @@ export default { | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: 'success', | ||||
|           plain: true | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|   | ||||
| @@ -1,109 +0,0 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-06-26 13:39:19 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-card shadow="never" class="aui-card--fill"> | ||||
|     <div class="mod-sys__user"> | ||||
|       <SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick"> | ||||
|         <!-- <el-button type="primary" size="small" plain>导入</el-button> --> | ||||
|       </SearchBar> | ||||
|       <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData"> | ||||
|         <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn" | ||||
|           @clickBtn="handleClick" /> | ||||
|       </base-table> | ||||
|       <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|         @pagination="getDataList" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <teamMember-add ref="addOrUpdate" @successSubmit="successSubmit"></teamMember-add> | ||||
|       </base-dialog> | ||||
|     </div> | ||||
|   </el-card> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicPage from "@/mixins/basic-page"; | ||||
| import teamMemberAdd from './components/teamMember-add' | ||||
| import i18n from "@/i18n"; | ||||
| const tableProps = [ | ||||
|   { | ||||
|     prop: "paramCode", | ||||
|     label: i18n.t("params.paramCode"), | ||||
|   }, | ||||
|   { | ||||
|     prop: "paramValue", | ||||
|     label: i18n.t("params.paramValue"), | ||||
|   }, | ||||
|   { | ||||
|     prop: "remark", | ||||
|     label: i18n.t("params.remark"), | ||||
|   }, | ||||
| ]; | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: "编辑", | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: "删除", | ||||
|   }, | ||||
| ]; | ||||
| export default { | ||||
|   mixins: [basicPage], | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         getDataListURL: "/basic/qmsTeamMember/page", | ||||
|         deleteURL: "/basic/qmsControlMode", | ||||
|       }, | ||||
|       tableProps, | ||||
|       tableBtn, | ||||
|       formConfig: [ | ||||
|         // { | ||||
|         //   type: "", | ||||
|         //   label: i18n.t("params.paramCode"), | ||||
|         //   placeholder: i18n.t("params.paramCode"), | ||||
|         //   param: "paramCode", | ||||
|         // }, | ||||
|         // { | ||||
|         //   type: "separate", | ||||
|         // }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: "primary", | ||||
|         }, | ||||
|       ], | ||||
|     }; | ||||
|   }, | ||||
|   components: { | ||||
|     teamMemberAdd, | ||||
|   }, | ||||
|   methods:{ | ||||
|     //search-bar点击 | ||||
|     buttonClick(val) { | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           // this.listQuery.paramCode = val.paramCode; | ||||
|           this.listQuery.page = 1; | ||||
|           this.getDataList(); | ||||
|           break; | ||||
|         case "add": | ||||
|           this.addOrEditTitle = '新增' | ||||
|           this.addOrUpdateVisible = true;    | ||||
|           this.addOrUpdateHandle() | ||||
|           break; | ||||
|         default: | ||||
|           console.log(val) | ||||
|        } | ||||
|     }, | ||||
|   } | ||||
| }; | ||||
| </script> | ||||
| @@ -1,8 +1,8 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-14 10:17:26 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-07-17 10:24:03 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
| @@ -10,7 +10,7 @@ | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="factoryId" :label="$t('code.factoryName')"> | ||||
|           <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|           <el-select  v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|             <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -18,26 +18,26 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> | ||||
|           <el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" | ||||
|             format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|           <el-date-picker  v-model="dataForm.inspectionTime" type="datetime" | ||||
|             :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> | ||||
|           <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|           <el-input  v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="batchNo" :label="$t('code.batchNo')"> | ||||
|           <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|           <el-input  v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> | ||||
|           <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|           <el-select  v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|             <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -53,7 +53,7 @@ | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="productId" :label="$t('code.productName')"> | ||||
|           <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|           <el-select  v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|             <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -61,7 +61,7 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="supplierId" :label="$t('code.supplierName')"> | ||||
|           <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|           <el-select  v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|             <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -69,31 +69,34 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> | ||||
|           <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> | ||||
|           <el-input  v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> | ||||
|           <el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|           <el-input  v-model="dataForm.inspectionQuantity" | ||||
|             :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="batchSize" :label="$t('code.batchSize')"> | ||||
|           <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|           <el-input  v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> | ||||
|           <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> | ||||
|           <el-input  v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="companyId" :label="$t('code.companyName')"> | ||||
|           <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|           <el-select  v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|             <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -101,15 +104,15 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="userId" :label="$t('code.username')"> | ||||
|           <el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|             <el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|           <el-select  v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|             <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> | ||||
|           <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|           <el-select  v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|             <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -119,7 +122,7 @@ | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> | ||||
|           <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|           <el-select  v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|             <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -331,23 +334,13 @@ export default { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           ;console.log(res.data.list) | ||||
|           if (res.code === 0) { | ||||
|             this.userList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getProductURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             this.productList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getDictDataList, { | ||||
|           params: { | ||||
| @@ -385,6 +378,17 @@ export default { | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getProductURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             this.productList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       // console.log(111111); | ||||
|     }, | ||||
|     // 表单提交 | ||||
|   | ||||
| @@ -1,15 +1,20 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-14 10:17:44 | ||||
|  * @LastEditTime: 2023-07-17 10:21:47 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="130px"> | ||||
|   <el-form | ||||
|     :model="dataForm" | ||||
|     ref="dataForm" | ||||
|     :rules="dataRule" | ||||
|     @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="130px" | ||||
|   > | ||||
|     <el-form-item prop="name" :label="$t('code.name')"> | ||||
|       <el-input v-model="dataForm.name" :placeholder="$t('code.name')"> | ||||
|       </el-input> | ||||
|       <el-input v-model="dataForm.name" :placeholder="$t('code.name')"> </el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="code" :label="$t('code.code')"> | ||||
|       <el-input v-model="dataForm.code" :placeholder="$t('code.code')"></el-input> | ||||
| @@ -19,8 +24,16 @@ | ||||
|       </el-switch> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="eightDisciplineType" :label="$t('code.eightDisciplineType')"> | ||||
|       <el-select v-model="dataForm.eightDisciplineType" :placeholder="$t('code.eightDisciplineType')"> | ||||
|         <el-option v-for="item in eightDisciplineTypeList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|       <el-select | ||||
|         v-model="dataForm.eightDisciplineType" | ||||
|         :placeholder="$t('code.eightDisciplineType')" | ||||
|       > | ||||
|         <el-option | ||||
|           v-for="item in eightDisciplineTypeList" | ||||
|           :key="item.value" | ||||
|           :label="item.label" | ||||
|           :value="item.value" | ||||
|         > | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
| @@ -36,36 +49,38 @@ export default { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         submitURL: "/code/eightDiscipline", | ||||
|         infoURL: "/code/eightDiscipline" | ||||
|         infoURL: "/code/eightDiscipline", | ||||
|       }, | ||||
|       options: [{ | ||||
|         value: 0, | ||||
|         label: '不可用' | ||||
|       }, | ||||
|       { | ||||
|         value: 1, | ||||
|         label: '可用' | ||||
|         }], | ||||
|       options: [ | ||||
|         { | ||||
|           value: 0, | ||||
|           label: "不可用", | ||||
|         }, | ||||
|         { | ||||
|           value: 1, | ||||
|           label: "可用", | ||||
|         }, | ||||
|       ], | ||||
|       eightDisciplineTypeList: [ | ||||
|         { | ||||
|           value: '0', | ||||
|           label: '重复发生问题 ' | ||||
|           value: "0", | ||||
|           label: "重复发生问题 ", | ||||
|         }, | ||||
|         { | ||||
|           value: '1', | ||||
|           label: '客诉问题' | ||||
|           value: "1", | ||||
|           label: "客诉问题", | ||||
|         }, | ||||
|         { | ||||
|           value: '2', | ||||
|           label: '重大质量问题' | ||||
|         } | ||||
|           value: "2", | ||||
|           label: "重大质量问题", | ||||
|         }, | ||||
|       ], | ||||
|       visible: false, | ||||
|       dataForm: { | ||||
|         id: null, | ||||
|         name: null, | ||||
|         code:null,	 | ||||
|         eightDisciplineType:null, | ||||
|         code: null, | ||||
|         eightDisciplineType: null, | ||||
|         eightDisciplineStatus: 0, | ||||
|       }, | ||||
|     }; | ||||
| @@ -73,40 +88,33 @@ export default { | ||||
|   computed: { | ||||
|     dataRule() { | ||||
|       return { | ||||
|         // dictLabel: [ | ||||
|         //   { | ||||
|         //     required: true, | ||||
|         //     message: this.$t("validate.required"), | ||||
|         //     trigger: "blur", | ||||
|         //   }, | ||||
|         // ], | ||||
|         // dictValue: [ | ||||
|         //   { | ||||
|         //     required: true, | ||||
|         //     message: this.$t("validate.required"), | ||||
|         //     trigger: "blur", | ||||
|         //   }, | ||||
|         // ], | ||||
|         // sort: [ | ||||
|         //   { | ||||
|         //     required: true, | ||||
|         //     message: this.$t("validate.required"), | ||||
|         //     trigger: "blur", | ||||
|         //   }, | ||||
|         // ], | ||||
|         code: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: "请输入编码", | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ], | ||||
|         name: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: "请输入名称", | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ], | ||||
|       }; | ||||
|     }, | ||||
|   }, | ||||
|   methods: { | ||||
|     init(id, ) { | ||||
|       this.dataForm.id = id || "" | ||||
|     init(id) { | ||||
|       this.dataForm.id = id || ""; | ||||
|       // console.log(11111) | ||||
|       // this.dataForm.dictTypeId = dictTypeId || ""; | ||||
|       this.visible = true | ||||
|       this.visible = true; | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs["dataForm"].resetFields(); | ||||
|         if (this.dataForm.id) { | ||||
|           this.getInfo() | ||||
|           this.getInfo(); | ||||
|         } else { | ||||
|           // this.getCode() | ||||
|         } | ||||
|   | ||||
| @@ -1,78 +1,74 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-14 13:41:37 | ||||
|  * @LastEditTime: 2023-07-17 10:23:23 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|     <el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="130px"> | ||||
|       <el-form-item prop="name" :label="$t('code.name')"> | ||||
|         <el-input v-model="dataForm.name" :placeholder="$t('code.name')"> | ||||
|         </el-input> | ||||
|       </el-form-item> | ||||
|       <el-form-item prop="code" :label="$t('code.code')"> | ||||
|         <el-input v-model="dataForm.code" :placeholder="$t('code.code')"></el-input> | ||||
|       </el-form-item> | ||||
|       <el-form-item prop="problemStatus" label="状态"> | ||||
|         <el-switch v-model="dataForm.problemStatus" :active-value="1" :inactive-value="0"> | ||||
|         </el-switch> | ||||
|       </el-form-item> | ||||
|       <el-form-item prop="description" label="描述"> | ||||
|         <el-input v-model="dataForm.description" placeholder="描述"></el-input> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|   </template> | ||||
|    | ||||
|   <script> | ||||
|   import basicAdd from "@/mixins/basic-add"; | ||||
|   export default { | ||||
|     mixins: [basicAdd], | ||||
|     data() { | ||||
|   <el-form | ||||
|     :model="dataForm" | ||||
|     :rules="dataRule" | ||||
|     ref="dataForm" | ||||
|     @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="130px" | ||||
|   > | ||||
|     <el-form-item prop="name" :label="$t('code.name')"> | ||||
|       <el-input v-model="dataForm.name" :placeholder="$t('code.name')"> </el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="code" :label="$t('code.code')"> | ||||
|       <el-input v-model="dataForm.code" :placeholder="$t('code.code')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="problemStatus" label="状态"> | ||||
|       <el-switch v-model="dataForm.problemStatus" :active-value="1" :inactive-value="0"> | ||||
|       </el-switch> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="description" label="描述"> | ||||
|       <el-input v-model="dataForm.description" placeholder="描述"></el-input> | ||||
|     </el-form-item> | ||||
|   </el-form> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicAdd from "@/mixins/basic-add"; | ||||
| export default { | ||||
|   mixins: [basicAdd], | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         submitURL: "/code/problemType", | ||||
|         infoURL: "/code/problemType", | ||||
|       }, | ||||
|       visible: false, | ||||
|       dataForm: { | ||||
|         id: null, | ||||
|         name: null, | ||||
|         code: null, | ||||
|         description: null, | ||||
|         problemStatus: 0, | ||||
|       }, | ||||
|     }; | ||||
|   }, | ||||
|   computed: { | ||||
|     dataRule() { | ||||
|       return { | ||||
|         urlOptions: { | ||||
|           submitURL: "/code/problemType", | ||||
|           infoURL: "/code/problemType" | ||||
|         }, | ||||
|         visible: false, | ||||
|         dataForm: { | ||||
|           id: null, | ||||
|           name: null, | ||||
|           code:null,	 | ||||
|           description:null, | ||||
|           problemStatus: 0, | ||||
|         }, | ||||
|         code: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: "请输入编码", | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ], | ||||
|         name: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: "请输入名称", | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ], | ||||
|       }; | ||||
|     }, | ||||
|     computed: { | ||||
|       dataRule() { | ||||
|         return { | ||||
|           // dictLabel: [ | ||||
|           //   { | ||||
|           //     required: true, | ||||
|           //     message: this.$t("validate.required"), | ||||
|           //     trigger: "blur", | ||||
|           //   }, | ||||
|           // ], | ||||
|           // dictValue: [ | ||||
|           //   { | ||||
|           //     required: true, | ||||
|           //     message: this.$t("validate.required"), | ||||
|           //     trigger: "blur", | ||||
|           //   }, | ||||
|           // ], | ||||
|           // sort: [ | ||||
|           //   { | ||||
|           //     required: true, | ||||
|           //     message: this.$t("validate.required"), | ||||
|           //     trigger: "blur", | ||||
|           //   }, | ||||
|           // ], | ||||
|         }; | ||||
|       }, | ||||
|     }, | ||||
|     methods: { | ||||
|     } | ||||
|   }; | ||||
|   </script> | ||||
|    | ||||
|   }, | ||||
|   methods: {}, | ||||
| }; | ||||
| </script> | ||||
|   | ||||
| @@ -2,8 +2,8 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-14 10:18:03 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-07-17 10:24:07 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
| @@ -11,7 +11,7 @@ | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="factoryId" :label="$t('code.factoryName')"> | ||||
|           <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|           <el-select  v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|             <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -19,26 +19,26 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> | ||||
|           <el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" | ||||
|             format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|           <el-date-picker  v-model="dataForm.inspectionTime" type="datetime" | ||||
|             :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> | ||||
|           <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|           <el-input  v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="batchNo" :label="$t('code.batchNo')"> | ||||
|           <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|           <el-input  v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> | ||||
|           <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|           <el-select  v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|             <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -54,7 +54,7 @@ | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="productId" :label="$t('code.productName')"> | ||||
|           <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|           <el-select  v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|             <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -62,7 +62,7 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="supplierId" :label="$t('code.supplierName')"> | ||||
|           <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|           <el-select  v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|             <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -70,31 +70,34 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> | ||||
|           <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> | ||||
|           <el-input  v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> | ||||
|           <el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|           <el-input  v-model="dataForm.inspectionQuantity" | ||||
|             :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="batchSize" :label="$t('code.batchSize')"> | ||||
|           <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|           <el-input  v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> | ||||
|           <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> | ||||
|           <el-input  v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="companyId" :label="$t('code.companyName')"> | ||||
|           <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|           <el-select  v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|             <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -102,15 +105,15 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="userId" :label="$t('code.username')"> | ||||
|           <el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|             <el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|           <el-select  v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|             <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> | ||||
|           <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|           <el-select  v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|             <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -120,7 +123,7 @@ | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> | ||||
|           <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|           <el-select  v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|             <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-14 10:18:33 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-07-17 10:24:12 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
| @@ -11,7 +11,7 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="factoryId" :label="$t('code.factoryName')"> | ||||
|             <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|             <el-select  v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|               <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -19,26 +19,26 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> | ||||
|             <el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" | ||||
|               format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|             <el-date-picker  v-model="dataForm.inspectionTime" type="datetime" | ||||
|               :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|             </el-date-picker> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> | ||||
|             <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|             <el-input  v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="batchNo" :label="$t('code.batchNo')"> | ||||
|             <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|             <el-input  v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> | ||||
|             <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|             <el-select  v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|               <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -54,7 +54,7 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="productId" :label="$t('code.productName')"> | ||||
|             <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|             <el-select  v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|               <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -62,7 +62,7 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="supplierId" :label="$t('code.supplierName')"> | ||||
|             <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|             <el-select  v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|               <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -70,31 +70,34 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> | ||||
|             <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> | ||||
|             <el-input  v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> | ||||
|             <el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|             <el-input  v-model="dataForm.inspectionQuantity" | ||||
|               :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="batchSize" :label="$t('code.batchSize')"> | ||||
|             <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|             <el-input  v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> | ||||
|             <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> | ||||
|             <el-input  v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="companyId" :label="$t('code.companyName')"> | ||||
|             <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|             <el-select  v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|               <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -102,15 +105,15 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="userId" :label="$t('code.username')"> | ||||
|             <el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|               <el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|             <el-select  v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|               <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> | ||||
|             <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|             <el-select  v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|               <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -120,7 +123,7 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> | ||||
|             <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|             <el-select  v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|               <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -133,27 +136,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="critical" label="CR" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.critical" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.critical" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.criticalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.criticalDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -161,27 +166,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="major" label="MA" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.major" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.major" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.majorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.majorDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -189,27 +196,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="minor" label="MI" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.minor" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minor" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.minorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.minorDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -217,27 +226,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="total" label="total" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.total" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.total" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.totalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.totalDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -475,7 +486,7 @@ export default { | ||||
|     }, | ||||
|     getDict() { | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getSamplingPlanURL, { | ||||
|         .get(this.urlOptions.getSamplingPlanURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
| @@ -486,7 +497,7 @@ export default { | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getUserURL, { | ||||
|         .get(this.urlOptions.getUserURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
| @@ -497,7 +508,7 @@ export default { | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getProductURL, { | ||||
|         .get(this.urlOptions.getProductURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
| @@ -508,7 +519,7 @@ export default { | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getDictDataList, { | ||||
|         .get(this.urlOptions.getDictDataList, { | ||||
|           params: { | ||||
|             limit: 999, | ||||
|             page: 1, | ||||
| @@ -523,7 +534,7 @@ export default { | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getSupplierURL, { | ||||
|         .get(this.urlOptions.getSupplierURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
| @@ -534,7 +545,7 @@ export default { | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getFactoryURL, { | ||||
|         .get(this.urlOptions.getFactoryURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-14 10:19:44 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-07-17 10:24:16 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
| @@ -11,7 +11,7 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="factoryId" :label="$t('code.factoryName')"> | ||||
|             <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|             <el-select  v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|               <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -19,26 +19,26 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> | ||||
|             <el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" | ||||
|               format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|             <el-date-picker  v-model="dataForm.inspectionTime" type="datetime" | ||||
|               :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|             </el-date-picker> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> | ||||
|             <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|             <el-input  v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="batchNo" :label="$t('code.batchNo')"> | ||||
|             <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|             <el-input  v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> | ||||
|             <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|             <el-select  v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|               <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -54,7 +54,7 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="productId" :label="$t('code.productName')"> | ||||
|             <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|             <el-select  v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|               <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -62,7 +62,7 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="supplierId" :label="$t('code.supplierName')"> | ||||
|             <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|             <el-select  v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|               <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -70,31 +70,34 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> | ||||
|             <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> | ||||
|             <el-input  v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> | ||||
|             <el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|             <el-input  v-model="dataForm.inspectionQuantity" | ||||
|               :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="batchSize" :label="$t('code.batchSize')"> | ||||
|             <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|             <el-input  v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> | ||||
|             <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> | ||||
|             <el-input  v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="companyId" :label="$t('code.companyName')"> | ||||
|             <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|             <el-select  v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|               <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -102,15 +105,15 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="userId" :label="$t('code.username')"> | ||||
|             <el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|               <el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|             <el-select  v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|               <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> | ||||
|             <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|             <el-select  v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|               <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -120,7 +123,7 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> | ||||
|             <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|             <el-select  v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|               <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -133,27 +136,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="critical" label="CR" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.critical" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.critical" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.criticalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.criticalDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -161,27 +166,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="major" label="MA" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.major" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.major" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.majorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.majorDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -189,27 +196,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="minor" label="MI" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.minor" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minor" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.minorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.minorDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -217,27 +226,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="total" label="total" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.total" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.total" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.totalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.totalDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -475,7 +486,7 @@ export default { | ||||
|     }, | ||||
|     getDict() { | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getSamplingPlanURL, { | ||||
|         .get(this.urlOptions.getSamplingPlanURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
| @@ -486,7 +497,7 @@ export default { | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getUserURL, { | ||||
|         .get(this.urlOptions.getUserURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
| @@ -497,7 +508,7 @@ export default { | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getProductURL, { | ||||
|         .get(this.urlOptions.getProductURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
| @@ -508,7 +519,7 @@ export default { | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getDictDataList, { | ||||
|         .get(this.urlOptions.getDictDataList, { | ||||
|           params: { | ||||
|             limit: 999, | ||||
|             page: 1, | ||||
| @@ -523,7 +534,7 @@ export default { | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getSupplierURL, { | ||||
|         .get(this.urlOptions.getSupplierURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
| @@ -534,7 +545,7 @@ export default { | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getFactoryURL, { | ||||
|         .get(this.urlOptions.getFactoryURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-14 10:20:02 | ||||
|  * @LastEditTime: 2023-07-17 10:27:00 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -9,6 +9,7 @@ | ||||
|   <el-form | ||||
|     :model="dataForm" | ||||
|     ref="dataForm" | ||||
|     :rules="dataRule"  | ||||
|     @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="100px" | ||||
|   > | ||||
| @@ -271,7 +272,7 @@ export default { | ||||
|         }, | ||||
|         { | ||||
|           value: '1', | ||||
|           label: "1客诉问题", | ||||
|           label: "客诉问题", | ||||
|         }, | ||||
|         { | ||||
|           value: '2', | ||||
| @@ -317,27 +318,48 @@ export default { | ||||
|   computed: { | ||||
|     dataRule() { | ||||
|       return { | ||||
|         // dictLabel: [ | ||||
|         //   { | ||||
|         //     required: true, | ||||
|         //     message: this.$t("validate.required"), | ||||
|         //     trigger: "blur", | ||||
|         //   }, | ||||
|         // ], | ||||
|         // dictValue: [ | ||||
|         //   { | ||||
|         //     required: true, | ||||
|         //     message: this.$t("validate.required"), | ||||
|         //     trigger: "blur", | ||||
|         //   }, | ||||
|         // ], | ||||
|         // sort: [ | ||||
|         //   { | ||||
|         //     required: true, | ||||
|         //     message: this.$t("validate.required"), | ||||
|         //     trigger: "blur", | ||||
|         //   }, | ||||
|         // ], | ||||
|         code: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: "请输入编码", | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ], | ||||
|         title: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: "请输入标题", | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ], | ||||
|         eightDisciplineType: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: "请选择8D类型", | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         defectSourceId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: "请选择缺陷来源", | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         occurrenceDate: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: "请选择发生日期", | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         product: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: "请选择产品", | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|       }; | ||||
|     }, | ||||
|   }, | ||||
|   | ||||
| @@ -2,11 +2,17 @@ | ||||
|  * @Author: zwq | ||||
|  * @Date: 2023-06-29 14:12:48 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-06-30 10:58:16 | ||||
|  * @LastEditTime: 2023-07-17 13:30:04 | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <base-table border show-summary :table-props="tableProps" :table-data="tableData" @emitFun="inputChange" /> | ||||
|   <base-table | ||||
|     border | ||||
|     show-summary | ||||
|     :table-props="tableProps" | ||||
|     :table-data="tableData" | ||||
|     @emitFun="inputChange" | ||||
|   /> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| @@ -134,7 +140,7 @@ export default { | ||||
|           if (this.tableData[data._pageIndex - 1].gradeStatus) { | ||||
|             this.$set( | ||||
|               this.tableData[data._pageIndex - 1], | ||||
|               'grade', | ||||
|               "grade", | ||||
|               this.score[this.tableData[data._pageIndex - 1].gradeStatus - 1] | ||||
|             ); | ||||
|           } | ||||
| @@ -146,24 +152,33 @@ export default { | ||||
|     formClear() {}, | ||||
|     // 表单提交 | ||||
|     dataFormSubmit() { | ||||
|         this.tableData.forEach((item) => { | ||||
|           item.startEightDisciplineId = this.id; | ||||
|       this.tableData.forEach((item) => { | ||||
|         item.startEightDisciplineId = this.id; | ||||
|       }); | ||||
|       let putData = { | ||||
|         gradeFinish: 1, | ||||
|         id: this.id, | ||||
|       }; | ||||
|       this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => { | ||||
|         if (data && data.code === 0) { | ||||
|         } else { | ||||
|           this.$message.error(data.msg); | ||||
|         } | ||||
|       }); | ||||
|       this.$http.post("/code/startEightGrade/save/list", this.tableData).then(({ data: res }) => { | ||||
|         if (res.code !== 0) { | ||||
|           return this.$message.error(res.msg); | ||||
|         } | ||||
|         this.$message({ | ||||
|           message: this.$t("prompt.success"), | ||||
|           type: "success", | ||||
|           duration: 500, | ||||
|           onClose: () => { | ||||
|             this.visible = false; | ||||
|             this.$emit("refreshDataList"); | ||||
|           }, | ||||
|         }); | ||||
|           this.$http.post("/code/startEightGrade/save/list", this.tableData) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.$message({ | ||||
|               message: this.$t("prompt.success"), | ||||
|               type: "success", | ||||
|               duration: 500, | ||||
|               onClose: () => { | ||||
|                 this.visible = false; | ||||
|                 this.$emit("refreshDataList"); | ||||
|               }, | ||||
|             }); | ||||
|           }); | ||||
|       }); | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-06-19 15:52:51 | ||||
|  * @LastEditTime: 2023-07-14 10:15:12 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-07-17 10:31:16 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
| @@ -21,14 +21,14 @@ | ||||
|       <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|         @pagination="getDataList" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|       <base-dialog width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <deliveryInspection-add ref="addOrUpdate" @successSubmit="successSubmit"> | ||||
|         </deliveryInspection-add> | ||||
|         <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|       </base-dialog> | ||||
|       <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel" | ||||
|         @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|       <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" | ||||
|         @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <deliveryInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"> | ||||
|         </deliveryInspection-search> | ||||
|         <el-row slot="footer" type="flex" justify="end"> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-14 14:06:53 | ||||
|  * @LastEditTime: 2023-07-17 09:08:38 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -9,9 +9,6 @@ | ||||
|   <el-card shadow="never" class="aui-card--fill"> | ||||
|     <div class="mod-sys__user"> | ||||
|       <SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick"> | ||||
|         <el-badge :value="3" class="item"> | ||||
|           <el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button> | ||||
|         </el-badge> | ||||
|       </SearchBar> | ||||
|       <base-table | ||||
|         :table-props="tableProps" | ||||
| @@ -35,7 +32,7 @@ | ||||
|         @pagination="getDataList" | ||||
|       /> | ||||
|       <!-- 弹窗, 条件搜索--> | ||||
|       <base-dialog | ||||
|       <!-- <base-dialog | ||||
|         :dialogTitle="searchsTitle" | ||||
|         :dialogVisible="searchsVisible" | ||||
|         @cancel="searchsCancel" | ||||
| @@ -43,7 +40,7 @@ | ||||
|         :before-close="searchsCancel" | ||||
|       > | ||||
|         <searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> | ||||
|       </base-dialog> | ||||
|       </base-dialog> --> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog | ||||
|         :dialogTitle="addOrEditTitle" | ||||
| @@ -64,7 +61,7 @@ | ||||
| import basicPage from "@/mixins/basic-page"; | ||||
| import eightDisciplineAdd from "./components/eightDiscipline-add"; | ||||
| import available from "./components/available.vue"; | ||||
| import Searchs from "./components/eightDiscipline-searchs"; | ||||
| // import Searchs from "./components/eightDiscipline-searchs"; | ||||
| import codeFilter from "@/filters/code-filter"; | ||||
| import i18n from "@/i18n"; | ||||
| const tableProps = [ | ||||
| @@ -105,7 +102,7 @@ export default { | ||||
|   mixins: [basicPage], | ||||
|   components: { | ||||
|     eightDisciplineAdd, | ||||
|     Searchs | ||||
|     // Searchs, | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
| @@ -117,10 +114,26 @@ export default { | ||||
|       tableBtn, | ||||
|       formConfig: [ | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: "primary", | ||||
|           type: "input", | ||||
|           label: i18n.t("code.name"), | ||||
|           placeholder: i18n.t("code.name"), | ||||
|           param: "name", | ||||
|         }, | ||||
|         { | ||||
|           type: "input", | ||||
|           label: i18n.t("code.code"), | ||||
|           placeholder: i18n.t("code.code"), | ||||
|           param: "code", | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: i18n.t('code.eightDisciplineStatus'), | ||||
|           selectOptions: [ | ||||
|             { id: 1, name: "可用" }, | ||||
|             { id: 0, name: "不可用" }, | ||||
|           ], | ||||
|           param: "eightDisciplineStatus", | ||||
|           defaultSelect: "", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
| @@ -128,6 +141,12 @@ export default { | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: "primary", | ||||
|         }, | ||||
|       ], | ||||
|     }; | ||||
|   }, | ||||
| @@ -142,9 +161,9 @@ export default { | ||||
|         case "search": | ||||
|           // this.listQuery.paramCode = val.paramCode; | ||||
|           this.listQuery.page = 1; | ||||
|           this.listQuery.code = null; | ||||
|           this.listQuery.name = null; | ||||
|           this.listQuery.eightDisciplineStatus = null; | ||||
|           this.listQuery.code = val.code; | ||||
|           this.listQuery.name = val.name; | ||||
|           this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus; | ||||
|           this.getDataList(); | ||||
|           break; | ||||
|         case "add": | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-14 10:15:45 | ||||
|  * @LastEditTime: 2023-07-17 10:38:22 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -66,20 +66,20 @@ const tableProps = [ | ||||
|     align: 'center' | ||||
|   }, | ||||
|   { | ||||
|     prop: 'userId', | ||||
|     prop: 'userName', | ||||
|     label: i18n.t("code.userId"), | ||||
|     align: 'center' | ||||
|   } | ||||
| ] | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: "编辑", | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: "删除", | ||||
|   }, | ||||
|   // { | ||||
|   //   type: "edit", | ||||
|   //   btnName: "编辑", | ||||
|   // }, | ||||
|   // { | ||||
|   //   type: "delete", | ||||
|   //   btnName: "删除", | ||||
|   // }, | ||||
|   { | ||||
|     type: "approve", | ||||
|     btnName: "审批", | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-06-19 15:52:51 | ||||
|  * @LastEditTime: 2023-07-14 10:16:01 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-07-17 10:30:40 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
| @@ -21,13 +21,13 @@ | ||||
|       <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|         @pagination="getDataList" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|       <base-dialog width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <productInspection-add ref="addOrUpdate" @successSubmit="successSubmit"></productInspection-add> | ||||
|         <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|       </base-dialog> | ||||
|       <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel" | ||||
|         @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|       <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" | ||||
|         @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <productInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"> | ||||
|         </productInspection-search> | ||||
|         <el-row slot="footer" type="flex" justify="end"> | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-06-12 13:22:50 | ||||
|  * @LastEditTime: 2023-07-14 10:16:14 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-07-17 10:29:25 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
| @@ -21,40 +21,41 @@ | ||||
|       <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|         @pagination="getDataList" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|       <base-dialog width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <productRegistration-add ref="addOrUpdate" @successSubmit="successSubmit"> | ||||
|         </productRegistration-add> | ||||
|         <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|       </base-dialog> | ||||
|       <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel" | ||||
|         @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|       <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" | ||||
|         @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <productRegistration-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"> | ||||
|           </productRegistration-search> | ||||
|           <el-row slot="footer" type="flex" justify="end"> | ||||
|             <el-col :span="12"> | ||||
|               <el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel"> | ||||
|                 {{ $t("close") }} | ||||
|               </el-button> | ||||
|               <el-button size="small" class="btnTextStyle" type="primary" plain @click="handleSearchReset">{{ | ||||
|                 $t("reset") | ||||
|                 }}</el-button> | ||||
|               <el-button type="primary" size="small" class="btnTextStyle" @click="handleSearchConfirm"> | ||||
|                 {{ $t("search") }} | ||||
|               </el-button> | ||||
|             </el-col> | ||||
|           </el-row> | ||||
|         </productRegistration-search> | ||||
|         <el-row slot="footer" type="flex" justify="end"> | ||||
|           <el-col :span="12"> | ||||
|             <el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel"> | ||||
|               {{ $t("close") }} | ||||
|             </el-button> | ||||
|             <el-button size="small" class="btnTextStyle" type="primary" plain @click="handleSearchReset">{{ | ||||
|               $t("reset") | ||||
|               }}</el-button> | ||||
|             <el-button type="primary" size="small" class="btnTextStyle" @click="handleSearchConfirm"> | ||||
|               {{ $t("search") }} | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|       </base-dialog> | ||||
|     </div> | ||||
|   </el-card> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicPage from "@/mixins/basic-page"; | ||||
| import basicSearch from "@/mixins/basic-search"; | ||||
| import productRegistrationSearch from "./components/productRegistrationSearch.vue"; | ||||
| import productRegistrationAdd from "./components/productRegistration-add.vue"; | ||||
| import i18n from "@/i18n"; | ||||
| import basicPage from "@/mixins/basic-page" | ||||
| import basicSearch from "@/mixins/basic-search" | ||||
| import productRegistrationSearch from "./components/productRegistrationSearch.vue" | ||||
| import productRegistrationAdd from "./components/productRegistration-add.vue" | ||||
| import i18n from "@/i18n" | ||||
| import incoming from "@/filters/incoming" | ||||
| // import i18n from "@/i18n"; | ||||
| const tableProps = [ | ||||
|   { | ||||
| @@ -76,10 +77,12 @@ const tableProps = [ | ||||
|   { | ||||
|     prop: "upload", | ||||
|     label: i18n.t('code.upload'), | ||||
|     filter: incoming('upload'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "judgmentResult", | ||||
|     label: i18n.t('code.judgmentResult'), | ||||
|     filter: incoming('judgmentResult'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "productCode", | ||||
| @@ -149,7 +152,7 @@ export default { | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         getDataListURL: "code/productRegistration/page/term", | ||||
|         getDataListURL: "/code/productRegistration/page/term", | ||||
|         deleteURL: "/code/productRegistration", | ||||
|         exportURL: "/code/productRegistration/export", | ||||
|       }, | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-06-12 13:22:50 | ||||
|  * @LastEditTime: 2023-07-14 10:16:28 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-07-17 10:29:35 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
| @@ -21,14 +21,14 @@ | ||||
|       <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|         @pagination="getDataList" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|       <base-dialog width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <shipmentRegistration-add ref="addOrUpdate" @successSubmit="successSubmit"> | ||||
|         </shipmentRegistration-add> | ||||
|         <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|       </base-dialog> | ||||
|       <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel" | ||||
|         @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|       <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" | ||||
|         @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <shipmentRegistration-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"> | ||||
|         </shipmentRegistration-search> | ||||
|         <el-row slot="footer" type="flex" justify="end"> | ||||
| @@ -55,6 +55,7 @@ import basicSearch from "@/mixins/basic-search"; | ||||
| import shipmentRegistrationSearch from "./components/shipmentRegistrationSearch.vue"; | ||||
| import shipmentRegistrationAdd from "./components/shipmentRegistration-add.vue"; | ||||
| import i18n from "@/i18n"; | ||||
| import incoming from "@/filters/incoming"; | ||||
| // import i18n from "@/i18n"; | ||||
| const tableProps = [ | ||||
|   { | ||||
| @@ -76,10 +77,12 @@ const tableProps = [ | ||||
|   { | ||||
|     prop: "upload", | ||||
|     label: i18n.t('code.upload'), | ||||
|     filter: incoming('upload'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "judgmentResult", | ||||
|     label: i18n.t('code.judgmentResult'), | ||||
|     filter: incoming('judgmentResult'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "productCode", | ||||
| @@ -149,7 +152,7 @@ export default { | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         getDataListURL: "code/shipmentRegistration/page/term", | ||||
|         getDataListURL: "/code/shipmentRegistration/page/term", | ||||
|         deleteURL: "/code/shipmentRegistration", | ||||
|         exportURL: "/code/shipmentRegistration/export", | ||||
|       }, | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-14 10:16:41 | ||||
|  * @LastEditTime: 2023-07-20 10:50:58 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -41,6 +41,7 @@ | ||||
|         @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" | ||||
|         :before-close="handleCancel" | ||||
|         :destroy-on-close="true" | ||||
|       > | ||||
|         <add-or-update | ||||
|           ref="teamSet" | ||||
| @@ -96,20 +97,20 @@ const tableProps = [ | ||||
|     align: "center", | ||||
|   }, | ||||
|   { | ||||
|     prop: "userId", | ||||
|     prop: 'userName', | ||||
|     label: i18n.t("code.userId"), | ||||
|     align: "center", | ||||
|   }, | ||||
| ]; | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: "编辑", | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: "删除", | ||||
|   }, | ||||
|   // { | ||||
|   //   type: "edit", | ||||
|   //   btnName: "编辑", | ||||
|   // }, | ||||
|   // { | ||||
|   //   type: "delete", | ||||
|   //   btnName: "删除", | ||||
|   // }, | ||||
|   { | ||||
|     type: "team", | ||||
|     btnName: "团队", | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-14 10:16:46 | ||||
|  * @LastEditTime: 2023-07-17 10:38:45 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -84,20 +84,20 @@ const tableProps = [ | ||||
|     align: 'center' | ||||
|   }, | ||||
|   { | ||||
|     prop: 'userId', | ||||
|     prop: 'userName', | ||||
|     label: i18n.t("code.userId"), | ||||
|     align: 'center' | ||||
|   } | ||||
| ] | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: "编辑", | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: "删除", | ||||
|   }, | ||||
|   // { | ||||
|   //   type: "edit", | ||||
|   //   btnName: "编辑", | ||||
|   // }, | ||||
|   // { | ||||
|   //   type: "delete", | ||||
|   //   btnName: "删除", | ||||
|   // }, | ||||
|   { | ||||
|     type: "corrective", | ||||
|     btnName: "纠正", | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-14 10:16:53 | ||||
|  * @LastEditTime: 2023-07-17 10:39:03 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -82,7 +82,7 @@ const tableProps = [ | ||||
|     align: 'center' | ||||
|   }, | ||||
|   { | ||||
|     prop: 'userId', | ||||
|     prop: 'userName', | ||||
|     label: i18n.t("code.userId"), | ||||
|     align: 'center' | ||||
|   } | ||||
| @@ -92,10 +92,10 @@ const tableBtn = [ | ||||
|   //   type: "edit", | ||||
|   //   btnName: "编辑", | ||||
|   // }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: "删除", | ||||
|   }, | ||||
|   // { | ||||
|   //   type: "delete", | ||||
|   //   btnName: "删除", | ||||
|   // }, | ||||
|   { | ||||
|     type: "analysis", | ||||
|     btnName: "分析", | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-14 10:16:58 | ||||
|  * @LastEditTime: 2023-07-17 10:38:34 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -84,20 +84,20 @@ const tableProps = [ | ||||
|     align: 'center' | ||||
|   }, | ||||
|   { | ||||
|     prop: 'userId', | ||||
|     prop: 'userName', | ||||
|     label: i18n.t("code.userId"), | ||||
|     align: 'center' | ||||
|   } | ||||
| ] | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: "编辑", | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: "删除", | ||||
|   }, | ||||
|   // { | ||||
|   //   type: "edit", | ||||
|   //   btnName: "编辑", | ||||
|   // }, | ||||
|   // { | ||||
|   //   type: "delete", | ||||
|   //   btnName: "删除", | ||||
|   // }, | ||||
|   { | ||||
|     type: "prevent", | ||||
|     btnName: "预防", | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-06-30 09:21:25 | ||||
|  * @LastEditTime: 2023-07-17 10:38:50 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -83,20 +83,20 @@ const tableProps = [ | ||||
|     align: 'center' | ||||
|   }, | ||||
|   { | ||||
|     prop: 'userId', | ||||
|     prop: 'userName', | ||||
|     label: i18n.t("code.userId"), | ||||
|     align: 'center' | ||||
|   } | ||||
| ] | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: "编辑", | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: "删除", | ||||
|   }, | ||||
|   // { | ||||
|   //   type: "edit", | ||||
|   //   btnName: "编辑", | ||||
|   // }, | ||||
|   // { | ||||
|   //   type: "delete", | ||||
|   //   btnName: "删除", | ||||
|   // }, | ||||
|   { | ||||
|     type: "analysis", | ||||
|     btnName: "分析", | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-06-30 09:37:58 | ||||
|  * @LastEditTime: 2023-07-17 10:38:29 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -84,20 +84,20 @@ const tableProps = [ | ||||
|     align: 'center' | ||||
|   }, | ||||
|   { | ||||
|     prop: 'userId', | ||||
|     prop: 'userName', | ||||
|     label: i18n.t("code.userId"), | ||||
|     align: 'center' | ||||
|   } | ||||
| ] | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: "编辑", | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: "删除", | ||||
|   }, | ||||
|   // { | ||||
|   //   type: "edit", | ||||
|   //   btnName: "编辑", | ||||
|   // }, | ||||
|   // { | ||||
|   //   type: "delete", | ||||
|   //   btnName: "删除", | ||||
|   // }, | ||||
|   { | ||||
|     type: "summary", | ||||
|     btnName: "总结", | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-14 10:17:04 | ||||
|  * @LastEditTime: 2023-07-20 10:49:29 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -27,6 +27,7 @@ | ||||
|         @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" | ||||
|         :before-close="handleCancel" | ||||
|         :destroy-on-close="true" | ||||
|         width=70% | ||||
|       > | ||||
|         <add-or-update | ||||
| @@ -89,20 +90,20 @@ const tableProps = [ | ||||
|     align: 'center' | ||||
|   }, | ||||
|   { | ||||
|     prop: 'userId', | ||||
|     prop: 'userName', | ||||
|     label: i18n.t("code.userId"), | ||||
|     align: 'center' | ||||
|   } | ||||
| ] | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: "编辑", | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: "删除", | ||||
|   }, | ||||
|   // { | ||||
|   //   type: "edit", | ||||
|   //   btnName: "编辑", | ||||
|   // }, | ||||
|   // { | ||||
|   //   type: "delete", | ||||
|   //   btnName: "删除", | ||||
|   // }, | ||||
|   { | ||||
|     type: "measure", | ||||
|     btnName: "措施", | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-06-30 09:31:04 | ||||
|  * @LastEditTime: 2023-07-17 10:38:40 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -83,20 +83,20 @@ const tableProps = [ | ||||
|     align: 'center' | ||||
|   }, | ||||
|   { | ||||
|     prop: 'userId', | ||||
|     prop: 'userName', | ||||
|     label: i18n.t("code.userId"), | ||||
|     align: 'center' | ||||
|   } | ||||
| ] | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: "编辑", | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: "删除", | ||||
|   }, | ||||
|   // { | ||||
|   //   type: "edit", | ||||
|   //   btnName: "编辑", | ||||
|   // }, | ||||
|   // { | ||||
|   //   type: "delete", | ||||
|   //   btnName: "删除", | ||||
|   // }, | ||||
|   { | ||||
|     type: "validation", | ||||
|     btnName: "验证", | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <template> | ||||
|   <el-card shadow="never" class="aui-card--fill"> | ||||
|     <div class="mod-sys__user"> | ||||
|       <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | ||||
|       <!-- <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> --> | ||||
|       <base-table | ||||
|         :table-props="tableProps" | ||||
|         :page="listQuery.page" | ||||
| @@ -30,6 +30,7 @@ | ||||
|         @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" | ||||
|         :before-close="handleCancel" | ||||
|         :destroy-on-close="true" | ||||
|       > | ||||
|         <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update> | ||||
|       </base-dialog> | ||||
| @@ -73,10 +74,10 @@ const tableProps = [ | ||||
|     align: "center", | ||||
|   }, | ||||
|   { | ||||
|     prop: "examineStatus", | ||||
|     label: i18n.t("code.examineStatus"), | ||||
|     prop: "gradeFinish", | ||||
|     label: "打分状态", | ||||
|     align: "center", | ||||
|     filter: codeFilter("examineStatus"), | ||||
|     filter: codeFilter("gradeFinish"), | ||||
|   }, | ||||
| ]; | ||||
| const tableBtn = [ | ||||
| @@ -130,9 +131,16 @@ export default { | ||||
|       } | ||||
|     }, | ||||
|     otherMethods(val) { | ||||
|       if(val.data.gradeFinish){ | ||||
|         this.$message({ | ||||
|           message: '该数据已完成打分操作,请勿重复打分!', | ||||
|           type: 'warning' | ||||
|         }); | ||||
|       }else{ | ||||
|       this.addOrEditTitle = "打分"; | ||||
|       this.addOrUpdateVisible = true; | ||||
|       this.addOrUpdateHandle(val.data.id); | ||||
|       } | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
|   | ||||
							
								
								
									
										177
									
								
								src/views/modules/customerquality/components/baseConfig-add.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,177 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-14 13:44:46 | ||||
|  * @LastEditTime: 2023-07-21 09:34:55 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <div> | ||||
|     <el-drawer close-on-press-escape :title="!dataForm.id ? $t('add') : $t('add')" :append-to-body="true" | ||||
|       @closed="handleClose" :visible.sync="innerDrawer"> | ||||
|       <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|         label-width="120px"> | ||||
|         <el-form-item prop="requirementListId" :label="$t('customerquality.requirementListName')"> | ||||
|           <el-select clearable v-model="dataForm.requirementListId" | ||||
|             :placeholder="$t('customerquality.requirementListName')"> | ||||
|             <el-option v-for="item in requirementList" :key="item.id" :label="item.requirementListName" | ||||
|               :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="knowledgeBaseId" :label="$t('customerquality.knowledgeBaseName')"> | ||||
|           <el-select clearable v-model="dataForm.knowledgeBaseId" | ||||
|             :placeholder="$t('customerquality.knowledgeBaseName')"> | ||||
|             <el-option v-for="item in knowledgeBaseList" :key="item.id" :label="item.knowledgeBaseName" | ||||
|               :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|         <el-form-item> | ||||
|           <el-button @click="innerDrawer = false">{{ $t('cancel') }} </el-button> | ||||
|           <el-button type="primary" @click="dataFormSubmit"> {{ $t('confirm') }}</el-button> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
|     </el-drawer> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import i18n from "@/i18n" | ||||
| import basicAdd from "@/mixins/basic-add" | ||||
| import debounce from "lodash/debounce" | ||||
| export default { | ||||
|   mixins: [basicAdd], | ||||
|     data() { | ||||
|       return { | ||||
|         urlOptions: { | ||||
|           submitURL: "/customerquality/qmsKnowledgeBaseRequirementList", | ||||
|           getRequirementListURL: "/customerquality/qmsCustomerQualityRequirementList/page", | ||||
|           getKnowledgeBaseURL: "/customerquality/qmsKnowledgeBase/page" | ||||
|         }, | ||||
|         dataForm: { | ||||
|           knowledgeBaseId: null, | ||||
|           requirementListId:null | ||||
|         }, | ||||
|         innerDrawer: false, | ||||
|         listQuery: { | ||||
|           limit: 10, | ||||
|           page:1, | ||||
|         }, | ||||
|         requirementList: [], | ||||
|         knowledgeBaseList:[], | ||||
|       } | ||||
|   }, | ||||
|   computed: { | ||||
|     dataRule() { | ||||
|       return { | ||||
|         knowledgeBaseId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         requirementListId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ] | ||||
|       }; | ||||
|     }, | ||||
|   }, | ||||
|   mounted () { | ||||
|     this.getDict() | ||||
|   }, | ||||
|     methods: { | ||||
|       init(obj) { | ||||
|         this.dataForm.knowledgeBaseId = obj.knowledgeBaseId || '' | ||||
|         this.dataForm.requirementListId = obj.requirementListId || '' | ||||
|         this.dataForm.id = obj.id || '' | ||||
|         this.innerDrawer = true | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs["dataForm"].resetFields() | ||||
|           if (this.dataForm.id) { | ||||
|             this.getInfo() | ||||
|           } else { | ||||
|             // this.getCode() | ||||
|           } | ||||
|         }) | ||||
|       }, | ||||
|       handleClose() { | ||||
|         this.innerDrawer = false | ||||
|         this.$refs.dataForm.resetFields() | ||||
|       }, | ||||
|       getInfo() { | ||||
|         this.$http | ||||
|           .get(`/customerquality/qmsKnowledgeBaseRequirementList/${this.dataForm.id}`) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.dataForm = { | ||||
|               ...this.dataForm, | ||||
|               ...res.data, | ||||
|             }; | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       }, | ||||
|       getDict() { | ||||
|         this.$http | ||||
|           .get(this.urlOptions.getRequirementListURL, { | ||||
|             params: this.listQuery | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code === 0) { | ||||
|               console.log(res); | ||||
|               this.requirementList = res.data.list | ||||
|             } | ||||
|           }) | ||||
|           .catch(() => { | ||||
|           }) | ||||
|         this.$http | ||||
|           .get(this.urlOptions.getKnowledgeBaseURL, { | ||||
|             params: this.listQuery | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code === 0) { | ||||
|               console.log(res); | ||||
|               this.knowledgeBaseList = res.data.list | ||||
|             } | ||||
|           }) | ||||
|           .catch(() => { | ||||
|           }) | ||||
|       }, | ||||
|       // 表单提交 | ||||
|       dataFormSubmit() { | ||||
|         this.$refs["dataForm"].validate((valid) => { | ||||
|           if (!valid) { | ||||
|             return false; | ||||
|           } | ||||
|           this.$http[!this.dataForm.id ? "post" : "put"](this.urlOptions.submitURL, this.dataForm) | ||||
|             .then(({ data: res }) => { | ||||
|               if (res.code !== 0) { | ||||
|                 return this.$message.error(res.msg); | ||||
|               } | ||||
|               this.$message({ | ||||
|                 message: this.$t("prompt.success"), | ||||
|                 type: "success", | ||||
|                 duration: 500, | ||||
|                 onClose: () => { | ||||
|                   this.innerDrawer = false; | ||||
|                   this.$emit("refreshDataList"); | ||||
|                 }, | ||||
|               }); | ||||
|             }) | ||||
|             .catch(() => { }); | ||||
|         }); | ||||
|       }, | ||||
|     }, | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|  | ||||
| </style> | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-14 13:44:46 | ||||
|  * @LastEditTime: 2023-07-14 13:59:46 | ||||
|  * @LastEditTime: 2023-07-18 14:25:05 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -9,6 +9,11 @@ | ||||
|   <div> | ||||
|     <el-drawer :title="$t('customerquality.knowledgeBase')" :visible.sync="drawer" size="50%"> | ||||
|       <div> | ||||
|         <SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick"> | ||||
|           <!-- <el-badge :value="5" class="item"> | ||||
|             <el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button> | ||||
|           </el-badge> --> | ||||
|         </SearchBar> | ||||
|         <base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1" | ||||
|           :limit="listQuery.limit" :table-data="tableData"> | ||||
|           <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn" | ||||
| @@ -17,6 +22,7 @@ | ||||
|         <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|           @pagination="getDataList" /> | ||||
|       </div> | ||||
|       <baseConfig-add ref="baseConfigAddList" v-if="baseConfigAddShow" @refreshDataList="getDataList"></baseConfig-add> | ||||
|     </el-drawer> | ||||
|   </div> | ||||
| </template> | ||||
| @@ -25,8 +31,10 @@ | ||||
| import basicPage from "@/mixins/basic-page" | ||||
| // import basicSearch from "@/mixins/basic-search" | ||||
| // import projectTypeSearch from "./components/projectTypeSearch.vue" | ||||
| import baseConfigAdd from "./baseConfig-add" | ||||
| import customerquality from '@/filters/customerquality' | ||||
| // import qmsKnowledgeBaseAdd from "./components/qmsKnowledgeBase-add.vue" | ||||
| import InnerTable from "./innerTable" | ||||
| import i18n from "@/i18n" | ||||
| // import i18n from "@/i18n"; | ||||
| const tableProps = [ | ||||
| @@ -40,8 +48,13 @@ const tableProps = [ | ||||
|   }, | ||||
|   { | ||||
|     prop: "categoryName", | ||||
|     label: i18n.t('customerquality.category'), | ||||
|   } | ||||
|     label: i18n.t('uploadFile'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "code", | ||||
|     label: i18n.t('customerquality.file'), | ||||
|     subcomponent: InnerTable | ||||
|   }, | ||||
| ]; | ||||
| const tableBtn = [ | ||||
|   { | ||||
| @@ -51,14 +64,13 @@ const tableBtn = [ | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: i18n.t('delete'), | ||||
|   }, | ||||
|   { | ||||
|     type: "configuration", | ||||
|     btnName: i18n.t('delete'), | ||||
|   } | ||||
| ]; | ||||
| export default { | ||||
|   mixins: [basicPage], | ||||
|   components: { | ||||
|     baseConfigAdd, | ||||
|   }, | ||||
|     data() { | ||||
|       return { | ||||
|         urlOptions: { | ||||
| @@ -67,7 +79,23 @@ export default { | ||||
|           exportURL: '/customerquality/qmsKnowledgeBase/export' | ||||
|         }, | ||||
|         tableBtn, | ||||
|          | ||||
|         baseConfigAddShow:[], | ||||
|         formConfig: [ | ||||
|           { | ||||
|             type: "button", | ||||
|             btnName: i18n.t('search'), | ||||
|             name: "search", | ||||
|             color: "primary", | ||||
|             // plain: true, | ||||
|           }, | ||||
|           { | ||||
|             type: "button", | ||||
|             btnName: i18n.t('add'), | ||||
|             name: "add", | ||||
|             color: "success", | ||||
|             plain: true | ||||
|           }, | ||||
|         ], | ||||
|         tableProps, | ||||
|         tableData: [], | ||||
|         drawer: false, | ||||
| @@ -78,16 +106,105 @@ export default { | ||||
|       } | ||||
|   }, | ||||
|     methods: { | ||||
|       init(id) { | ||||
|         this.listQuery.knowledgeBaseId = id || "" | ||||
|       init(obj) { | ||||
|         this.listQuery.knowledgeBaseId = obj.knowledgeBaseId || "" | ||||
|         this.listQuery.requirementListId = obj.requirementListId || "" | ||||
|  | ||||
|         // this.dataForm.dictTypeId = dictTypeId || ""; | ||||
|         this.drawer = true | ||||
|         this.$nextTick(() => { | ||||
|           this.getDataList() | ||||
|         }); | ||||
|       }, | ||||
|       handleClick(){ | ||||
|          | ||||
|       } | ||||
|       buttonClick(val) { | ||||
|         console.log(val) | ||||
|         switch (val.btnName) { | ||||
|           case "search": | ||||
|             // this.listQuery.paramCode = val.paramCode; | ||||
|             // this.listQuery.supplierName = val.supplierName ? val.supplierName : undefined | ||||
|             // this.listQuery.supplierStatus = val.supplierStatus ? val.supplierStatus : undefined | ||||
|             // this.listQuery.supplierTypeId = val.supplierTypeId ? val.supplierTypeId : undefined | ||||
|             // this.listQuery.ment = this.ment ? this.ment : undefined | ||||
|             // console.log(i18n); | ||||
|             this.listQuery.page = 1; | ||||
|             this.getDataList() | ||||
|             break; | ||||
|           // case "export": | ||||
|           //   // this.listQuery.paramCode = val.paramCode; | ||||
|           //   this.exportHandle() | ||||
|           //   break; | ||||
|           case "add": | ||||
|             // this.addOrEditTitle = '新增' | ||||
|             // this.addOrUpdateVisible = true; | ||||
|             this.baseConfigAddShow = true | ||||
|             const obj = { | ||||
|               knowledgeBaseId:   this.listQuery.knowledgeBaseId, | ||||
|               requirementListId: this.listQuery.requirementListId  | ||||
|             } | ||||
|             this.$nextTick(() => { | ||||
|               this.$refs.baseConfigAddList.init(obj) | ||||
|             }) | ||||
|             // this.addOrUpdateHandle() | ||||
|             break; | ||||
|           default: | ||||
|         } | ||||
|       }, | ||||
|       getDataList() { | ||||
|         this.dataListLoading = true; | ||||
|         this.$http | ||||
|           .get(this.urlOptions.getDataListURL, { | ||||
|             params: this.listQuery, | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             this.dataListLoading = false; | ||||
|             if (res.code !== 0) { | ||||
|               this.tableData = []; | ||||
|               this.listQuery.total = 0; | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.tableData = res.data.list; | ||||
|             this.listQuery.total = res.data.total; | ||||
|           }) | ||||
|           .catch(() => { | ||||
|             this.dataListLoading = false; | ||||
|           }) | ||||
|       }, | ||||
|       handleClick(val) { | ||||
|         if (val.type === "delete") { | ||||
|           this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", { | ||||
|             confirmButtonText: "确定", | ||||
|             cancelButtonText: "取消", | ||||
|             type: "warning", | ||||
|           }) | ||||
|             .then(() => { | ||||
|               this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => { | ||||
|                 if (data && data.code === 0) { | ||||
|                   this.$message({ | ||||
|                     message: "操作成功", | ||||
|                     type: "success", | ||||
|                     duration: 1500, | ||||
|                     onClose: () => { | ||||
|                       this.getDataList(); | ||||
|                     }, | ||||
|                   }); | ||||
|                 } else { | ||||
|                   this.$message.error(data.msg); | ||||
|                 } | ||||
|               }); | ||||
|             }) | ||||
|             .catch(() => { }); | ||||
|         } else if (val.type === 'edit') { | ||||
|           this.baseConfigAddShow = true | ||||
|           const obj = { | ||||
|             knowledgeBaseId: this.listQuery.knowledgeBaseId, | ||||
|             requirementListId: this.listQuery.requirementListId, | ||||
|             id:val.data.id | ||||
|           } | ||||
|           this.$nextTick(() => { | ||||
|             this.$refs.baseConfigAddList.init(obj) | ||||
|           }) | ||||
|         } | ||||
|       }, | ||||
|     }, | ||||
|   } | ||||
| </script> | ||||
|   | ||||
| @@ -0,0 +1,187 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-14 13:44:46 | ||||
|  * @LastEditTime: 2023-07-18 16:53:36 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <div> | ||||
|     <el-drawer close-on-press-escape :title="$t('add')" :append-to-body="true" :before-close="handleClose" | ||||
|       :visible.sync="innerDrawer"> | ||||
|       <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|         label-width="120px"> | ||||
|         <el-form-item prop="knowledgeBaseFileId" :label="$t('customerquality.knowledgeBaseFileId')"> | ||||
|           <el-select clearable v-model="dataForm.knowledgeBaseFileId" | ||||
|             :placeholder="$t('customerquality.knowledgeBaseFileId')"> | ||||
|             <el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" | ||||
|               :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="title" :label="$t('customerquality.title')"> | ||||
|           <el-input clearable v-model="dataForm.title" :placeholder="$t('customerquality.title')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="accessPath" :label="$t('customerquality.accessPath')"> | ||||
|           <el-input clearable v-model="dataForm.accessPath" :placeholder="$t('customerquality.accessPath')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item> | ||||
|           <el-button @click="innerDrawer = false">{{ $t('cancel') }} </el-button> | ||||
|           <el-button type="primary" @click="dataFormSubmit"> {{ $t('confirm') }}</el-button> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
|     </el-drawer> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import i18n from "@/i18n" | ||||
| import basicAdd from "@/mixins/basic-add" | ||||
| import debounce from "lodash/debounce" | ||||
|  | ||||
| export default { | ||||
|   mixins: [basicAdd], | ||||
|     data() { | ||||
|       return { | ||||
|         urlOptions: { | ||||
|           submitURL: "/customerquality/knowledgeBaseRequirementListData", | ||||
|           getDictDataDetail: '/mutual/qmsDataDictionaryDetail/page' | ||||
|         }, | ||||
|         dataForm: { | ||||
|           accessPath:null, | ||||
|           id: null, | ||||
|           knowledgeBaseFileId: null, | ||||
|           knowledgeBaseRequirementListId: null, | ||||
|           title: null, | ||||
|         }, | ||||
|         innerDrawer: false, | ||||
|         listQuery: { | ||||
|           limit: 10, | ||||
|           page:1, | ||||
|         }, | ||||
|         categoryList:[], | ||||
|         requirementList: [], | ||||
|         knowledgeBaseList:[], | ||||
|       } | ||||
|   }, | ||||
|   computed: { | ||||
|     dataRule() { | ||||
|       return { | ||||
|         knowledgeBaseId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         requirementListId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ] | ||||
|       }; | ||||
|     }, | ||||
|   }, | ||||
|   mounted () { | ||||
|     this.getDict() | ||||
|     this.getAccessPath() | ||||
|   }, | ||||
|     methods: { | ||||
|       init(obj) { | ||||
|         this.dataForm.knowledgeBaseRequirementListId = obj.knowledgeBaseRequirementListId || '' | ||||
|         this.dataForm.knowledgeBaseRequirementListId = obj.knowledgeBaseRequirementListId || '' | ||||
|  | ||||
|         this.dataForm.id = obj.id || '' | ||||
|         this.innerDrawer = true | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs["dataForm"].resetFields() | ||||
|           if (this.dataForm.id) { | ||||
|             this.getInfo() | ||||
|           } else { | ||||
|             // this.getCode() | ||||
|           } | ||||
|         }) | ||||
|       }, | ||||
|       getDict() { | ||||
|         this.$http | ||||
|           .get(this.urlOptions.getDictDataDetail, { | ||||
|             params: { | ||||
|               limit: 999, | ||||
|               page: 1, | ||||
|               dataDictionaryId: '1679670942635122690', | ||||
|             } | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             // this.dataListLoading = false; | ||||
|             if (res.code === 0) { | ||||
|               this.categoryList = res.data.list | ||||
|             } | ||||
|           }) | ||||
|       }, | ||||
|       getAccessPath() { | ||||
|         const now = new Date(); | ||||
|         const year = now.getFullYear(); | ||||
|         const month = ('0' + (now.getMonth() + 1)).slice(-2); | ||||
|         const day = ('0' + now.getDate()).slice(-2); | ||||
|         const hours = ('0' + now.getHours()).slice(-2); | ||||
|         const minutes = ('0' + now.getMinutes()).slice(-2); | ||||
|         const formattedTime = year + month + day + hours + minutes | ||||
|         console.log(formattedTime) | ||||
|  | ||||
|         var str = Math.random().toString(36).slice(-5) | ||||
|         // console.log(str) | ||||
|         this.dataForm.accessPath = formattedTime+ str | ||||
|       }, | ||||
|       handleClose() { | ||||
|         this.innerDrawer = true | ||||
|         this.$refs.dataForm.resetFields() | ||||
|       }, | ||||
|       getInfo() { | ||||
|         this.$http | ||||
|           .get(`/customerquality/knowledgeBaseRequirementListData/${this.dataForm.id}`) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.dataForm = { | ||||
|               ...this.dataForm, | ||||
|               ...res.data, | ||||
|             }; | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       }, | ||||
|       // 表单提交 | ||||
|       dataFormSubmit() { | ||||
|         this.$refs["dataForm"].validate((valid) => { | ||||
|           if (!valid) { | ||||
|             return false; | ||||
|           } | ||||
|           this.$http[!this.dataForm.id ? "post" : "put"](this.urlOptions.submitURL, this.dataForm) | ||||
|             .then(({ data: res }) => { | ||||
|               if (res.code !== 0) { | ||||
|                 return this.$message.error(res.msg); | ||||
|               } | ||||
|               this.$message({ | ||||
|                 message: this.$t("prompt.success"), | ||||
|                 type: "success", | ||||
|                 duration: 500, | ||||
|                 onClose: () => { | ||||
|                   this.innerDrawer = false; | ||||
|                   this.$emit("refreshDataList"); | ||||
|                 }, | ||||
|               }); | ||||
|             }) | ||||
|             .catch(() => { }); | ||||
|         }); | ||||
|       }, | ||||
|     }, | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|  | ||||
| </style> | ||||
							
								
								
									
										146
									
								
								src/views/modules/customerquality/components/change-add.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,146 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-14 13:44:46 | ||||
|  * @LastEditTime: 2023-07-19 14:48:19 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <div> | ||||
|     <el-drawer close-on-press-escape :title="!dataForm.id ? $t('add') : $t('edit')" size="40%" :append-to-body="true" | ||||
|       :closed="handleClose" :visible.sync="innerDrawer"> | ||||
|       <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|         label-width="140px"> | ||||
|         <el-form-item prop="changeHistory" label="Change History of this PPAP record"> | ||||
|           <el-input clearable v-model="dataForm.changeHistory" placeholder="Change History of this PPAP record"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="name" label="	name"> | ||||
|           <el-input clearable v-model="dataForm.name" placeholder="name"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="date" label="date"> | ||||
|           <el-date-picker v-model="dataForm.date" type="datetime" format='yyyy-MM-dd HH:mm:ss' | ||||
|             valueFormat='yyyy-MM-ddTHH:mm:ss' placeholder="date"> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|         <el-form-item> | ||||
|           <el-button @click="innerDrawer = false">{{ $t('cancel') }} </el-button> | ||||
|           <el-button type="primary" @click="dataFormSubmit"> {{ $t('confirm') }}</el-button> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
|     </el-drawer> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import i18n from "@/i18n" | ||||
| import basicAdd from "@/mixins/basic-add" | ||||
| import debounce from "lodash/debounce" | ||||
| export default { | ||||
|   mixins: [basicAdd], | ||||
|     data() { | ||||
|       return { | ||||
|         urlOptions: { | ||||
|           submitURL: "/customerquality/qmsCustomerQualityProjectListChangeRecord", | ||||
|         }, | ||||
|         dataForm: { | ||||
|           date:null, | ||||
|           name: null, | ||||
|           id: null, | ||||
|           changeHistory: null, | ||||
|         }, | ||||
|         innerDrawer: false, | ||||
|         listQuery: { | ||||
|           limit: 10, | ||||
|           page:1, | ||||
|         }, | ||||
|         requirementList: [], | ||||
|         knowledgeBaseList:[], | ||||
|       } | ||||
|   }, | ||||
|   computed: { | ||||
|     dataRule() { | ||||
|       return { | ||||
|         knowledgeBaseId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         requirementListId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ] | ||||
|       }; | ||||
|     }, | ||||
|   }, | ||||
|     methods: { | ||||
|       init(obj) { | ||||
|         // this.dataForm.knowledgeBaseId = obj.knowledgeBaseId || '' | ||||
|         // this.dataForm.requirementListId = obj.requirementListId || '' | ||||
|         this.dataForm.id = obj.id?  obj.id :null | ||||
|         this.dataForm.customerQualityProjectListId = obj.customerQualityProjectListId ? obj.customerQualityProjectListId :null | ||||
|         this.innerDrawer = true | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs["dataForm"].resetFields() | ||||
|           if (this.dataForm.id) { | ||||
|             this.getInfo() | ||||
|           } else { | ||||
|             // this.getCode() | ||||
|           } | ||||
|         }) | ||||
|       }, | ||||
|       handleClose() { | ||||
|         this.innerDrawer = true | ||||
|         this.$refs.dataForm.resetFields() | ||||
|       }, | ||||
|       getInfo() { | ||||
|         this.$http | ||||
|           .get(`/customerquality/qmsCustomerQualityProjectListChangeRecord/${this.dataForm.id}`) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.dataForm = { | ||||
|               ...this.dataForm, | ||||
|               ...res.data, | ||||
|             }; | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       }, | ||||
|       // 表单提交 | ||||
|       dataFormSubmit() { | ||||
|         this.$refs["dataForm"].validate((valid) => { | ||||
|           if (!valid) { | ||||
|             return false; | ||||
|           } | ||||
|           this.$http[!this.dataForm.id ? "post" : "put"](this.urlOptions.submitURL, this.dataForm) | ||||
|             .then(({ data: res }) => { | ||||
|               if (res.code !== 0) { | ||||
|                 return this.$message.error(res.msg); | ||||
|               } | ||||
|               this.$message({ | ||||
|                 message: this.$t("prompt.success"), | ||||
|                 type: "success", | ||||
|                 duration: 500, | ||||
|                 onClose: () => { | ||||
|                   this.innerDrawer = false; | ||||
|                   this.$emit("refreshDataList"); | ||||
|                 }, | ||||
|               }); | ||||
|             }) | ||||
|             .catch(() => { }); | ||||
|         }); | ||||
|       }, | ||||
|     }, | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|  | ||||
| </style> | ||||
| @@ -1,85 +1,423 @@ | ||||
|     <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-14 14:28:32 | ||||
|  * @LastEditTime: 2023-07-21 10:07:47 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="120px"> | ||||
|     <el-form-item prop="code" :label="$t('customerquality.code')"> | ||||
|       <el-input v-model="dataForm.code" :placeholder="$t('customerquality.code')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="knowledgeBaseName" :label="$t('customerquality.knowledgeBaseName')"> | ||||
|       <el-input v-model="dataForm.knowledgeBaseName" :placeholder="$t('customerquality.knowledgeBaseName')"></el-input> | ||||
|     </el-form-item> | ||||
|     <!-- <el-form-item prop="knowledgeBaseName" :label="$t('basic.status')"> | ||||
|       <el-select v-model="dataForm.currentStage" :placeholder="$t('basic.status')"> | ||||
|         <el-option v-for="item in currentStageList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="serialNumber" :label="$t('customerquality.serialNumber')"> | ||||
|       <el-input v-model="dataForm.serialNumber" :placeholder="$t('customerquality.serialNumber')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="description" :label="$t('customerquality.description')"> | ||||
|       <el-input v-model="dataForm.description" :placeholder="$t('customerquality.description')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="questionType" :label="$t('customerquality.questionType')"> | ||||
|       <el-select v-model="dataForm.questionType" :placeholder="$t('customerquality.questionType')"> | ||||
|         <el-option v-for="item in questionTypeList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> --> | ||||
|     <el-form-item prop="category" :label="$t('customerquality.category')"> | ||||
|       <el-select v-model="dataForm.category" :placeholder="$t('customerquality.category')"> | ||||
|         <el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" | ||||
|           :value="item.id"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
|   </el-form> | ||||
|   <el-drawer close-on-press-escape title="项目清单" :visible.sync="visible" size="50%" :before-close="handleClose()"> | ||||
|     <el-tabs @tab-click="handleClickTab" v-model="title" tab-position="left" style="margin-bottom: 30px;"> | ||||
|       <el-tab-pane label="项目概述" name="first"> | ||||
|         <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|           label-width="120px"> | ||||
|           <el-form-item prop="productId" :label="$t('basic.productName')"> | ||||
|             <el-select v-model="dataForm.productId" :placeholder="$t('basic.productName')" clearable> | ||||
|               <el-option v-for="item in productList" :key="item.id" :label="item.productName" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="knowledgeBaseId" :label="$t('customerquality.knowledgeBase')"> | ||||
|             <el-select v-model="dataForm.knowledgeBaseId" :placeholder="$t('customerquality.knowledgeBase')" clearable> | ||||
|               <el-option v-for="item in knowledgeBaseList" :key="item.id" :label="item.knowledgeBaseName" | ||||
|                 :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="customerId" :label="$t('customerquality.customerName')"> | ||||
|             <el-select v-model="dataForm.customerId" :placeholder="$t('customerquality.customerName')" clearable> | ||||
|               <el-option v-for="item in customerList" :key="item.id" :label="item.customerName" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="qualityAcceptanceDate" :label="$t('customerquality.qualityAcceptanceDate')"> | ||||
|             <el-date-picker clearable v-model="dataForm.qualityAcceptanceDate" type="datetime" | ||||
|               :placeholder="$t('customerquality.qualityAcceptanceDate')"> | ||||
|             </el-date-picker> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="deliveryRequiredDate" :label="$t('customerquality.deliveryRequiredDate')"> | ||||
|             <el-date-picker clearable v-model="dataForm.deliveryRequiredDate" type="datetime" | ||||
|               :placeholder="$t('customerquality.deliveryRequiredDate')"> | ||||
|             </el-date-picker> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="confirmDeliveryDate" :label="$t('customerquality.confirmDeliveryDate')"> | ||||
|             <el-date-picker clearable v-model="dataForm.confirmDeliveryDate" type="datetime" | ||||
|               :placeholder="$t('customerquality.confirmDeliveryDate')"> | ||||
|             </el-date-picker> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="first" :label="$t('customerquality.first')"> | ||||
|             <el-select clearable v-model="dataForm.first" :placeholder="$t('customerquality.first')"> | ||||
|               <el-option v-for="item in firstList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="previousVersionCode" :label="$t('customerquality.previousVersionCode')"> | ||||
|             <el-input clearable v-model="dataForm.previousVersionCode" | ||||
|               :placeholder="$t('customerquality.previousVersionCode')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="author" label="Author/Owner"> | ||||
|             <el-input clearable v-model="dataForm.author" placeholder="Author/Owner"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="releaser" label="releaser"> | ||||
|             <el-input clearable v-model="dataForm.releaser" placeholder="releaser"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="confidentialityAgreement" :label="$t('customerquality.first')"> | ||||
|             <el-select clearable v-model="dataForm.confidentialityAgreement" :placeholder="$t('customerquality.first')"> | ||||
|               <el-option v-for="item in confidentialityAgreementList" :key="item.id" :label="item.name" | ||||
|                 :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="nda" label="nda"> | ||||
|             <el-select clearable v-model="dataForm.nda" placeholder="nda"> | ||||
|               <el-option v-for="item in ndaList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="status" label="状态"> | ||||
|             <el-select clearable v-model="dataForm.status" placeholder="状态"> | ||||
|               <el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="ppapGrade" :label="$t('customerquality.ppapGrade')"> | ||||
|             <el-select clearable v-model="dataForm.ppapGrade" :placeholder="$t('customerquality.ppapGrade')"> | ||||
|               <el-option v-for="item in ppapGradeList" :key="item.id" :label="item.dataDictionaryDetailName" | ||||
|                 :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="version" :label="$t('customerquality.version')"> | ||||
|             <el-input clearable v-model="dataForm.version" :placeholder="$t('customerquality.version')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="amendment" :label="$t('customerquality.amendment')"> | ||||
|             <el-input clearable v-model="dataForm.amendment" :placeholder="$t('customerquality.amendment')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|           <el-form-item prop="description" :label="$t('customerquality.description')"> | ||||
|             <el-input clearable v-model="dataForm.description" :placeholder="$t('customerquality.description')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-form> | ||||
|         <span style="float: right;" class="dialog-footer"> | ||||
|           <el-button @click="visible = false">{{ $t('cancel') }}</el-button> | ||||
|           <el-button type="primary" @click="dataFormSubmit()"> {{ $t('save') }} </el-button> | ||||
|         </span> | ||||
|       </el-tab-pane> | ||||
|       <el-tab-pane :disabled="tabDisable" label="要求清单" name="second"> | ||||
|         <el-tree :default-checked-keys="defaultData" :data="treeData" show-checkbox @check="handleCheckChange" | ||||
|           node-key="id"> | ||||
|         </el-tree> | ||||
|         <span style="float: right;" class="dialog-footer"> | ||||
|           <el-button @click="visible = false">{{ $t('cancel') }}</el-button> | ||||
|           <el-button type="primary" @click="projectListRequirementListDataFormSubmit()"> {{ $t('save') | ||||
|           }} </el-button> | ||||
|         </span> | ||||
|       </el-tab-pane> | ||||
|       <el-tab-pane :disabled="tabDisable" label="封面生成" name="three"> | ||||
|         <el-divider content-position="center">修订记录</el-divider> | ||||
|         <SearchBar :formConfigs="reviseFormConfig" ref="ruleForm" @headBtnClick="buttonClick"> | ||||
|         </SearchBar> | ||||
|         <base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1" | ||||
|           :limit="listQuery.limit" :table-data="tableData"> | ||||
|           <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn" | ||||
|             @clickBtn="handleClick" /> | ||||
|         </base-table> | ||||
|         <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|           @pagination="getDataList" /> | ||||
|         <revise-add ref="reviseAddList" v-if="reviseAddShow" @refreshDataList="getDataList"> | ||||
|         </revise-add> | ||||
|         <el-divider content-position="center">变更记录</el-divider> | ||||
|         <SearchBar :formConfigs="changeFormConfig" ref="ruleForm" @headBtnClick="changeButtonClick"> | ||||
|         </SearchBar> | ||||
|         <base-table id="palletTable" :table-props="changeTableProps" :page="changeListQuery.page" ref="palletTable1" | ||||
|           :limit="changeListQuery.limit" :table-data="changeTableData"> | ||||
|           <method-btn v-if="changeTableBtn.length" slot="handleBtn" :width="100" label="操作" | ||||
|             :method-list="changeTableBtn" @clickBtn="changeHandleClick" /> | ||||
|         </base-table> | ||||
|         <pagination :limit.sync="changeListQuery.limit" :page.sync="changeListQuery.page" :total="changeListQuery.total" | ||||
|           @pagination="changeGetDataList" /> | ||||
|         <change-add ref="changeAddList" v-if="changeAddShow" @refreshDataList="changeGetDataList"> | ||||
|         </change-add> | ||||
|       </el-tab-pane> | ||||
|     </el-tabs> | ||||
|   </el-drawer> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import debounce from "lodash/debounce"; | ||||
| import basicAdd from "@/mixins/basic-add"; | ||||
| import debounce from "lodash/debounce" | ||||
| import basicAdd from "@/mixins/basic-add" | ||||
| import reviseAdd from "./revise-add" | ||||
| import changeAdd from "./change-add" | ||||
| import i18n from "@/i18n" | ||||
| import { timeFormatter } from '@/filters' | ||||
| const tableProps = [ | ||||
|   { | ||||
|     prop: "revision", | ||||
|     label: 'revision', | ||||
|   }, | ||||
|   { | ||||
|     prop: "date", | ||||
|     label: 'date', | ||||
|     filter: timeFormatter | ||||
|   }, | ||||
|   { | ||||
|     prop: "item", | ||||
|     label: 'Item/Section', | ||||
|   }, | ||||
|   { | ||||
|     prop: "essential", | ||||
|     label: 'Essential Changes', | ||||
|     // filter: timeFormatter | ||||
|   }, | ||||
| ]; | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: i18n.t('edit'), | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: i18n.t('delete'), | ||||
|   }, | ||||
|   // { | ||||
|   //   type: "configuration", | ||||
|   //   btnName: i18n.t('configuration'), | ||||
|   // } | ||||
| ]; | ||||
| const changeTableProps = [ | ||||
|   { | ||||
|     prop: "changeHistory", | ||||
|     label: '	Change History of this PPAP record', | ||||
|   }, | ||||
|   { | ||||
|     prop: "date", | ||||
|     label: 'date', | ||||
|     filter: timeFormatter | ||||
|   }, | ||||
|   { | ||||
|     prop: "name", | ||||
|     label: 'name', | ||||
|   }, | ||||
| ]; | ||||
| const changeTableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: i18n.t('edit'), | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: i18n.t('delete'), | ||||
|   }, | ||||
|   // { | ||||
|   //   type: "configuration", | ||||
|   //   btnName: i18n.t('configuration'), | ||||
|   // } | ||||
| ]; | ||||
| export default { | ||||
|   mixins: [basicAdd], | ||||
|   components: { | ||||
|     reviseAdd, | ||||
|     changeAdd | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         getReviseDataListURL: '/customerquality/qmsCustomerQualityProjectListRevisionRecord/page', | ||||
|         getChangeDataListURL: '/customerquality/qmsCustomerQualityProjectListChangeRecord/page', | ||||
|         changeDeleteURL: '/customerquality/qmsCustomerQualityProjectListChangeRecord', | ||||
|         reviseDeleteURL: '/customerquality/qmsCustomerQualityProjectListRevisionRecord', | ||||
|         submitURL: "/customerquality/qmsCustomerQualityProjectList", | ||||
|         infoURL: "/customerquality/qmsCustomerQualityProjectList//{id}", | ||||
|         getDictDataDetail: '/mutual/qmsCustomerQualityProjectList/page' | ||||
|         getDictDataDetail: '/mutual/qmsDataDictionaryDetail/page', | ||||
|         getProductURL: '/basic/qmsProduct/page', | ||||
|         getKnowledgeBaseURL: '/customerquality/qmsKnowledgeBase/page', | ||||
|         getCustomerURL: '/basic/qmsCustomer/page', | ||||
|         getRequirementListURL: '/customerquality/qmsCustomerQualityRequirementList/page', | ||||
|         getProjectRequirementListURL: '/customerquality/qmsCustomerQualityProjectListRequirementList/page', | ||||
|         projectListRequirementListSubmitURL: '/customerquality/qmsCustomerQualityProjectListRequirementList/savelist', | ||||
|         projectListRequirementListEditURL: '/customerquality/qmsCustomerQualityProjectListRequirementList/updatelist', | ||||
|       }, | ||||
|       tableBtn, | ||||
|       reviseAddShow: false, | ||||
|       changeAddShow: false, | ||||
|       ndaList: [ | ||||
|         { | ||||
|           id: '0', | ||||
|           name: '错号', | ||||
|         }, | ||||
|         { | ||||
|           id: '1', | ||||
|           name: '对号', | ||||
|         } | ||||
|       ], | ||||
|       statusList: [ | ||||
|         { | ||||
|           id: '0', | ||||
|           name: '待审核', | ||||
|         }, | ||||
|         { | ||||
|           id: '1', | ||||
|           name: '已完成', | ||||
|         }, | ||||
|         { | ||||
|           id: '2', | ||||
|           name: '交付退回', | ||||
|         }, | ||||
|         { | ||||
|           id: '3', | ||||
|           name: '审核拒绝', | ||||
|         } | ||||
|       ], | ||||
|       reviseFormConfig: [ | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('search'), | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('add'), | ||||
|           name: "add", | ||||
|           color: "success", | ||||
|           plain: true | ||||
|         } | ||||
|       ], | ||||
|       changeFormConfig: [ | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('search'), | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('add'), | ||||
|           name: "add", | ||||
|           color: "success", | ||||
|           plain: true | ||||
|         } | ||||
|       ], | ||||
|       tableProps, | ||||
|       tableData: [], | ||||
|       changeTableProps, | ||||
|       changeTableData: [], | ||||
|       changeTableBtn, | ||||
|       listQuery: { | ||||
|         page: 1, | ||||
|         limit:10 | ||||
|       }, | ||||
|       checkArr:[], | ||||
|       customerQualityProjectListId:null, | ||||
|       productList: [], | ||||
|       title:'first', | ||||
|       customerList: [], | ||||
|       ppapGradeList:[], | ||||
|       knowledgeBaseList: [], | ||||
|       firstList: [ | ||||
|         { | ||||
|           id: '0', | ||||
|           name:'否', | ||||
|         }, | ||||
|         { | ||||
|           id: '1', | ||||
|           name: '是', | ||||
|         } | ||||
|       ], | ||||
|       defaultData:[], | ||||
|       confidentialityAgreementList: [ | ||||
|         { | ||||
|           id: '0', | ||||
|           name: '否', | ||||
|         }, | ||||
|         { | ||||
|           id: '1', | ||||
|           name: '是', | ||||
|         } | ||||
|       ], | ||||
|       categoryList:[], | ||||
|       typeList:[], | ||||
|       visible: false, | ||||
|       listQuery: { | ||||
|         limit: 999, | ||||
|         page:1 | ||||
|         page: 1, | ||||
|         total:0, | ||||
|       }, | ||||
|       changeListQuery: { | ||||
|         limit: 999, | ||||
|         page: 1, | ||||
|         total: 0, | ||||
|       }, | ||||
|       treeData: [], | ||||
|       tabDisable:true, | ||||
|       dataForm: { | ||||
|         id: "", | ||||
|         code: null, | ||||
|         category: null, | ||||
|         knowledgeBaseName:null | ||||
|         nda: null, | ||||
|         amendment: null, | ||||
|         status:null, | ||||
|         confidentialityAgreement:null, | ||||
|         confirmDeliveryDate: null, | ||||
|         customerId: null, | ||||
|         deliveryRequiredDate: null, | ||||
|         description: null, | ||||
|         releaser: null, | ||||
|         author:null, | ||||
|         first: null, | ||||
|         id: undefined, | ||||
|         knowledgeBaseId: null, | ||||
|         ppapGrade: null, | ||||
|         previousVersionCode: null, | ||||
|         productId: null, | ||||
|         qualityAcceptanceDate: null, | ||||
|         version: null, | ||||
|       }, | ||||
|     }; | ||||
|   }, | ||||
|   computed: { | ||||
|     dataRule() { | ||||
|       return { | ||||
|         code: [ | ||||
|         productId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "blur", | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         knowledgeBaseName: [ | ||||
|         knowledgeBaseId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         customerId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         qualityAcceptanceDate: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         deliveryRequiredDate: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         ppapGrade: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
| @@ -91,22 +429,208 @@ export default { | ||||
|   }, | ||||
|   mounted () { | ||||
|     this.getDict() | ||||
|     this.getSecondData() | ||||
|   }, | ||||
|   methods: { | ||||
|     changeGetDataList() { | ||||
|       this.listQuery.customerQualityProjectListId = this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId | ||||
|       this.dataListLoading = true; | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getChangeDataListURL, { | ||||
|           params: this.listQuery, | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           this.dataListLoading = false; | ||||
|           if (res.code !== 0) { | ||||
|             this.changeTableData = []; | ||||
|             this.listQuery.total = 0; | ||||
|             return this.$message.error(res.msg); | ||||
|           } | ||||
|           this.changeTableData = res.data.list; | ||||
|           this.changeListQuery.total = res.data.total; | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.dataListLoading = false; | ||||
|         }) | ||||
|     }, | ||||
|      changeHandleClick(val) { | ||||
|       if (val.type === "delete") { | ||||
|         this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", { | ||||
|           confirmButtonText: "确定", | ||||
|           cancelButtonText: "取消", | ||||
|           type: "warning", | ||||
|         }) | ||||
|           .then(() => { | ||||
|             this.$http.delete(this.urlOptions.reviseDeleteURL, { data: [val.data.id] }).then(({ data }) => { | ||||
|               if (data && data.code === 0) { | ||||
|                 this.$message({ | ||||
|                   message: "操作成功", | ||||
|                   type: "success", | ||||
|                   duration: 1500, | ||||
|                   onClose: () => { | ||||
|                     this.getDataList() | ||||
|                   }, | ||||
|                 }); | ||||
|               } else { | ||||
|                 this.$message.error(data.msg); | ||||
|               } | ||||
|             }); | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       } else if (val.type === 'edit') { | ||||
|         let obj = { | ||||
|           customerQualityProjectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId, | ||||
|           id: val.data.id | ||||
|         } | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs.reviseAddList.init(obj) | ||||
|         }) | ||||
|       } | ||||
|     }, | ||||
|      changeButtonClick(val) { | ||||
|       console.log(this.dataForm.id) | ||||
|       console.log(val); | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           this.listQuery.page = 1 | ||||
|           this.getDataList() | ||||
|           break; | ||||
|         case "add": | ||||
|           this.changeAddShow = true | ||||
|           let obj = { | ||||
|             customerQualityProjectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId | ||||
|           } | ||||
|           this.$nextTick(() => { | ||||
|             this.$refs.changeAddList.init(obj) | ||||
|           }) | ||||
|           break; | ||||
|         default: | ||||
|       } | ||||
|     }, | ||||
|     getDataList() { | ||||
|       this.dataListLoading = true | ||||
|       this.listQuery.customerQualityProjectListId = this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getReviseDataListURL, { | ||||
|           params: this.listQuery, | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           this.dataListLoading = false; | ||||
|           if (res.code !== 0) { | ||||
|             this.tableData = []; | ||||
|             this.listQuery.total = 0; | ||||
|             return this.$message.error(res.msg); | ||||
|           } | ||||
|           this.tableData = res.data.list; | ||||
|           this.listQuery.total = res.data.total; | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.dataListLoading = false; | ||||
|         }) | ||||
|     }, | ||||
|     handleClick(val) { | ||||
|       if (val.type === "delete") { | ||||
|         this.$confirm(`确定对[revision为${val.data.revision}]进行删除操作?`, "提示", { | ||||
|           confirmButtonText: "确定", | ||||
|           cancelButtonText: "取消", | ||||
|           type: "warning", | ||||
|         }) | ||||
|           .then(() => { | ||||
|             this.$http.delete(this.urlOptions.changeDeleteURL, { data: [val.data.id] }).then(({ data }) => { | ||||
|               if (data && data.code === 0) { | ||||
|                 this.$message({ | ||||
|                   message: "操作成功", | ||||
|                   type: "success", | ||||
|                   duration: 1500, | ||||
|                   onClose: () => { | ||||
|                     this.getDataList() | ||||
|                   }, | ||||
|                 }); | ||||
|               } else { | ||||
|                 this.$message.error(data.msg); | ||||
|               } | ||||
|             }); | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       } else if (val.type === 'edit') { | ||||
|         let obj = { | ||||
|           customerQualityProjectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId, | ||||
|           id:val.data.id | ||||
|         } | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs.reviseAddList.init(obj) | ||||
|         }) | ||||
|       } | ||||
|     }, | ||||
|     buttonClick(val) { | ||||
|       console.log(this.dataForm.id) | ||||
|       console.log(val); | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           // this.listQuery.paramCode = val.paramCode; | ||||
|           // console.log(i18n); | ||||
|           this.listQuery.page = 1 | ||||
|           this.getDataList() | ||||
|           break; | ||||
|         case "add": | ||||
|           this.reviseAddShow = true | ||||
|           let obj = { | ||||
|             customerQualityProjectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId | ||||
|           } | ||||
|           this.$nextTick(() => { | ||||
|             this.$refs.reviseAddList.init(obj) | ||||
|           }) | ||||
|           break; | ||||
|         default: | ||||
|       } | ||||
|     }, | ||||
|     handleClickTab(val) { | ||||
|       console.log(val); | ||||
|       if (val.name === 'second') { | ||||
|         this.$http | ||||
|           .get(this.urlOptions.getProjectRequirementListURL, { | ||||
|             params: { | ||||
|               limit: 999, | ||||
|               page: 1, | ||||
|               projectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId | ||||
|             } | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             // this.dataListLoading = false; | ||||
|             if (res.code === 0) { | ||||
|               let arr = [] | ||||
|               console.log(res.data.list) | ||||
|               res.data.list.forEach((item) => { | ||||
|                 arr.push(item.customerQualityRequirementListId) | ||||
|               }) | ||||
|               this.defaultData = arr  | ||||
|             } | ||||
|           }) | ||||
|       } else if (val.name === 'third') { | ||||
|         this.changeGetDataList() | ||||
|         this.getDataList() | ||||
|       } | ||||
|     }, | ||||
|     init(id) { | ||||
|       this.dataForm.id = id || "" | ||||
|       // this.dataForm.dictTypeId = dictTypeId || ""; | ||||
|       this.visible = true; | ||||
|       this.$nextTick(() => { | ||||
|         // console.log(this.$refs.dataForm) | ||||
|         this.$refs["dataForm"].resetFields() | ||||
|         if (this.dataForm.id) { | ||||
|           this.getInfo(); | ||||
|           this.getInfo() | ||||
|         } else { | ||||
|           // this.getCode() | ||||
|         } | ||||
|       }); | ||||
|     }, | ||||
|     // 获取信息 | ||||
|     handleClose() { | ||||
|       this.$emit("refreshDataList") | ||||
|       // console.log(this.$refs.dataForm) | ||||
|       // this.$refs.dataForm.resetFields() | ||||
|     }, | ||||
|     getInfo() { | ||||
|       this.$http | ||||
|         .get(`/customerquality/qmsCustomerQualityProjectList/${this.dataForm.id}`) | ||||
| @@ -117,9 +641,32 @@ export default { | ||||
|           this.dataForm = { | ||||
|             ...this.dataForm, | ||||
|             ...res.data, | ||||
|           }; | ||||
|           } | ||||
|           this.customerQualityProjectListId = res.data.id | ||||
|           this.tabDisable = false | ||||
|         }) | ||||
|         .catch(() => {}) | ||||
|     }, | ||||
|     getSecondData() { | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getRequirementListURL, { | ||||
|           params: { | ||||
|             limit: 999, | ||||
|             page: 1, | ||||
|           } | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           // this.dataListLoading = false; | ||||
|           if (res.code === 0) { | ||||
|             this.treeData = res.data.list.map((item) => { | ||||
|               return { | ||||
|                 label: item.requirementListName, | ||||
|                 id:item.id | ||||
|               } | ||||
|             }) | ||||
|             console.log(this.treeData); | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => {}); | ||||
|     }, | ||||
|     getDict() { | ||||
|       this.$http | ||||
| @@ -127,15 +674,129 @@ export default { | ||||
|           params: { | ||||
|             limit: 999, | ||||
|             page: 1, | ||||
|             dataDictionaryId:'1679670942635122690', | ||||
|             dataDictionaryId:'1681202200846499841', | ||||
|           } | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           this.dataListLoading = false; | ||||
|           // this.dataListLoading = false; | ||||
|           if (res.code === 0) { | ||||
|             this.categoryList = res.data.list  | ||||
|             this.ppapGradeList = res.data.list  | ||||
|           } | ||||
|         }) | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getProductURL, { | ||||
|           params: { | ||||
|             limit: 999, | ||||
|             page: 1, | ||||
|           } | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           // this.dataListLoading = false; | ||||
|           if (res.code === 0) { | ||||
|             this.productList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getKnowledgeBaseURL, { | ||||
|           params: { | ||||
|             limit: 999, | ||||
|             page: 1, | ||||
|           } | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           // this.dataListLoading = false; | ||||
|           if (res.code === 0) { | ||||
|             this.knowledgeBaseList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getCustomerURL, { | ||||
|           params: { | ||||
|             limit: 999, | ||||
|             page: 1, | ||||
|           } | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           // this.dataListLoading = false; | ||||
|           if (res.code === 0) { | ||||
|             this.customerList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|     }, | ||||
|     handleCheckChange(data, v) { | ||||
|       this.checkArr = v.checkedKeys.map((item) => { | ||||
|         return { | ||||
|           customerQualityProjectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId, | ||||
|           customerQualityRequirementListId:item | ||||
|         } | ||||
|       }) | ||||
|       console.log(this.checkArr) | ||||
|     }, | ||||
|     // handleNodeClick(data) { | ||||
|     //   console.log(data) | ||||
|     // }, | ||||
|     projectListRequirementListDataFormSubmit() { | ||||
|       if (this.defaultData.length !== 0) { | ||||
|  | ||||
|         let customerQualityProjectListId = this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId | ||||
|           let list= this.checkArr | ||||
|         this.$http.put('/customerquality/qmsCustomerQualityProjectListRequirementList/updatelist?id='+customerQualityProjectListId,list ) | ||||
|             .then(({ data: res }) => { | ||||
|               if (res.code !== 0) { | ||||
|                 return this.$message.error(res.msg); | ||||
|               } | ||||
|               this.$message({ | ||||
|                 message: this.$t("prompt.success"), | ||||
|                 type: "success", | ||||
|                 duration: 500, | ||||
|                 onClose: () => { | ||||
|                   // this.title = 'second' | ||||
|                   // this.tabDisable = false | ||||
|                   // this.customerQualityProjectListId = res.data | ||||
|                 }, | ||||
|               }) | ||||
|             }) | ||||
|         } else { | ||||
|           this.$http.post(this.urlOptions.projectListRequirementListSubmitURL, this.checkArr) | ||||
|             .then(({ data: res }) => { | ||||
|               if (res.code !== 0) { | ||||
|                 return this.$message.error(res.msg); | ||||
|               } | ||||
|               this.$message({ | ||||
|                 message: this.$t("prompt.success"), | ||||
|                 type: "success", | ||||
|                 duration: 500, | ||||
|                 onClose: () => { | ||||
|                   // this.title = 'second' | ||||
|                   // this.tabDisable = false | ||||
|                   // this.customerQualityProjectListId = res.data | ||||
|                 }, | ||||
|               }) | ||||
|             }) | ||||
|         } | ||||
|     }, | ||||
|     dataFormSubmit() { | ||||
|       this.$refs["dataForm"].validate((valid) => { | ||||
|         if (!valid) { | ||||
|           return false; | ||||
|         } | ||||
|         this.$http[!this.dataForm.id ? "post" : "put"](this.urlOptions.submitURL, this.dataForm) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.$message({ | ||||
|               message: this.$t("prompt.success"), | ||||
|               type: "success", | ||||
|               duration: 500, | ||||
|               onClose: () => { | ||||
|                 this.tabDisable = false | ||||
|                 this.customerQualityProjectListId = res.data | ||||
|               }, | ||||
|             }); | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       }); | ||||
|     }, | ||||
|     // 表单提交 | ||||
|     dataFormSubmitHandle: debounce( | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
|   <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-14 10:06:36 | ||||
|  * @LastEditTime: 2023-07-18 16:54:14 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -9,10 +9,11 @@ | ||||
|   <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="120px"> | ||||
|     <el-form-item prop="code" :label="$t('customerquality.code')"> | ||||
|       <el-input v-model="dataForm.code" :placeholder="$t('customerquality.code')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.code" :placeholder="$t('customerquality.code')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="requirementListName" :label="$t('customerquality.requirementListName')"> | ||||
|       <el-input v-model="dataForm.requirementListName" :placeholder="$t('customerquality.requirementListName')"> | ||||
|       <el-input clearable v-model="dataForm.requirementListName" | ||||
|         :placeholder="$t('customerquality.requirementListName')"> | ||||
|       </el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="uploadFiles" :label="$t('customerquality.uploadFiles')"> | ||||
| @@ -40,7 +41,7 @@ | ||||
|       </el-select> | ||||
|     </el-form-item> --> | ||||
|     <el-form-item prop="category" :label="$t('customerquality.category')"> | ||||
|       <el-select v-model="dataForm.category" :placeholder="$t('customerquality.category')"> | ||||
|       <el-select clearable v-model="dataForm.category" :placeholder="$t('customerquality.category')"> | ||||
|         <el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" :value="item.id"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|   | ||||
							
								
								
									
										189
									
								
								src/views/modules/customerquality/components/innerTable.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,189 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-04-18 09:19:02 | ||||
|  * @LastEditTime: 2023-07-18 09:52:45 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <div> | ||||
|     <el-popover placement="right" width="400" trigger="click"> | ||||
|       <SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick"> | ||||
|         <!-- <el-badge :value="5" class="item"> | ||||
|             <el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button> | ||||
|           </el-badge> --> | ||||
|       </SearchBar> | ||||
|       <base-table id="palletTable" :table-props="tableProps" ref="palletTable1" :table-data="tableData"> | ||||
|         <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn" | ||||
|           @clickBtn="handleClick" /> | ||||
|       </base-table> | ||||
|       <i slot="reference" class="el-icon-plus" @click="showInnerTable(injectData.id)" /> | ||||
|     </el-popover> | ||||
|     <baseConfigFile-add ref="baseConfigFileAddList" v-if="baseConfigFileAddShow" @refreshDataList="getDataList"> | ||||
|     </baseConfigFile-add> | ||||
|   </div> | ||||
| </template> | ||||
| <script> | ||||
| import i18n from "@/i18n" | ||||
| import { timeFormatter } from '@/filters' | ||||
| import baseConfigFileAdd from "./baseConfigFile-add" | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: i18n.t('edit'), | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: i18n.t('delete'), | ||||
|   }, | ||||
|   { | ||||
|     type: "configuration", | ||||
|     btnName: i18n.t('configuration'), | ||||
|   } | ||||
| ]; | ||||
| const tableProps = [ | ||||
|   { | ||||
|     prop: "title", | ||||
|     label: i18n.t('customerquality.title'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "accessPath", | ||||
|     label: i18n.t('customerquality.accessPath'), | ||||
|   } | ||||
| ]; | ||||
| export default { | ||||
|   name: 'InnerTable', | ||||
|   props: { | ||||
|     injectData: { | ||||
|       type: Object, | ||||
|       default: () => ({}) | ||||
|     }, | ||||
|     itemProp: { | ||||
|       type: String | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       tableProps, | ||||
|       list: this.injectData, | ||||
|       urlOptions: { | ||||
|         getDataListURL: '/customerquality/knowledgeBaseRequirementListData/page', | ||||
|         deleteURL: '/customerquality/knowledgeBaseRequirementListData/page' | ||||
|       }, | ||||
|       tableBtn, | ||||
|       baseConfigFileAddShow:false, | ||||
|       tableData: [], | ||||
|       listQuery: { | ||||
|         limit: 10, | ||||
|         page:1, | ||||
|       }, | ||||
|       formConfig: [ | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('search'), | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('add'), | ||||
|           name: "add", | ||||
|           color: "success", | ||||
|           plain: true | ||||
|         }, | ||||
|       ], | ||||
|     } | ||||
|   }, | ||||
|   components: { | ||||
|     baseConfigFileAdd, | ||||
|   }, | ||||
|   methods: { | ||||
|     buttonClick(val) { | ||||
|       console.log(val) | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           this.listQuery.page = 1; | ||||
|           this.getDataList() | ||||
|           break; | ||||
|         // case "export": | ||||
|         //   // this.listQuery.paramCode = val.paramCode; | ||||
|         //   this.exportHandle() | ||||
|         //   break; | ||||
|         case "add": | ||||
|           // this.addOrEditTitle = '新增' | ||||
|           // this.addOrUpdateVisible = true; | ||||
|           this.baseConfigFileAddShow = true | ||||
|           this.$nextTick(() => { | ||||
|             const obj = { | ||||
|               knowledgeBaseRequirementListId :this.injectData.id | ||||
|           } | ||||
|             this.$refs.baseConfigFileAddList.init(obj) | ||||
|           }) | ||||
|           // this.addOrUpdateHandle() | ||||
|           break; | ||||
|         default: | ||||
|       } | ||||
|     }, | ||||
|     handleClick(val) { | ||||
|       if (val.type === "delete") { | ||||
|         this.$confirm(`确定对[标题为${val.data.title}]进行删除操作?`, "提示", { | ||||
|           confirmButtonText: "确定", | ||||
|           cancelButtonText: "取消", | ||||
|           type: "warning", | ||||
|         }) | ||||
|           .then(() => { | ||||
|             this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => { | ||||
|               if (data && data.code === 0) { | ||||
|                 this.$message({ | ||||
|                   message: "操作成功", | ||||
|                   type: "success", | ||||
|                   duration: 1500, | ||||
|                   onClose: () => { | ||||
|                     this.getDataList(); | ||||
|                   }, | ||||
|                 }); | ||||
|               } else { | ||||
|                 this.$message.error(data.msg); | ||||
|               } | ||||
|             }); | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       } else if (val.type === 'edit') { | ||||
|         this.baseConfigFileAddShow = true | ||||
|         this.$nextTick(() => { | ||||
|           const obj = { | ||||
|             knowledgeBaseRequirementListId: this.injectData.id, | ||||
|             id:val.data.id | ||||
|           } | ||||
|           this.$refs.baseConfigFileAddList.init(obj) | ||||
|         }) | ||||
|       } | ||||
|     }, | ||||
|     showInnerTable() { | ||||
|       this.listQuery.knowledgeBaseRequirementListId = this.injectData.id | ||||
|       this.getDataList() | ||||
|     }, | ||||
|     getDataList() { | ||||
|       this.dataListLoading = true; | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getDataListURL, { | ||||
|           params: this.listQuery, | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           this.dataListLoading = false; | ||||
|           if (res.code !== 0) { | ||||
|             this.tableData = []; | ||||
|             this.listQuery.total = 0; | ||||
|             return this.$message.error(res.msg); | ||||
|           } | ||||
|           this.tableData = res.data.list; | ||||
|           this.listQuery.total = res.data.total; | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.dataListLoading = false; | ||||
|         }) | ||||
|     }, | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @@ -1,7 +1,7 @@ | ||||
|   <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-14 10:28:15 | ||||
|  * @LastEditTime: 2023-07-18 16:54:28 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -9,10 +9,12 @@ | ||||
|   <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="120px"> | ||||
|     <el-form-item prop="title" :label="$t('customerquality.title')"> | ||||
|       <el-input :disabled="isDetail" v-model="dataForm.title" :placeholder="$t('customerquality.title')"></el-input> | ||||
|       <el-input clearable :disabled="isDetail" v-model="dataForm.title" :placeholder="$t('customerquality.title')"> | ||||
|       </el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="accessPath" :label="$t('customerquality.accessPath')"> | ||||
|       <el-input :disabled="isDetail" v-model="dataForm.accessPath" :placeholder="$t('customerquality.accessPath')"> | ||||
|       <el-input clearable :disabled="isDetail" v-model="dataForm.accessPath" | ||||
|         :placeholder="$t('customerquality.accessPath')"> | ||||
|       </el-input> | ||||
|     </el-form-item> | ||||
|     <!-- <el-form-item prop="knowledgeBaseName" :label="$t('basic.status')"> | ||||
| @@ -34,7 +36,7 @@ | ||||
|       </el-select> | ||||
|     </el-form-item> --> | ||||
|     <el-form-item prop="knowledgeBaseFileId" :label="$t('customerquality.knowledgeBaseFileId')"> | ||||
|       <el-select :disabled="isDetail" v-model="dataForm.knowledgeBaseFileId" | ||||
|       <el-select clearable :disabled="isDetail" v-model="dataForm.knowledgeBaseFileId" | ||||
|         :placeholder="$t('customerquality.knowledgeBaseFileId')"> | ||||
|         <el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" :value="item.id"> | ||||
|         </el-option> | ||||
| @@ -45,7 +47,7 @@ | ||||
|  | ||||
| <script> | ||||
| import debounce from "lodash/debounce"; | ||||
| import basicAdd from "@/mixins/basic-add"; | ||||
| import basicAdd from "@/mixins/basic-add" | ||||
| export default { | ||||
|   mixins: [basicAdd], | ||||
|   data() { | ||||
| @@ -119,7 +121,7 @@ export default { | ||||
|         } else { | ||||
|           // this.getCode() | ||||
|         } | ||||
|       }); | ||||
|       }) | ||||
|     }, | ||||
|     // getCode() { | ||||
|     //   this.$http | ||||
| @@ -143,7 +145,7 @@ export default { | ||||
|           } | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           this.dataListLoading = false; | ||||
|           // this.dataListLoading = false; | ||||
|           if (res.code === 0) { | ||||
|             this.categoryList = res.data.list | ||||
|           } | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
|   <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-14 10:06:39 | ||||
|  * @LastEditTime: 2023-07-19 15:28:46 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -9,33 +9,15 @@ | ||||
|   <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="120px"> | ||||
|     <el-form-item prop="code" :label="$t('customerquality.code')"> | ||||
|       <el-input v-model="dataForm.code" :placeholder="$t('customerquality.code')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.code" :placeholder="$t('customerquality.code')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="knowledgeBaseName" :label="$t('customerquality.knowledgeBaseName')"> | ||||
|       <el-input v-model="dataForm.knowledgeBaseName" :placeholder="$t('customerquality.knowledgeBaseName')"></el-input> | ||||
|       <el-input clearable v-model="dataForm.knowledgeBaseName" :placeholder="$t('customerquality.knowledgeBaseName')"> | ||||
|       </el-input> | ||||
|     </el-form-item> | ||||
|     <!-- <el-form-item prop="knowledgeBaseName" :label="$t('basic.status')"> | ||||
|       <el-select v-model="dataForm.currentStage" :placeholder="$t('basic.status')"> | ||||
|         <el-option v-for="item in currentStageList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="serialNumber" :label="$t('customerquality.serialNumber')"> | ||||
|       <el-input v-model="dataForm.serialNumber" :placeholder="$t('customerquality.serialNumber')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="description" :label="$t('customerquality.description')"> | ||||
|       <el-input v-model="dataForm.description" :placeholder="$t('customerquality.description')"></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="questionType" :label="$t('customerquality.questionType')"> | ||||
|       <el-select v-model="dataForm.questionType" :placeholder="$t('customerquality.questionType')"> | ||||
|         <el-option v-for="item in questionTypeList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> --> | ||||
|     <el-form-item prop="category" :label="$t('customerquality.category')"> | ||||
|       <el-select v-model="dataForm.category" :placeholder="$t('customerquality.category')"> | ||||
|         <el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" | ||||
|           :value="item.id"> | ||||
|       <el-select clearable v-model="dataForm.category" :placeholder="$t('customerquality.category')"> | ||||
|         <el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" :value="item.id"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
| @@ -112,7 +94,7 @@ export default { | ||||
|         .get(`/customerquality/qmsKnowledgeBase/${this.dataForm.id}`) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code !== 0) { | ||||
|             return this.$message.error(res.msg); | ||||
|             return this.$message.error(res.msg) | ||||
|           } | ||||
|           this.dataForm = { | ||||
|             ...this.dataForm, | ||||
| @@ -131,7 +113,7 @@ export default { | ||||
|           } | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           this.dataListLoading = false; | ||||
|           // this.dataListLoading = false; | ||||
|           if (res.code === 0) { | ||||
|             this.categoryList = res.data.list  | ||||
|           } | ||||
|   | ||||
| @@ -1,336 +0,0 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-13 14:49:30 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="120px"> | ||||
|     <el-form-item prop="registrationDate" :label="$t('researchquality.registrationDate')"> | ||||
|       <el-date-picker v-model="dataForm.registrationDate" type="datetime" | ||||
|         :placeholder="$t('researchquality.registrationDate')"> | ||||
|       </el-date-picker> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="changeSource" :label="$t('researchquality.changeSource')"> | ||||
|       <el-select v-model="dataForm.changeSource" :placeholder="$t('researchquality.changeSource')"> | ||||
|         <el-option v-for="item in changeSourceList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="sourceRemark" :label="$t('researchquality.sourceRemark')"> | ||||
|       <el-input v-model="dataForm.sourceRemark" :placeholder="$t('researchquality.sourceRemark')"> | ||||
|       </el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="owner" :label="$t('researchquality.owner')"> | ||||
|       <el-select v-model="dataForm.owner" :placeholder="$t('researchquality.owner')"> | ||||
|         <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="title" :label="$t('researchquality.title')"> | ||||
|       <el-input v-model="dataForm.title" :placeholder="$t('researchquality.title')"> | ||||
|       </el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="processId" :label="$t('researchquality.processName')"> | ||||
|       <el-select v-model="dataForm.processId" :placeholder="$t('researchquality.processName')"> | ||||
|         <el-option v-for="item in processList" :key="item.id" :label="item.processName" :value="item.id"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="productId" :label="$t('researchquality.productName')"> | ||||
|       <el-select v-model="dataForm.productId" :placeholder="$t('researchquality.productName')"> | ||||
|         <el-option v-for="item in productList" :key="item.id" :label="item.productName" :value="item.id"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="processId" :label="$t('researchquality.productTypeName')"> | ||||
|       <el-select v-model="dataForm.processId" :placeholder="$t('researchquality.productTypeName')"> | ||||
|         <el-option v-for="item in productTypeList" :key="item.id" :label="item.productTypeName" :value="item.id"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="temporaryChange" :label="$t('researchquality.temporaryChange')"> | ||||
|       <el-switch v-model="dataForm.temporaryChange" :active-value="1" :inactive-value="0"></el-switch> | ||||
|     </el-form-item> | ||||
|     <!-- <el-row :gutter="20"> | ||||
|       <el-col :span="12"> {{ this.$t('researchquality.planPhase') }} </el-col> | ||||
|       <el-col :span="12"> {{ this.$t('researchquality.planTime') }} </el-col> | ||||
|     </el-row> --> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="12"> | ||||
|         <el-form-item prop="stageOneName" :label="$t('researchquality.stageOneName')"> | ||||
|           <el-input v-model="dataForm.stageOneName" :placeholder="$t('researchquality.stageOneName')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="12"> | ||||
|         <el-form-item prop="stageOneDate" :label="$t('researchquality.stageOneDate')"> | ||||
|           <el-date-picker v-model="dataForm.stageOneDate" type="datetime" | ||||
|             :placeholder="$t('researchquality.stageOneDate')"> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="12"> | ||||
|         <el-form-item prop="stageTwoName" :label="$t('researchquality.stageTwoName')"> | ||||
|           <el-input v-model="dataForm.stageTwoName" :placeholder="$t('researchquality.stageTwoName')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="12"> | ||||
|         <el-form-item prop="stageTwoDate" :label="$t('researchquality.stageTwoDate')"> | ||||
|           <el-date-picker v-model="dataForm.stageTwoDate" type="datetime" | ||||
|             :placeholder="$t('researchquality.stageTwoDate')"> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="12"> | ||||
|         <el-form-item prop="stageThreeName" :label="$t('researchquality.stageThreeName')"> | ||||
|           <el-input v-model="dataForm.stageThreeName" :placeholder="$t('researchquality.stageThreeName')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="12"> | ||||
|         <el-form-item prop="stageThreeDate" :label="$t('researchquality.stageThreeDate')"> | ||||
|           <el-date-picker v-model="dataForm.stageThreeDate" type="datetime" | ||||
|             :placeholder="$t('researchquality.stageThreeDate')"> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="12"> | ||||
|         <el-form-item prop="stageFourName" :label="$t('researchquality.stageFourName')"> | ||||
|           <el-input v-model="dataForm.stageFourName" :placeholder="$t('researchquality.stageFourName')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="12"> | ||||
|         <el-form-item prop="stageFourDate" :label="$t('researchquality.stageFourDate')"> | ||||
|           <el-date-picker v-model="dataForm.stageFourDate" type="datetime" | ||||
|             :placeholder="$t('researchquality.stageFourDate')"> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <!-- <el-form-item prop="productTypeStatus" :label="$t('basic.status')"> | ||||
|       <el-select v-model="dataForm.productTypeStatus" :placeholder="$t('basic.status')"> | ||||
|         <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> --> | ||||
|   </el-form> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import debounce from "lodash/debounce"; | ||||
| import basicAdd from "@/mixins/basic-add"; | ||||
| export default { | ||||
|   mixins: [basicAdd], | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         submitURL: "/supplier/qmsSupplier", | ||||
|         infoURL: "/supplier/qmsSupplier/{id}", | ||||
|         getUserURL: '/sys/user/page', | ||||
|         getProcessURL: '/basic/qmsProcess/page', | ||||
|         getProductURL: '/basic/qmsProduct/page', | ||||
|         getProductTypeURL: '/basic/qmsProductType/page', | ||||
|         getSupplierTypeListURL: '/supplier/qmsSupplierType/page' | ||||
|       }, | ||||
|       userList: [], | ||||
|       processList: [], | ||||
|       productTypeList: [], | ||||
|       productList: [], | ||||
|       changeSourceList: [ | ||||
|         { | ||||
|           id: 0, | ||||
|           name: '工程变更' | ||||
|         }, | ||||
|         { | ||||
|           id: 1, | ||||
|           name: '设计变更' | ||||
|         }, | ||||
|         { | ||||
|           id: 2, | ||||
|           name: 'CCB' | ||||
|         } | ||||
|       ], | ||||
|       visible: false, | ||||
|       listQuery: { | ||||
|         limit: 999, | ||||
|         page:1 | ||||
|       }, | ||||
|       dataForm: { | ||||
|         id: "", | ||||
|         changeSource:null, | ||||
|         currentStage: null, | ||||
|         owner: null, | ||||
|         productId: null, | ||||
|         productName: null, | ||||
|         qualityChangeStatus: null, | ||||
|         registrationDate: null, | ||||
|         sourceRemark: null, | ||||
|         stageFourDate: null, | ||||
|         stageFourName: null, | ||||
|         stageOneDate: null, | ||||
|         stageOneName: null, | ||||
|         stageThreeDate: null, | ||||
|         stageThreeName: null, | ||||
|         stageTwoDate: null, | ||||
|         stageTwoName: null, | ||||
|         temporaryChange: null, | ||||
|         title: null, | ||||
|       }, | ||||
|     }; | ||||
|   }, | ||||
|   computed: { | ||||
|     dataRule() { | ||||
|       return { | ||||
|         code: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ], | ||||
|         name: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ], | ||||
|         ment: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         supplierStatus: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|       }; | ||||
|     }, | ||||
|   }, | ||||
|   methods: { | ||||
|     init(id, ) { | ||||
|       this.dataForm.id = id || "" | ||||
|       // this.dataForm.dictTypeId = dictTypeId || ""; | ||||
|       this.visible = true; | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs["dataForm"].resetFields(); | ||||
|         if (this.dataForm.id) { | ||||
|           this.getInfo(); | ||||
|         } else { | ||||
|           this.getCode() | ||||
|         } | ||||
|       }); | ||||
|     }, | ||||
|     getCode() { | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getUserURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.userList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getProcessURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.processList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getProductURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.productList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getProductTypeURL, { | ||||
|           params: this.listQuery | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.productTypeList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|     }, | ||||
|     // 获取信息 | ||||
|     getInfo() { | ||||
|       this.$http | ||||
|         .get(`/supplier/qmsSupplier/${this.dataForm.id}`) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code !== 0) { | ||||
|             return this.$message.error(res.msg); | ||||
|           } | ||||
|           this.dataForm = { | ||||
|             ...this.dataForm, | ||||
|             ...res.data, | ||||
|           }; | ||||
|         }) | ||||
|         .catch(() => {}); | ||||
|     }, | ||||
|     // 表单提交 | ||||
|     dataFormSubmitHandle: debounce( | ||||
|       function () { | ||||
|         this.$refs["dataForm"].validate((valid) => { | ||||
|           if (!valid) { | ||||
|             return false; | ||||
|           } | ||||
|           this.$http[!this.dataForm.id ? "post" : "put"](this.urlOptions.submitURL, this.dataForm) | ||||
|             .then(({ data: res }) => { | ||||
|               if (res.code !== 0) { | ||||
|                 return this.$message.error(res.msg); | ||||
|               } | ||||
|               this.$message({ | ||||
|                 message: this.$t("prompt.success"), | ||||
|                 type: "success", | ||||
|                 duration: 500, | ||||
|                 onClose: () => { | ||||
|                   console.log(1111); | ||||
|                   this.visible = false; | ||||
|                   this.$emit("successSubmit"); | ||||
|                 }, | ||||
|               }); | ||||
|             }) | ||||
|             .catch(() => {}); | ||||
|         }); | ||||
|       }, | ||||
|       1000, | ||||
|       { leading: true, trailing: false } | ||||
|     ), | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| @@ -0,0 +1,241 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-14 13:44:46 | ||||
|  * @LastEditTime: 2023-07-19 16:58:46 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <div> | ||||
|     <el-dialog close-on-press-escape :title="$t('configuration')" :append-to-body="true" :visible.sync="innerDrawer"> | ||||
|       <el-divider content-position="center">项目清单详情</el-divider> | ||||
|       <el-table style="width: 100%" :data="getValues" :show-header="false"> | ||||
|         <el-table-column v-for="(item, index) in getHeaders" :key="index" :prop="item"> | ||||
|         </el-table-column> | ||||
|       </el-table> | ||||
|       <el-divider content-position="center">修订记录</el-divider> | ||||
|       <el-table style="width: 100%" :data="getReviseValues" :show-header="false"> | ||||
|         <el-table-column v-for="(item, index) in getReviseHeaders" :key="index" :prop="item"> | ||||
|         </el-table-column> | ||||
|       </el-table> | ||||
|       <el-divider content-position="center">更改记录</el-divider> | ||||
|       <el-table style="width: 100%" :data="getChangeValues" :show-header="false"> | ||||
|         <el-table-column v-for="(item, index) in getChangeHeaders" :key="index" :prop="item"> | ||||
|         </el-table-column> | ||||
|       </el-table> | ||||
|     </el-dialog> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import i18n from "@/i18n" | ||||
| // import basicAdd from "@/mixins/basic-add" | ||||
| // import debounce from "lodash/debounce" | ||||
|  | ||||
| export default { | ||||
|   // mixins: [basicAdd], | ||||
|     data() { | ||||
|       return { | ||||
|         urlOptions: { | ||||
|           getReviseDataListURL: '/customerquality/qmsCustomerQualityProjectListRevisionRecord/page', | ||||
|           getChangeDataListURL: '/customerquality/qmsCustomerQualityProjectListChangeRecord/page', | ||||
|           submitURL: "/customerquality/knowledgeBaseRequirementListData", | ||||
|           getDictDataDetail: '/mutual/qmsDataDictionaryDetail/page' | ||||
|         }, | ||||
|         headers: [ | ||||
|           { | ||||
|             prop: 'productCode', | ||||
|             label: '产品编码', | ||||
|           }, | ||||
|           { | ||||
|             prop: 'productName', | ||||
|             label: '产品名称', | ||||
|           }, | ||||
|           { | ||||
|             prop: 'customerCode', | ||||
|             label: '客户编码', | ||||
|           }, | ||||
|           { | ||||
|             prop: 'customerName', | ||||
|             label: '客户名称', | ||||
|           }, | ||||
|           { | ||||
|             prop: 'author', | ||||
|             label: '作者', | ||||
|           }, | ||||
|           { | ||||
|             prop: 'releaser', | ||||
|             label: '发布人', | ||||
|           } | ||||
|         ], | ||||
|         reviseHeaders: [ | ||||
|           { | ||||
|             prop: 'item', | ||||
|             label: 'Item/Section', | ||||
|           }, | ||||
|           { | ||||
|             prop: 'revision', | ||||
|             label: 'revision', | ||||
|           }, | ||||
|           { | ||||
|             prop: 'essential', | ||||
|             label: 'Essential Changes', | ||||
|           }, | ||||
|           { | ||||
|             prop: 'date', | ||||
|             label: 'date', | ||||
|           }, | ||||
|         ], | ||||
|         reviseTableData: [], | ||||
|         changeHeaders: [ | ||||
|           { | ||||
|             prop: 'name', | ||||
|             label: 'name', | ||||
|           }, | ||||
|           { | ||||
|             prop: 'changeHistory', | ||||
|             label: 'Change History of this PPAP record', | ||||
|           }, | ||||
|           { | ||||
|             prop: 'date', | ||||
|             label: 'date', | ||||
|           }, | ||||
|         ], | ||||
|         changeTableData: [], | ||||
|         tableData: [], | ||||
|         innerDrawer: false, | ||||
|         listQuery: { | ||||
|           limit: 3, | ||||
|           page: 1, | ||||
|           customerQualityProjectListId:null | ||||
|         }, | ||||
|         categoryList:[], | ||||
|         requirementList: [], | ||||
|         knowledgeBaseList:[], | ||||
|       } | ||||
|   }, | ||||
|   computed: { | ||||
|     getHeaders() { | ||||
|       return this.tableData.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title']) | ||||
|     }, | ||||
|     getValues() { | ||||
|       return this.headers.map(item => { | ||||
|         return this.tableData.reduce((pre, cur, index) => Object.assign(pre, { ['value' + index]: cur[item.prop] }), { 'title': item.label, }); | ||||
|       }); | ||||
|     }, | ||||
|     getReviseHeaders() { | ||||
|       return this.reviseTableData.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title']) | ||||
|     }, | ||||
|     getReviseValues() { | ||||
|       return this.reviseHeaders.map(item => { | ||||
|         return this.reviseTableData.reduce((pre, cur, index) => Object.assign(pre, { ['value' + index]: cur[item.prop] }), { 'title': item.label, }); | ||||
|       }); | ||||
|     }, | ||||
|     getChangeHeaders() { | ||||
|       return this.changeTableData.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title']) | ||||
|     }, | ||||
|     getChangeValues() { | ||||
|       return this.changeHeaders.map(item => { | ||||
|         return this.changeTableData.reduce((pre, cur, index) => Object.assign(pre, { ['value' + index]: cur[item.prop] }), { 'title': item.label, }); | ||||
|       }); | ||||
|     } | ||||
|   }, | ||||
|   mounted () { | ||||
|     // this.getDict() | ||||
|     // this.getAccessPath() | ||||
|   }, | ||||
|     methods: { | ||||
|       init(obj) { | ||||
|         // this.dataForm.knowledgeBaseRequirementListId = obj.knowledgeBaseRequirementListId || '' | ||||
|         // this.dataForm.knowledgeBaseRequirementListId = obj.knowledgeBaseRequirementListId || '' | ||||
|         this.id = obj.id || '' | ||||
|         this.listQuery.customerQualityProjectListId = obj.id | ||||
|         this.tableData.push(obj) | ||||
|         this.innerDrawer = true | ||||
|         this.$nextTick(() => { | ||||
|           // this.$refs["dataForm"].resetFields() | ||||
|           // if (this.dataForm.id) { | ||||
|             this.getInfo() | ||||
|           // } else { | ||||
|             // this.getCode() | ||||
|           // } | ||||
|         }) | ||||
|       }, | ||||
|       getInfo() { | ||||
|         this.$http | ||||
|           .get(this.urlOptions.getReviseDataListURL, { | ||||
|             params: this.listQuery, | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             // this.dataListLoading = false; | ||||
|             if (res.code !== 0) { | ||||
|               this.tableData = []; | ||||
|               // this.listQuery.total = 0; | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.reviseTableData = res.data.list; | ||||
|             this.listQuery.total = res.data.total; | ||||
|           }) | ||||
|         this.$http | ||||
|           .get(this.urlOptions.getChangeDataListURL, { | ||||
|             params: this.listQuery, | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             // this.dataListLoading = false; | ||||
|             if (res.code !== 0) { | ||||
|               this.tableData = []; | ||||
|               // this.listQuery.total = 0; | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.changeTableData = res.data.list; | ||||
|             this.listQuery.total = res.data.total; | ||||
|           }) | ||||
|       }, | ||||
|       // getDict() { | ||||
|       //   this.$http | ||||
|       //     .get(this.urlOptions.getDictDataDetail, { | ||||
|       //       params: { | ||||
|       //         limit: 999, | ||||
|       //         page: 1, | ||||
|       //         dataDictionaryId: '1679670942635122690', | ||||
|       //       } | ||||
|       //     }) | ||||
|       //     .then(({ data: res }) => { | ||||
|       //       // this.dataListLoading = false; | ||||
|       //       if (res.code === 0) { | ||||
|       //         this.categoryList = res.data.list | ||||
|       //       } | ||||
|       //     }) | ||||
|       // }, | ||||
|  | ||||
|       // 表单提交 | ||||
|       // dataFormSubmit() { | ||||
|       //   this.$refs["dataForm"].validate((valid) => { | ||||
|       //     if (!valid) { | ||||
|       //       return false; | ||||
|       //     } | ||||
|       //     this.$http[!this.dataForm.id ? "post" : "put"](this.urlOptions.submitURL, this.dataForm) | ||||
|       //       .then(({ data: res }) => { | ||||
|       //         if (res.code !== 0) { | ||||
|       //           return this.$message.error(res.msg); | ||||
|       //         } | ||||
|       //         this.$message({ | ||||
|       //           message: this.$t("prompt.success"), | ||||
|       //           type: "success", | ||||
|       //           duration: 500, | ||||
|       //           onClose: () => { | ||||
|       //             this.innerDrawer = false; | ||||
|       //             this.$emit("refreshDataList"); | ||||
|       //           }, | ||||
|       //         }); | ||||
|       //       }) | ||||
|       //       .catch(() => { }); | ||||
|       //   }); | ||||
|       // }, | ||||
|     }, | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|  | ||||
| </style> | ||||
| @@ -1,24 +1,25 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-13 11:01:20 | ||||
|  * @LastEditTime: 2023-07-18 16:55:16 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px"> | ||||
|     <el-form-item prop="title" :label="$t('researchquality.title')"> | ||||
|       <el-input v-model="dataForm.title" :placeholder="$t('researchquality.title')"> | ||||
|       <el-input clearable v-model="dataForm.title" :placeholder="$t('researchquality.title')"> | ||||
|       </el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="requirementListGroupId" :label="$t('researchquality.requirementListGroupId')"> | ||||
|       <el-select v-model="dataForm.requirementListGroupId" :placeholder="$t('researchquality.requirementListGroupId')"> | ||||
|       <el-select clearable v-model="dataForm.requirementListGroupId" | ||||
|         :placeholder="$t('researchquality.requirementListGroupId')"> | ||||
|         <el-option v-for="item in projectTypeList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|         </el-option> | ||||
|       </el-select> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="description" :label="$t('researchquality.description')"> | ||||
|       <el-input v-model="dataForm.description" :placeholder="$t('researchquality.description')"> | ||||
|       <el-input clearable v-model="dataForm.description" :placeholder="$t('researchquality.description')"> | ||||
|       </el-input> | ||||
|     </el-form-item> | ||||
|   </el-form> | ||||
|   | ||||
							
								
								
									
										152
									
								
								src/views/modules/customerquality/components/revise-add.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,152 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-14 13:44:46 | ||||
|  * @LastEditTime: 2023-07-19 14:38:48 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <div> | ||||
|     <el-drawer close-on-press-escape :title="!dataForm.id ? $t('add') : $t('edit')" size="40%" :append-to-body="true" | ||||
|       :closed="handleClose" :visible.sync="innerDrawer"> | ||||
|       <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|         label-width="140px"> | ||||
|         <el-form-item prop="essential" label="Essential Changes"> | ||||
|           <el-input clearable v-model="dataForm.essential" placeholder="Essential Changes"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="item" label="	Item / Section"> | ||||
|           <el-input clearable v-model="dataForm.item" placeholder="Item/Section"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="revision" label="revision"> | ||||
|           <el-input clearable v-model="dataForm.revision" placeholder="Revision"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="date" label="date"> | ||||
|           <el-date-picker v-model="dataForm.date" type="datetime" format='yyyy-MM-dd HH:mm:ss' | ||||
|             valueFormat='yyyy-MM-ddTHH:mm:ss' placeholder="date"> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|         <el-form-item> | ||||
|           <el-button @click="innerDrawer = false">{{ $t('cancel') }} </el-button> | ||||
|           <el-button type="primary" @click="dataFormSubmit"> {{ $t('confirm') }}</el-button> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
|     </el-drawer> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import i18n from "@/i18n" | ||||
| import basicAdd from "@/mixins/basic-add" | ||||
| import debounce from "lodash/debounce" | ||||
| export default { | ||||
|   mixins: [basicAdd], | ||||
|     data() { | ||||
|       return { | ||||
|         urlOptions: { | ||||
|           submitURL: "/customerquality/qmsCustomerQualityProjectListRevisionRecord", | ||||
|         }, | ||||
|         dataForm: { | ||||
|           date:null, | ||||
|           essential: null, | ||||
|           id: null, | ||||
|           item: null, | ||||
|           revision: null, | ||||
|           customerQualityProjectListId:null, | ||||
|         }, | ||||
|         innerDrawer: false, | ||||
|         listQuery: { | ||||
|           limit: 10, | ||||
|           page:1, | ||||
|         }, | ||||
|         requirementList: [], | ||||
|         knowledgeBaseList:[], | ||||
|       } | ||||
|   }, | ||||
|   computed: { | ||||
|     dataRule() { | ||||
|       return { | ||||
|         knowledgeBaseId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         requirementListId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ] | ||||
|       }; | ||||
|     }, | ||||
|   }, | ||||
|     methods: { | ||||
|       init(obj) { | ||||
|         // this.dataForm.knowledgeBaseId = obj.knowledgeBaseId || '' | ||||
|         // this.dataForm.requirementListId = obj.requirementListId || '' | ||||
|         this.dataForm.id = obj.id?  obj.id :null | ||||
|         this.dataForm.customerQualityProjectListId = obj.customerQualityProjectListId ? obj.customerQualityProjectListId :null | ||||
|         this.innerDrawer = true | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs["dataForm"].resetFields() | ||||
|           if (this.dataForm.id) { | ||||
|             this.getInfo() | ||||
|           } else { | ||||
|             // this.getCode() | ||||
|           } | ||||
|         }) | ||||
|       }, | ||||
|       handleClose() { | ||||
|         this.innerDrawer = true | ||||
|         this.$refs.dataForm.resetFields() | ||||
|       }, | ||||
|       getInfo() { | ||||
|         this.$http | ||||
|           .get(`/customerquality/qmsCustomerQualityProjectListRevisionRecord/${this.dataForm.id}`) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.dataForm = { | ||||
|               ...this.dataForm, | ||||
|               ...res.data, | ||||
|             }; | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       }, | ||||
|       // 表单提交 | ||||
|       dataFormSubmit() { | ||||
|         this.$refs["dataForm"].validate((valid) => { | ||||
|           if (!valid) { | ||||
|             return false; | ||||
|           } | ||||
|           this.$http[!this.dataForm.id ? "post" : "put"](this.urlOptions.submitURL, this.dataForm) | ||||
|             .then(({ data: res }) => { | ||||
|               if (res.code !== 0) { | ||||
|                 return this.$message.error(res.msg); | ||||
|               } | ||||
|               this.$message({ | ||||
|                 message: this.$t("prompt.success"), | ||||
|                 type: "success", | ||||
|                 duration: 500, | ||||
|                 onClose: () => { | ||||
|                   this.innerDrawer = false; | ||||
|                   this.$emit("refreshDataList"); | ||||
|                 }, | ||||
|               }); | ||||
|             }) | ||||
|             .catch(() => { }); | ||||
|         }); | ||||
|       }, | ||||
|     }, | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|  | ||||
| </style> | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-06-08 14:29:46 | ||||
|  * @LastEditTime: 2023-07-14 14:28:20 | ||||
|  * @LastEditTime: 2023-07-21 14:03:20 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -13,21 +13,76 @@ | ||||
|           <el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button> | ||||
|         </el-badge> --> | ||||
|       </SearchBar> | ||||
|       <base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1" | ||||
|         :limit="listQuery.limit" :table-data="tableData"> | ||||
|         <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn" | ||||
|           @clickBtn="handleClick" /> | ||||
|       </base-table> | ||||
|       <el-table :data="tableData" style="width: 100%"> | ||||
|         <el-table-column type="expand"> | ||||
|           <template slot-scope="props"> | ||||
|             <el-form label-position="left" inline class="demo-table-expand"> | ||||
|               <el-form-item :label="$t('customerquality.previousVersionCode')"> | ||||
|                 <span>{{ props.row.previousVersionCode }}</span> | ||||
|               </el-form-item> | ||||
|               <el-form-item :label="$t('customerquality.ppapGrade')"> | ||||
|                 <span>{{ props.row.ppapGradeName }}</span> | ||||
|               </el-form-item> | ||||
|               <el-form-item :label="$t('customerquality.description')"> | ||||
|                 <span>{{ props.row.description }}</span> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="nda"> | ||||
|                 <span>{{ props.row.nda ===0? '错号' : '对号'}}</span> | ||||
|               </el-form-item> | ||||
|               <el-form-item :label="$t('customerquality.amendment')"> | ||||
|                 <span>{{ props.row.amendment }}</span> | ||||
|               </el-form-item> | ||||
|             </el-form> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column :label="$t('customerquality.productName')" prop="productName"> | ||||
|         </el-table-column> | ||||
|         <el-table-column :label="$t('customerquality.customerName')" prop="customerName"> | ||||
|         </el-table-column> | ||||
|         <el-table-column :formatter="timeFormatter" :label="$t('customerquality.qualityAcceptanceDate')" | ||||
|           prop="qualityAcceptanceDate"> | ||||
|         </el-table-column> | ||||
|         <el-table-column :formatter="timeFormatter" :label="$t('customerquality.confirmDeliveryDate')" | ||||
|           prop="confirmDeliveryDate"> | ||||
|         </el-table-column> | ||||
|         <el-table-column :formatter="timeFormatter" :label="$t('customerquality.deliveryRequiredDate')" | ||||
|           prop="deliveryRequiredDate"> | ||||
|         </el-table-column> | ||||
|         <el-table-column :label="$t('customerquality.status')" prop="status"> | ||||
|           <template slot-scope="slot"> | ||||
|             <!-- <el-button type="text" @click="start(slot.row)">启动</el-button> --> | ||||
|             <el-tag v-if="slot.row.status == 0" type="success"> 待审核</el-tag> | ||||
|             <el-tag v-if="slot.row.status == 1" type="success"> 已完成</el-tag> | ||||
|             <el-tag v-if="slot.row.status == 2" type="success"> 交付退回</el-tag> | ||||
|             <el-tag v-if="slot.row.status == 3" type="success"> 审核拒绝</el-tag> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="操作" width="160" prop="desc"> | ||||
|           <template slot-scope="slot"> | ||||
|             <!-- <el-button type="text" @click="start(slot.row)">启动</el-button> --> | ||||
|             <el-button type="text" @click="handleEdit(slot.row)"> | ||||
|               <i class="el-icon-edit"></i> | ||||
|             </el-button> | ||||
|             <el-button type="text" @click="handleDelete(slot.row)" style="color: red"> | ||||
|               <i class="el-icon-delete"></i> | ||||
|             </el-button> | ||||
|             <el-button type="text" @click="handleShow(slot.row)"> | ||||
|               {{ $t('configuration')}} | ||||
|             </el-button> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|       </el-table> | ||||
|       <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|         @pagination="getDataList" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <qmsKnowledgeBase-add ref="addOrUpdate" @refreshDataList="successSubmit"> | ||||
|         </qmsKnowledgeBase-add> | ||||
|         <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|       </base-dialog> | ||||
|       <baseConfig ref="baseConfigOrList" v-if="baseConfigShow"></baseConfig> | ||||
|       <customerQualityProjectList-add v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"> | ||||
|       </customerQualityProjectList-add> | ||||
|       <qualityProjectList-show v-if="qualityProjectListShow" ref="qualityProjectListShow" | ||||
|         @refreshDataList="getDataList"> | ||||
|       </qualityProjectList-show> | ||||
|       <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|       <!-- </base-dialog> --> | ||||
|       <!-- <baseConfig ref="baseConfigOrList" v-if="baseConfigShow"></baseConfig> --> | ||||
|       <!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel" | ||||
|         @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <projectType-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"> | ||||
| @@ -51,42 +106,16 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicPage from "@/mixins/basic-page" | ||||
| // import basicPage from "@/mixins/basic-page" | ||||
| // import basicSearch from "@/mixins/basic-search" | ||||
| // import projectTypeSearch from "./components/projectTypeSearch.vue" | ||||
| import customerquality from '@/filters/customerquality' | ||||
| import qmsKnowledgeBaseAdd from "./components/qmsKnowledgeBase-add.vue" | ||||
| import baseConfig from "./components/baseConfig" | ||||
|  | ||||
|  | ||||
| // import customerquality from '@/filters/customerquality' | ||||
| import customerQualityProjectListAdd from "./components/customerQualityProjectList-add.vue" | ||||
| // import baseConfig from "./components/baseConfig" | ||||
| import qualityProjectListShow from "./components/qualityProjectList-show.vue" | ||||
| import { timeFormatter } from '@/filters' | ||||
| import i18n from "@/i18n" | ||||
| // import i18n from "@/i18n"; | ||||
| const tableProps = [ | ||||
|   { | ||||
|     prop: "productName", | ||||
|     label: i18n.t('customerquality.productName'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "customerName", | ||||
|     label: i18n.t('customerquality.customerName'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "qualityAcceptanceDate", | ||||
|     label: i18n.t('customerquality.qualityAcceptanceDate'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "confirmDeliveryDate", | ||||
|     label: i18n.t('customerquality.confirmDeliveryDate'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "deliveryRequiredDate", | ||||
|     label: i18n.t('customerquality.deliveryRequiredDate'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "status", | ||||
|     label: i18n.t('customerquality.status'), | ||||
|   } | ||||
| ]; | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
| @@ -96,27 +125,30 @@ const tableBtn = [ | ||||
|     type: "delete", | ||||
|     btnName: i18n.t('delete'), | ||||
|   }, | ||||
|   { | ||||
|     type: "configuration", | ||||
|     btnName: i18n.t('configuration'), | ||||
|   } | ||||
|   // { | ||||
|   //   type: "configuration", | ||||
|   //   btnName: i18n.t('configuration'), | ||||
|   // } | ||||
| ]; | ||||
| export default { | ||||
|   mixins: [basicPage], | ||||
|   // mixins: [basicPage], | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         getDataListURL: "/customerquality/qmsCustomerQualityProjectList/page", | ||||
|         deleteURL: "/customerquality/qmsCustomerQualityProjectList", | ||||
|         exportURL: '/customerquality/qmsCustomerQualityProjectList/export' | ||||
|         exportURL: '/customerquality/qmsCustomerQualityProjectList/export', | ||||
|         getProductURL: '/basic/qmsProduct/page', | ||||
|         getCustomerURL: '/basic/qmsCustomer/page' | ||||
|       }, | ||||
|       tableProps, | ||||
|       tableBtn, | ||||
|       tableData:[], | ||||
|       productData: {}, | ||||
|       dataForm:{ | ||||
|       listQuery:{ | ||||
|         limit: 999, | ||||
|         page:1 | ||||
|         page: 1, | ||||
|         total:0 | ||||
|       }, | ||||
|       timeFormatter, | ||||
|       baseConfigShow:false, | ||||
|       searchOrEditTitle: "", | ||||
|       searchOrUpdateVisible: false, | ||||
| @@ -124,57 +156,58 @@ export default { | ||||
|       addOrEditTitle: '', | ||||
|       addOrUpdateVisible: false, | ||||
|       productOrUpdateVisible: false, | ||||
|       qualityProjectListShow:false, | ||||
|       formConfig: [ | ||||
|         // { | ||||
|         //   type: 'input', | ||||
|         //   label: i18n.t('customerquality.customerName'), | ||||
|         //   placeholder: i18n.t('customerquality.customerName'), | ||||
|         //   param: 'customerName' | ||||
|         // }, | ||||
|         // { | ||||
|         //   type: 'select', | ||||
|         //   label: i18n.t('customerquality.questionType'), | ||||
|         //   placeholder: i18n.t('customerquality.questionType'), | ||||
|         //   selectOptions: [ | ||||
|         //     { | ||||
|         //       id: 0, | ||||
|         //       name: '产品质量题' | ||||
|         //     }, | ||||
|         //     { | ||||
|         //       id: 1, | ||||
|         //       name: '售后服务题' | ||||
|         //     }, | ||||
|         //     { | ||||
|         //       id: 2, | ||||
|         //       name: '物流配送问题' | ||||
|         //     }, | ||||
|         //     { | ||||
|         //       id: 3, | ||||
|         //       name: '单关问题' | ||||
|         //     }, | ||||
|         //     { | ||||
|         //       id: 4, | ||||
|         //       name: '4系统故问题' | ||||
|         //     } | ||||
|         //   ], | ||||
|         //   param: 'questionType' | ||||
|         // }, | ||||
|         // { | ||||
|         //   type: 'select', | ||||
|         //   label: i18n.t('basic.status'), | ||||
|         //   placeholder: i18n.t('basic.status'), | ||||
|         //   selectOptions: [ | ||||
|         //     { | ||||
|         //       id: 0, | ||||
|         //       name: '不可用' | ||||
|         //     }, | ||||
|         //     { | ||||
|         //       id: 1, | ||||
|         //       name: '可用' | ||||
|         //     } | ||||
|         //   ], | ||||
|         //   param: 'status' | ||||
|         // }, | ||||
|         { | ||||
|           type: 'select', | ||||
|           label: i18n.t('basic.productName'), | ||||
|           placeholder: i18n.t('basic.productName'), | ||||
|           selectOptions: [], | ||||
|           param: 'productId' | ||||
|         }, | ||||
|         { | ||||
|           type: 'select', | ||||
|           label: i18n.t('customerquality.customerName'), | ||||
|           placeholder: i18n.t('customerquality.customerName'), | ||||
|           selectOptions: [], | ||||
|           param: 'customerId' | ||||
|         }, | ||||
|         { | ||||
|           type: 'select', | ||||
|           label: i18n.t('customerquality.status'), | ||||
|           placeholder: i18n.t('customerquality.status'), | ||||
|           selectOptions: [ | ||||
|             { | ||||
|               id: '0', | ||||
|               name: '待审核' | ||||
|             }, | ||||
|             { | ||||
|               id: '1', | ||||
|               name: '已完成' | ||||
|             }, | ||||
|             { | ||||
|               id: '2', | ||||
|               name: '交付退回' | ||||
|             }, | ||||
|             { | ||||
|               id: '3', | ||||
|               name: '审核拒绝' | ||||
|             } | ||||
|           ], | ||||
|           param: 'status' | ||||
|         }, | ||||
|         { | ||||
|           type: 'datePicker', | ||||
|           label: i18n.t('time'), | ||||
|           dateType: 'datetimerange', | ||||
|           format: 'yyyy-MM-dd HH:mm:ss', | ||||
|           valueFormat: 'yyyy-MM-ddTHH:mm:ss', | ||||
|           rangeSeparator: '-', | ||||
|           startPlaceholder: '开始时间', | ||||
|           endPlaceholder: '结束时间', | ||||
|           param: 'timeSlot', | ||||
|           width: 350 | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('search'), | ||||
| @@ -193,11 +226,72 @@ export default { | ||||
|     }; | ||||
|   }, | ||||
|   components: { | ||||
|     qmsKnowledgeBaseAdd, | ||||
|     baseConfig | ||||
|     customerQualityProjectListAdd, | ||||
|     qualityProjectListShow | ||||
|     // baseConfig | ||||
|   }, | ||||
|   mounted () { | ||||
|     this.getDataList() | ||||
|     this.getDict() | ||||
|   }, | ||||
|   methods: { | ||||
|     //search-bar点击 | ||||
|     getDataList() { | ||||
|       this.dataListLoading = true; | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getDataListURL, { | ||||
|           params: this.listQuery, | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           this.dataListLoading = false; | ||||
|           if (res.code !== 0) { | ||||
|             this.tableData = []; | ||||
|             this.listQuery.total = 0; | ||||
|             return this.$message.error(res.msg); | ||||
|           } | ||||
|           this.tableData = res.data.list; | ||||
|           this.listQuery.total = res.data.total; | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.dataListLoading = false; | ||||
|         }) | ||||
|     }, | ||||
|     getDict() { | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getProductURL, { | ||||
|           params: { | ||||
|             limit: 999, | ||||
|             page: 1, | ||||
|           } | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           // this.dataListLoading = false; | ||||
|           if (res.code === 0) { | ||||
|             this.formConfig[0].selectOptions = res.data.list.map((item) => { | ||||
|               return { | ||||
|                 id: item.id, | ||||
|                 name:item.productName | ||||
|               } | ||||
|             }) | ||||
|           } | ||||
|         }) | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getCustomerURL, { | ||||
|           params: { | ||||
|             limit: 999, | ||||
|             page: 1, | ||||
|           } | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           // this.dataListLoading = false; | ||||
|           this.formConfig[1].selectOptions = res.data.list.map((item) => { | ||||
|             return { | ||||
|               id: item.id, | ||||
|               name: item.customerName | ||||
|             } | ||||
|           }) | ||||
|         }) | ||||
|     }, | ||||
|     handleProductCancel() { | ||||
|       this.productOrUpdateVisible = false; | ||||
|       this.productOrEditTitle = ""; | ||||
| @@ -264,15 +358,14 @@ export default { | ||||
|         } | ||||
|       }).catch(() => { }) | ||||
|     }, | ||||
|     handleClick(val) { | ||||
|       if (val.type === "delete") { | ||||
|         this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", { | ||||
|     handleDelete(val) { | ||||
|         this.$confirm(`确定对[名称${val.productName}]进行删除操作?`, "提示", { | ||||
|           confirmButtonText: "确定", | ||||
|           cancelButtonText: "取消", | ||||
|           type: "warning", | ||||
|         }) | ||||
|           .then(() => { | ||||
|             this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => { | ||||
|             this.$http.delete(this.urlOptions.deleteURL, { data: [val.id] }).then(({ data }) => { | ||||
|               if (data && data.code === 0) { | ||||
|                 this.$message({ | ||||
|                   message: "操作成功", | ||||
| @@ -288,18 +381,19 @@ export default { | ||||
|             }); | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       } else if (val.type === 'edit') { | ||||
|         this.addOrUpdateVisible = true | ||||
|         this.addOrEditTitle = this.$t('edit') | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs.addOrUpdate.init(val.data.id); | ||||
|         }) | ||||
|       } else if (val.type === 'configuration') { | ||||
|         this.baseConfigShow = true | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs.baseConfigOrList.init(val.data.id) | ||||
|         }); | ||||
|       } | ||||
|     }, | ||||
|     handleEdit(val) { | ||||
|       this.addOrUpdateVisible = true | ||||
|       this.addOrEditTitle = this.$t('edit') | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs.addOrUpdate.init(val.id); | ||||
|       }) | ||||
|     }, | ||||
|     handleShow(val) { | ||||
|       this.qualityProjectListShow = true | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs.qualityProjectListShow.init(val) | ||||
|       }) | ||||
|     }, | ||||
|     // addOrUpdateHandle(productData) { | ||||
|     //   this.addOrUpdateVisible = true; | ||||
| @@ -313,6 +407,11 @@ export default { | ||||
|         case "search": | ||||
|           // this.listQuery.paramCode = val.paramCode; | ||||
|           // console.log(i18n); | ||||
|           this.listQuery.status = val.status ? val.status : null | ||||
|           this.listQuery.productId = val.productId ? val.productId : null | ||||
|           this.listQuery.customerId = val.customerId ? val.customerId : null | ||||
|           this.listQuery.startTime = val.timeSlot ? val.timeSlot[0] : null | ||||
|           this.listQuery.endTime = val.timeSlot ? val.timeSlot[1] : null | ||||
|           this.listQuery.page = 1 | ||||
|           this.getDataList() | ||||
|           break; | ||||
| @@ -320,9 +419,10 @@ export default { | ||||
|          this.exportHandle() | ||||
|           break; | ||||
|         case "add": | ||||
|           this.addOrEditTitle = '新增' | ||||
|           this.addOrUpdateVisible = true; | ||||
|           this.addOrUpdateHandle() | ||||
|           this.addOrUpdateVisible = true | ||||
|           this.$nextTick(() => { | ||||
|             this.$refs.addOrUpdate.init() | ||||
|           }) | ||||
|           break; | ||||
|         default: | ||||
|       } | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-06-08 14:29:46 | ||||
|  * @LastEditTime: 2023-07-14 10:08:05 | ||||
|  * @LastEditTime: 2023-07-18 14:20:43 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -24,9 +24,11 @@ | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <customerQualityRequirementList-add ref="addOrUpdate" @refreshDataList="successSubmit"> | ||||
|           </customerQualityRequirementList-add> | ||||
|           <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|         </customerQualityRequirementList-add> | ||||
|         <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|       </base-dialog> | ||||
|       <baseConfig ref="baseConfigOrList" v-if="baseConfigShow"></baseConfig> | ||||
|  | ||||
|       <!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel" | ||||
|         @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <projectType-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"> | ||||
| @@ -56,6 +58,7 @@ import basicPage from "@/mixins/basic-page" | ||||
| import customerquality from '@/filters/customerquality' | ||||
| import customerQualityRequirementListAdd from "./components/customerQualityRequirementList-add.vue" | ||||
| import i18n from "@/i18n" | ||||
| import baseConfig from "./components/baseConfig" | ||||
| // import i18n from "@/i18n"; | ||||
| const tableProps = [ | ||||
|   { | ||||
| @@ -83,6 +86,10 @@ const tableBtn = [ | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: i18n.t('delete'), | ||||
|   }, | ||||
|   { | ||||
|     type: "configuration", | ||||
|     btnName: i18n.t('configuration'), | ||||
|   } | ||||
| ]; | ||||
| export default { | ||||
| @@ -95,6 +102,7 @@ export default { | ||||
|         exportURL: '/customerquality/qmsCustomerQualityRequirementList/export' | ||||
|       }, | ||||
|       tableProps, | ||||
|       baseConfigShow:false, | ||||
|       tableBtn, | ||||
|       productData: {}, | ||||
|       dataForm:{ | ||||
| @@ -166,7 +174,8 @@ export default { | ||||
|     }; | ||||
|   }, | ||||
|   components: { | ||||
|     customerQualityRequirementListAdd | ||||
|     customerQualityRequirementListAdd, | ||||
|     baseConfig | ||||
|   }, | ||||
|   methods: { | ||||
|     //search-bar点击 | ||||
| @@ -196,12 +205,12 @@ export default { | ||||
|     //   this.$refs.addOrUpdate.dataFormSubmitHandle(); | ||||
|     // }, | ||||
|     // conditionSearchSubmit() {}, | ||||
|     conditionSearchSubmit(dataForm) { | ||||
|     conditionSearchSubmit() { | ||||
|       // console.log(key); | ||||
|       // console.log(key); | ||||
|       this.listQuery.page = 1; | ||||
|       this.getDataList(); | ||||
|       this.searchOrUpdateVisible = false; | ||||
|       this.searchOrUpdateVisible = false | ||||
|       // console.log(11111); | ||||
|       // this.conditionSearchSubmit(); | ||||
|     }, | ||||
| @@ -209,10 +218,6 @@ export default { | ||||
|       this.$http.get(this.urlOptions.exportURL, { responseType: 'blob' }, { | ||||
|         ...this.dataForm | ||||
|       }).then((res) => { | ||||
|         console.log(res) | ||||
|         // if (res !== 0) { | ||||
|         //   return this.$message.error(res.msg)  | ||||
|         // } | ||||
|         let fileName = '' | ||||
|         const contentDisposition = res.headers['content-disposition'] | ||||
|         if (contentDisposition) { | ||||
| @@ -266,6 +271,14 @@ export default { | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs.addOrUpdate.init(val.data.id); | ||||
|         }); | ||||
|       } else if (val.type === 'configuration') { | ||||
|         this.baseConfigShow = true | ||||
|         const obj = { | ||||
|           requirementListId:val.data.id | ||||
|         } | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs.baseConfigOrList.init(obj) | ||||
|         }); | ||||
|       } | ||||
|     }, | ||||
|     // addOrUpdateHandle(productData) { | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-06-08 14:29:46 | ||||
|  * @LastEditTime: 2023-07-14 13:58:32 | ||||
|  * @LastEditTime: 2023-07-18 14:20:57 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -284,8 +284,11 @@ export default { | ||||
|         }) | ||||
|       } else if (val.type === 'configuration') { | ||||
|         this.baseConfigShow = true | ||||
|         const obj = { | ||||
|           knowledgeBaseId: val.data.id | ||||
|         } | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs.baseConfigOrList.init(val.data.id) | ||||
|           this.$refs.baseConfigOrList.init(obj) | ||||
|         }); | ||||
|       } | ||||
|     }, | ||||
|   | ||||
| @@ -1,281 +0,0 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-04-17 14:23:17 | ||||
|  * @LastEditTime: 2023-07-13 14:06:42 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-card shadow="never" class="aui-card--fill"> | ||||
|     <div class="mod-sys__user"> | ||||
|       <SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick"> | ||||
|         <el-badge :value="5" class="item"> | ||||
|           <el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button> | ||||
|         </el-badge> | ||||
|       </SearchBar> | ||||
|       <base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1" | ||||
|         :limit="listQuery.limit" :table-data="tableData"> | ||||
|         <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn" | ||||
|           @clickBtn="handleClick" /> | ||||
|       </base-table> | ||||
|       <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|         @pagination="getDataList" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <qualityChange-add ref="addOrUpdate" @refreshDataList="successSubmit"> | ||||
|         </qualityChange-add> | ||||
|         <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|       </base-dialog> | ||||
|       <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel" | ||||
|         @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <qualityChange-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"> | ||||
|           </qualityChange-search> | ||||
|           <el-row slot="footer" type="flex" justify="end"> | ||||
|             <el-col :span="12"> | ||||
|               <el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel"> | ||||
|                 {{ $t("close") }} | ||||
|               </el-button> | ||||
|               <el-button size="small" class="btnTextStyle" type="primary" plain @click="handleSearchReset">{{ | ||||
|                 $t("reset") | ||||
|                 }}</el-button> | ||||
|               <el-button type="primary" size="small" class="btnTextStyle" @click="handleSearchConfirm"> | ||||
|                 {{ $t("search") }} | ||||
|               </el-button> | ||||
|             </el-col> | ||||
|           </el-row> | ||||
|       </base-dialog> | ||||
|     </div> | ||||
|   </el-card> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicPage from "@/mixins/basic-page" | ||||
| import basicSearch from "@/mixins/basic-search" | ||||
| import qualityChangeSearch from "./components/qualityChangeSearch.vue" | ||||
| import qualityChangeAdd from "./components/qualityChange-add.vue" | ||||
| import i18n from "@/i18n" | ||||
| // import supplier from '@/filters/supplier' | ||||
| const tableProps = [ | ||||
|   { | ||||
|     prop: "code", | ||||
|     label: i18n.t('researchquality.code'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "registrationDate", | ||||
|     label: i18n.t('researchquality.registrationDate'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "changeSource", | ||||
|     label: i18n.t('researchquality.changeSource'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "owner", | ||||
|     label: i18n.t('researchquality.owner'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "category", | ||||
|     label: i18n.t('researchquality.category'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "title", | ||||
|     label: i18n.t('researchquality.title'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "currentStage", | ||||
|     label: i18n.t('researchquality.currentStage'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "productName", | ||||
|     label: i18n.t('researchquality.productName'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "qualityChangeStatus", | ||||
|     label: i18n.t('researchquality.qualityChangeStatus'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "temporaryChange", | ||||
|     label: i18n.t('researchquality.temporaryChange'), | ||||
|   } | ||||
| ]; | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: i18n.t('t.edit'), | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: i18n.t('t.delete'), | ||||
|   } | ||||
| ]; | ||||
| export default { | ||||
|   mixins: [basicPage, basicSearch], | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         getDataListURL: "/researchquality/qmsQualityChange/page", | ||||
|         deleteURL: "/researchquality/qmsQualityChange", | ||||
|         exportURL: '/researchquality/qmsQualityChange', | ||||
|         // getSupplierTypeListURL: '/supplier/qmsSupplierType/page' | ||||
|         // submitURL: '/supplier/qmsSupplierType' | ||||
|       }, | ||||
|       tableProps, | ||||
|       ment: '', | ||||
|       tableBtn, | ||||
|       productData: {}, | ||||
|       dataForm:{ | ||||
|         limit: 999, | ||||
|         page:1 | ||||
|       }, | ||||
|       searchOrEditTitle: "", | ||||
|       searchOrUpdateVisible: false, | ||||
|       productOrEditTitle: "", | ||||
|       addOrEditTitle: '', | ||||
|       addOrUpdateVisible: false, | ||||
|       productOrUpdateVisible: false, | ||||
|       formConfig: [ | ||||
|         // { | ||||
|         //   type: "", | ||||
|         //   label: i18n.t("params.paramCode"), | ||||
|         //   placeholder: i18n.t("params.paramCode"), | ||||
|         //   param: "paramCode", | ||||
|         // }, | ||||
|         // { | ||||
|         //   type: "separate", | ||||
|         // }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('search'), | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('add'), | ||||
|           name: "add", | ||||
|           color: "success", | ||||
|           plain: true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('export'), | ||||
|           name: "export", | ||||
|           color: "primary", | ||||
|           plain: true | ||||
|         } | ||||
|       ], | ||||
|     }; | ||||
|   }, | ||||
|   components: { | ||||
|     qualityChangeSearch, | ||||
|     // supplierProduct, | ||||
|     qualityChangeAdd | ||||
|   }, | ||||
|   // mounted () { | ||||
|   //   this.getData(); | ||||
|   // }, | ||||
|   methods: { | ||||
|     //search-bar点击 | ||||
|     handleProductCancel() { | ||||
|       this.productOrUpdateVisible = false; | ||||
|       this.productOrEditTitle = ""; | ||||
|     }, | ||||
|     handleCurrentChange(val) { | ||||
|       console.log(val); | ||||
|       this.productData = val.newVal ? val.newVal : {} | ||||
|     }, | ||||
|     setCurrent(index) { | ||||
|       this.$refs.palletTable1.setCurrent("palletTable", index); | ||||
|     }, | ||||
|     // handleSearchCancel() { | ||||
|     //   this.searchOrEditTitle = ""; | ||||
|     //   this.searchOrUpdateVisible = false; | ||||
|     // }, | ||||
|     conditionSearch() { | ||||
|       this.searchOrEditTitle = "搜索"; | ||||
|       this.searchOrUpdateVisible = true; | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs.searchOrUpdate.init(); | ||||
|       }); | ||||
|     }, | ||||
|     // handleConfirm() { | ||||
|     //   this.$refs.addOrUpdate.dataFormSubmitHandle(); | ||||
|     // }, | ||||
|     // conditionSearchSubmit() {}, | ||||
|     conditionSearchSubmit(dataForm) { | ||||
|       // console.log(key); | ||||
|       // console.log(key); | ||||
|       this.listQuery.supplierName = dataForm.supplierName | ||||
|       this.listQuery.page = 1; | ||||
|       this.getDataList(); | ||||
|       this.searchOrUpdateVisible = false; | ||||
|       // console.log(11111); | ||||
|       // this.conditionSearchSubmit(); | ||||
|     }, | ||||
|     handleClick(val) { | ||||
|       if (val.type === "delete") { | ||||
|         this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", { | ||||
|           confirmButtonText: "确定", | ||||
|           cancelButtonText: "取消", | ||||
|           type: "warning", | ||||
|         }) | ||||
|           .then(() => { | ||||
|             this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => { | ||||
|               if (data && data.code === 0) { | ||||
|                 this.$message({ | ||||
|                   message: "操作成功", | ||||
|                   type: "success", | ||||
|                   duration: 1500, | ||||
|                   onClose: () => { | ||||
|                     this.getDataList() | ||||
|                   }, | ||||
|                 }); | ||||
|               } else { | ||||
|                 this.$message.error(data.msg); | ||||
|               } | ||||
|             }); | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       } else if (val.type === 'edit') { | ||||
|         this.addOrUpdateVisible = true | ||||
|         this.addOrEditTitle = this.$t('edit') | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs.addOrUpdate.init(val.data.id); | ||||
|         }); | ||||
|       } | ||||
|     }, | ||||
|     // addOrUpdateHandle(productData) { | ||||
|     //   this.addOrUpdateVisible = true; | ||||
|     //   this.$nextTick(() => { | ||||
|     //     this.$refs.addOrUpdate.init(productData); | ||||
|     //   }); | ||||
|     // }, | ||||
|     buttonClick(val) { | ||||
|       console.log(val) | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           // this.listQuery.paramCode = val.paramCode; | ||||
|           this.listQuery.supplierName = val.supplierName ? val.supplierName : undefined | ||||
|           this.listQuery.supplierStatus = val.supplierStatus ? val.supplierStatus : undefined | ||||
|           this.listQuery.supplierTypeId = val.supplierTypeId ? val.supplierTypeId : undefined | ||||
|           this.listQuery.ment = this.ment ? this.ment : undefined | ||||
|           // console.log(i18n); | ||||
|           this.listQuery.page = 1; | ||||
|           this.getDataList(); | ||||
|           break; | ||||
|         case "export": | ||||
|           // this.listQuery.paramCode = val.paramCode; | ||||
|           this.exportHandle() | ||||
|           break; | ||||
|         case "add": | ||||
|           this.addOrEditTitle = '新增' | ||||
|           this.addOrUpdateVisible = true; | ||||
|           this.addOrUpdateHandle() | ||||
|           break; | ||||
|         default: | ||||
|       } | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| @@ -1,139 +1,159 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-13 09:42:39 | ||||
|  * @LastEditTime: 2023-07-21 16:35:04 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-form :model="dataForm" ref="dataForm"  :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" | ||||
|     label-width="150px"> | ||||
|     <el-row> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="partName" :label="$t('gage.partName')"> | ||||
|           <el-input v-model="dataForm.partName" :placeholder="$t('gage.partName')"> | ||||
|           </el-input> | ||||
|   <el-drawer :title="dataForm.id ? $t('edit') : $t('add')" :visible.sync="drawer" size="50%"> | ||||
|     <el-form :model="dataForm" ref="dataForm" :rules="dataRule" label-width="150px"> | ||||
|       <el-row> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="partName" :label="$t('gage.partName')"> | ||||
|             <el-input v-model="dataForm.partName" :placeholder="$t('gage.partName')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="gageId" :label="$t('gage.gageName')"> | ||||
|             <el-select v-model="dataForm.gageId" :placeholder="$t('gage.gageName')" @change="getGageType"> | ||||
|               <el-option v-for="item in gageList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="corporation" :label="$t('gage.corporation')"> | ||||
|             <el-input v-model="dataForm.corporation" :placeholder="$t('gage.corporation')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="itemNo" :label="$t('gage.itemNo')"> | ||||
|             <el-input v-model="dataForm.itemNo" :placeholder="$t('gage.itemNo')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="gageTypeName" :label="$t('gage.gageTypeName')"> | ||||
|             <el-input v-model="dataForm.gageTypeName" :placeholder="$t('gage.gageTypeName')" disabled> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="partNumber" :label="$t('gage.partNumber')"> | ||||
|             <el-input v-model="dataForm.partNumber" :placeholder="$t('gage.partNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="specification" :label="$t('gage.specification')"> | ||||
|             <el-input v-model="dataForm.specification" :placeholder="$t('gage.specification')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="measuringToolSpecification" :label="$t('gage.measuringToolSpecification')"> | ||||
|             <el-input v-model="dataForm.measuringToolSpecification" :placeholder="$t('gage.measuringToolSpecification')" | ||||
|               disabled> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="process" :label="$t('gage.process')"> | ||||
|             <el-input v-model="dataForm.process" :placeholder="$t('gage.process')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="measurementNumber" :label="$t('gage.measurementNumber')"> | ||||
|             <el-input v-model="dataForm.measurementNumber" :placeholder="$t('gage.measurementNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="measuringToolAccuracy" :label="$t('gage.measuringToolAccuracy')"> | ||||
|             <el-input v-model="dataForm.measuringToolAccuracy" :placeholder="$t('gage.measuringToolAccuracy')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="fabrication" :label="$t('gage.fabrication')"> | ||||
|             <el-input v-model="dataForm.fabrication" :placeholder="$t('gage.fabrication')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="publicErrand" :label="$t('gage.publicErrand')"> | ||||
|             <el-input v-model="dataForm.publicErrand" :placeholder="$t('gage.publicErrand')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="precisionDecimalPlace" :label="$t('gage.precisionDecimalPlace')"> | ||||
|             <el-input v-model="dataForm.precisionDecimalPlace" :placeholder="$t('gage.precisionDecimalPlace')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="tester" :label="$t('gage.tester')"> | ||||
|             <el-input v-model="dataForm.tester" :placeholder="$t('gage.tester')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="precisionDecimalPlace" :label="$t('gage.precisionDecimalPlace')"> | ||||
|             <el-input v-model="dataForm.precisionDecimalPlace" :placeholder="$t('gage.precisionDecimalPlace')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="measurementTime" :label="$t('gage.measurementTime')"> | ||||
|             <el-date-picker v-model="dataForm.measurementTime" type="datetime" :placeholder="$t('gage.measurementTime')" | ||||
|               format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|             </el-date-picker> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row> | ||||
|         <el-form-item style="float: right;margin-right: 30px;"> | ||||
|           <el-button @click="handleClose()">{{ $t('cancel') }}</el-button> | ||||
|           <el-button type="primary" @click="dataFormSubmit()">{{ $t('confirm') }} </el-button> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="gageId" :label="$t('gage.gageName')"> | ||||
|           <el-select v-model="dataForm.gageId" :placeholder="$t('gage.gageName')" @change="getGageType"> | ||||
|             <el-option v-for="item in gageList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="corporation" :label="$t('gage.corporation')"> | ||||
|           <el-input v-model="dataForm.corporation" :placeholder="$t('gage.corporation')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="itemNo" :label="$t('gage.itemNo')"> | ||||
|           <el-input v-model="dataForm.itemNo" :placeholder="$t('gage.itemNo')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="gageTypeName" :label="$t('gage.gageTypeName')"> | ||||
|           <el-input v-model="dataForm.gageTypeName" :placeholder="$t('gage.gageTypeName')" disabled> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="partNumber" :label="$t('gage.partNumber')"> | ||||
|           <el-input v-model="dataForm.partNumber" :placeholder="$t('gage.partNumber')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="specification" :label="$t('gage.specification')"> | ||||
|           <el-input v-model="dataForm.specification" :placeholder="$t('gage.specification')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="measuringToolSpecification" :label="$t('gage.measuringToolSpecification')"> | ||||
|           <el-input v-model="dataForm.measuringToolSpecification" :placeholder="$t('gage.measuringToolSpecification')" | ||||
|             disabled> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="process" :label="$t('gage.process')"> | ||||
|           <el-input v-model="dataForm.process" :placeholder="$t('gage.process')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="measurementNumber" :label="$t('gage.measurementNumber')"> | ||||
|           <el-input v-model="dataForm.measurementNumber" :placeholder="$t('gage.measurementNumber')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="measuringToolAccuracy" :label="$t('gage.measuringToolAccuracy')"> | ||||
|           <el-input v-model="dataForm.measuringToolAccuracy" :placeholder="$t('gage.measuringToolAccuracy')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="fabrication" :label="$t('gage.fabrication')"> | ||||
|           <el-input v-model="dataForm.fabrication" :placeholder="$t('gage.fabrication')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="publicErrand" :label="$t('gage.publicErrand')"> | ||||
|           <el-input v-model="dataForm.publicErrand" :placeholder="$t('gage.publicErrand')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="precisionDecimalPlace" :label="$t('gage.precisionDecimalPlace')"> | ||||
|           <el-input v-model="dataForm.precisionDecimalPlace" :placeholder="$t('gage.precisionDecimalPlace')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="tester" :label="$t('gage.tester')"> | ||||
|           <el-input v-model="dataForm.tester" :placeholder="$t('gage.tester')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="precisionDecimalPlace" :label="$t('gage.precisionDecimalPlace')"> | ||||
|           <el-input v-model="dataForm.precisionDecimalPlace" :placeholder="$t('gage.precisionDecimalPlace')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="measurementTime" :label="$t('gage.measurementTime')"> | ||||
|           <el-date-picker v-model="dataForm.measurementTime" type="datetime" :placeholder="$t('gage.measurementTime')" | ||||
|             format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-button @click="getTableData()" type="primary">{{ $t('gage.tabularComputations') }}</el-button> | ||||
|     <base-table :table-props="tableProps" :table-data="tableData" /> | ||||
|   </el-form> | ||||
|       </el-row> | ||||
|     </el-form> | ||||
|     <div v-if="dataForm.id? true :false" style='margin-left: 30px;'> | ||||
|       <el-button @click="getTableData()" type="primary">{{ $t('gage.tabularComputations') }}</el-button> | ||||
|       <el-button @click="tabularComputationsAdd()" type="primary">{{ $t('gage.tabularComputationsAdd') }}</el-button> | ||||
|       <base-table :span-method="objectSpanMethod" :table-props="tableProps" :table-data="tableData" /> | ||||
|       <el-table style="width: 100%" :data="getValues" :show-header="false"> | ||||
|         <el-table-column v-for="(item, index) in getHeaders" :key="index" :prop="item"> | ||||
|         </el-table-column> | ||||
|       </el-table> | ||||
|     </div> | ||||
|     <tabularComputations-add ref="tabularComputationsAddOrUpdate" v-if="tabularComputationsAddShow" | ||||
|       @refreshDataList="getTableData"> | ||||
|     </tabularComputations-add> | ||||
|   </el-drawer> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import debounce from "lodash/debounce"; | ||||
| import basicAdd from "@/mixins/basic-add"; | ||||
| import InnerTable from "./innerTable" | ||||
| import tabularComputationsAdd from "./tabularComputations-add" | ||||
|  | ||||
| import available from "./available"; | ||||
| // const tableProps = [ | ||||
| //   { | ||||
| @@ -201,29 +221,14 @@ import available from "./available"; | ||||
| //   //   ] | ||||
| //   // } | ||||
| // ] | ||||
| const tableProps = [ | ||||
|   { | ||||
|     prop: 'testUserName', | ||||
|     label: '人员', | ||||
|     align: 'center' | ||||
|   }, | ||||
|   { | ||||
|     prop: 'orderNumber', | ||||
|     label: '序号', | ||||
|     align:'center' | ||||
|   }, | ||||
|   { | ||||
|     prop: 'test', | ||||
|     label: '零件', | ||||
|     align: 'center', | ||||
|     children: [ | ||||
|     ] | ||||
|   } | ||||
| ] | ||||
| export default { | ||||
|   mixins: [basicAdd], | ||||
|   components: { | ||||
|     tabularComputationsAdd, | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       tabularComputationsAddShow:false, | ||||
|       urlOptions: { | ||||
|         submitURL: "/gage/qmsGageGrr", | ||||
|         infoURL: "/gage/qmsGageGrr/{ id }", | ||||
| @@ -234,10 +239,11 @@ export default { | ||||
|         getCustomerListURL: '/basic/qmsCustomer/page', | ||||
|         getTabularComputationsURL: '/gage/qmsGageGrrTester/table' | ||||
|       }, | ||||
|       drawer:false, | ||||
|       trueTableProps: [], | ||||
|       gageList: [], | ||||
|       userList: [], | ||||
|       tableProps, | ||||
|       tableProps:[], | ||||
|       customerList: [], | ||||
|       tableData:[], | ||||
|       gageTypeList:[], | ||||
| @@ -304,7 +310,30 @@ export default { | ||||
|           name: '自校报告' | ||||
|         } | ||||
|       ], | ||||
|       column1Arr:[], | ||||
|       column1Index: 0, | ||||
|       column2Arr: {}, | ||||
|       column2Index: 0, | ||||
|       visible: false, | ||||
|       data: [], | ||||
|       headers: [ | ||||
|         { | ||||
|           prop: 'meanRange', | ||||
|           label: '极差均值', | ||||
|         }, | ||||
|         { | ||||
|           prop: 'meanDifference', | ||||
|           label: '均值差', | ||||
|         }, | ||||
|         { | ||||
|           prop: 'upperControlLimit', | ||||
|           label: '控制上限', | ||||
|         }, | ||||
|         { | ||||
|           prop: 'lowerControlLimit', | ||||
|           label: '控制下限', | ||||
|         }, | ||||
|       ], | ||||
|       // tableProp2, | ||||
|       chartDataArr: [], | ||||
|       dataForm: { | ||||
| @@ -332,6 +361,14 @@ export default { | ||||
|     }; | ||||
|   }, | ||||
|   computed: { | ||||
|     getHeaders() { | ||||
|       return this.data.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title']) | ||||
|     }, | ||||
|     getValues() { | ||||
|       return this.headers.map(item => { | ||||
|         return this.data.reduce((pre, cur, index) => Object.assign(pre, { ['value' + index]: cur[item.prop] }), { 'title': item.label, }); | ||||
|       }); | ||||
|     }, | ||||
|     dataRule() { | ||||
|       return { | ||||
|         publicErrand: [ | ||||
| @@ -373,7 +410,62 @@ export default { | ||||
|     this.tableProps = [] | ||||
|   }, | ||||
|   methods: { | ||||
|     tabularComputationsAdd() { | ||||
|       this.tabularComputationsAddShow = true  | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs.tabularComputationsAddOrUpdate.init(this.dataForm.id) | ||||
|       }) | ||||
|     }, | ||||
|     setrowspans() { | ||||
|       // 先给所有的数据都加一个v.rowspan = 1 | ||||
|       this.tableData.forEach(v => { | ||||
|         v.rowspan = 1; | ||||
|         v.rangeAverageRowspan = 1; | ||||
|       }); | ||||
|       // 双层循环 | ||||
|       for (let i = 0; i < this.tableData.length; i++) { | ||||
|         // 内层循环,上面已经给所有的行都加了v.rowspan = 1 | ||||
|         // 这里进行判断 | ||||
|         // 如果当前行的id和下一行的id相等 | ||||
|         // 就把当前v.rowspan + 1 | ||||
|         // 下一行的v.rowspan - 1 | ||||
|         for (let j = i + 1; j < this.tableData.length; j++) { | ||||
|           //此处可根据相同字段进行合并,此处是根据的id | ||||
|           if (this.tableData[i].finalAverage === this.tableData[j].finalAverage) { | ||||
|             this.tableData[i].rowspan++; | ||||
|             this.tableData[j].rowspan--; | ||||
|           } | ||||
|           if (this.tableData[i].rangeAverage === this.tableData[j].rangeAverage) { | ||||
|             this.tableData[i].rangeAverageRowspan++; | ||||
|             this.tableData[j].rangeAverageRowspan--; | ||||
|           } | ||||
|         } | ||||
|         // 这里跳过已经重复的数据 | ||||
|         i = i + this.tableData[i].rowspan - 1; | ||||
|       } | ||||
|     }, | ||||
|     objectSpanMethod({ row, column, rowIndex, columnIndex }) { | ||||
|       // console.log(column) | ||||
|       if (columnIndex === 0) { | ||||
|         return { | ||||
|           rowspan: row.rowspan, | ||||
|           colspan: 1 | ||||
|         }; | ||||
|       } else if (column.label === '最终均值') { | ||||
|         return { | ||||
|           rowspan: row.rowspan, | ||||
|           colspan: 1 | ||||
|         }; | ||||
|       } | ||||
|       if (column.label === '极差均值') { | ||||
|         return { | ||||
|           rowspan: row.rangeAverageRowspan, | ||||
|           colspan: 1 | ||||
|         }; | ||||
|       } | ||||
|     }, | ||||
|     getTableData() { | ||||
|       this.tableData = [] | ||||
|       this.$http.get(this.urlOptions.getTabularComputationsURL, { | ||||
|         params: { | ||||
|           gageGrrId:this.dataForm.id | ||||
| @@ -407,42 +499,117 @@ export default { | ||||
|             //   //   ] | ||||
|             //   // }, | ||||
|             // ] | ||||
|             let propsData = [ | ||||
|               { | ||||
|                 prop: 'testUserName', | ||||
|                 label: '人员', | ||||
|                 align: 'center', | ||||
|                 subcomponent: InnerTable | ||||
|               }, | ||||
|               { | ||||
|                 prop: 'orderNumber', | ||||
|                 label: '序号', | ||||
|                 align: 'center', | ||||
|               }, | ||||
|               { | ||||
|                 prop: 'test', | ||||
|                 label: '零件', | ||||
|                 align: 'center', | ||||
|                 children: [ | ||||
|                   { | ||||
|                     prop: 'orderAverage', | ||||
|                     label: '序号均值', | ||||
|                     align: 'center', | ||||
|                   }, | ||||
|                 ] | ||||
|               }, | ||||
|               { | ||||
|                 prop: 'finalAverage', | ||||
|                 label: '最终均值', | ||||
|                 align: 'center' | ||||
|               }, | ||||
|               { | ||||
|                 prop: 'rangeAverage', | ||||
|                 label: '极差均值', | ||||
|                 align: 'center' | ||||
|               }, | ||||
|               { | ||||
|                 prop: 'partAverageMean', | ||||
|                 label: 'Rp零件均值极差', | ||||
|                 align: 'center' | ||||
|               } | ||||
|             ] | ||||
|             Object.keys(result.data.finalPartMapList).forEach((item) => { | ||||
|               propsData[2].children.push({ | ||||
|                 label: String(item), | ||||
|                 prop: 'measuredData' + String(item), | ||||
|                 align: 'center' | ||||
|               }) | ||||
|             }) | ||||
|             this.tableProps = propsData | ||||
|             let orderAverageArr = [] | ||||
|             let rangeArr = [] | ||||
|             for (let i = 0; i < result.data.qmsGageGrrTesterDTOList.length; i++){ | ||||
|               // console.log(result.data.qmsGageGrrTesterDTOList[i].orderMapList) | ||||
|               Object.keys(result.data.qmsGageGrrTesterDTOList[i].partMapList).forEach((item) => { | ||||
|                 this.tableProps[2].children.push({ | ||||
|                   label: String(item), | ||||
|                   prop: 'measuredData' + String(item), | ||||
|                   align: 'center' | ||||
|                 }) | ||||
|               // console.log(result.data.qmsGageGrrTesterDTOLis[i]) | ||||
|               Object.keys(result.data.qmsGageGrrTesterDTOList[i].orderAverage).forEach((item) => { | ||||
|                 orderAverageArr.push(result.data.qmsGageGrrTesterDTOList[i].orderAverage[item]) | ||||
|               }) | ||||
|               Object.keys(result.data.qmsGageGrrTesterDTOList[i].orderMapList).forEach((item) => { | ||||
|                 console.log(item) | ||||
|                let measuredDataProp = 'measuredData' + String(item) | ||||
|                 this.tableData.push({ | ||||
|                 arr.push({ | ||||
|                   testUserName: result.data.qmsGageGrrTesterDTOList[i].testUserName, | ||||
|                   orderNumber: item, | ||||
|                   finalAverage: '', | ||||
|                   gageGrrId: result.data.qmsGageGrrTesterDTOList[i].gageGrrId, | ||||
|                   partAverageMean: '', | ||||
|                   [measuredDataProp]: '', | ||||
|                 }) | ||||
|                 }) | ||||
|                 Object.keys(result.data.qmsGageGrrTesterDTOList[i].orderMapList).forEach((item) => { | ||||
|                   result.data.qmsGageGrrTesterDTOList[i].orderMapList[item].forEach((ele, index, arr) => { | ||||
|                     let measuredData = 'measuredData' + String(index + 1) | ||||
|                     console.log(item) | ||||
|                     // console.log(arr) | ||||
|                     // console.log(ele) | ||||
|                     // console.log(this.tableProps[2].children.prop); | ||||
|                     // console.log(this.tableProps[2].children[item - 1].prop) | ||||
|                     console.log(index) | ||||
|                     console.log(measuredData) | ||||
|                     console.log(ele) | ||||
|                     // console.log(this.tableData[index + 1]) | ||||
|                     this.tableData[item-1][measuredData] = ele | ||||
|                     // console.log(this.tableData[item - 1])        | ||||
|                   }) | ||||
|               }) | ||||
|               Object.keys(result.data.qmsGageGrrTesterDTOList[i].range).forEach((item) => { | ||||
|                 rangeArr.push(result.data.qmsGageGrrTesterDTOList[i].range[item]) | ||||
|               }) | ||||
|             } | ||||
|             this.tableData = arr | ||||
|             // console.log(Object.keys(result.data.finalPartMapList)) | ||||
|             Object.keys(result.data.finalPartMapList).forEach((item) => { | ||||
|               // console.log(item) | ||||
|               let measuredData = 'measuredData' + String(item) | ||||
|               console.log(result.data.finalPartMapList[item]) | ||||
|               result.data.finalPartMapList[item].forEach((ele, index) => { | ||||
|                 this.tableData[index][measuredData] = ele | ||||
|               }) | ||||
|             }) | ||||
|             orderAverageArr.forEach((ele, index) => { | ||||
|               this.tableData[index]['orderAverage'] = ele | ||||
|             }) | ||||
|             this.tableData.forEach((ele, index) => { | ||||
|               ele.partAverageMean = result.data.partAverageMean | ||||
|               result.data.qmsGageGrrTesterDTOList.forEach((item, i) => { | ||||
|                 // console.log(item.finalAverage) | ||||
|                 if (this.tableData[index].testUserName === result.data.qmsGageGrrTesterDTOList[i].testUserName) { | ||||
|                   ele.finalAverage = item.finalAverage | ||||
|                   ele.rangeAverage = item.rangeAverage | ||||
|                 } | ||||
|               }) | ||||
|             }) | ||||
|             // rangeArr.forEach((ele, index) => { | ||||
|             //   this.data.push({ | ||||
|             //     range:ele | ||||
|             //   }) | ||||
|             // }) | ||||
|             // console.log() | ||||
|             let dataDetail = [] | ||||
|             dataDetail.push({ | ||||
|               meanRange: result.data.meanRange, | ||||
|               lowerControlLimit: result.data.lowerControlLimit, | ||||
|               meanDifference: result.data.meanDifference, | ||||
|               upperControlLimit: result.data.upperControlLimit, | ||||
|             }) | ||||
|             this.data = dataDetail | ||||
|             console.log(this.tableProps) | ||||
|             console.log(this.tableData) | ||||
|             this.setrowspans() | ||||
|             // console.log(this.table) | ||||
|             // console.log(moreData,'1111') | ||||
|             // for (let i = 0; i < 30; i++) { | ||||
| @@ -540,7 +707,7 @@ export default { | ||||
|       this.dataForm.id = id || "" | ||||
|       // console.log(11111) | ||||
|       // this.dataForm.dictTypeId = dictTypeId || ""; | ||||
|       this.visible = true | ||||
|       this.drawer = true | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs["dataForm"].resetFields(); | ||||
|         if (this.dataForm.id) { | ||||
| @@ -571,16 +738,16 @@ export default { | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getUserList, this.listQuery) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res.data); | ||||
|             this.userList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       // this.$http | ||||
|       //   .get(this.urlOptions.getUserList, this.listQuery) | ||||
|       //   .then(({ data: res }) => { | ||||
|       //     if (res.code === 0) { | ||||
|       //       console.log(res.data); | ||||
|       //       this.userList = res.data.list | ||||
|       //     } | ||||
|       //   }) | ||||
|       //   .catch(() => { | ||||
|       //   }) | ||||
|     }, | ||||
|     // getCode() { | ||||
|     //   this.$http.post(this.urlOptions.getCodeURL) | ||||
| @@ -608,6 +775,34 @@ export default { | ||||
|         }) | ||||
|         .catch(() => { }) | ||||
|     }, | ||||
|     handleClose() { | ||||
|       this.drawer = false | ||||
|       this.$refs.dataForm.resetFields() | ||||
|     }, | ||||
|     dataFormSubmit() { | ||||
|       this.$refs["dataForm"].validate((valid) => { | ||||
|         if (!valid) { | ||||
|           return false; | ||||
|         } | ||||
|         this.$http[!this.dataForm.id ? "post" : "put"](this.urlOptions.submitURL, this.dataForm) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.$message({ | ||||
|               message: this.$t("prompt.success"), | ||||
|               type: "success", | ||||
|               duration: 500, | ||||
|               onClose: () => { | ||||
|                 this.drawer = false | ||||
|                 this.$refs.dataForm.resetFields() | ||||
|                 this.$emit("refreshDataList") | ||||
|               }, | ||||
|             }); | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       }); | ||||
|     }, | ||||
|     // 表单提交 | ||||
|     dataFormSubmitHandle: debounce( | ||||
|       function () { | ||||
|   | ||||
							
								
								
									
										113
									
								
								src/views/modules/gage/components/innerTable.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,113 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-04-18 09:19:02 | ||||
|  * @LastEditTime: 2023-07-20 16:34:04 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-popover placement="right" width="400" trigger="click"> | ||||
|     <base-table id="palletTable" :table-props="tableProps" ref="palletTable1" :table-data="tableData"> | ||||
|     </base-table> | ||||
|     <!-- <i slot="reference" class="el-icon-plus" @click="showInnerTable(injectData.id)" /> --> | ||||
|     <span slot="reference" @click="showInnerTable(injectData.id)">{{ injectData.testUserName}} </span> | ||||
|   </el-popover> | ||||
| </template> | ||||
| <script> | ||||
| import i18n from "@/i18n" | ||||
| import { timeFormatter } from '@/filters' | ||||
|  | ||||
| const tableProps = [ | ||||
|   { | ||||
|     prop: "partAverage", | ||||
|     label: '零件均值', | ||||
|   }, | ||||
|   { | ||||
|     prop: "range", | ||||
|     label:'零件极差', | ||||
|     // filter: timeFormatter | ||||
|   }, | ||||
| ]; | ||||
| export default { | ||||
|   name: 'InnerTable', | ||||
|   props: { | ||||
|     injectData: { | ||||
|       type: Object, | ||||
|       default: () => ({}) | ||||
|     }, | ||||
|     itemProp: { | ||||
|       type: String | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       tableProps, | ||||
|       list: this.injectData, | ||||
|       tableData: [], | ||||
|       urlOptions: { | ||||
|         getTabularComputationsURL: '/gage/qmsGageGrrTester/table' | ||||
|       }, | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     showInnerTable() { | ||||
|       this.tableData = [] | ||||
|       this.$http.get(this.urlOptions.getTabularComputationsURL, { | ||||
|         params: { | ||||
|           gageGrrId: this.injectData.gageGrrId | ||||
|         }, | ||||
|       }) | ||||
|         .then(({ data: result }) => { | ||||
|           if (result.code === 0) { | ||||
|             console.log(result) | ||||
|             let partAverageArr = [] | ||||
|             let rangeArr = [] | ||||
|             // let aa = [] | ||||
|             // let moreData = [ | ||||
|             //   // { | ||||
|             //   //   testUserName: null, | ||||
|             //   //   data: [ | ||||
|             //   //     { | ||||
|             //   //       orderNumber: result.data.qmsGageGrrTesterDTOList[i].list[j].orderNumber, | ||||
|             //   //       data: aa | ||||
|             //   //     }, | ||||
|             //   //     { | ||||
|             //   //       equipmentName: '机器人投入数', | ||||
|             //   //       data: aa | ||||
|             //   //     }, | ||||
|             //   //     { | ||||
|             //   //       equipmentName: '良品总投入数', | ||||
|             //   //       data: aa | ||||
|             //   //     }, | ||||
|             //   //     { | ||||
|             //   //       equipmentName: '工序损耗', | ||||
|             //   //       data: aa | ||||
|             //   //     } | ||||
|             //   //   ] | ||||
|             //   // }, | ||||
|             // ] | ||||
|  | ||||
|             for (let i = 0; i < result.data.qmsGageGrrTesterDTOList.length; i++) { | ||||
|               if (this.injectData.testUserName === result.data.qmsGageGrrTesterDTOList[i].testUserName) { | ||||
|                 Object.keys(result.data.qmsGageGrrTesterDTOList[i].partAverage).forEach((item) => { | ||||
|                   partAverageArr.push({ | ||||
|                     partAverage:result.data.qmsGageGrrTesterDTOList[i].partAverage[item] | ||||
|                   }) | ||||
|                 }) | ||||
|                 Object.keys(result.data.qmsGageGrrTesterDTOList[i].range).forEach((item) => { | ||||
|                   rangeArr.push(result.data.qmsGageGrrTesterDTOList[i].range[item]) | ||||
|                 }) | ||||
|               } | ||||
|             } | ||||
|             this.tableData = partAverageArr | ||||
|             rangeArr.forEach((item,index) => { | ||||
|               this.tableData[index]['range'] = item | ||||
|             }) | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
							
								
								
									
										291
									
								
								src/views/modules/gage/components/tabularComputations-add.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,291 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-21 17:02:05 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-drawer :append-to-body="true" title="" :visible.sync="drawer" size="50%"> | ||||
|     <el-form :model="form" ref="dataForm" :rules="dataRule" label-width="80px"> | ||||
|       <!--省略,其他表单项--> | ||||
|       <el-row class="row" v-for="(item,index) in form.list" :key="index"> | ||||
|         <!--设置动态标签,只在部门第一行显示--> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item label="检测人员" :prop="'list.' + index +'.gageGrrTesterId'" :rules="{ | ||||
|             required: true, message: '请选择部门', trigger: 'blur' | ||||
|           }"> | ||||
|             <el-select class="input" v-model="item.gageGrrTesterId"> | ||||
|               <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id"></el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item label="序号" :prop="'list.' + index +'.orderNumber'" :rules="{ | ||||
|             required: true, message: '请输入人数', trigger: 'blur' | ||||
|           }"> | ||||
|             <el-input @change="getOrderNumber" class="input" v-model="item.orderNumber" placeholder="人数"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item label="零件" :prop="'list.' + index +'.part'"> | ||||
|             <el-input @change="getPart" class="input" v-model="item.part" placeholder="备注"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item label="测量值" :prop="'list.' + index +'.measuredData'"> | ||||
|             <el-input class="input" v-model="item.bz" placeholder="备注"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="1"> | ||||
|           <div> <i class="el-icon-circle-plus" @click="addDept"></i></div> | ||||
|           <div> | ||||
|             <i v-if="form.list.length>1" class="el-icon-remove-outline" @click="delDept(index)"></i> | ||||
|           </div> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-form-item style="float: right;margin-right: 30px;"> | ||||
|         <el-button @click="handleClose()">{{ $t('cancel') }}</el-button> | ||||
|         <el-button type="primary" @click="dataFormSubmit()">{{ $t('confirm') }} </el-button> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|   </el-drawer> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import debounce from "lodash/debounce"; | ||||
| import basicAdd from "@/mixins/basic-add"; | ||||
| // import InnerTable from "./innerTable" | ||||
| // import available from "./available"; | ||||
| // const tableProps = [ | ||||
| //   { | ||||
| //     prop: 'equipmentName', | ||||
| //     label: '设备名称' | ||||
| //   }, | ||||
| //   // { | ||||
| //   //   prop: 'lineA', | ||||
| //   //   label: '有效时间(h)', | ||||
| //   //   children: [ | ||||
| //   //     { | ||||
| //   //       prop: 'workTime', | ||||
| //   //       label: '工作时长' | ||||
| //   //     }, | ||||
| //   //     { | ||||
| //   //       prop: 'workTimeRate', | ||||
| //   //       label: '工作时长比率' | ||||
| //   //     } | ||||
| //   //   ] | ||||
| //   // }, | ||||
| //   // { | ||||
| //   //   prop: 'lineB', | ||||
| //   //   label: '关机时间(h)', | ||||
| //   //   children: [ | ||||
| //   //     { | ||||
| //   //       prop: 'downTime', | ||||
| //   //       label: '停机时长' | ||||
| //   //     }, | ||||
| //   //     { | ||||
| //   //       prop: 'downTimeRate', | ||||
| //   //       label: '停机时长比率' | ||||
| //   //     } | ||||
| //   //   ] | ||||
| //   // }, | ||||
| //   // { | ||||
| //   //   prop: 'lineC', | ||||
| //   //   label: '中断损失', | ||||
| //   //   children: [ | ||||
| //   //     { | ||||
| //   //       prop: 'faultTime', | ||||
| //   //       label: '故障时长' | ||||
| //   //     }, | ||||
| //   //     { | ||||
| //   //       prop: 'faultTimeRate', | ||||
| //   //       label: '故障时长比率' | ||||
| //   //     } | ||||
| //   //   ] | ||||
| //   // }, | ||||
| //   // { | ||||
| //   //   prop: 'lineD', | ||||
| //   //   label: '速度损失', | ||||
| //   //   children: [ | ||||
| //   //     { | ||||
| //   //       prop: 'actualProcessingSpeed', | ||||
| //   //       label: '实际加工速度' | ||||
| //   //     }, | ||||
| //   //     { | ||||
| //   //       prop: 'theoreticalProcessingSpeed', | ||||
| //   //       label: '理论加工速度' | ||||
| //   //     }, | ||||
| //   //     { | ||||
| //   //       prop: 'speedActuationRate', | ||||
| //   //       label: '速度开动率' | ||||
| //   //     } | ||||
| //   //   ] | ||||
| //   // } | ||||
| // ] | ||||
| export default { | ||||
|   mixins: [basicAdd], | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         submitURL: "/gage/qmsGageGrrTester", | ||||
|         // infoURL: "/gage/qmsGageGrr/{ id }", | ||||
|         // dictionaryDetailList: '/mutual/qmsDataDictionaryDetail/page', | ||||
|         getUserList: '/sys/user/page', | ||||
|         // getGageTypeList: '/gage/qmsGageType/page', | ||||
|         // getGageList: '/gage/qmsGage/page', | ||||
|         // getCustomerListURL: '/basic/qmsCustomer/page', | ||||
|         // getTabularComputationsURL: '/gage/qmsGageGrrTester/table' | ||||
|       }, | ||||
|       userList:[], | ||||
|       drawer: false, | ||||
|       form: { | ||||
|         gageGrrId:null, | ||||
|         list: [ | ||||
|           { gageGrrTesterId: null, orderNumber: null, part: null, measuredData: null }, | ||||
|           { gageGrrTesterId: null, orderNumber: null, part: null, measuredData: null } | ||||
|         ],//默认展示一行部门数据 | ||||
|       } | ||||
|     }; | ||||
|   }, | ||||
|   computed: { | ||||
|     dataRule() { | ||||
|       return { | ||||
|         publicErrand: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ], | ||||
|         gageId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         measurementNumber: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ], | ||||
|         partNumber: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ] | ||||
|       }; | ||||
|     }, | ||||
|   }, | ||||
|   mounted () { | ||||
|     this.getData() | ||||
|   }, | ||||
|   methods: { | ||||
|     init(id, ) { | ||||
|       this.form.gageGrrId = id || "" | ||||
|       // console.log(11111) | ||||
|       // this.dataForm.dictTypeId = dictTypeId || ""; | ||||
|       this.drawer = true | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs["dataForm"].resetFields() | ||||
|         // if (this.dataForm.id) { | ||||
|         //   // this.getInfo() | ||||
|         // } else { | ||||
|         //   // this.getCode() | ||||
|         // } | ||||
|       }); | ||||
|     }, | ||||
|     getPart(val) { | ||||
|       let arr = [] | ||||
|       this.form.list.forEach(ele => { | ||||
|         arr.push(item.orderNumber) | ||||
|       }) | ||||
|       const uniqueArr = [...new Set(arr)] | ||||
|       sortArr = uniqueArr.sort() | ||||
|       const maxValue = sortArr[sortArr.length - 1] | ||||
|       this.$message({ | ||||
|         message: '当前零件最大值为' + maxValue + '请保持其他测量人员零件最大值一致', | ||||
|         type: 'warning' | ||||
|       }); | ||||
|     }, | ||||
|     getOrderNumber(val) { | ||||
|       let arr = [] | ||||
|       this.form.list.forEach(ele => { | ||||
|         arr.push(item.orderNumber) | ||||
|       }) | ||||
|       const uniqueArr = [...new Set(arr)] | ||||
|       sortArr = uniqueArr.sort() | ||||
|       const maxValue = sortArr[sortArr.length - 1] | ||||
|       this.$message({ | ||||
|         message: '当前序号最大值为'+maxValue+'请保持其他测量人员序号最大值一致', | ||||
|         type: 'warning' | ||||
|       }); | ||||
|     }, | ||||
|     addDept() { | ||||
|       this.form.list.push({ bm: "", bmrs: "", bz: "" }); | ||||
|     }, | ||||
|     delDept(index) { | ||||
|       this.form.list.splice(index, 1); | ||||
|     }, | ||||
|     getData() { | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getUserList, this.listQuery) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res.data); | ||||
|             this.userList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|     }, | ||||
|     // getCode() { | ||||
|     //   this.$http.post(this.urlOptions.getCodeURL) | ||||
|     //     .then(({ data: res }) => { | ||||
|     //       if (res.code === 0) { | ||||
|     //         console.log(res); | ||||
|     //         this.dataForm.customSamplingCode = res.data | ||||
|     //       } | ||||
|     //     }) | ||||
|     //     .catch(() => { | ||||
|     //     }); | ||||
|     // }, | ||||
|     // 获取信息 | ||||
|     handleClose() { | ||||
|       this.drawer = false | ||||
|       this.$refs.dataForm.resetFields() | ||||
|     }, | ||||
|     dataFormSubmit() { | ||||
|       console.log(this.form) | ||||
|       this.$refs["dataForm"].validate((valid) => { | ||||
|         if (!valid) { | ||||
|           return false; | ||||
|         } | ||||
|         this.$http.post(this.urlOptions.submitURL, this.form) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.$message({ | ||||
|               message: this.$t("prompt.success"), | ||||
|               type: "success", | ||||
|               duration: 500, | ||||
|               onClose: () => { | ||||
|                 this.drawer = false | ||||
|                 this.$refs.dataForm.resetFields() | ||||
|                 this.$emit("refreshDataList") | ||||
|               }, | ||||
|             }); | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       }) | ||||
|     }, | ||||
|     // 表单提交 | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-13 09:31:24 | ||||
|  * @LastEditTime: 2023-07-21 15:39:23 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -20,11 +20,11 @@ | ||||
|       <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|         @pagination="getDataList" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|       <!-- <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <gapeGrs-add ref="addOrUpdate" @refreshDataList="successSubmit"> | ||||
|         </gapeGrs-add> | ||||
|       </base-dialog> | ||||
|       </base-dialog> --> | ||||
|       <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel" | ||||
|         @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <gage-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"></gage-search> | ||||
| @@ -34,7 +34,7 @@ | ||||
|               {{ $t("close") }} | ||||
|             </el-button> | ||||
|             <el-button size="small" class="btnTextStyle" type="primary" plain @click="handleSearchReset">{{ $t("reset") | ||||
|             }}</el-button> | ||||
|               }}</el-button> | ||||
|             <el-button type="primary" size="small" class="btnTextStyle" @click="handleSearchConfirm"> | ||||
|               {{ $t("search") }} | ||||
|             </el-button> | ||||
| @@ -42,6 +42,8 @@ | ||||
|         </el-row> | ||||
|       </base-dialog> | ||||
|       <report-show ref="reportOrUpdate" v-if="reportShow"></report-show> | ||||
|       <gapeGrs-add ref="gapeGrsAddOrUpdate" v-if="gapeGrsAddShow" @refreshDataList="getDataList"> | ||||
|       </gapeGrs-add> | ||||
|     </div> | ||||
|   </el-card> | ||||
| </template> | ||||
| @@ -52,6 +54,7 @@ import gapeGrsAdd from "./components/gageGrs-add" | ||||
| import reportShow from "./components/report-show" | ||||
| import gageSearch from "./components/gageSearch" | ||||
| import basicSearch from "@/mixins/basic-search" | ||||
|  | ||||
| import { timeFormatter } from '@/filters' | ||||
| import i18n from "@/i18n" | ||||
| const tableProps = [ | ||||
| @@ -160,6 +163,7 @@ export default { | ||||
|         deleteURL: "/gage/qmsGageGrr", | ||||
|         exportUrl: '/gage/qmsGageGrr/export' | ||||
|       }, | ||||
|       gapeGrsAddShow:false, | ||||
|       grrReportData:{}, | ||||
|       dialogTableVisible:false, | ||||
|       tableProps, | ||||
| @@ -295,11 +299,11 @@ export default { | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       } else if (val.type === 'edit') { | ||||
|         this.addOrUpdateVisible = true | ||||
|         this.addOrEditTitle = this.$t('edit') | ||||
|         this.gapeGrsAddShow = true | ||||
|         // this.addOrEditTitle = this.$t('edit') | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs.addOrUpdate.init(val.data.id); | ||||
|         }); | ||||
|           this.$refs.gapeGrsAddOrUpdate.init(val.data.id); | ||||
|         }) | ||||
|       } else if (val.type === 'parameter') { | ||||
|         this.$router.push({ | ||||
|           name: 'gage-qmsGageTypeDifferenceParameter', | ||||
| @@ -332,9 +336,11 @@ export default { | ||||
|           this.exportHandle(); | ||||
|           break; | ||||
|         case "add": | ||||
|           this.addOrEditTitle = '新增' | ||||
|           this.addOrUpdateVisible = true; | ||||
|           this.addOrUpdateHandle() | ||||
|           this.gapeGrsAddShow = true | ||||
|           // this.addOrEditTitle = this.$t('edit') | ||||
|           this.$nextTick(() => { | ||||
|             this.$refs.gapeGrsAddOrUpdate.init() | ||||
|           }) | ||||
|           break; | ||||
|         default: | ||||
|           console.log(val) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-06-20 15:25:08 | ||||
|  * @LastEditTime: 2023-07-17 10:23:54 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -10,7 +10,7 @@ | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="factoryId" :label="$t('code.factoryName')"> | ||||
|           <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|           <el-select  v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|             <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -18,26 +18,26 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> | ||||
|           <el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" | ||||
|             format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|           <el-date-picker  v-model="dataForm.inspectionTime" type="datetime" | ||||
|             :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> | ||||
|           <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|           <el-input  v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="batchNo" :label="$t('code.batchNo')"> | ||||
|           <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|           <el-input  v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> | ||||
|           <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|           <el-select  v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|             <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -53,7 +53,7 @@ | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="productId" :label="$t('code.productName')"> | ||||
|           <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|           <el-select  v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|             <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -61,7 +61,7 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="supplierId" :label="$t('code.supplierName')"> | ||||
|           <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|           <el-select  v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|             <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -69,31 +69,34 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> | ||||
|           <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> | ||||
|           <el-input  v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> | ||||
|           <el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|           <el-input  v-model="dataForm.inspectionQuantity" | ||||
|             :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="batchSize" :label="$t('code.batchSize')"> | ||||
|           <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|           <el-input  v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> | ||||
|           <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> | ||||
|           <el-input  v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="companyId" :label="$t('code.companyName')"> | ||||
|           <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|           <el-select  v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|             <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -101,15 +104,15 @@ | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="userId" :label="$t('code.username')"> | ||||
|           <el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|             <el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|           <el-select  v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|             <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> | ||||
|           <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|           <el-select  v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|             <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -119,7 +122,7 @@ | ||||
|     <el-row :gutter="24"> | ||||
|       <el-col :span="8"> | ||||
|         <el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> | ||||
|           <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|           <el-select  v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|             <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-06-20 15:28:55 | ||||
|  * @LastEditTime: 2023-07-17 10:23:45 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -11,7 +11,7 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="factoryId" :label="$t('code.factoryName')"> | ||||
|             <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|             <el-select  v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> | ||||
|               <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -19,26 +19,26 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> | ||||
|             <el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" | ||||
|               format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|             <el-date-picker  v-model="dataForm.inspectionTime" type="datetime" | ||||
|               :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|             </el-date-picker> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> | ||||
|             <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|             <el-input  v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="batchNo" :label="$t('code.batchNo')"> | ||||
|             <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|             <el-input  v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> | ||||
|             <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|             <el-select  v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> | ||||
|               <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -54,7 +54,7 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="productId" :label="$t('code.productName')"> | ||||
|             <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|             <el-select  v-model="dataForm.productId" :placeholder="$t('code.productName')"> | ||||
|               <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -62,7 +62,7 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="supplierId" :label="$t('code.supplierName')"> | ||||
|             <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|             <el-select  v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> | ||||
|               <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -70,31 +70,34 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> | ||||
|             <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> | ||||
|             <el-input  v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> | ||||
|             <el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|             <el-input  v-model="dataForm.inspectionQuantity" | ||||
|               :placeholder="$t('code.inspectionQuantity')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="batchSize" :label="$t('code.batchSize')"> | ||||
|             <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|             <el-input  v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> | ||||
|             <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> | ||||
|             <el-input  v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="companyId" :label="$t('code.companyName')"> | ||||
|             <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|             <el-select  v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> | ||||
|               <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -102,15 +105,15 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="userId" :label="$t('code.username')"> | ||||
|             <el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|               <el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|             <el-select  v-model="dataForm.userId" :placeholder="$t('code.username')"> | ||||
|               <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> | ||||
|             <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|             <el-select  v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> | ||||
|               <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -120,7 +123,7 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> | ||||
|             <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|             <el-select  v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> | ||||
|               <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> | ||||
|               </el-option> | ||||
|             </el-select> | ||||
| @@ -133,27 +136,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="critical" label="CR" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.critical" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.critical" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="criticalDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.criticalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.criticalDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -161,27 +166,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="major" label="MA" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.major" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.major" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="majorDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.majorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.majorDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -189,27 +196,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="minor" label="MI" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.minor" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minor" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="minorDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.minorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.minorDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -217,27 +226,29 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-form-item prop="total" label="total" label-width="50px"> | ||||
|             <el-input v-model="GBTDataForm.total" placeholder="CR"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.total" placeholder="CR"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalAccept" label="Accept"> | ||||
|             <el-input v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalReject" label="Reject" label-width="60px"> | ||||
|             <el-input v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalNumber" :label="$t('code.defectsNumber')"> | ||||
|             <el-input v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')"></el-input> | ||||
|             <el-input  v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :span="5"> | ||||
|           <el-form-item prop="totalDefectiveNumber" :label="$t('code.defectiveQuantity')"> | ||||
|             <el-input v-model="GBTDataForm.totalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> | ||||
|             <el-input  v-model="GBTDataForm.totalDefectiveNumber" | ||||
|               :placeholder="$t('code.defectiveQuantity')"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| @@ -245,7 +256,6 @@ | ||||
|     </el-form> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import debounce from "lodash/debounce"; | ||||
| import basicAdd from "@/mixins/basic-add"; | ||||
| @@ -481,7 +491,7 @@ export default { | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.samplingPlanList = res.data | ||||
|             this.samplingPlanList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
| @@ -493,7 +503,7 @@ export default { | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.userList = res.data | ||||
|             this.userList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
| @@ -505,7 +515,7 @@ export default { | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.productList = res.data | ||||
|             this.productList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
| @@ -521,7 +531,7 @@ export default { | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.unitList = res.data | ||||
|             this.unitList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
| @@ -533,7 +543,7 @@ export default { | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.supplierList = res.data | ||||
|             this.supplierList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
| @@ -545,7 +555,7 @@ export default { | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.factoryList = res.data | ||||
|             this.factoryList = res.data.list | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|   | ||||
| @@ -14,14 +14,15 @@ | ||||
|       <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|         @pagination="getDataList" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|       <base-dialog width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <incomingInspection-add ref="addOrUpdate" @successSubmit="successSubmit"></incomingInspection-add> | ||||
|         <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|       </base-dialog> | ||||
|       <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel" | ||||
|         @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <incomingInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"></incomingInspection-search> | ||||
|       <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" | ||||
|         @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <incomingInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"> | ||||
|         </incomingInspection-search> | ||||
|         <el-row slot="footer" type="flex" justify="end"> | ||||
|           <el-col :span="12"> | ||||
|             <el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel"> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-06-12 13:22:50 | ||||
|  * @LastEditTime: 2023-06-20 15:35:49 | ||||
|  * @LastEditTime: 2023-07-17 10:28:46 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -21,14 +21,14 @@ | ||||
|       <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|         @pagination="getDataList" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|       <base-dialog width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <purchaseRegistration-add ref="addOrUpdate" @successSubmit="successSubmit"> | ||||
|           </purchaseRegistration-add> | ||||
|           <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|         </purchaseRegistration-add> | ||||
|         <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|       </base-dialog> | ||||
|       <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel" | ||||
|         @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|       <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" | ||||
|         @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <purchaseRegistration-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"> | ||||
|         </purchaseRegistration-search> | ||||
|         <el-row slot="footer" type="flex" justify="end"> | ||||
| @@ -49,11 +49,13 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicPage from "@/mixins/basic-page"; | ||||
| import basicSearch from "@/mixins/basic-search"; | ||||
| import purchaseRegistrationSearch from "./components/purchaseRegistrationSearch.vue"; | ||||
| import purchaseRegistrationAdd from "./components/purchaseRegistration-add.vue"; | ||||
| import i18n from "@/i18n"; | ||||
| import basicPage from "@/mixins/basic-page" | ||||
| import basicSearch from "@/mixins/basic-search" | ||||
| import purchaseRegistrationSearch from "./components/purchaseRegistrationSearch.vue" | ||||
| import purchaseRegistrationAdd from "./components/purchaseRegistration-add.vue" | ||||
| import i18n from "@/i18n" | ||||
| import incoming from "@/filters/incoming"; | ||||
|  | ||||
| // import i18n from "@/i18n"; | ||||
| const tableProps = [ | ||||
|   { | ||||
| @@ -75,10 +77,12 @@ const tableProps = [ | ||||
|   { | ||||
|     prop: "upload", | ||||
|     label: i18n.t('code.upload'), | ||||
|     filter: incoming('upload'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "judgmentResult", | ||||
|     label: i18n.t('code.judgmentResult'), | ||||
|     filter: incoming('judgmentResult'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "productCode", | ||||
|   | ||||
| @@ -1,13 +1,13 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-31 14:12:10 | ||||
|  * @LastEditTime: 2023-07-13 10:00:19 | ||||
|  * @LastEditTime: 2023-07-17 16:14:43 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <span> | ||||
|     <el-button type="text" @click="getExperienceDetail">{{ $t('oss.type1') }} </el-button> | ||||
|     <el-button type="text" @click="getExperienceDetail">{{ $t('detail') }} </el-button> | ||||
|   </span> | ||||
| </template> | ||||
|  | ||||
| @@ -24,7 +24,7 @@ export default { | ||||
|   methods: { | ||||
|     getExperienceDetail() { | ||||
|       this.$router.push({ | ||||
|         name: 'laboratory-qmsLaboratoryTrainExperience', | ||||
|         name: 'laboratory-qmsLaboratoryEmployeeResume', | ||||
|         query: { | ||||
|           laboratoryTesterId: this.injectData.userId | ||||
|         } | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-05-15 14:27:30 | ||||
|  * @LastEditTime: 2023-07-13 10:00:09 | ||||
|  * @LastEditTime: 2023-07-17 16:13:47 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -14,7 +14,7 @@ | ||||
| --> | ||||
| <template> | ||||
|   <span> | ||||
|     <el-button type="text" @click="getInspectionDetail">{{ $t('oss.type1') }} </el-button> | ||||
|     <el-button type="text" @click="getInspectionDetail">{{ $t('detail') }} </el-button> | ||||
|   </span> | ||||
| </template> | ||||
|  | ||||
| @@ -31,7 +31,7 @@ export default { | ||||
|   methods: { | ||||
|     getInspectionDetail() { | ||||
|       this.$router.push({ | ||||
|         name: 'laboratory-qmsLaboratoryTesterInspectionQualification', | ||||
|         name: 'laboratory-qmsLaboratoryTrainExperience', | ||||
|         query: { | ||||
|           laboratoryTesterId: this.injectData.userId | ||||
|         } | ||||
|   | ||||
| @@ -1,13 +1,13 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-31 14:12:10 | ||||
|  * @LastEditTime: 2023-07-13 10:00:12 | ||||
|  * @LastEditTime: 2023-07-17 16:07:15 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <span> | ||||
|     <el-button type="text" @click="getInspectionDetail">{{ $t('oss.type1') }} </el-button> | ||||
|     <el-button type="text" @click="getInspectionDetail">{{ $t('detail') }} </el-button> | ||||
|   </span> | ||||
| </template> | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-05-15 14:35:31 | ||||
|  * @LastEditTime: 2023-07-18 10:14:38 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -19,10 +19,10 @@ | ||||
|       <el-input v-model="dataForm.responsibilitie" :placeholder="$t('laboratory.responsibilitie')"> | ||||
|       </el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="expectedReturnDate" :label="$t('gage.expectedReturnDate')"> | ||||
|       <el-date-picker v-model="dataForm.expectedReturnDate" type="datetime" :placeholder="$t('gage.expectedReturnDate')" | ||||
|         format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|       </el-date-picker> | ||||
|     <el-form-item :label="$t('laboratory.timeSlot')" prop="timeSlot"> | ||||
|       <el-date-picker v-model="dataForm.timeSlot" size="small" type="datetimerange" format='yyyy-MM-dd HH:mm:ss' | ||||
|         valueFormat='yyyy-MM-ddTHH:mm:ss' :start-placeholder="$t('gage.startTime')" | ||||
|         :end-placeholder="$t('gage.endTime')" :range-separator="$t('gage.to')" clearable /> | ||||
|     </el-form-item> | ||||
|   </el-form> | ||||
| </template> | ||||
| @@ -35,8 +35,8 @@ export default { | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         submitURL: "/gage/qmsLaboratoryEmployeeResume", | ||||
|         infoURL: "/gage/qmsLaboratoryEmployeeResume/{ id }", | ||||
|         submitURL: "/laboratory/qmsLaboratoryEmployeeResume", | ||||
|         infoURL: "/laboratory/qmsLaboratoryEmployeeResume/{ id }", | ||||
|         dictionaryDetailList: '/mutual/qmsDataDictionaryDetail/page', | ||||
|         getUserList: '/sys/user/page' | ||||
|         // getTeamListURL: '/basic/qmsTeam/gape', | ||||
| @@ -91,13 +91,13 @@ export default { | ||||
|         department:null, | ||||
|         endDate: null, | ||||
|         id: null, | ||||
|         timeSlot:undefined, | ||||
|         laboratoryTesterId: null, | ||||
|         position: null, | ||||
|         remark: null, | ||||
|         responsibilitie: null, | ||||
|         startDate: null, | ||||
|         id: null, | ||||
|         laboratoryTesterId:null, | ||||
|       }, | ||||
|     }; | ||||
|   }, | ||||
| @@ -133,13 +133,14 @@ export default { | ||||
|   }, | ||||
|   methods: { | ||||
|     init(data) { | ||||
|       console.log(data) | ||||
|       this.dataForm.id = data.id ? data.id : '' | ||||
|       this.dataForm.laboratoryTesterId = data.laboratoryTesterId ? data.laboratoryTesterId : '' | ||||
|       // console.log(11111) | ||||
|       // this.dataForm.dictTypeId = dictTypeId || ""; | ||||
|       this.visible = true | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs["dataForm"].resetFields(); | ||||
|         this.$refs["dataForm"].resetFields() | ||||
|         if (this.dataForm.id) { | ||||
|           this.getInfo() | ||||
|         } else { | ||||
| @@ -183,7 +184,7 @@ export default { | ||||
|     // 获取信息 | ||||
|     getInfo() { | ||||
|       this.$http | ||||
|         .get(`/gage/qmsLaboratoryEmployeeResume/${this.dataForm.id}`) | ||||
|         .get(`/laboratory/qmsLaboratoryEmployeeResume/${this.dataForm.id}`) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code !== 0) { | ||||
|             return this.$message.error(res.msg); | ||||
| @@ -195,6 +196,31 @@ export default { | ||||
|         }) | ||||
|         .catch(() => { }) | ||||
|     }, | ||||
|     dataFormSubmit() { | ||||
|       this.dataForm.endDate = this.dataForm.timeSlot ? this.dataForm.timeSlot[1] :undefined   | ||||
|       this.dataForm.startDate = this.dataForm.timeSlot ? this.dataForm.timeSlot[0] : undefined   | ||||
|       this.$refs["dataForm"].validate((valid) => { | ||||
|         if (!valid) { | ||||
|           return false; | ||||
|         } | ||||
|         this.$http[!this.dataForm.id ? "post" : "put"](this.urlOptions.submitURL, this.dataForm) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.$message({ | ||||
|               message: this.$t("prompt.success"), | ||||
|               type: "success", | ||||
|               duration: 500, | ||||
|               onClose: () => { | ||||
|                 this.visible = false; | ||||
|                 this.$emit("refreshDataList"); | ||||
|               }, | ||||
|             }); | ||||
|           }) | ||||
|           .catch(() => { }); | ||||
|       }); | ||||
|     }, | ||||
|     // 表单提交 | ||||
|     dataFormSubmitHandle: debounce( | ||||
|       function () { | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-05-12 16:45:00 | ||||
|  * @LastEditTime: 2023-07-17 16:18:56 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -36,72 +36,11 @@ export default { | ||||
|       userList: [], | ||||
|       gageTypeList:[], | ||||
|       departmentList: [], | ||||
|       processList: [ | ||||
|         { | ||||
|           id: 0, | ||||
|           name: '未审核' | ||||
|         }, | ||||
|         { | ||||
|           id: 1, | ||||
|           name: '不同意' | ||||
|         }, | ||||
|         { | ||||
|           id: 2, | ||||
|           name: '同意' | ||||
|         } | ||||
|       ], | ||||
|       listQuery: { | ||||
|         limit: 999, | ||||
|         gape: 1 | ||||
|       }, | ||||
|       gageStatusList: [ | ||||
|         { | ||||
|           id: 0, | ||||
|           name:'在用' | ||||
|         }, | ||||
|         { | ||||
|           id: 1, | ||||
|           name: '备用' | ||||
|         }, | ||||
|         { | ||||
|           id: 2, | ||||
|           name: '停用' | ||||
|         }, | ||||
|         { | ||||
|           id: 3, | ||||
|           name: '封存' | ||||
|         }, | ||||
|         { | ||||
|           id: 4, | ||||
|           name: '报废' | ||||
|         }, | ||||
|         { | ||||
|           id: 5, | ||||
|           name: '降级使用' | ||||
|         } | ||||
|       ], | ||||
|       certificateTypeList: [ | ||||
|         { | ||||
|           id: 0, | ||||
|           name: '检定证书' | ||||
|         }, | ||||
|         { | ||||
|           id: 1, | ||||
|           name: '校准证书' | ||||
|         }, | ||||
|         { | ||||
|           id: 2, | ||||
|           name: '检测报告' | ||||
|         }, | ||||
|         { | ||||
|           id: 3, | ||||
|           name: '自校报告' | ||||
|         } | ||||
|       ], | ||||
|       visible: false, | ||||
|       dataForm: { | ||||
|         id: null, | ||||
|         userId:null | ||||
|         userId: null, | ||||
|         remark:null, | ||||
|       }, | ||||
|     }; | ||||
|   }, | ||||
|   | ||||
| @@ -21,7 +21,7 @@ | ||||
|       </el-date-picker> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="validDate" :label="$t('laboratory.validDate')"> | ||||
|       <el-date-picker v-model="dataForm.expectedReturnDate" type="datetime" :placeholder="$t('laboratory.validDate')" | ||||
|       <el-date-picker v-model="dataForm.validDate" type="datetime" :placeholder="$t('laboratory.validDate')" | ||||
|         format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> | ||||
|       </el-date-picker> | ||||
|     </el-form-item> | ||||
| @@ -66,6 +66,7 @@ export default { | ||||
|         code:null, | ||||
|         getDate: null, | ||||
|         id: null, | ||||
|         validDate:null, | ||||
|         laboratoryTesterId: null, | ||||
|         name: null, | ||||
|         qualificationDescription: null, | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-13 10:01:15 | ||||
|  * @LastEditTime: 2023-07-18 10:52:15 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -9,9 +9,6 @@ | ||||
|   <el-card shadow="never" class="aui-card--fill"> | ||||
|     <div class="mod-sys__user"> | ||||
|       <SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick"> | ||||
|         <el-badge :value="6" class="item"> | ||||
|           <el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button> | ||||
|         </el-badge> | ||||
|       </SearchBar> | ||||
|       <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData"> | ||||
|         <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn" | ||||
| @@ -56,11 +53,6 @@ import employeeResumeDetail from "./components/employeeResumeDetail.vue" | ||||
| import basicSearch from "@/mixins/basic-search" | ||||
| import i18n from "@/i18n" | ||||
| const tableProps = [ | ||||
|   { | ||||
|     prop: 'userCode', | ||||
|     label: i18n.t("laboratory.userCode"), | ||||
|     align: 'center' | ||||
|   }, | ||||
|   { | ||||
|     prop: 'userName', | ||||
|     label: i18n.t("laboratory.userName"), | ||||
| @@ -118,15 +110,13 @@ export default { | ||||
|       searchOrEditTitle: '', | ||||
|       searchOrUpdateVisible: false, | ||||
|       formConfig: [ | ||||
|         // { | ||||
|         //   type: "", | ||||
|         //   label: i18n.t("params.paramCode"), | ||||
|         //   placeholder: i18n.t("params.paramCode"), | ||||
|         //   param: "paramCode", | ||||
|         // }, | ||||
|         // { | ||||
|         //   type: "separate", | ||||
|         // }, | ||||
|         { | ||||
|           type: 'input', | ||||
|           label: i18n.t('basic.name'), | ||||
|           placeholder: i18n.t('basic.name'), | ||||
|           param: 'name', | ||||
|           clearable: true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('search'), | ||||
| @@ -139,13 +129,6 @@ export default { | ||||
|           name: "add", | ||||
|           color: "success", | ||||
|           plain: true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('export'), | ||||
|           name: "export", | ||||
|           color: "primary", | ||||
|           plain: true | ||||
|         } | ||||
|       ], | ||||
|     }; | ||||
| @@ -213,7 +196,7 @@ export default { | ||||
|     buttonClick(val) { | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           // this.listQuery.paramCode = val.paramCode; | ||||
|           this.listQuery.name = val.name ?val.name : null | ||||
|           this.listQuery.page = 1 | ||||
|           this.getDataList(); | ||||
|           break; | ||||
|   | ||||
| @@ -1,11 +1,7 @@ | ||||
| <template> | ||||
|   <el-card shadow="never" class="aui-card--fill"> | ||||
|     <div class="mod-sys__user"> | ||||
|       <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> | ||||
|         <el-badge :value="5" class="item"> | ||||
|           <el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button> | ||||
|         </el-badge> | ||||
|       </search-bar> | ||||
|       <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | ||||
|       <base-table | ||||
|         :table-props="tableProps" | ||||
|         :page="listQuery.page" | ||||
| @@ -28,7 +24,7 @@ | ||||
|         @pagination="getDataList" | ||||
|       /> | ||||
|       <!-- 弹窗, 条件搜索--> | ||||
|       <base-dialog | ||||
|       <!-- <base-dialog | ||||
|         :dialogTitle="searchsTitle" | ||||
|         :dialogVisible="searchsVisible" | ||||
|         @cancel="searchsCancel" | ||||
| @@ -36,7 +32,7 @@ | ||||
|         :before-close="searchsCancel" | ||||
|       > | ||||
|         <searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> | ||||
|       </base-dialog> | ||||
|       </base-dialog> --> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog | ||||
|         :dialogTitle="addOrEditTitle" | ||||
| @@ -54,7 +50,7 @@ | ||||
|  | ||||
| <script> | ||||
| import AddOrUpdate from "./components/eightDisciplineList-detail"; | ||||
| import Searchs from "./components/searchs1"; | ||||
| // import Searchs from "./components/searchs1"; | ||||
| import basicPage from "@/mixins/basic-page"; | ||||
| import codeFilter from "@/filters/code-filter"; | ||||
| import { timeFormatter } from "@/filters/code-filter"; | ||||
| @@ -81,11 +77,11 @@ const tableProps = [ | ||||
|     label: "关键字", | ||||
|     align: "center", | ||||
|   }, | ||||
|   { | ||||
|     prop: "associationNumber", | ||||
|     label: "关联次数", | ||||
|     align: "center", | ||||
|   }, | ||||
|   // { | ||||
|   //   prop: "associationNumber", | ||||
|   //   label: "关联次数", | ||||
|   //   align: "center", | ||||
|   // }, | ||||
| ]; | ||||
| const tableBtn = [ | ||||
|   { | ||||
| @@ -104,7 +100,37 @@ export default { | ||||
|       tableProps, | ||||
|       tableBtn, | ||||
|       tableData: [], | ||||
|       optionArrUrl: ["/basic/qmsProduct/page","/code/problemType/page"], | ||||
|       formConfig: [ | ||||
|         { | ||||
|           type: "input", | ||||
|           label: i18n.t("code.title"), | ||||
|           placeholder: i18n.t("code.title"), | ||||
|           param: "title", | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "产品", | ||||
|           selectOptions: [], | ||||
|           param: "productId", | ||||
|           defaultSelect: "", | ||||
|           labelField: "productName", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "缺陷", | ||||
|           selectOptions: [], | ||||
|           param: "defectId", | ||||
|           defaultSelect: "", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "input", | ||||
|           label: "关键字", | ||||
|           placeholder: "关键字", | ||||
|           param: "description", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
| @@ -116,9 +142,30 @@ export default { | ||||
|   }, | ||||
|   components: { | ||||
|     AddOrUpdate, | ||||
|     Searchs, | ||||
|     // Searchs, | ||||
|   }, | ||||
|   created() { | ||||
|     this.getArr(); | ||||
|   }, | ||||
|   methods: { | ||||
|     getArr() { | ||||
|       this.optionArrUrl.forEach((item, index) => { | ||||
|         this.$http | ||||
|           .get(item, { | ||||
|             params: { | ||||
|               page: 1, | ||||
|               limit: 500, | ||||
|             }, | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.formConfig[index + 1].selectOptions = res.data.list; | ||||
|           }) | ||||
|           .catch(() => {}); | ||||
|       }); | ||||
|     }, | ||||
|     // 获取数据列表 | ||||
|     getDataList() { | ||||
|       this.dataListLoading = true; | ||||
| @@ -146,15 +193,14 @@ export default { | ||||
|     buttonClick(val) { | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           this.listQuery = {}; | ||||
|           this.listQuery.page = 1; | ||||
|           this.listQuery.limit = 10; | ||||
|           this.listQuery.total = 1; | ||||
|           this.listQuery.title = val.title; | ||||
|           this.listQuery.description = val.description; | ||||
|           this.listQuery.defectId = val.defectId; | ||||
|           this.listQuery.productId = val.productId; | ||||
|           this.getDataList(); | ||||
|           break; | ||||
|         case "export": | ||||
|           this.exportHandle("工厂管理"); | ||||
|           break; | ||||
|         default: | ||||
|           console.log(val); | ||||
|       } | ||||
|   | ||||
| @@ -83,7 +83,7 @@ export default { | ||||
|         series: [], | ||||
|       }; | ||||
|       this.dataList.forEach((item) => { | ||||
|         const i = option.series.findIndex((c) => c.id === item.productTypeId); | ||||
|         const i = option.series.findIndex((c) => c.id === (this.eType?item.problemTypeId:item.productTypeId)); | ||||
|         if (i >= 0) { | ||||
|           option.series[i].data.push(this.eType?item.problemTypeNumber:item.productTypeNumber); | ||||
|         } else { | ||||
| @@ -104,7 +104,6 @@ export default { | ||||
|           option.series.push(obj); | ||||
|         } | ||||
|       }) | ||||
|       console.log(option.series) | ||||
|       this.lineChart = echarts.init(document.getElementById("lineChart")) | ||||
|       this.lineChart.setOption(option); | ||||
|       window.addEventListener("resize", () => { | ||||
| @@ -117,10 +116,10 @@ export default { | ||||
|  | ||||
| <style lang="scss"> | ||||
| .mod-demo-echarts { | ||||
|   > .el-row { | ||||
|     .el-col { | ||||
|     } | ||||
|   } | ||||
|   // > .el-row { | ||||
|   //   .el-col { | ||||
|   //   } | ||||
|   // } | ||||
|   .chart-box { | ||||
|     min-height: 400px; | ||||
|   } | ||||
|   | ||||
| @@ -0,0 +1,49 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-31 09:49:36 | ||||
|  * @LastEditTime: 2023-07-17 10:16:41 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <span> | ||||
|     <el-avatar | ||||
|       v-if="injectData.eightDisciplineStatus > injectData.num" | ||||
|       size="small" | ||||
|       style="background: #409EFF;" | ||||
|       icon="el-icon-check" | ||||
|     ></el-avatar> | ||||
|     <el-avatar  | ||||
|       v-else size="small"  | ||||
|       icon="el-icon-close" | ||||
|       ></el-avatar> | ||||
|   </span> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| // import { addDynamicRoute } from '@/router' | ||||
| export default { | ||||
|   props: { | ||||
|     injectData: { | ||||
|       type: Object, | ||||
|       default: () => ({}), | ||||
|     }, | ||||
|   }, | ||||
|   methods: { | ||||
|     // 子级 | ||||
|     // emitClick () { | ||||
|     //   // 路由参数 | ||||
|     //   const routeParams = { | ||||
|     //     routeName: `${this.$route.name}__${this.injectData.id}`, | ||||
|     //     title: `${this.$route.meta.title} - ${this.injectData.dictType}`, | ||||
|     //     path: 'sys/dict-data', | ||||
|     //     params: { | ||||
|     //       dictTypeId: this.injectData.id | ||||
|     //     } | ||||
|     //   } | ||||
|     //   // 动态路由 | ||||
|     //   addDynamicRoute(routeParams, this.$router) | ||||
|     // } | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| @@ -1,11 +1,11 @@ | ||||
| <template> | ||||
|   <el-card shadow="never" class="aui-card--fill"> | ||||
|     <div class="mod-sys__user"> | ||||
|       <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> | ||||
|         <el-badge :value="5" class="item"> | ||||
|           <el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button> | ||||
|         </el-badge> | ||||
|       </search-bar> | ||||
|       <search-bar | ||||
|         :formConfigs="formConfig" | ||||
|         ref="searchBarForm" | ||||
|         @headBtnClick="buttonClick" | ||||
|       /> | ||||
|       <base-table | ||||
|         :table-props="tableProps" | ||||
|         :page="listQuery.page" | ||||
| @@ -28,7 +28,7 @@ | ||||
|         @pagination="getDataList" | ||||
|       /> | ||||
|       <!-- 弹窗, 条件搜索--> | ||||
|       <base-dialog | ||||
|       <!-- <base-dialog | ||||
|         :dialogTitle="searchsTitle" | ||||
|         :dialogVisible="searchsVisible" | ||||
|         @cancel="searchsCancel" | ||||
| @@ -36,7 +36,7 @@ | ||||
|         :before-close="searchsCancel" | ||||
|       > | ||||
|         <searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> | ||||
|       </base-dialog> | ||||
|       </base-dialog> --> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog | ||||
|         :dialogTitle="addOrEditTitle" | ||||
| @@ -44,7 +44,7 @@ | ||||
|         @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" | ||||
|         :before-close="handleCancel" | ||||
|         width=80% | ||||
|         width="80%" | ||||
|       > | ||||
|         <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update> | ||||
|       </base-dialog> | ||||
| @@ -54,7 +54,7 @@ | ||||
|  | ||||
| <script> | ||||
| import AddOrUpdate from "./components/eightDisciplineList-detail"; | ||||
| import Searchs from "./components/searchs"; | ||||
| // import Searchs from "./components/searchs"; | ||||
| import basicPage from "@/mixins/basic-page"; | ||||
| import codeFilter from "@/filters/code-filter"; | ||||
| import { timeFormatter } from "@/filters/code-filter"; | ||||
| @@ -93,11 +93,11 @@ const tableProps = [ | ||||
|     label: i18n.t("code.description"), | ||||
|     align: "center", | ||||
|   }, | ||||
|   { | ||||
|     prop: "userName", | ||||
|     label: "启动人", | ||||
|     align: "center", | ||||
|   }, | ||||
|   // { | ||||
|   //   prop: "userName", | ||||
|   //   label: "启动人", | ||||
|   //   align: "center", | ||||
|   // }, | ||||
|   { | ||||
|     prop: "eightDisciplineStatus", | ||||
|     label: "步骤", | ||||
| @@ -112,6 +112,44 @@ const tableBtn = [ | ||||
|   }, | ||||
| ]; | ||||
|  | ||||
| const eightDisciplineStatusArr = [ | ||||
|   { | ||||
|     name: "D0", | ||||
|     id: 0, | ||||
|   }, | ||||
|   { | ||||
|     name: "D1", | ||||
|     id: 1, | ||||
|   }, | ||||
|   { | ||||
|     name: "D2", | ||||
|     id: 2, | ||||
|   }, | ||||
|   { | ||||
|     name: "D3", | ||||
|     id: 3, | ||||
|   }, | ||||
|   { | ||||
|     name: "D4", | ||||
|     id: 4, | ||||
|   }, | ||||
|   { | ||||
|     name: "D5", | ||||
|     id: 5, | ||||
|   }, | ||||
|   { | ||||
|     name: "D6", | ||||
|     id: 6, | ||||
|   }, | ||||
|   { | ||||
|     name: "D7", | ||||
|     id: 7, | ||||
|   }, | ||||
|   { | ||||
|     name: "D8", | ||||
|     id: 8, | ||||
|   }, | ||||
| ]; | ||||
| export default { | ||||
|   mixins: [basicPage], | ||||
|   data() { | ||||
| @@ -122,8 +160,52 @@ export default { | ||||
|       }, | ||||
|       tableProps, | ||||
|       tableBtn, | ||||
|       eightDisciplineStatusArr, | ||||
|       tableData: [], | ||||
|       optionArrUrl: ["/basic/qmsCustomer/page", "/basic/qmsProduct/page"], | ||||
|       formConfig: [ | ||||
|         { | ||||
|           type: "input", | ||||
|           label: i18n.t("code.title"), | ||||
|           placeholder: i18n.t("code.title"), | ||||
|           param: "title", | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "客户", | ||||
|           selectOptions: [], | ||||
|           param: "customId", | ||||
|           defaultSelect: "", | ||||
|           labelField: "customerName", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "产品", | ||||
|           selectOptions: [], | ||||
|           param: "productId", | ||||
|           defaultSelect: "", | ||||
|           labelField: "productName", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "步骤", | ||||
|           selectOptions: eightDisciplineStatusArr, | ||||
|           param: "eightDisciplineStatus", | ||||
|           defaultSelect: "", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "datePicker", | ||||
|           label: "日期", | ||||
|           dateType: "date", | ||||
|           format: "yyyy-MM-dd", | ||||
|           valueFormat: "yyyy-MM-ddTHH:mm:ss", | ||||
|           placeholder: "日期", | ||||
|           param: "occurrenceDate", | ||||
|           width: 170, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
| @@ -135,9 +217,30 @@ export default { | ||||
|   }, | ||||
|   components: { | ||||
|     AddOrUpdate, | ||||
|     Searchs, | ||||
|     // Searchs, | ||||
|   }, | ||||
|   created() { | ||||
|     this.getArr(); | ||||
|   }, | ||||
|   methods: { | ||||
|     getArr() { | ||||
|       this.optionArrUrl.forEach((item, index) => { | ||||
|         this.$http | ||||
|           .get(item, { | ||||
|             params: { | ||||
|               page: 1, | ||||
|               limit: 500, | ||||
|             }, | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.formConfig[index + 1].selectOptions = res.data.list; | ||||
|           }) | ||||
|           .catch(() => {}); | ||||
|       }); | ||||
|     }, | ||||
|     // 获取数据列表 | ||||
|     getDataList() { | ||||
|       this.dataListLoading = true; | ||||
| @@ -165,15 +268,15 @@ export default { | ||||
|     buttonClick(val) { | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           this.listQuery = {}; | ||||
|           this.listQuery.page = 1; | ||||
|           this.listQuery.limit = 10; | ||||
|           this.listQuery.total = 1; | ||||
|           this.listQuery.title = val.title; | ||||
|           this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus; | ||||
|           this.listQuery.customId = val.customId; | ||||
|           this.listQuery.productId = val.productId; | ||||
|           this.listQuery.occurrenceDate = val.occurrenceDate; | ||||
|           this.getDataList(); | ||||
|           break; | ||||
|         case "export": | ||||
|           this.exportHandle("工厂管理"); | ||||
|           break; | ||||
|         default: | ||||
|           console.log(val); | ||||
|       } | ||||
|   | ||||
| @@ -1,11 +1,7 @@ | ||||
| <template> | ||||
|   <el-card shadow="never" class="aui-card--fill"> | ||||
|     <div class="mod-sys__user"> | ||||
|       <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> | ||||
|         <el-badge :value="5" class="item"> | ||||
|           <el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button> | ||||
|         </el-badge> | ||||
|       </search-bar> | ||||
|       <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | ||||
|       <base-table | ||||
|         :table-props="tableProps" | ||||
|         :page="listQuery.page" | ||||
| @@ -28,7 +24,7 @@ | ||||
|         @pagination="getDataList" | ||||
|       /> | ||||
|       <!-- 弹窗, 条件搜索--> | ||||
|       <base-dialog | ||||
|       <!-- <base-dialog | ||||
|         :dialogTitle="searchsTitle" | ||||
|         :dialogVisible="searchsVisible" | ||||
|         @cancel="searchsCancel" | ||||
| @@ -36,7 +32,7 @@ | ||||
|         :before-close="searchsCancel" | ||||
|       > | ||||
|         <searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> | ||||
|       </base-dialog> | ||||
|       </base-dialog> --> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog | ||||
|         :dialogTitle="addOrEditTitle" | ||||
| @@ -44,7 +40,7 @@ | ||||
|         @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" | ||||
|         :before-close="handleCancel" | ||||
|         width=80% | ||||
|         width="80%" | ||||
|       > | ||||
|         <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update> | ||||
|       </base-dialog> | ||||
| @@ -54,7 +50,8 @@ | ||||
|  | ||||
| <script> | ||||
| import AddOrUpdate from "./components/eightDisciplineList-detail"; | ||||
| import Searchs from "./components/searchs"; | ||||
| // import Searchs from "./components/searchs"; | ||||
| import processStatus from "./components/processStatus" | ||||
| import basicPage from "@/mixins/basic-page"; | ||||
| import codeFilter from "@/filters/code-filter"; | ||||
| import { timeFormatter } from "@/filters/code-filter"; | ||||
| @@ -85,42 +82,58 @@ const tableProps = [ | ||||
|   { | ||||
|     prop: "D1", | ||||
|     label: "D1", | ||||
|     num: 1, | ||||
|     align: "center", | ||||
|     subcomponent: processStatus, | ||||
|   }, | ||||
|   { | ||||
|     prop: "D2", | ||||
|     label: "D2", | ||||
|     num: 2, | ||||
|     align: "center", | ||||
|     subcomponent: processStatus, | ||||
|   }, | ||||
|   { | ||||
|     prop: "D3", | ||||
|     label: "D3", | ||||
|     num: 3, | ||||
|     align: "center", | ||||
|     subcomponent: processStatus, | ||||
|   }, | ||||
|   { | ||||
|     prop: "D4", | ||||
|     label: "D4", | ||||
|     num: 4, | ||||
|     align: "center", | ||||
|     subcomponent: processStatus, | ||||
|   }, | ||||
|   { | ||||
|     prop: "D5", | ||||
|     label: "D5", | ||||
|     num: 5, | ||||
|     align: "center", | ||||
|     subcomponent: processStatus, | ||||
|   }, | ||||
|   { | ||||
|     prop: "D6", | ||||
|     label: "D6", | ||||
|     num: 6, | ||||
|     align: "center", | ||||
|     subcomponent: processStatus, | ||||
|   }, | ||||
|   { | ||||
|     prop: "D7", | ||||
|     label: "D7", | ||||
|     num: 7, | ||||
|     align: "center", | ||||
|     subcomponent: processStatus, | ||||
|   }, | ||||
|   { | ||||
|     prop: "D8", | ||||
|     label: "D8", | ||||
|     num: 8, | ||||
|     align: "center", | ||||
|     subcomponent: processStatus, | ||||
|   }, | ||||
| ]; | ||||
| const tableBtn = [ | ||||
| @@ -130,6 +143,44 @@ const tableBtn = [ | ||||
|   }, | ||||
| ]; | ||||
|  | ||||
| const eightDisciplineStatusArr = [ | ||||
|   { | ||||
|     name: "D0", | ||||
|     id: 0, | ||||
|   }, | ||||
|   { | ||||
|     name: "D1", | ||||
|     id: 1, | ||||
|   }, | ||||
|   { | ||||
|     name: "D2", | ||||
|     id: 2, | ||||
|   }, | ||||
|   { | ||||
|     name: "D3", | ||||
|     id: 3, | ||||
|   }, | ||||
|   { | ||||
|     name: "D4", | ||||
|     id: 4, | ||||
|   }, | ||||
|   { | ||||
|     name: "D5", | ||||
|     id: 5, | ||||
|   }, | ||||
|   { | ||||
|     name: "D6", | ||||
|     id: 6, | ||||
|   }, | ||||
|   { | ||||
|     name: "D7", | ||||
|     id: 7, | ||||
|   }, | ||||
|   { | ||||
|     name: "D8", | ||||
|     id: 8, | ||||
|   }, | ||||
| ]; | ||||
| export default { | ||||
|   mixins: [basicPage], | ||||
|   data() { | ||||
| @@ -140,8 +191,52 @@ export default { | ||||
|       }, | ||||
|       tableProps, | ||||
|       tableBtn, | ||||
|       eightDisciplineStatusArr, | ||||
|       tableData: [], | ||||
|       optionArrUrl: ["/basic/qmsCustomer/page", "/basic/qmsProduct/page"], | ||||
|       formConfig: [ | ||||
|         { | ||||
|           type: "input", | ||||
|           label: i18n.t("code.title"), | ||||
|           placeholder: i18n.t("code.title"), | ||||
|           param: "title", | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "客户", | ||||
|           selectOptions: [], | ||||
|           param: "customId", | ||||
|           defaultSelect: "", | ||||
|           labelField: "customerName", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "产品", | ||||
|           selectOptions: [], | ||||
|           param: "productId", | ||||
|           defaultSelect: "", | ||||
|           labelField: "productName", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "步骤", | ||||
|           selectOptions: eightDisciplineStatusArr, | ||||
|           param: "eightDisciplineStatus", | ||||
|           defaultSelect: "", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "datePicker", | ||||
|           label: "日期", | ||||
|           dateType: "date", | ||||
|           format: "yyyy-MM-dd", | ||||
|           valueFormat: "yyyy-MM-ddTHH:mm:ss", | ||||
|           placeholder: "日期", | ||||
|           param: "occurrenceDate", | ||||
|           width: 170, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
| @@ -153,9 +248,31 @@ export default { | ||||
|   }, | ||||
|   components: { | ||||
|     AddOrUpdate, | ||||
|     Searchs, | ||||
|     processStatus, | ||||
|     // Searchs, | ||||
|   }, | ||||
|   created() { | ||||
|     this.getArr(); | ||||
|   }, | ||||
|   methods: { | ||||
|     getArr() { | ||||
|       this.optionArrUrl.forEach((item, index) => { | ||||
|         this.$http | ||||
|           .get(item, { | ||||
|             params: { | ||||
|               page: 1, | ||||
|               limit: 500, | ||||
|             }, | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.formConfig[index + 1].selectOptions = res.data.list; | ||||
|           }) | ||||
|           .catch(() => {}); | ||||
|       }); | ||||
|     }, | ||||
|     // 获取数据列表 | ||||
|     getDataList() { | ||||
|       this.dataListLoading = true; | ||||
| @@ -183,15 +300,15 @@ export default { | ||||
|     buttonClick(val) { | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           this.listQuery = {}; | ||||
|           this.listQuery.page = 1; | ||||
|           this.listQuery.limit = 10; | ||||
|           this.listQuery.total = 1; | ||||
|           this.listQuery.title = val.title; | ||||
|           this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus; | ||||
|           this.listQuery.customId = val.customId; | ||||
|           this.listQuery.productId = val.productId; | ||||
|           this.listQuery.occurrenceDate = val.occurrenceDate; | ||||
|           this.getDataList(); | ||||
|           break; | ||||
|         case "export": | ||||
|           this.exportHandle("工厂管理"); | ||||
|           break; | ||||
|         default: | ||||
|           console.log(val); | ||||
|       } | ||||
|   | ||||
| @@ -1,11 +1,12 @@ | ||||
| <template> | ||||
|   <el-card shadow="never" class="aui-card--fill"> | ||||
|     <div class="mod-sys__user"> | ||||
|       <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> | ||||
|         <el-badge :value="5" class="item"> | ||||
|           <el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button> | ||||
|         </el-badge> | ||||
|       </search-bar> | ||||
|       <search-bar | ||||
|         :isFold="true" | ||||
|         :formConfigs="formConfig" | ||||
|         ref="searchBarForm" | ||||
|         @headBtnClick="buttonClick" | ||||
|       /> | ||||
|       <base-table | ||||
|         :table-props="tableProps" | ||||
|         :page="listQuery.page" | ||||
| @@ -28,7 +29,7 @@ | ||||
|         @pagination="getDataList" | ||||
|       /> | ||||
|       <!-- 弹窗, 条件搜索--> | ||||
|       <base-dialog | ||||
|       <!-- <base-dialog | ||||
|         :dialogTitle="searchsTitle" | ||||
|         :dialogVisible="searchsVisible" | ||||
|         @cancel="searchsCancel" | ||||
| @@ -36,7 +37,7 @@ | ||||
|         :before-close="searchsCancel" | ||||
|       > | ||||
|         <searchs ref="searchsRef" :show-obj=showObj @refreshDataList="searchsSubmit"></searchs> | ||||
|       </base-dialog> | ||||
|       </base-dialog> --> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog | ||||
|         :dialogTitle="addOrEditTitle" | ||||
| @@ -44,7 +45,7 @@ | ||||
|         @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" | ||||
|         :before-close="handleCancel" | ||||
|         width=80% | ||||
|         width="80%" | ||||
|       > | ||||
|         <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update> | ||||
|       </base-dialog> | ||||
| @@ -54,7 +55,7 @@ | ||||
|  | ||||
| <script> | ||||
| import AddOrUpdate from "./components/eightDisciplineList-detail"; | ||||
| import Searchs from "./components/searchs"; | ||||
| // import Searchs from "./components/searchs"; | ||||
| import basicPage from "@/mixins/basic-page"; | ||||
| import codeFilter from "@/filters/code-filter"; | ||||
| import { timeFormatter } from "@/filters/code-filter"; | ||||
| @@ -87,11 +88,11 @@ const tableProps = [ | ||||
|     label: i18n.t("code.description"), | ||||
|     align: "center", | ||||
|   }, | ||||
|   { | ||||
|     prop: "userName", | ||||
|     label: "启动人", | ||||
|     align: "center", | ||||
|   }, | ||||
|   // { | ||||
|   //   prop: "userName", | ||||
|   //   label: "启动人", | ||||
|   //   align: "center", | ||||
|   // }, | ||||
| ]; | ||||
| const tableBtn = [ | ||||
|   { | ||||
| @@ -100,6 +101,62 @@ const tableBtn = [ | ||||
|   }, | ||||
| ]; | ||||
|  | ||||
| const eightDisciplineStatusArr = [ | ||||
|   { | ||||
|     name: "D0", | ||||
|     id: 0, | ||||
|   }, | ||||
|   { | ||||
|     name: "D1", | ||||
|     id: 1, | ||||
|   }, | ||||
|   { | ||||
|     name: "D2", | ||||
|     id: 2, | ||||
|   }, | ||||
|   { | ||||
|     name: "D3", | ||||
|     id: 3, | ||||
|   }, | ||||
|   { | ||||
|     name: "D4", | ||||
|     id: 4, | ||||
|   }, | ||||
|   { | ||||
|     name: "D5", | ||||
|     id: 5, | ||||
|   }, | ||||
|   { | ||||
|     name: "D6", | ||||
|     id: 6, | ||||
|   }, | ||||
|   { | ||||
|     name: "D7", | ||||
|     id: 7, | ||||
|   }, | ||||
|   { | ||||
|     name: "D8", | ||||
|     id: 8, | ||||
|   }, | ||||
| ]; | ||||
| const roleArr = [ | ||||
|   { | ||||
|     name: "启动人", | ||||
|     id: 1, | ||||
|   }, | ||||
|   { | ||||
|     name: "分析人", | ||||
|     id: 2, | ||||
|   }, | ||||
|   { | ||||
|     name: "负责人", | ||||
|     id: 3, | ||||
|   }, | ||||
|   { | ||||
|     name: "处理人", | ||||
|     id: 4, | ||||
|   }, | ||||
| ]; | ||||
| export default { | ||||
|   mixins: [basicPage], | ||||
|   data() { | ||||
| @@ -109,11 +166,65 @@ export default { | ||||
|       }, | ||||
|       tableProps, | ||||
|       tableBtn, | ||||
|       eightDisciplineStatusArr, | ||||
|       roleArr, | ||||
|       tableData: [], | ||||
|       showObj: { | ||||
|           role: true | ||||
|       }, | ||||
|       optionArrUrl: ["/basic/qmsCustomer/page", "/basic/qmsProduct/page"], | ||||
|       // showObj: { | ||||
|       //     role: true | ||||
|       // }, | ||||
|  | ||||
|       formConfig: [ | ||||
|         { | ||||
|           type: "input", | ||||
|           label: i18n.t("code.title"), | ||||
|           placeholder: i18n.t("code.title"), | ||||
|           param: "title", | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "客户", | ||||
|           selectOptions: [], | ||||
|           param: "customId", | ||||
|           defaultSelect: "", | ||||
|           labelField: "customerName", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "产品", | ||||
|           selectOptions: [], | ||||
|           param: "productId", | ||||
|           defaultSelect: "", | ||||
|           labelField: "productName", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "步骤", | ||||
|           selectOptions: eightDisciplineStatusArr, | ||||
|           param: "eightDisciplineStatus", | ||||
|           defaultSelect: "", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "select", | ||||
|           label: "角色", | ||||
|           selectOptions: roleArr, | ||||
|           param: "role", | ||||
|           defaultSelect: "", | ||||
|           filterable: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "datePicker", | ||||
|           label: "日期", | ||||
|           dateType: "date", | ||||
|           format: "yyyy-MM-dd", | ||||
|           valueFormat: "yyyy-MM-ddTHH:mm:ss", | ||||
|           placeholder: "日期", | ||||
|           param: "occurrenceDate", | ||||
|           width: 170, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
| @@ -125,9 +236,30 @@ export default { | ||||
|   }, | ||||
|   components: { | ||||
|     AddOrUpdate, | ||||
|     Searchs, | ||||
|     // Searchs, | ||||
|   }, | ||||
|   created() { | ||||
|     this.getArr(); | ||||
|   }, | ||||
|   methods: { | ||||
|     getArr() { | ||||
|       this.optionArrUrl.forEach((item, index) => { | ||||
|         this.$http | ||||
|           .get(item, { | ||||
|             params: { | ||||
|               page: 1, | ||||
|               limit: 500, | ||||
|             }, | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
|             } | ||||
|             this.formConfig[index + 1].selectOptions = res.data.list; | ||||
|           }) | ||||
|           .catch(() => {}); | ||||
|       }); | ||||
|     }, | ||||
|     // 获取数据列表 | ||||
|     getDataList() { | ||||
|       this.dataListLoading = true; | ||||
| @@ -155,15 +287,16 @@ export default { | ||||
|     buttonClick(val) { | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           this.listQuery = {}; | ||||
|           this.listQuery.page = 1; | ||||
|           this.listQuery.limit = 10; | ||||
|           this.listQuery.total = 1; | ||||
|           this.listQuery.title = val.title; | ||||
|           this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus; | ||||
|           this.listQuery.customId = val.customId; | ||||
|           this.listQuery.productId = val.productId; | ||||
|           this.listQuery.occurrenceDate = val.occurrenceDate; | ||||
|           this.listQuery.role = val.role; | ||||
|           this.getDataList(); | ||||
|           break; | ||||
|         case "export": | ||||
|           this.exportHandle("工厂管理"); | ||||
|           break; | ||||
|         default: | ||||
|           console.log(val); | ||||
|       } | ||||
|   | ||||
| @@ -74,7 +74,7 @@ | ||||
|             label: "日期", | ||||
|             dateType: "daterange", | ||||
|             format: "yyyy-MM-dd", | ||||
|             valueFormat: "yyyy-MM-ddTHH:mm:ss", | ||||
|             valueFormat: "yyyy-MM-dd", | ||||
|             rangeSeparator: "-", | ||||
|             startPlaceholder: "开始时间", | ||||
|             endPlaceholder: "结束时间", | ||||
|   | ||||
| @@ -2,15 +2,15 @@ | ||||
|  * @Author: zwq | ||||
|  * @Date: 2023-07-03 15:21:14 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-07-04 08:53:10 | ||||
|  * @LastEditTime: 2023-07-14 16:50:39 | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-card shadow="never" class="aui-card--fill"> | ||||
|     <div class="mod-sys__user"> | ||||
|       <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | ||||
|       <div style="height:20px;width:100%"></div> | ||||
|       <el-row :gutter="4" style="margin-top:20px"> | ||||
|       <div style="height: 20px; width: 100%"></div> | ||||
|       <el-row :gutter="4" style="margin-top: 20px"> | ||||
|         <el-col :span="12" v-if="pieVisible"> | ||||
|           <pie-chart | ||||
|             v-loading="pieLoading" | ||||
| @@ -72,7 +72,7 @@ export default { | ||||
|           label: "日期", | ||||
|           dateType: "daterange", | ||||
|           format: "yyyy-MM-dd", | ||||
|           valueFormat: "yyyy-MM-ddTHH:mm:ss", | ||||
|           valueFormat: "yyyy-MM-dd", | ||||
|           rangeSeparator: "-", | ||||
|           startPlaceholder: "开始时间", | ||||
|           endPlaceholder: "结束时间", | ||||
| @@ -179,8 +179,8 @@ export default { | ||||
| <style lang="scss"> | ||||
| .mod-sys__user { | ||||
|   > .el-row { | ||||
|         display:flex; | ||||
|         flex-wrap: wrap;  | ||||
|     display: flex; | ||||
|     flex-wrap: wrap; | ||||
|     .el-col { | ||||
|     } | ||||
|   } | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-12 15:06:16 | ||||
|  * @LastEditTime: 2023-07-17 16:27:18 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -73,66 +73,66 @@ export default { | ||||
|         page: 1 | ||||
|       }, | ||||
|       options: [{ | ||||
|         value: 0, | ||||
|         value: '0', | ||||
|         label: '监控' | ||||
|       }, | ||||
|       { | ||||
|         value: 1, | ||||
|         value: '1', | ||||
|         label: '电芯来料检验' | ||||
|       }, | ||||
|       { | ||||
|         value: 2, | ||||
|         value: '2', | ||||
|         label: 'IQC抽检' | ||||
|       }, | ||||
|       { | ||||
|         value: 3, | ||||
|         value: '3', | ||||
|         label: 'IQC抽检2' | ||||
|       }, | ||||
|       { | ||||
|         value: 4, | ||||
|         value: '4', | ||||
|         label: '原料抽检' | ||||
|       }, | ||||
|       { | ||||
|         value: 5, | ||||
|         value: '5', | ||||
|         label: '进货外观检验' | ||||
|       }, | ||||
|       { | ||||
|         value: 6, | ||||
|         value: '6', | ||||
|         label: '库内原料检验' | ||||
|       }, | ||||
|       { | ||||
|         value: 7, | ||||
|         value: '7', | ||||
|         label: '来料检验' | ||||
|       }, | ||||
|       { | ||||
|         value: 8, | ||||
|         value: '8', | ||||
|         label: '胶片' | ||||
|       }, | ||||
|       { | ||||
|         value: 9, | ||||
|         value: '9', | ||||
|         label: '抽检' | ||||
|       }, | ||||
|       { | ||||
|         value: 10, | ||||
|         value: '10', | ||||
|         label: '巡检' | ||||
|       }, { | ||||
|         value: 11, | ||||
|         value: '11', | ||||
|         label: '首检' | ||||
|       }, | ||||
|       { | ||||
|         value: 12, | ||||
|         value: '12', | ||||
|         label: '末检' | ||||
|       }, | ||||
|       { | ||||
|         value: 13, | ||||
|         value: '13', | ||||
|         label: '实时监测' | ||||
|       }, | ||||
|       { | ||||
|         value: 14, | ||||
|         value: '14', | ||||
|         label: 'FQC抽检' | ||||
|       }, | ||||
|       { | ||||
|         value: 15, | ||||
|         value: '15', | ||||
|         label: 'OQC抽检' | ||||
|       }, | ||||
|       ], | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-12 14:57:28 | ||||
|  * @LastEditTime: 2023-07-17 16:27:53 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -116,59 +116,59 @@ export default { | ||||
|           param: 'inspectionTypeId', | ||||
|           selectOptions: [ | ||||
|             { | ||||
|               id: 0, | ||||
|               id: '0', | ||||
|               name: '监控' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               id: '1', | ||||
|               name: '电芯来料检验' | ||||
|             }, | ||||
|             { | ||||
|               id: 2, | ||||
|               id: '2', | ||||
|               name: 'IQC抽检' | ||||
|             }, | ||||
|             { | ||||
|               id: 3, | ||||
|               id: '3', | ||||
|               name: 'IQC抽检2' | ||||
|             }, | ||||
|             { | ||||
|               id: 4, | ||||
|               id: '4', | ||||
|               name: '原料抽检' | ||||
|             }, | ||||
|             { | ||||
|               id: 5, | ||||
|               id: '5', | ||||
|               name: '进货外观检验' | ||||
|             }, | ||||
|             { | ||||
|               id: 6, | ||||
|               id: '6', | ||||
|               name: '库内原料检验' | ||||
|             }, | ||||
|             { | ||||
|               id: 7, | ||||
|               id: '7', | ||||
|               name: '来料检验' | ||||
|             }, | ||||
|             { | ||||
|               id: 8, | ||||
|               id: '8', | ||||
|               name: '胶片' | ||||
|             }, | ||||
|             { | ||||
|               id: 9, | ||||
|               id: '9', | ||||
|               name: '抽检' | ||||
|             }, | ||||
|             { | ||||
|               id: 10, | ||||
|               id: '10', | ||||
|               name: '巡检' | ||||
|             }, | ||||
|             { | ||||
|               id: 11, | ||||
|               id: '11', | ||||
|               name: '首检' | ||||
|             }, | ||||
|             { | ||||
|               id: 12, | ||||
|               id: '12', | ||||
|               name: '末检' | ||||
|             }, | ||||
|             { | ||||
|               id: 13, | ||||
|               id: '13', | ||||
|               name: '实时监测' | ||||
|             }, | ||||
|             { | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-14 09:53:37 | ||||
|  * @LastEditTime: 2023-07-18 15:22:30 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -117,12 +117,6 @@ export default { | ||||
|           name: "add", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('export'), | ||||
|           name: "export", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('search'), | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-14 09:53:46 | ||||
|  * @LastEditTime: 2023-07-18 15:22:25 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -113,12 +113,6 @@ export default { | ||||
|           name: "add", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('export'), | ||||
|           name: "export", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('search'), | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-06-20 15:34:33 | ||||
|  * @LastEditTime: 2023-07-18 15:22:19 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -112,12 +112,6 @@ export default { | ||||
|           name: "add", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('export'), | ||||
|           name: "export", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: i18n.t('search'), | ||||
|   | ||||
							
								
								
									
										264
									
								
								src/views/modules/quality/characteristics.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,264 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-18 10:25:03 | ||||
|  * @LastEditTime: 2023-07-18 11:23:59 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-card shadow="never" class="aui-card--fill"> | ||||
|     <div class="mod-sys__user"> | ||||
|       <SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick"> | ||||
|       </SearchBar> | ||||
|       <base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1" | ||||
|       :limit="listQuery.limit" :table-data="tableData"> | ||||
|         <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn" | ||||
|           @clickBtn="handleClick" /> | ||||
|       </base-table> | ||||
|       <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total" | ||||
|         @pagination="getDataList" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel" | ||||
|         @confirm="handleConfirm" :before-close="handleCancel"> | ||||
|         <!-- <product-add ref="addOrUpdate" @refreshDataList="successSubmit"></product-add> --> | ||||
|         <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> | ||||
|       </base-dialog> | ||||
|       <characterShow ref="characterShowList" v-if="characterShowList" @refreshDataList="getDataList"> | ||||
|       </characterShow> | ||||
|       <!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel" | ||||
|         @confirm="handleSearchConfirm" :before-close="handleSearchCancel"> | ||||
|         <product-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></product-search> | ||||
|         <el-row slot="footer" type="flex" justify="end"> | ||||
|           <el-col :span="12"> | ||||
|             <el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel"> | ||||
|               {{ $t("close") }} | ||||
|             </el-button> | ||||
|             <el-button size="small" class="btnTextStyle" type="primary" plain @click="handleSearchReset">{{ $t("reset") | ||||
|               }}</el-button> | ||||
|             <el-button type="primary" size="small" class="btnTextStyle" @click="handleSearchConfirm"> | ||||
|               {{ $t("search") }} | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|       </base-dialog> --> | ||||
|     </div> | ||||
|   </el-card> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicPage from "@/mixins/basic-page"; | ||||
| // import basicSearch from "@/mixins/basic-search"; | ||||
| // import productSearch from "./components/productSearch.vue"; | ||||
| // import productAdd from "./components/product-add.vue"; | ||||
| import isHave from "./components/isHave.vue"; | ||||
| import characterShow from "./components/character-show.vue"; | ||||
|  | ||||
| // import radio from "./components/radio.vue"; | ||||
| import i18n from "@/i18n"; | ||||
| // import i18n from "@/i18n"; | ||||
| const tableProps = [ | ||||
|   { | ||||
|     prop: "productCode", | ||||
|     label: i18n.t('basic.code'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "productName", | ||||
|     label: i18n.t('basic.name'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "productSpecs", | ||||
|     label: i18n.t('basic.specification'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "productTypeName", | ||||
|     label: i18n.t('basic.productTypeName'), | ||||
|   }, | ||||
|   // { | ||||
|   //   prop: "detail", | ||||
|   //   label: i18n.t('basic.InspectionStage'), | ||||
|   //   subcomponent: radio, | ||||
|   // }, | ||||
|   { | ||||
|     prop: "inspectionPlan", | ||||
|     label: i18n.t('quality.inspectionPlan'), | ||||
|     subcomponent: isHave, | ||||
|   }, | ||||
| ]; | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "characteristics", | ||||
|     btnName: i18n.t('code.characteristics'), | ||||
|   } | ||||
| ]; | ||||
| export default { | ||||
|   mixins: [basicPage], | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         getDataListURL: "/basic/qmsProduct/page", | ||||
|         deleteURL: "/basic/qmsProduct", | ||||
|         exportURL: '/basic/qmsProduct/export', | ||||
|         getProductTypeURL: '/basic/qmsProductType/page' | ||||
|       }, | ||||
|       tableProps, | ||||
|       tableBtn, | ||||
|       productData: {}, | ||||
|       characterShowList:false, | ||||
|       searchOrEditTitle: "", | ||||
|       searchOrUpdateVisible: false, | ||||
|       productOrEditTitle: "", | ||||
|       addOrEditTitle: '', | ||||
|       addOrUpdateVisible: false, | ||||
|       productOrUpdateVisible: false, | ||||
|       formConfig: [ | ||||
|         { | ||||
|           type: 'input', | ||||
|           label: i18n.t('basic.productCode'), | ||||
|           placeholder: i18n.t('basic.productCode'), | ||||
|           param: 'productName', | ||||
|           clearable: true | ||||
|         }, | ||||
|         { | ||||
|           type: 'input', | ||||
|           label: i18n.t('basic.productName'), | ||||
|           placeholder: i18n.t('basic.productName'), | ||||
|           param: 'productCode', | ||||
|           clearable: true | ||||
|         }, | ||||
|         { | ||||
|           type: 'input', | ||||
|           label: i18n.t('basic.specification'), | ||||
|           placeholder: i18n.t('basic.specification'), | ||||
|           param: 'productSpecs', | ||||
|           clearable: true | ||||
|         }, | ||||
|         { | ||||
|           type: 'select', | ||||
|           label: i18n.t('code.inspectionPlan'), | ||||
|           placeholder: i18n.t('code.inspectionPlan'), | ||||
|           param: 'inspectionPlan', | ||||
|           selectOptions: [ | ||||
|             { | ||||
|               id: '0', | ||||
|               name: '没有' | ||||
|             }, | ||||
|             { | ||||
|               id: '1', | ||||
|               name: '有' | ||||
|             }, | ||||
|           ], | ||||
|           clearable: true, | ||||
|           filterable: true | ||||
|         }, | ||||
|         { | ||||
|           type: 'select', | ||||
|           label: i18n.t('code.productType'), | ||||
|           placeholder: i18n.t('code.productType'), | ||||
|           param: 'productTypeId', | ||||
|           selectOptions: [], | ||||
|           clearable: true, | ||||
|           filterable: true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         } | ||||
|       ], | ||||
|     }; | ||||
|   }, | ||||
|   components: { | ||||
|     // productAdd | ||||
|     characterShow | ||||
|   }, | ||||
|   mounted () { | ||||
|     this.getDict() | ||||
|   }, | ||||
|   methods: { | ||||
|     //search-bar点击 | ||||
|     handleProductCancel() { | ||||
|       this.productOrUpdateVisible = false; | ||||
|       this.productOrEditTitle = ""; | ||||
|     }, | ||||
|     setCurrent(index) { | ||||
|       this.$refs.palletTable1.setCurrent("palletTable", index); | ||||
|     }, | ||||
|     // handleSearchCancel() { | ||||
|     //   this.searchOrEditTitle = ""; | ||||
|     //   this.searchOrUpdateVisible = false; | ||||
|     // }, | ||||
|     conditionSearch() { | ||||
|       this.searchOrEditTitle = "搜索"; | ||||
|       this.searchOrUpdateVisible = true; | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs.searchOrUpdate.init() | ||||
|       }); | ||||
|     }, | ||||
|     // handleConfirm() { | ||||
|     //   this.$refs.addOrUpdate.dataFormSubmitHandle(); | ||||
|     // }, | ||||
|     // conditionSearchSubmit() {}, | ||||
|     // conditionSearchSubmit(dataForm) { | ||||
|     //   // console.log(key); | ||||
|     //   // console.log(key); | ||||
|     //   this.listQuery.productName = dataForm.productName | ||||
|     //   this.listQuery.productCode = dataForm.productCode | ||||
|     //   this.listQuery.page = 1; | ||||
|     //   this.getDataList() | ||||
|     //   this.searchOrUpdateVisible = false; | ||||
|     //   // console.log(11111); | ||||
|     //   // this.conditionSearchSubmit(); | ||||
|     // }, | ||||
|     handleClick(val) { | ||||
|      if (val.type === 'characteristics') { | ||||
|        this.characterShowList = true | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs.characterShowList.init(val.data.id) | ||||
|         }) | ||||
|       } | ||||
|     }, | ||||
|     getDict() { | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getProductTypeURL, { | ||||
|           params: this.listQuery, | ||||
|         }) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code == 0) { | ||||
|             this.formConfig[4].selectOptions = res.data.list.map((item) => { | ||||
|               return { | ||||
|                 id:item.id, | ||||
|                 name: item.productTypeName, | ||||
|               } | ||||
|             }) | ||||
|           } | ||||
|         }) | ||||
|     }, | ||||
|     buttonClick(val) { | ||||
|       console.log(val); | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           // this.listQuery.paramCode = val.paramCode; | ||||
|           this.listQuery.productName = val.productName ? val.productName : null | ||||
|           this.listQuery.productCode = val.productCode ? val.productCode : null | ||||
|           this.listQuery.productTypeId = val.productTypeId ? val.productTypeId : null | ||||
|           this.listQuery.productSpecs = val.productSpecs ? val.productSpecs : null | ||||
|           this.listQuery.inspectionPlan = val.inspectionPlan ? val.inspectionPlan : null | ||||
|  | ||||
|           // console.log(i18n); | ||||
|           this.listQuery.page = 1; | ||||
|           this.getDataList(); | ||||
|           break; | ||||
|         case "add": | ||||
|           this.addOrEditTitle = '新增' | ||||
|           this.addOrUpdateVisible = true | ||||
|           this.addOrUpdateHandle() | ||||
|           break; | ||||
|         default: | ||||
|           console.log(val); | ||||
|       } | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||