Compare commits
	
		
			11 Commits
		
	
	
		
			f002123cf5
			...
			zwq
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d942fd83f8 | |||
| 931fb70ee9 | |||
| 97fe6d23b3 | |||
| 93f92f42c5 | |||
|  | ab30435246 | ||
| 26a0d9827c | |||
| 7d1e82b818 | |||
| 005143cd2d | |||
|  | 05c4374d36 | ||
|  | b810720fbd | ||
| cdca6407ff | 
| @@ -2,7 +2,7 @@ | ||||
|  * @Author: zwq | ||||
|  * @Date: 2022-08-22 14:57:50 | ||||
|  * @LastEditors: zhp | ||||
|  * @LastEditTime: 2023-07-17 10:36:32 | ||||
|  * @LastEditTime: 2023-07-18 08:46:34 | ||||
|  * @Description:  | ||||
| --> | ||||
| <!DOCTYPE html> | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
							
								
								
									
										46
									
								
								src/filters/quality/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										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] | ||||
|   } | ||||
| } | ||||
| @@ -303,6 +303,10 @@ t.basic.course = '过程检验' | ||||
| t.basic.shipment = '出货检验' | ||||
| t.basic.userName = '用户名' | ||||
| t.basic.departName = '部门名' | ||||
| t.basic.productCode = '产品编码' | ||||
| t.basic.productName = '产品名称' | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -363,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' | ||||
| 	 | ||||
| 	 | ||||
|  | ||||
| @@ -584,7 +604,9 @@ t.laboratory.title = '主题' | ||||
| t.laboratory.trainContent	= '培训内容' | ||||
| t.laboratory.trainDate	= '培训日期' | ||||
| t.laboratory.trainDuration = '培训时长' | ||||
| t.laboratory.trainType	= '培训类型' | ||||
| t.laboratory.trainType = '培训类型' | ||||
| t.laboratory.timeSlot	= '时间段' | ||||
|  | ||||
|  | ||||
|  | ||||
| t.code = {} | ||||
| @@ -725,7 +747,18 @@ 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/首页.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										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-07-14 15:53:17 | ||||
|  * @LastEditTime: 2023-07-19 09:27:53 | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
| @@ -36,7 +36,7 @@ | ||||
|           | ||||
|         <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> | ||||
|         <!-- 中英文 --> | ||||
|   | ||||
| @@ -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,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-17 10:39:16 | ||||
|  * @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" | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-17 10:39:25 | ||||
|  * @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 | ||||
|   | ||||
| @@ -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> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-14 13:44:46 | ||||
|  * @LastEditTime: 2023-07-17 15:51:39 | ||||
|  * @LastEditTime: 2023-07-18 16:53:52 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -12,14 +12,16 @@ | ||||
|       <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 v-model="dataForm.requirementListId" :placeholder="$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 v-model="dataForm.knowledgeBaseId" :placeholder="$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> | ||||
| @@ -84,8 +86,10 @@ export default { | ||||
|     this.getDict() | ||||
|   }, | ||||
|     methods: { | ||||
|       init(id) { | ||||
|         this.dataForm.id = id || '' | ||||
|       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() | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-14 13:44:46 | ||||
|  * @LastEditTime: 2023-07-17 15:59:27 | ||||
|  * @LastEditTime: 2023-07-18 14:25:05 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -106,8 +106,10 @@ 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(() => { | ||||
| @@ -135,8 +137,12 @@ export default { | ||||
|             // this.addOrEditTitle = '新增' | ||||
|             // this.addOrUpdateVisible = true; | ||||
|             this.baseConfigAddShow = true | ||||
|             const obj = { | ||||
|               knowledgeBaseId:   this.listQuery.knowledgeBaseId, | ||||
|               requirementListId: this.listQuery.requirementListId  | ||||
|             } | ||||
|             this.$nextTick(() => { | ||||
|               this.$refs.baseConfigAddList.init() | ||||
|               this.$refs.baseConfigAddList.init(obj) | ||||
|             }) | ||||
|             // this.addOrUpdateHandle() | ||||
|             break; | ||||
| @@ -189,8 +195,13 @@ export default { | ||||
|             .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(val.data.id) | ||||
|             this.$refs.baseConfigAddList.init(obj) | ||||
|           }) | ||||
|         } | ||||
|       }, | ||||
|   | ||||
| @@ -1,29 +1,31 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-14 13:44:46 | ||||
|  * @LastEditTime: 2023-07-17 16:55:03 | ||||
|  * @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" | ||||
|     <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="requirementListId" :label="$t('customerquality.requirementListName')"> | ||||
|           <el-select v-model="dataForm.requirementListId" :placeholder="$t('customerquality.requirementListName')"> | ||||
|             <el-option v-for="item in requirementList" :key="item.id" :label="item.requirementListName" | ||||
|         <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="knowledgeBaseId" :label="$t('customerquality.knowledgeBaseName')"> | ||||
|           <el-select 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 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> | ||||
| @@ -38,24 +40,28 @@ | ||||
| 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" | ||||
|           submitURL: "/customerquality/knowledgeBaseRequirementListData", | ||||
|           getDictDataDetail: '/mutual/qmsDataDictionaryDetail/page' | ||||
|         }, | ||||
|         dataForm: { | ||||
|           knowledgeBaseId: null, | ||||
|           requirementListId:null | ||||
|           accessPath:null, | ||||
|           id: null, | ||||
|           knowledgeBaseFileId: null, | ||||
|           knowledgeBaseRequirementListId: null, | ||||
|           title: null, | ||||
|         }, | ||||
|         innerDrawer: false, | ||||
|         listQuery: { | ||||
|           limit: 10, | ||||
|           page:1, | ||||
|         }, | ||||
|         categoryList:[], | ||||
|         requirementList: [], | ||||
|         knowledgeBaseList:[], | ||||
|       } | ||||
| @@ -82,10 +88,14 @@ export default { | ||||
|   }, | ||||
|   mounted () { | ||||
|     this.getDict() | ||||
|     this.getAccessPath() | ||||
|   }, | ||||
|     methods: { | ||||
|       init(id) { | ||||
|         this.dataForm.id = id || '' | ||||
|       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() | ||||
| @@ -96,13 +106,43 @@ export default { | ||||
|           } | ||||
|         }) | ||||
|       }, | ||||
|       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/qmsKnowledgeBaseRequirementList/${this.dataForm.id}`) | ||||
|           .get(`/customerquality/knowledgeBaseRequirementListData/${this.dataForm.id}`) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code !== 0) { | ||||
|               return this.$message.error(res.msg); | ||||
| @@ -114,32 +154,6 @@ export default { | ||||
|           }) | ||||
|           .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) => { | ||||
|   | ||||
							
								
								
									
										146
									
								
								src/views/modules/customerquality/components/change-add.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										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-19 16:17:25 | ||||
|  * @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> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-04-18 09:19:02 | ||||
|  * @LastEditTime: 2023-07-17 16:59:22 | ||||
|  * @LastEditTime: 2023-07-18 09:52:45 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -14,53 +14,41 @@ | ||||
|           </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> | ||||
|     <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: "stageOneName", | ||||
|     label: i18n.t('researchquality.stageOneName'), | ||||
|     prop: "title", | ||||
|     label: i18n.t('customerquality.title'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "stageOneDate", | ||||
|     label: i18n.t('researchquality.stageOneDate'), | ||||
|     filter: timeFormatter | ||||
|   }, | ||||
|     { | ||||
|       prop: "stageTwoName", | ||||
|       label: i18n.t('researchquality.stageTwoName'), | ||||
|   },, | ||||
|   { | ||||
|     prop: "stageTwoDate", | ||||
|     label: i18n.t('researchquality.stageTwoDate'), | ||||
|     filter: timeFormatter | ||||
|   }, | ||||
|     { | ||||
|       prop: "stageThreeName", | ||||
|       label: i18n.t('researchquality.stageThreeName'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "stageThreeDate", | ||||
|     label: i18n.t('researchquality.stageThreeDate'), | ||||
|     filter: timeFormatter | ||||
|   }, | ||||
|     { | ||||
|       prop: "stageFourName", | ||||
|       label: i18n.t('researchquality.stageFourName'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "stageFourDate", | ||||
|     label: i18n.t('researchquality.stageFourDate'), | ||||
|     filter: timeFormatter | ||||
|     prop: "accessPath", | ||||
|     label: i18n.t('customerquality.accessPath'), | ||||
|   } | ||||
| ]; | ||||
| export default { | ||||
| @@ -79,11 +67,10 @@ export default { | ||||
|       tableProps, | ||||
|       list: this.injectData, | ||||
|       urlOptions: { | ||||
|         submitURL: "/customerquality/qmsPublicDocuments", | ||||
|         infoURL: "/customerquality/qmsPublicDocuments//{id}", | ||||
|         getCodeURL: '/customerquality/qmsPublicDocuments/getCode', | ||||
|         getDataListURL: '/customerquality/knowledgeBaseRequirementListData/page' | ||||
|         getDataListURL: '/customerquality/knowledgeBaseRequirementListData/page', | ||||
|         deleteURL: '/customerquality/knowledgeBaseRequirementListData/page' | ||||
|       }, | ||||
|       tableBtn, | ||||
|       baseConfigFileAddShow:false, | ||||
|       tableData: [], | ||||
|       listQuery: { | ||||
| @@ -128,13 +115,51 @@ export default { | ||||
|           // this.addOrUpdateVisible = true; | ||||
|           this.baseConfigFileAddShow = true | ||||
|           this.$nextTick(() => { | ||||
|             this.$refs.baseConfigFileAddList.init(this.injectData.id) | ||||
|             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() | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
|   <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-17 15:50:39 | ||||
|  * @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> | ||||
| @@ -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  | ||||
|           } | ||||
|   | ||||
| @@ -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
									
								
							
							
						
						
									
										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-19 16:58:37 | ||||
|  * @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,13 +125,13 @@ 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: { | ||||
| @@ -110,13 +139,14 @@ export default { | ||||
|         deleteURL: "/customerquality/qmsCustomerQualityProjectList", | ||||
|         exportURL: '/customerquality/qmsCustomerQualityProjectList/export' | ||||
|       }, | ||||
|       tableProps, | ||||
|       tableBtn, | ||||
|       tableData:[], | ||||
|       productData: {}, | ||||
|       dataForm:{ | ||||
|       listQuery:{ | ||||
|         limit: 999, | ||||
|         page:1 | ||||
|         page: 1, | ||||
|         total:0 | ||||
|       }, | ||||
|       timeFormatter, | ||||
|       baseConfigShow:false, | ||||
|       searchOrEditTitle: "", | ||||
|       searchOrUpdateVisible: false, | ||||
| @@ -124,57 +154,8 @@ 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: "button", | ||||
|           btnName: i18n.t('search'), | ||||
| @@ -193,11 +174,35 @@ export default { | ||||
|     }; | ||||
|   }, | ||||
|   components: { | ||||
|     qmsKnowledgeBaseAdd, | ||||
|     baseConfig | ||||
|     customerQualityProjectListAdd, | ||||
|     qualityProjectListShow | ||||
|     // baseConfig | ||||
|   }, | ||||
|   mounted () { | ||||
|     this.getDataList(); | ||||
|   }, | ||||
|   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; | ||||
|         }) | ||||
|     }, | ||||
|     handleProductCancel() { | ||||
|       this.productOrUpdateVisible = false; | ||||
|       this.productOrEditTitle = ""; | ||||
| @@ -264,15 +269,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 +292,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; | ||||
| @@ -320,9 +325,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,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-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-17 16:17:07 | ||||
|  * @LastEditTime: 2023-07-18 10:52:15 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -110,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'), | ||||
| @@ -198,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,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
									
								
							
							
						
						
									
										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> | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-12 14:39:06 | ||||
|  * @LastEditTime: 2023-07-19 15:53:12 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -37,7 +37,8 @@ export default { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         submitURL: "/quality/qmsInspectionPosition", | ||||
|         infoURL: "/quality/qmsInspectionPosition" | ||||
|         infoURL: "/quality/qmsInspectionPosition", | ||||
|         getCodeURL: '/quality/qmsInspectionPosition/getCode' | ||||
|       }, | ||||
|       options: [{ | ||||
|         value: 0, | ||||
| @@ -94,21 +95,21 @@ export default { | ||||
|         if (this.dataForm.id) { | ||||
|           this.getInfo() | ||||
|         } else { | ||||
|           // this.getCode() | ||||
|           this.getCode() | ||||
|         } | ||||
|       }); | ||||
|     }, | ||||
|     // getCode() { | ||||
|     //   this.$http.post(this.urlOptions.getCodeURL) | ||||
|     //     .then(({ data: res }) => { | ||||
|     //       if (res.code === 0) { | ||||
|     //         console.log(res); | ||||
|     //         this.dataForm.customSamplingCode = res.data | ||||
|     //       } | ||||
|     //     }) | ||||
|     //     .catch(() => { | ||||
|     //     }); | ||||
|     // }, | ||||
|     getCode() { | ||||
|       this.$http.post(this.urlOptions.getCodeURL) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.dataForm.inspectionPositionCode = res.data | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }); | ||||
|     }, | ||||
|     // 获取信息 | ||||
|     getInfo() { | ||||
|       this.$http | ||||
|   | ||||
							
								
								
									
										351
									
								
								src/views/modules/quality/components/character-show.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										351
									
								
								src/views/modules/quality/components/character-show.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,351 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-18 10:25:03 | ||||
|  * @LastEditTime: 2023-07-18 14:14:55 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-drawer title="特性" :visible.sync="drawer" size="70%"> | ||||
|     <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" /> | ||||
|       <!-- 弹窗, 新增 / 修改 --> | ||||
|       <characterShowAdd ref="characterShowAddList" v-if="characterShowAddList" @refreshDataList="getDataList"> | ||||
|       </characterShowAdd> | ||||
|       <!-- <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-drawer> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicPage from "@/mixins/basic-page"; | ||||
| // import basicSearch from "@/mixins/basic-search"; | ||||
| // import productSearch from "./components/productSearch.vue"; | ||||
| import characterShowAdd from "./characterShow-add.vue"; | ||||
| import quality from '@/filters/quality' | ||||
|  | ||||
| import i18n from "@/i18n"; | ||||
| // import i18n from "@/i18n"; | ||||
| const tableProps = [ | ||||
|   { | ||||
|     prop: "processName", | ||||
|     label: i18n.t('researchquality.processName'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "productName", | ||||
|     label: i18n.t('basic.productName'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "inspectionType", | ||||
|     label: i18n.t('quality.inspectionType'), | ||||
|     filter: quality('inspectionType') | ||||
|   }, | ||||
|   { | ||||
|     prop: "parameterCode", | ||||
|     label: i18n.t('quality.parameterCode'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "parameterName", | ||||
|     label: i18n.t('quality.parameterName'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "measuringToolsType", | ||||
|     label: i18n.t('quality.measuringToolsType'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "specifications", | ||||
|     label: i18n.t('quality.specifications'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "characteristicsType", | ||||
|     label: i18n.t('quality.characteristicsType'), | ||||
|     filter: quality('characteristicsType') | ||||
|   }, | ||||
|   { | ||||
|     prop: "source", | ||||
|     label: i18n.t('quality.source'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "company", | ||||
|     label: i18n.t('quality.company'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "sampleSize", | ||||
|     label: i18n.t('quality.sampleSize'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "decimalDigits", | ||||
|     label: i18n.t('quality.decimalDigits'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "monitor", | ||||
|     label: i18n.t('quality.monitor'), | ||||
|     filter: quality('monitor') | ||||
|   }, | ||||
|   { | ||||
|     prop: "analyzeDrawings", | ||||
|     label: i18n.t('quality.analyzeDrawings'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "upperSpecificationLimit", | ||||
|     label: i18n.t('quality.upperSpecificationLimit'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "specificationCenterline", | ||||
|     label: i18n.t('quality.specificationCenterline'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "specificationOffline", | ||||
|     label: i18n.t('quality.specificationOffline'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "targetCpk", | ||||
|     label: i18n.t('quality.targetCpk'), | ||||
|   }, | ||||
|   { | ||||
|     prop: "targetPpk", | ||||
|     label: i18n.t('quality.targetPpk'), | ||||
|   }, | ||||
| ]; | ||||
| const tableBtn = [ | ||||
|   { | ||||
|     type: "edit", | ||||
|     btnName: i18n.t('edit'), | ||||
|   }, | ||||
|   { | ||||
|     type: "delete", | ||||
|     btnName: i18n.t('delete'), | ||||
|   } | ||||
| ]; | ||||
| export default { | ||||
|   mixins: [basicPage], | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         getDataListURL: "/code/characteristics/page", | ||||
|         deleteURL: "/code/characteristics", | ||||
|         exportURL: '/code/characteristics/export', | ||||
|         // getProductTypeURL: '/basic/qmsProductType/page' | ||||
|       }, | ||||
|       drawer:false, | ||||
|       tableProps, | ||||
|       characterShowAddList:false, | ||||
|       tableBtn, | ||||
|       productData: {}, | ||||
|       searchOrEditTitle: "", | ||||
|       searchOrUpdateVisible: false, | ||||
|       productOrEditTitle: "", | ||||
|       addOrEditTitle: '', | ||||
|       addOrUpdateVisible: false, | ||||
|       productOrUpdateVisible: false, | ||||
|       formConfig: [ | ||||
|         // { | ||||
|         //   type: 'input', | ||||
|         //   label: i18n.t('basic.productCode'), | ||||
|         //   placeholder: i18n.t('basic.productCode'), | ||||
|         //   param: 'name', | ||||
|         //   clearable: true | ||||
|         // }, | ||||
|         // { | ||||
|         //   type: 'input', | ||||
|         //   label: i18n.t('basic.productName'), | ||||
|         //   placeholder: i18n.t('basic.productName'), | ||||
|         //   param: 'code', | ||||
|         //   clearable: true | ||||
|         // }, | ||||
|         // { | ||||
|         //   type: 'input', | ||||
|         //   label: i18n.t('basic.specification'), | ||||
|         //   placeholder: i18n.t('basic.specification'), | ||||
|         //   param: 'code', | ||||
|         //   clearable: true | ||||
|         // }, | ||||
|         // { | ||||
|         //   type: 'select', | ||||
|         //   label: i18n.t('basic.inspectionPlan'), | ||||
|         //   placeholder: i18n.t('basic.inspectionPlan'), | ||||
|         //   param: 'code', | ||||
|         //   selectOptions: [ | ||||
|         //     { | ||||
|         //       id: '0', | ||||
|         //       name: '没有' | ||||
|         //     }, | ||||
|         //     { | ||||
|         //       id: '1', | ||||
|         //       name: '有' | ||||
|         //     }, | ||||
|         //   ], | ||||
|         //   clearable: true, | ||||
|         //   filterable: true | ||||
|         // }, | ||||
|         // { | ||||
|         //   type: 'select', | ||||
|         //   label: i18n.t('code.productType'), | ||||
|         //   placeholder: i18n.t('code.productType'), | ||||
|         //   param: 'code', | ||||
|         //   selectOptions: [], | ||||
|         //   clearable: true, | ||||
|         //   filterable: true | ||||
|         // }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|           // plain: true, | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: "success", | ||||
|           plain: true | ||||
|         } | ||||
|       ], | ||||
|     }; | ||||
|   }, | ||||
|   components: { | ||||
|     // productAdd | ||||
|     characterShowAdd | ||||
|   }, | ||||
|   mounted() { | ||||
|     // this.getDict() | ||||
|   }, | ||||
|   methods: { | ||||
|     //search-bar点击 | ||||
|     handleProductCancel() { | ||||
|       this.productOrUpdateVisible = false; | ||||
|       this.productOrEditTitle = ""; | ||||
|     }, | ||||
|     // handleSearchCancel() { | ||||
|     //   this.searchOrEditTitle = ""; | ||||
|     //   this.searchOrUpdateVisible = false; | ||||
|     // }, | ||||
|     init(id) { | ||||
|       this.listQuery.productId = id || "" | ||||
|       // console.log(11111) | ||||
|       // this.dataForm.dictTypeId = dictTypeId || ""; | ||||
|       this.drawer = true | ||||
|       this.$nextTick(() => { | ||||
|         // if (this.dataForm.id) { | ||||
|           this.getDataList() | ||||
|         // } else { | ||||
|           // this.getCode() | ||||
|         // } | ||||
|       }); | ||||
|     }, | ||||
|     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) { | ||||
|       console.log(val); | ||||
|       if (val.type === "delete") { | ||||
|         this.$confirm(`确定对名称${val.data.productName}]进行删除操作?`, "提示", { | ||||
|           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.characterShowAddList = true | ||||
|         const obj = { | ||||
|           productId: this.listQuery.productId, | ||||
|           id:val.data.id | ||||
|         } | ||||
|         this.$nextTick(() => { | ||||
|           this.$refs.characterShowAddList.init(obj) | ||||
|         }); | ||||
|       } | ||||
|     }, | ||||
|     // getDict() { | ||||
|     //   this.$http | ||||
|     //     .get(this.urlOptions.getProductTypeURL, { | ||||
|     //       params: this.listQuery, | ||||
|     //     }) | ||||
|     //     .then(({ data: res }) => { | ||||
|     //       if (res.code == 0) { | ||||
|     //         this.formConfig[4].selectOptions = res.data.list | ||||
|     //       } | ||||
|     //     }) | ||||
|     // }, | ||||
|     buttonClick(val) { | ||||
|       console.log(val); | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           this.listQuery.page = 1 | ||||
|           this.getDataList() | ||||
|           break; | ||||
|         case "add": | ||||
|           this.characterShowAddList = true | ||||
|           const obj = { | ||||
|             productId:this.listQuery.productId | ||||
|           } | ||||
|           this.$nextTick(() => { | ||||
|             this.$refs.characterShowAddList.init(obj) | ||||
|           }) | ||||
|           break; | ||||
|         default: | ||||
|           console.log(val); | ||||
|       } | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
							
								
								
									
										380
									
								
								src/views/modules/quality/components/characterShow-add.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										380
									
								
								src/views/modules/quality/components/characterShow-add.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,380 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-07-14 13:44:46 | ||||
|  * @LastEditTime: 2023-07-18 15:01:40 | ||||
|  * @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="productId" :label="$t('basic.productName')"> | ||||
|           <el-select v-model="dataForm.productId" :placeholder="$t('basic.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.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="measuringToolsType" :label="$t('quality.measuringToolsType')"> | ||||
|           <el-select v-model="dataForm.measuringToolsType" :placeholder="$t('quality.measuringToolsType')"> | ||||
|             <el-option v-for="item in gageTypeList" :key="item.id" :label="item.name" :value="item.name"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="monitor" :label="$t('quality.monitor')"> | ||||
|           <el-select v-model="dataForm.monitor" :placeholder="$t('quality.monitor')"> | ||||
|             <el-option v-for="item in monitorList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="characteristicsType" :label="$t('quality.characteristicsType')"> | ||||
|           <el-select v-model="dataForm.characteristicsType" :placeholder="$t('quality.characteristicsType')"> | ||||
|             <el-option v-for="item in characteristicsTypeList" :key="item.value" :label="item.label" | ||||
|               :value="item.value"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="inspectionType" :label="$t('quality.inspectionType')"> | ||||
|           <el-select v-model="dataForm.inspectionType" :placeholder="$t('quality.inspectionType')"> | ||||
|             <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="parameterCode" :label="$t('quality.parameterCode')"> | ||||
|           <el-input v-model="dataForm.parameterCode" :placeholder="$t('quality.parameterCode')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="parameterName" :label="$t('quality.parameterName')"> | ||||
|           <el-input v-model="dataForm.parameterName" :placeholder="$t('quality.parameterName')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="specifications" :label="$t('quality.specifications')"> | ||||
|           <el-input v-model="dataForm.specifications" :placeholder="$t('quality.specifications')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="source" :label="$t('quality.source')"> | ||||
|           <el-input v-model="dataForm.source" :placeholder="$t('quality.source')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="company" :label="$t('quality.company')"> | ||||
|           <el-input v-model="dataForm.company" :placeholder="$t('quality.company')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="decimalDigits" :label="$t('quality.decimalDigits')"> | ||||
|           <el-input v-model="dataForm.decimalDigits" :placeholder="$t('quality.decimalDigits')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="sampleSize" :label="$t('quality.sampleSize')"> | ||||
|           <el-input v-model="dataForm.sampleSize" :placeholder="$t('quality.sampleSize')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="analyzeDrawings" :label="$t('quality.analyzeDrawings')"> | ||||
|           <el-input v-model="dataForm.analyzeDrawings" :placeholder="$t('quality.analyzeDrawings')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="upperSpecificationLimit" :label="$t('quality.upperSpecificationLimit')"> | ||||
|           <el-input v-model="dataForm.upperSpecificationLimit" :placeholder="$t('quality.upperSpecificationLimit')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="specificationCenterline" :label="$t('quality.specificationCenterline')"> | ||||
|           <el-input v-model="dataForm.specificationCenterline" :placeholder="$t('quality.specificationCenterline')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="specificationOffline" :label="$t('quality.specificationOffline')"> | ||||
|           <el-input v-model="dataForm.specificationOffline" :placeholder="$t('quality.specificationOffline')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="targetCpk" :label="$t('quality.targetCpk')"> | ||||
|           <el-input v-model="dataForm.targetCpk" :placeholder="$t('quality.targetCpk')"> | ||||
|           </el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item prop="targetPpk" :label="$t('quality.targetPpk')"> | ||||
|           <el-input v-model="dataForm.targetPpk" :placeholder="$t('quality.targetPpk')"> | ||||
|           </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: "/code/characteristics", | ||||
|           getDictDataDetail: '/mutual/qmsDataDictionaryDetail/page', | ||||
|           getProductListURL: '/basic/qmsProduct/page', | ||||
|           getProcessURL: '/basic/qmsProcess/page', | ||||
|           getGageTypeURL: "/gage/qmsGageType/page", | ||||
|         }, | ||||
|         monitorList: [ | ||||
|           { | ||||
|             value: 0, | ||||
|             label: '否' | ||||
|           }, | ||||
|           { | ||||
|             value: 1, | ||||
|             label: '是' | ||||
|           }, | ||||
|         ], | ||||
|         characteristicsTypeList: [ | ||||
|           { | ||||
|             value: 0, | ||||
|             label: '计量' | ||||
|           }, | ||||
|           { | ||||
|             value: 1, | ||||
|             label: '计数' | ||||
|           }, | ||||
|         ], | ||||
|         inspectionTypeList: [{ | ||||
|           value: 0, | ||||
|           label: '监控' | ||||
|         }, | ||||
|         { | ||||
|           value: 1, | ||||
|           label: '电芯来料检验' | ||||
|         }, | ||||
|         { | ||||
|           value: 2, | ||||
|           label: 'IQC抽检' | ||||
|         }, | ||||
|         { | ||||
|           value: 3, | ||||
|           label: 'IQC抽检2' | ||||
|         }, | ||||
|         { | ||||
|           value: 4, | ||||
|           label: '原料抽检' | ||||
|         }, | ||||
|         { | ||||
|           value: 5, | ||||
|           label: '进货外观检验' | ||||
|         }, | ||||
|         { | ||||
|           value: 6, | ||||
|           label: '库内原料检验' | ||||
|         }, | ||||
|         { | ||||
|           value: 7, | ||||
|           label: '来料检验' | ||||
|         }, | ||||
|         { | ||||
|           value: 8, | ||||
|           label: '胶片' | ||||
|         }, | ||||
|         { | ||||
|           value: 9, | ||||
|           label: '抽检' | ||||
|         }, | ||||
|         { | ||||
|           value: 10, | ||||
|           label: '巡检' | ||||
|         }, { | ||||
|           value: 11, | ||||
|           label: '首检' | ||||
|         }, | ||||
|         { | ||||
|           value: 12, | ||||
|           label: '末检' | ||||
|         }, | ||||
|         { | ||||
|           value: 13, | ||||
|           label: '实时监测' | ||||
|         }, | ||||
|         { | ||||
|           value: 14, | ||||
|           label: 'FQC抽检' | ||||
|         }, | ||||
|         { | ||||
|           value: 15, | ||||
|           label: 'OQC抽检' | ||||
|         }, | ||||
|         ], | ||||
|         processList: [], | ||||
|         productList: [], | ||||
|         gageTypeList:[], | ||||
|         dataForm: { | ||||
|           analyzeDrawings:null, | ||||
|           characteristicsType: null, | ||||
|           company: null, | ||||
|           decimalDigits: null, | ||||
|           id: null, | ||||
|           inspectionType: null, | ||||
|           measuringToolsType: null, | ||||
|           monitor: null, | ||||
|           parameterName: null, | ||||
|           parameterCode: null, | ||||
|           processId: null, | ||||
|           productId: null, | ||||
|           remark: null, | ||||
|           sampleSize: null, | ||||
|           serialNo: null, | ||||
|           source: null, | ||||
|           specificationCenterline: null, | ||||
|           specificationOffline: null, | ||||
|           specifications: null, | ||||
|           targetCpk: null, | ||||
|           targetPpk: null, | ||||
|           upperSpecificationLimit: null, | ||||
|         }, | ||||
|         innerDrawer: false, | ||||
|         listQuery: { | ||||
|           limit: 10, | ||||
|           page:1, | ||||
|         }, | ||||
|         categoryList:[], | ||||
|         requirementList: [], | ||||
|         knowledgeBaseList:[], | ||||
|       } | ||||
|   }, | ||||
|   computed: { | ||||
|     dataRule() { | ||||
|       return { | ||||
|         productId: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "change", | ||||
|           }, | ||||
|         ], | ||||
|         parameterCode: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ], | ||||
|         parameterName: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ] | ||||
|       }; | ||||
|     }, | ||||
|   }, | ||||
|   mounted () { | ||||
|     this.getDict() | ||||
|     // this.getAccessPath() | ||||
|   }, | ||||
|     methods: { | ||||
|       init(obj) { | ||||
|         this.dataForm.productId = obj.productId || '' | ||||
|         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 = true | ||||
|         this.$refs.dataForm.resetFields() | ||||
|       }, | ||||
|       getDict() { | ||||
|         this.$http | ||||
|           .get(this.urlOptions.getProductListURL, { | ||||
|             params: { | ||||
|               limit: 999, | ||||
|               page: 1, | ||||
|             } | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code === 0) { | ||||
|               this.productList = res.data.list | ||||
|             } | ||||
|           }) | ||||
|         this.$http | ||||
|           .get(this.urlOptions.getProcessURL, { | ||||
|             params: { | ||||
|               limit: 999, | ||||
|               page: 1, | ||||
|             } | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code === 0) { | ||||
|               this.processList = res.data.list | ||||
|             } | ||||
|           }) | ||||
|         this.$http | ||||
|           .get(this.urlOptions.getGageTypeURL, { | ||||
|             params: { | ||||
|               limit: 999, | ||||
|               page: 1, | ||||
|             } | ||||
|           }) | ||||
|           .then(({ data: res }) => { | ||||
|             if (res.code === 0) { | ||||
|               this.gageTypeList = res.data.list | ||||
|             } | ||||
|           }) | ||||
|       }, | ||||
|       getInfo() { | ||||
|         this.$http | ||||
|           .get(`/code/characteristics/${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> | ||||
							
								
								
									
										42
									
								
								src/views/modules/quality/components/isHave.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								src/views/modules/quality/components/isHave.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
|  | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-31 09:49:36 | ||||
|  * @LastEditTime: 2023-07-18 10:28:40 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <span> | ||||
|     <el-tag v-if="injectData.inspectionPlan === 1" type="success">有</el-tag> | ||||
|     <el-tag v-else type="warning">没有</el-tag> | ||||
|   </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> | ||||
							
								
								
									
										130
									
								
								src/views/modules/quality/components/productSearch.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								src/views/modules/quality/components/productSearch.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,130 @@ | ||||
|  | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-21 14:44:31 | ||||
|  * @LastEditTime: 2023-04-04 14:39:49 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px"> | ||||
|     <el-form-item prop="productCode" :label="$t('basic.code')"> | ||||
|       <el-input v-model="dataForm.productCode" :placeholder="$t('basic.code')" clearable></el-input> | ||||
|     </el-form-item> | ||||
|     <el-form-item prop="productName" :label="$t('basic.name')"> | ||||
|       <el-input v-model="dataForm.productName" :placeholder="$t('basic.name')" clearable></el-input> | ||||
|     </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: "/sys/params/", | ||||
|       //   infoURL: "/sys/params", | ||||
|       // }, | ||||
|       visible: false, | ||||
|       options: [{ | ||||
|         value: '0', | ||||
|         label: '不可用' | ||||
|       }, | ||||
|       { | ||||
|         value: '1', | ||||
|         label: '可用' | ||||
|       }], | ||||
|       dataForm: { | ||||
|         productName: null, | ||||
|         productCode: null | ||||
|       }, | ||||
|     }; | ||||
|   }, | ||||
|   computed: { | ||||
|     // dataRule() { | ||||
|     //   return { | ||||
|     //     paramCode: [ | ||||
|     //       { | ||||
|     //         required: true, | ||||
|     //         message: this.$t("validate.required"), | ||||
|     //         trigger: "blur", | ||||
|     //       }, | ||||
|     //     ], | ||||
|     //     paramValue: [ | ||||
|     //       { | ||||
|     //         required: true, | ||||
|     //         message: this.$t("validate.required"), | ||||
|     //         trigger: "blur", | ||||
|     //       }, | ||||
|     //     ], | ||||
|     //   }; | ||||
|     // }, | ||||
|   }, | ||||
|   methods: { | ||||
|     // init(id) { | ||||
|     //   this.dataForm.id = id || ""; | ||||
|     //   this.visible = true; | ||||
|     //   this.$nextTick(() => { | ||||
|     //     this.$refs["dataForm"].resetFields(); | ||||
|     //     if (this.dataForm.id) { | ||||
|     //       this.getInfo(); | ||||
|     //     } | ||||
|     //   }); | ||||
|     // }, | ||||
|     // 获取信息 | ||||
|     // getInfo() { | ||||
|     //   this.$http | ||||
|     //     .get(`/sys/params/${this.dataForm.id}`) | ||||
|     //     .then(({ data: res }) => { | ||||
|     //       if (res.code !== 0) { | ||||
|     //         return this.$message.error(res.msg); | ||||
|     //       } | ||||
|     //       this.dataForm = { | ||||
|     //         ...this.dataForm, | ||||
|     //         ...res.data, | ||||
|     //       }; | ||||
|     //     }) | ||||
|     //     .catch(() => {}); | ||||
|     // }, | ||||
|     // 表单提交 | ||||
|     handleConditionSearch() { | ||||
|       this.$emit("successSubmit", this.dataForm); | ||||
|     }, | ||||
|     // dataFormSubmitHandle: debounce( | ||||
|     //   function () { | ||||
|     //     // console.log(1111); | ||||
|     //     // this.visible = false; | ||||
|     //     this.$emit("successSubmit", this.dataForm.key); | ||||
|     //     // this.$refs["dataForm"].validate((valid) => { | ||||
|     //     //   if (!valid) { | ||||
|     //     //     return false; | ||||
|     //     //   } | ||||
|     //     //   this.$http[!this.dataForm.id ? "post" : "put"]( | ||||
|     //     //     "/sys/params", | ||||
|     //     //     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: () => { | ||||
|  | ||||
|     //     //         }, | ||||
|     //     //       }); | ||||
|     //     //     }) | ||||
|     //     //     .catch(() => {}); | ||||
|     //     // }); | ||||
|     //   }, | ||||
|     //   1000, | ||||
|     //   { leading: true, trailing: false } | ||||
|     // ), | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-12 14:30:40 | ||||
|  * @LastEditTime: 2023-07-18 10:20:59 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -185,18 +185,18 @@ export default { | ||||
|           param: 'customSamplingCode', | ||||
|           clearable: true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: "success", | ||||
|           plain: true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|         } | ||||
|       ], | ||||
|     }; | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-11 15:38:25 | ||||
|  * @LastEditTime: 2023-07-18 10:21:09 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -129,17 +129,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-12 14:43:09 | ||||
|  * @LastEditTime: 2023-07-18 10:21:26 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -114,18 +114,18 @@ export default { | ||||
|           param: 'name', | ||||
|           clearable: true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: "success", | ||||
|           plain: true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|         } | ||||
|       ], | ||||
|     }; | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-12 14:22:56 | ||||
|  * @LastEditTime: 2023-07-18 10:21:38 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -218,17 +218,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-12 14:30:03 | ||||
|  * @LastEditTime: 2023-07-18 10:21:47 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -129,18 +129,18 @@ export default { | ||||
|         // { | ||||
|         //   type: "separate", | ||||
|         // }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: "success", | ||||
|           plain: true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|         } | ||||
|       ], | ||||
|     }; | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-01-11 09:24:58 | ||||
|  * @LastEditTime: 2023-07-12 14:32:41 | ||||
|  * @LastEditTime: 2023-07-18 10:21:55 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -137,18 +137,18 @@ export default { | ||||
|           param: 'code', | ||||
|           clearable: true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "新增", | ||||
|           name: "add", | ||||
|           color: "success", | ||||
|           plain: true | ||||
|         }, | ||||
|         { | ||||
|           type: "button", | ||||
|           btnName: "搜索", | ||||
|           name: "search", | ||||
|           color: "primary", | ||||
|         } | ||||
|       ], | ||||
|     }; | ||||
|   | ||||
| @@ -1,12 +1,13 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-02-14 15:02:26 | ||||
|  * @LastEditTime: 2023-07-13 11:01:20 | ||||
|  * @LastEditTime: 2023-07-19 16:10:31 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| <template> | ||||
|   <el-form :model="dataForm" ref="dataForm" @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="title" :label="$t('researchquality.title')"> | ||||
|       <el-input v-model="dataForm.title" :placeholder="$t('researchquality.title')"> | ||||
|       </el-input> | ||||
| @@ -81,48 +82,36 @@ 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", | ||||
|         //   }, | ||||
|         // ], | ||||
|         title: [ | ||||
|           { | ||||
|             required: true, | ||||
|             message: this.$t("validate.required"), | ||||
|             trigger: "blur", | ||||
|           }, | ||||
|         ] | ||||
|       }; | ||||
|     }, | ||||
|   }, | ||||
|   mounted () { | ||||
|     this.getDict(); | ||||
|   }, | ||||
|   methods: { | ||||
|     init(data,) { | ||||
|       console.log(data) | ||||
|       console.log(this.dataForm.projectTypeId) | ||||
|       // this.dataForm.dictTypeId = dictTypeId || ""; | ||||
|       this.visible = true; | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs["dataForm"].resetFields() | ||||
|         if (data) { | ||||
|           this.dataForm.id = data.id ? data.id : '' | ||||
|           this.dataForm.projectTypeId = data.projectTypeId ? data.projectTypeId : '' | ||||
|           this.dataForm.requirementListGroupId = data.requirementListGroupId ? data.requirementListGroupId : '' | ||||
|         } | ||||
|         if (this.dataForm.id) { | ||||
|           this.getInfo() | ||||
|         } | ||||
|       }); | ||||
|     }, | ||||
|     getCode() { | ||||
|     getDict() { | ||||
|       this.$http | ||||
|         .get(this.urlOptions.getProjectTypeURL, { params: this.listQuery }) | ||||
|         .then(({ data: res }) => { | ||||
| @@ -133,21 +122,11 @@ export default { | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|       this.$http | ||||
|         .post(this.urlOptions.getCodeURL) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code === 0) { | ||||
|             console.log(res); | ||||
|             this.dataForm.code = res.data | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }) | ||||
|     }, | ||||
|     // 获取信息 | ||||
|     getInfo() { | ||||
|       this.$http | ||||
|         .get(`/supplier/qmsEvaluationItemList/${this.dataForm.id}`) | ||||
|         .get(`/researchquality/qmsQualityRequirementList/${this.dataForm.id}`) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code !== 0) { | ||||
|             return this.$message.error(res.msg); | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-04-17 14:23:17 | ||||
|  * @LastEditTime: 2023-07-13 11:00:21 | ||||
|  * @LastEditTime: 2023-07-19 16:10:20 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description:  | ||||
| --> | ||||
| @@ -252,7 +252,7 @@ export default { | ||||
|         this.$nextTick(() => { | ||||
|           const data ={ | ||||
|             id: val.data.id,  | ||||
|             projectTypeId: this.projectTypeId | ||||
|             requirementListGroupId: this.requirementListGroupId | ||||
|           } | ||||
|           this.$refs.addOrUpdate.init(data) | ||||
|         }); | ||||
| @@ -263,7 +263,7 @@ export default { | ||||
|       this.addOrUpdateVisible = true; | ||||
|       this.$nextTick(() => { | ||||
|         const data = { | ||||
|           projectTypeId: this.projectTypeId | ||||
|           requirementListGroupId: this.requirementListGroupId | ||||
|         } | ||||
|         this.$refs.addOrUpdate.init(data) | ||||
|       }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user