Compare commits
	
		
			9 Commits
		
	
	
		
			projects/m
			...
			8399081a6f
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 8399081a6f | ||
|  | cc6c4772d3 | ||
| ba7dad7fce | |||
|  | 8e7e31f918 | ||
|  | 5e4df4d849 | ||
|  | 1d3372ed69 | ||
| 86f246eb94 | |||
| e2a16332be | |||
| 69b6942f35 | 
| @@ -48,7 +48,7 @@ | ||||
|     "benz-amr-recorder": "^1.1.5", | ||||
|     "bpmn-js-token-simulation": "0.10.0", | ||||
|     "clipboard": "2.0.8", | ||||
|     "code-brick-zj": "^1.0.2", | ||||
|     "code-brick-zj": "^1.0.5", | ||||
|     "core-js": "^3.26.0", | ||||
|     "crypto-js": "^4.0.0", | ||||
|     "diagram-js": "^12.3.0", | ||||
|   | ||||
| @@ -125,11 +125,8 @@ export default { | ||||
| 			// 取消自动聚焦 start | ||||
| 			this.Quill?.enable(false); | ||||
| 			this.$nextTick(() => { | ||||
| 				this.Quill?.enable(true); | ||||
| 				this.Quill?.blur(); | ||||
| 				// if (!this.readOnly) { | ||||
| 				// 	this.Quill?.enable(); | ||||
| 				// } | ||||
| 				this.Quill?.enable(true); | ||||
| 			}); | ||||
| 			// 如果设置了上传地址则自定义图片上传事件 | ||||
| 			if (this.type === 'url') { | ||||
|   | ||||
| @@ -78,7 +78,6 @@ export default { | ||||
| 			return this.http(this.infoUrl == '' ? this.infoPath : this.infoUrl, 'get', payload); | ||||
| 		}, | ||||
| 		del(payload) { | ||||
| 			debugger; | ||||
| 			return this.http(this.deleteUrl == '' ? this.deletePath : this.deleteUrl, 'delete', payload); | ||||
| 		}, | ||||
|  | ||||
|   | ||||
| @@ -248,6 +248,9 @@ export default { | ||||
| 						label: '设备编码', | ||||
| 						prop: 'code', | ||||
| 						url: '/base/core-equipment/getCode', | ||||
| 						rules: [ | ||||
| 							{ required: true, message: '设备编码不能为空', trigger: 'blur' }, | ||||
| 						], | ||||
| 					}, | ||||
| 					{ | ||||
| 						input: true, | ||||
|   | ||||
| @@ -27,20 +27,20 @@ | ||||
| 			<div class="legend"> | ||||
| 				<div class="legend-item"> | ||||
| 					<span class="icon blue"></span> | ||||
| 					<span class="text">工作时长</span> | ||||
| 					<span class="text">有效时长</span> | ||||
| 				</div> | ||||
| 				<div class="legend-item"> | ||||
| 					<span class="icon green"></span> | ||||
| 					<span class="text">停机时长</span> | ||||
| 					<span class="text">关机时长</span> | ||||
| 				</div> | ||||
| 				<div class="legend-item"> | ||||
| 					<span class="icon purple"></span> | ||||
| 					<span class="text">故障时长</span> | ||||
| 					<span class="text">中断时长</span> | ||||
| 				</div> | ||||
| 				<div class="legend-item"> | ||||
| 				<!-- <div class="legend-item"> | ||||
| 					<span class="icon yellow"></span> | ||||
| 					<span class="text">速度开动率</span> | ||||
| 				</div> | ||||
| 				</div> --> | ||||
| 			</div> | ||||
| 			<div v-if="list.length" class="graph-grid"> | ||||
| 				<div class="bg-grid grid-line"> | ||||
| @@ -389,14 +389,14 @@ export default { | ||||
| 	position: relative; | ||||
| 	padding: 4px 0; | ||||
| 	padding-left: 12px; | ||||
| 	font-size: 14px; | ||||
| 	font-size: 18px; | ||||
|  | ||||
| 	&::before { | ||||
| 		content: ''; | ||||
| 		position: absolute; | ||||
| 		left: 0; | ||||
| 		top: 6px; | ||||
| 		height: 16px; | ||||
| 		height: 20px; | ||||
| 		width: 4px; | ||||
| 		border-radius: 1px; | ||||
| 		background: #0b58ff; | ||||
|   | ||||
| @@ -16,23 +16,22 @@ | ||||
| 			<div class="data-view__item"> | ||||
| 				<!-- <div class="data-view__item__value">111</div> --> | ||||
| 				<div class="data-view__item__value">{{ textData.workTime }}</div> | ||||
| 				<div class="data-view__item__title blue">工作时长</div> | ||||
| 				<div class="data-view__item__title blue">有效时长</div> | ||||
| 			</div> | ||||
| 			<div class="data-view__item"> | ||||
| 				<!-- <div class="data-view__item__value">22</div> --> | ||||
| 				<div class="data-view__item__value">{{ textData.stopTime }}</div> | ||||
| 				<div class="data-view__item__title green">停机时长</div> | ||||
| 				<div class="data-view__item__title green">关机时长</div> | ||||
| 			</div> | ||||
| 			<div class="data-view__item"> | ||||
| 				<!-- <div class="data-view__item__value">10</div> --> | ||||
| 				<div class="data-view__item__value">{{ textData.downTime }}</div> | ||||
| 				<div class="data-view__item__title purple">故障时长</div> | ||||
| 				<div class="data-view__item__title purple">中断时长</div> | ||||
| 			</div> | ||||
| 			<div class="data-view__item"> | ||||
| 				<!-- <div class="data-view__item__value">100%</div> --> | ||||
| 			<!-- <div class="data-view__item"> | ||||
| 				<div class="data-view__item__value">{{ textData.peEfficiency }}</div> | ||||
| 				<div class="data-view__item__title yellow">速度开动率</div> | ||||
| 			</div> | ||||
| 			</div> --> | ||||
| 		</div> | ||||
| 	</div> | ||||
| </template> | ||||
| @@ -93,7 +92,7 @@ export default { | ||||
| 						// 外环 | ||||
| 						name: '', | ||||
| 						type: 'pie', | ||||
| 						radius: ['75%', '90%'], | ||||
| 						radius: ['60%', '90%'], | ||||
| 						center: ['50%', '48%'], | ||||
| 						label: { | ||||
| 							show: false, | ||||
| @@ -259,7 +258,7 @@ export default { | ||||
| } | ||||
|  | ||||
| .data-view__item__title { | ||||
| 	font-size: 8px; | ||||
| 	font-size: 14px; | ||||
| 	line-height: 14px; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -19,6 +19,7 @@ | ||||
| 			:page="1" | ||||
| 			:limit="10" | ||||
| 			:table-data="list" | ||||
| 			height="65vh" | ||||
| 			@emitFun="handleEmitFun" /> | ||||
|  | ||||
| 		<!-- <el-row> | ||||
| @@ -122,23 +123,24 @@ export default { | ||||
| 			// 		: undefined, | ||||
| 			// ].filter((v) => v), | ||||
| 			tableProps: [ | ||||
| 				{ prop: 'factoryName', label: '工厂' }, | ||||
| 				{ prop: 'lineName', label: '产线' }, | ||||
| 				{ prop: 'sectionName', label: '工段' }, | ||||
| 				{ prop: 'equipmentName', label: '设备' }, | ||||
| 				{ prop: 'factoryName', label: '工厂', showOverflowtooltip: true }, | ||||
| 				{ prop: 'lineName', label: '产线', showOverflowtooltip: true }, | ||||
| 				{ prop: 'sectionName', label: '工段', showOverflowtooltip: true }, | ||||
| 				{ prop: 'equipmentName', label: '设备', showOverflowtooltip: true }, | ||||
| 				{ | ||||
| 					label: '有效时间', | ||||
| 					children: [ | ||||
| 						{ | ||||
| 							width: 128, | ||||
| 							prop: 'workTime', | ||||
| 							label: '工作时长[h]', | ||||
| 							label: '工作时长(h)', | ||||
| 							filter: (val) => (val != null ? +Number(val).toFixed(2) : '-'), | ||||
| 						}, | ||||
| 						{ | ||||
| 							width: 128, | ||||
| 							prop: 'workRate', | ||||
| 							label: '百分比[%]', | ||||
| 							filter: (val) => (val != null ? +Number(val).toFixed(3) : '-'), | ||||
| 							label: '百分比(%)', | ||||
| 							filter: (val) => (val != null ? +Number(val).toFixed(0) : '-'), | ||||
| 						}, | ||||
| 					], | ||||
| 				}, | ||||
| @@ -148,9 +150,10 @@ export default { | ||||
| 						{ | ||||
| 							width: 128, | ||||
| 							prop: 'stopTime', | ||||
| 							label: '停机时长[h]', | ||||
| 							label: '停机时长(h)', | ||||
| 							filter: (val) => (val != null ? +Number(val).toFixed(0) : '-'), | ||||
| 						}, | ||||
| 						{ width: 128, prop: 'stopRate', label: '百分比[%]' }, | ||||
| 						{ width: 128, prop: 'stopRate', label: '百分比(%)', filter: (val) => (val != null ? +Number(val).toFixed(0) : '-'), }, | ||||
| 					], | ||||
| 				}, | ||||
| 				{ | ||||
| @@ -159,48 +162,52 @@ export default { | ||||
| 						{ | ||||
| 							width: 128, | ||||
| 							prop: 'downTime', | ||||
| 							label: '故障时长[h]', | ||||
| 							filter: (val) => (val != null ? +val.toFixed(3) : '-'), | ||||
| 							label: '故障时长(h)', | ||||
| 							filter: (val) => (val != null ? +val.toFixed(2) : '-'), | ||||
| 						}, | ||||
| 						{ width: 128, prop: 'downRate', label: '百分比[%]' }, | ||||
| 						{ width: 128, prop: 'downRate', label: '百分比(%)', filter: (val) => (val != null ? +Number(val).toFixed(0) : '-'), }, | ||||
| 						{ | ||||
| 							width: 128, | ||||
| 							prop: 'timeEfficiency', | ||||
| 							label: '时间开动率', | ||||
| 							filter: (val) => (val != null ? +Number(val).toFixed(3) : '-'), | ||||
| 							filter: (val) => (val != null ? +Number(val).toFixed(2) : '-'), | ||||
| 						}, | ||||
| 					], | ||||
| 				}, | ||||
| 				{ | ||||
| 					label: '速度损失', | ||||
| 					showOverflowtooltip: true, | ||||
| 					children: [ | ||||
| 						{ | ||||
| 							width: 128, | ||||
| 							prop: 'realProcSpeed', | ||||
| 							label: '实际加工速度', | ||||
| 							filter: (val) => (val != null ? +Number(val).toFixed(2) : '-'), | ||||
| 						}, | ||||
| 						{ | ||||
| 							width: 128, | ||||
| 							prop: 'designProcSpeed', | ||||
| 							label: '理论加工速度', | ||||
| 							showOverflowtooltip: true, | ||||
| 							filter: (val) => (val != null ? +Number(val).toFixed(2) : '-'), | ||||
| 						}, | ||||
| 						{ | ||||
| 							width: 128, | ||||
| 							prop: 'peEfficiency', | ||||
| 							label: '速度开动率', | ||||
| 							filter: (val) => (val != null ? +Number(val).toFixed(3) : '-'), | ||||
| 							filter: (val) => (val != null ? +Number(val).toFixed(2) : '-'), | ||||
| 						}, | ||||
| 					], | ||||
| 				}, | ||||
| 				{ | ||||
| 					prop: 'oee', | ||||
| 					label: 'OEE', | ||||
| 					filter: (val) => (val != null ? +Number(val).toFixed(3) : '-'), | ||||
| 					filter: (val) => (val != null ? +Number(val).toFixed(2) : '-'), | ||||
| 				}, | ||||
| 				{ | ||||
| 					prop: 'teep', | ||||
| 					label: 'TEEP', | ||||
| 					filter: (val) => (val != null ? +Number(val).toFixed(3) : '-'), | ||||
| 					filter: (val) => (val != null ? +Number(val).toFixed(2) : '-'), | ||||
| 				}, | ||||
| 				// { | ||||
| 				// 	_action: 'view-trend', | ||||
| @@ -433,6 +440,9 @@ export default { | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| .app-container { | ||||
| 	overflow: inherit; | ||||
| } | ||||
| .visualization { | ||||
| 	display: grid; | ||||
| 	grid-template-columns: repeat(3, minmax(240px, 1fr)); | ||||
|   | ||||
| @@ -94,7 +94,7 @@ export default { | ||||
| 		return { | ||||
| 			readOnly: false, | ||||
| 			chosedLogId: false, | ||||
| 			searchBarKeys: ['equipmentName', 'recordTime'], | ||||
| 			searchBarKeys: ['equipmentName', 'createTime'], | ||||
| 			tableBtn: [ | ||||
| 				// this.$auth.hasPermi('equipment:spare-parts-config:update') | ||||
| 				// 	? { | ||||
| @@ -124,11 +124,11 @@ export default { | ||||
| 					label: '报警级别', | ||||
| 					filter: publicFormatter(this.DICT_TYPE.EQU_ALARM_LEVEL), | ||||
| 				}, | ||||
| 				{ prop: 'createTime', label: '报警时间', filter: timeFilter }, // 接口缺 | ||||
| 				{ prop: 'alarmCode', label: '设备报警码' }, // 接口缺 | ||||
| 				{ prop: 'createTime', label: '报警时间', filter: timeFilter }, | ||||
| 				{ prop: 'alarmCode', label: '设备报警码' }, | ||||
| 				{ prop: 'alarmContent', label: '报警内容' }, | ||||
| 				{ prop: 'opt1', label: '处理记录', name: '查看', subcomponent: btn }, | ||||
| 				{ prop: 'opt2', label: '处理', name: '报警处理', subcomponent: btn }, // TODO: 是否换成按钮, 群里问 | ||||
| 				{ prop: 'opt2', label: '处理', name: '报警处理', subcomponent: btn }, | ||||
| 				// { prop: 'remark', label: '备注' }, | ||||
| 			], | ||||
| 			searchBarFormConfig: [ | ||||
| @@ -145,8 +145,8 @@ export default { | ||||
| 					dateType: 'daterange', // datetimerange | ||||
| 					// format: 'yyyy-MM-dd HH:mm:ss', | ||||
| 					format: 'yyyy-MM-dd', | ||||
| 					valueFormat: 'timestamp', | ||||
| 					// valueFormat: 'yyyy-MM-dd HH:mm:ss', | ||||
| 					// valueFormat: 'timestamp', | ||||
| 					valueFormat: 'yyyy-MM-dd HH:mm:ss', | ||||
| 					rangeSeparator: '-', | ||||
| 					startPlaceholder: '开始日期', | ||||
| 					endPlaceholder: '结束日期', | ||||
|   | ||||
| @@ -84,10 +84,10 @@ export default { | ||||
| 					: undefined, | ||||
| 			].filter((v) => v), | ||||
| 			tableProps: [ | ||||
| 				{ prop: 'program', label: '巡检项目' }, | ||||
| 				{ prop: 'content', label: '巡检内容' }, | ||||
| 				{ prop: 'code', label: '巡检内容编码' }, | ||||
| 				{ prop: 'remark', label: '备注' }, | ||||
| 				{ prop: 'program', label: '巡检项目', showOverflowtooltip: true }, | ||||
| 				{ prop: 'content', label: '巡检内容', minWidth: 150, showOverflowtooltip: true }, | ||||
| 				{ prop: 'code', label: '巡检内容编码', showOverflowtooltip: true }, | ||||
| 				{ prop: 'remark', label: '备注', showOverflowtooltip: true }, | ||||
| 			], | ||||
| 			searchBarFormConfig: [ | ||||
| 				{ | ||||
|   | ||||
| @@ -12,7 +12,7 @@ | ||||
| 		:show-close="false" | ||||
| 		:wrapper-closable="isdetail" | ||||
| 		class="drawer" | ||||
| 		size="60%" | ||||
| 		size="55%" | ||||
| 		@closed="$emit('destroy')"> | ||||
| 		<small-title slot="title" :no-padding="true"> | ||||
| 			{{ isdetail ? '查看详情' : !dataForm.id ? '新增' : '编辑' }} | ||||
| @@ -24,7 +24,7 @@ | ||||
| 			label-width="100px" | ||||
| 			v-loading="formLoading"> | ||||
| 			<el-row :gutter="20"> | ||||
| 				<el-col :span="12"> | ||||
| 				<el-col :span="8"> | ||||
| 					<el-form-item label="设备名称" prop="equipmentId"> | ||||
| 						<el-select | ||||
| 							v-model="dataForm.equipmentId" | ||||
| @@ -41,7 +41,7 @@ | ||||
| 						</el-select> | ||||
| 					</el-form-item> | ||||
| 				</el-col> | ||||
| 				<el-col :span="12"> | ||||
| 				<el-col :span="8"> | ||||
| 					<!-- <el-form-item label="物料名称" prop="name"> | ||||
| 						<el-input v-model="dataForm.name" :disabled="isdetail" clearable placeholder="请输入物料名称" /> | ||||
| 					</el-form-item> --> | ||||
| @@ -61,21 +61,19 @@ | ||||
| 						</el-select> | ||||
| 					</el-form-item> | ||||
| 				</el-col> | ||||
| 			</el-row> | ||||
| 			<el-row :gutter="20"> | ||||
| 				<el-col :span="12"> | ||||
| 				<el-col :span="8"> | ||||
| 					<el-form-item label="设备编码" prop="equipmentCode"> | ||||
| 						<el-input v-model="dataForm.equipmentCode" disabled clearable placeholder="请输入设备编码" /> | ||||
| 					</el-form-item> | ||||
| 				</el-col> | ||||
| 				<el-col :span="12"> | ||||
| 			</el-row> | ||||
| 			<el-row :gutter="20"> | ||||
| 				<el-col :span="8"> | ||||
| 					<el-form-item label="巡检人" prop="responsible"> | ||||
| 						<el-input v-model="dataForm.responsible" :disabled="isdetail" clearable placeholder="请输入巡检人" /> | ||||
| 					</el-form-item> | ||||
| 				</el-col> | ||||
| 			</el-row> | ||||
| 			<el-row :gutter="20"> | ||||
| 				<el-col :span="12"> | ||||
| 				<el-col :span="8"> | ||||
| 					<el-form-item label="巡检时间" prop="actualTime"> | ||||
| 						<el-date-picker | ||||
| 							v-model="dataForm.actualTime" | ||||
| @@ -86,7 +84,7 @@ | ||||
| 							placeholder="选择巡检时间" /> | ||||
| 					</el-form-item> | ||||
| 				</el-col> | ||||
| 				<el-col :span="12"> | ||||
| 				<el-col :span="8"> | ||||
| 					<el-form-item label="数据来源" prop="origin"> | ||||
| 						<el-select | ||||
| 							v-model="dataForm.origin" | ||||
| @@ -95,7 +93,7 @@ | ||||
| 							style="width: 100%" | ||||
| 							placeholder="请选择数据来源"> | ||||
| 							<el-option key="1" label="手动" :value="1" /> | ||||
| 							<el-option key="2" label="自动" :value="2" /> | ||||
| 							<el-option key="2" label="PDA" :value="2" /> | ||||
| 						</el-select> | ||||
| 					</el-form-item> | ||||
| 				</el-col> | ||||
| @@ -108,7 +106,8 @@ | ||||
| 					:table-data="list" /> | ||||
| 			</el-form-item> | ||||
| 			<el-form-item label="巡检详情" prop="description"> | ||||
| 				<editor v-model="dataForm.description" :read-only="isdetail" :min-height="150"/> | ||||
| 				<editor v-if="!isdetail" v-model="dataForm.description" :min-height="150"/> | ||||
| 				<div v-else v-html="dataForm.description" style="padding: 5px; margin-left: 5px; border: 1px solid #dfdfdf" /> | ||||
| 			</el-form-item> | ||||
| 			<el-form-item label="附件"> | ||||
| 				<FileUpload v-model="file" :limit="1" :f-name="fileName" :disabled="isdetail" @name="setFileName" /> | ||||
| @@ -117,7 +116,7 @@ | ||||
| 		</el-form> | ||||
|  | ||||
| 		<div v-if="!isdetail" class="drawer-body__footer"> | ||||
| 			<el-button type="primary" @click="goback()">取消</el-button> | ||||
| 			<el-button @click="goback()">取消</el-button> | ||||
| 			<el-button type="primary" @click="dataFormSubmit()">确定</el-button> | ||||
| 		</div> | ||||
| 	</el-drawer> | ||||
| @@ -185,7 +184,7 @@ export default { | ||||
| 				actualTime: undefined, | ||||
| 				responsible: undefined, | ||||
| 				description: undefined, | ||||
| 				origin: undefined, | ||||
| 				origin: 1, | ||||
| 				files: [] | ||||
| 			}, | ||||
| 			list: [], | ||||
| @@ -220,9 +219,12 @@ export default { | ||||
| 		async setConfig() { | ||||
| 			const configres = await getcheckConfigByEqList({equipmentId: this.dataForm.equipmentId}) | ||||
| 			this.configList = configres.data | ||||
| 			this.dataForm.configId = this.configList.filter(it => { | ||||
| 				return it.id === this.dataForm.configId | ||||
| 			})[0]?.id ?? undefined | ||||
| 			this.dataForm.equipmentCode = this.eqList.filter(item => { | ||||
| 				return item.id === this.dataForm.equipmentId | ||||
| 			})[0].code | ||||
| 			})[0]?.code ?? undefined | ||||
| 		}, | ||||
| 		goback() { | ||||
| 			this.$emit('refreshDataList'); | ||||
| @@ -265,6 +267,7 @@ export default { | ||||
| 							this.file = this.dataForm.files[0].fileUrl | ||||
| 							this.fileName = this.dataForm.files[0].fileName | ||||
| 						} | ||||
| 						this.dataForm.description = this.dataForm.description || '无' | ||||
| 						this.setConfig() | ||||
| 						this.setInspectionContet() | ||||
|           }); | ||||
|   | ||||
| @@ -94,7 +94,7 @@ export default { | ||||
| 			tableProps: [ | ||||
| 				{ prop: 'configName', label: '配置名称' }, | ||||
| 				{ prop: 'equipmentName', label: '设备名称' }, | ||||
| 				{ prop: 'origin', label: '数据来源', filter: (val) => ['', '手动', '自动'][val] }, | ||||
| 				{ prop: 'origin', label: '数据来源', filter: (val) => ['', '手动', 'PDA'][val] }, | ||||
| 				// { prop: 'sectionName', label: '计划巡检时间' }, | ||||
| 				{ prop: 'actualTime', label: '实际巡检时间', filter: parseTime }, | ||||
| 				// { prop: 'maintenanceDetail', label: '完成状态' }, | ||||
| @@ -131,6 +131,15 @@ export default { | ||||
| 				{ | ||||
| 					type: 'separate', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('equipment:check-record:export') | ||||
| 						? 'button' | ||||
| 						: '', | ||||
| 					btnName: '导出', | ||||
| 					name: 'export', | ||||
| 					plain: true, | ||||
| 					color: 'primary', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('equipment:check-record:create') | ||||
| 						? 'button' | ||||
| @@ -140,17 +149,6 @@ export default { | ||||
| 					plain: true, | ||||
| 					color: 'success', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'separate', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('equipment:check-record:export') | ||||
| 						? 'button' | ||||
| 						: '', | ||||
| 					btnName: '导出', | ||||
| 					name: 'export', | ||||
| 					color: 'warning', | ||||
| 				}, | ||||
| 			], | ||||
| 			rows: [ | ||||
| 				[ | ||||
|   | ||||
| @@ -2,14 +2,14 @@ | ||||
|  * @Author: zwq | ||||
|  * @Date: 2021-11-18 14:16:25 | ||||
|  * @LastEditors: DY | ||||
|  * @LastEditTime: 2023-11-27 10:48:55 | ||||
|  * @LastEditTime: 2023-12-01 11:02:43 | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
| 	<el-drawer | ||||
| 		:visible.sync="visible" | ||||
| 		:show-close="false" | ||||
| 		:wrapper-closable="false" | ||||
| 		:wrapper-closable="true" | ||||
| 		class="drawer" | ||||
| 		size="50%"> | ||||
| 		<small-title slot="title" :no-padding="true"> | ||||
| @@ -43,6 +43,8 @@ | ||||
| 				</el-form> | ||||
| 			</div> | ||||
|  | ||||
| 			<el-divider /> | ||||
|  | ||||
| 			<div class="attr-list"> | ||||
| 				<small-title | ||||
| 					style="margin: 16px 0; padding-left: 8px" | ||||
| @@ -78,9 +80,9 @@ | ||||
| 					:page-sizes="[5, 10, 15]" | ||||
| 					@pagination="getList" /> | ||||
|  | ||||
| 				<div class="drawer-body__footer"> | ||||
| 				<!-- <div class="drawer-body__footer"> | ||||
| 					<el-button type="primary" @click="goback()">关闭</el-button> | ||||
| 				</div> | ||||
| 				</div> --> | ||||
| 			</div> | ||||
|  | ||||
| 		</div> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <template> | ||||
| 	<el-dialog | ||||
| 		:visible.sync="visible" | ||||
| 		:width="'35%'" | ||||
| 		:width="'30%'" | ||||
| 		:append-to-body="true" | ||||
| 		:close-on-click-modal="false" | ||||
| 		class="dialog"> | ||||
| @@ -17,7 +17,7 @@ | ||||
| 			ref="dataForm" | ||||
| 			:model="dataForm" | ||||
| 			:rules="dataRule" | ||||
| 			label-width="100px" | ||||
| 			label-width="60px" | ||||
| 			@keyup.enter.native="dataFormSubmit()"> | ||||
| 			<el-form-item label="巡检" prop="checkId"> | ||||
| 				<el-select v-model="dataForm.checkId" filterable placeholder="请选择巡检" style="width: 100%"> | ||||
|   | ||||
| @@ -66,6 +66,13 @@ export default { | ||||
| 			addOrEditTitle: '', | ||||
| 			searchBarKeys: ['equipmentId', 'name'], | ||||
| 			tableBtn: [ | ||||
| 				this.$auth.hasPermi('equipment:check-setting:addInsp') | ||||
| 					? { | ||||
| 							type: 'add', | ||||
| 							btnName: '添加', | ||||
| 							showTip: '添加巡检' | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 				this.$auth.hasPermi('equipment:check-setting:update') | ||||
| 					? { | ||||
| 							type: 'edit', | ||||
| @@ -78,12 +85,6 @@ export default { | ||||
| 							btnName: '查看详情', | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 				this.$auth.hasPermi('equipment:check-setting:addInsp') | ||||
| 					? { | ||||
| 							type: 'add', | ||||
| 							btnName: '添加巡检', | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 				this.$auth.hasPermi('equipment:check-setting:delete') | ||||
| 					? { | ||||
| 							type: 'delete', | ||||
| @@ -92,12 +93,12 @@ export default { | ||||
| 					: undefined, | ||||
| 			].filter((v) => v), | ||||
| 			tableProps: [ | ||||
| 				{ prop: 'name', label: '配置名' }, | ||||
| 				{ prop: 'code', label: '编码' }, | ||||
| 				{ prop: 'lineName', label: '产线' }, | ||||
| 				{ prop: 'sectionName', label: '工段' }, | ||||
| 				{ prop: 'equipmentName', label: '设备' }, | ||||
| 				{ prop: 'equipmentCode', label: '设备编码' }, | ||||
| 				{ prop: 'name', label: '配置名', width: 110, showOverflowtooltip: true }, | ||||
| 				{ prop: 'code', label: '编码', minWidth: 150, showOverflowtooltip: true }, | ||||
| 				{ prop: 'lineName', label: '产线', showOverflowtooltip: true }, | ||||
| 				{ prop: 'sectionName', label: '工段', showOverflowtooltip: true }, | ||||
| 				{ prop: 'equipmentName', label: '设备', showOverflowtooltip: true }, | ||||
| 				{ prop: 'equipmentCode', label: '设备编码', minWidth: 150, showOverflowtooltip: true }, | ||||
| 				// { prop: 'responsible', label: '负责人' }, | ||||
| 				{ prop: 'checkNumber', label: '巡检条数' }, // TODO: 操作 选项,四个,群里询问 | ||||
| 			], | ||||
|   | ||||
| @@ -183,7 +183,7 @@ export default { | ||||
| 					btnName: '导出', | ||||
| 					name: 'export', | ||||
| 					plain: true, | ||||
| 					color: 'warning', | ||||
| 					color: 'primary', | ||||
| 				}, | ||||
| 			], | ||||
| 			// 是否显示弹出层 | ||||
|   | ||||
| @@ -170,7 +170,7 @@ export default { | ||||
| 					btnName: '导出', | ||||
| 					name: 'export', | ||||
| 					plain: true, | ||||
| 					color: 'warning', | ||||
| 					color: 'primary', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('equipment:maintain-record:create') | ||||
|   | ||||
| @@ -60,110 +60,112 @@ | ||||
| 						</el-col> | ||||
| 					</el-row> | ||||
|  | ||||
| 					<el-divider style="margin-top: -10px" /> | ||||
| 					<el-divider /> | ||||
| 					 | ||||
| 					<small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true"> | ||||
| 						{{ '设备维修信息' }} | ||||
| 					</small-title> | ||||
| 					<el-row :gutter="20"> | ||||
| 						<el-col :span="6"> | ||||
| 							<el-form-item | ||||
| 								label="维修开始时间" | ||||
| 								prop="maintenanceStartTime" | ||||
| 								:rules="[{ required: true, message: '维修开始时间不能为空', trigger: 'blur' }]"> | ||||
| 								<el-date-picker | ||||
| 									v-model="dataForm.maintenanceStartTime" | ||||
| 									type="datetime" | ||||
| 									:disabled="disabled" | ||||
| 									placeholder="请选择维修开始时间" | ||||
| 									value-format="timestamp" /> | ||||
| 							</el-form-item> | ||||
| 						</el-col> | ||||
| 						<el-col :span="6"> | ||||
| 							<el-form-item | ||||
| 								label="维修结束时间" | ||||
| 								prop="maintenanceFinishTime" | ||||
| 								:rules="[{ required: true, message: '维修结束时间不能为空', trigger: 'blur' }]"> | ||||
| 								<el-date-picker | ||||
| 									v-model="dataForm.maintenanceFinishTime" | ||||
| 									type="datetime" | ||||
| 									:disabled="disabled" | ||||
| 									placeholder="请选择维修开始时间" | ||||
| 									value-format="timestamp" /> | ||||
| 							</el-form-item> | ||||
| 						</el-col> | ||||
| 						<el-col :span="6"> | ||||
| 							<el-form-item | ||||
| 								label="维修方式" | ||||
| 								prop="repairMode" | ||||
| 								:rules="[{ required: true, message: '维修方式不能为空', trigger: 'blur' }]"> | ||||
| 								<el-select | ||||
| 									:disabled="disabled" | ||||
| 									v-model="dataForm.repairMode" | ||||
| 									placeholder="请选择维修方式"> | ||||
| 									<el-option | ||||
| 										v-for="opt in getDictDatas('repair-mode')" | ||||
| 										:key="opt.value" | ||||
| 										:label="opt.label" | ||||
| 										:value="opt.value" /> | ||||
| 								</el-select> | ||||
| 							</el-form-item> | ||||
| 						</el-col> | ||||
| 						<el-col :span="6"> | ||||
| 							<el-form-item label="故障类型" prop="faultType"> | ||||
| 								<el-select | ||||
| 									:disabled="disabled" | ||||
| 									v-model="dataForm.faultType" | ||||
| 									placeholder="请选择故障类型"> | ||||
| 									<el-option | ||||
| 										v-for="opt in getDictDatas('fault-type')" | ||||
| 										:key="opt.value" | ||||
| 										:label="opt.label" | ||||
| 										:value="opt.value" /> | ||||
| 								</el-select> | ||||
| 							</el-form-item> | ||||
| 						</el-col> | ||||
| 					</el-row> | ||||
| 					<div v-if=" disabled && dataForm.maintenanceStatus === 1 ? true : !disabled ? true : false"> | ||||
| 						<small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true"> | ||||
| 							{{ '设备维修信息' }} | ||||
| 						</small-title> | ||||
| 						<el-row :gutter="20"> | ||||
| 							<el-col :span="6"> | ||||
| 								<el-form-item | ||||
| 									label="维修开始时间" | ||||
| 									prop="maintenanceStartTime" | ||||
| 									:rules="[{ required: true, message: '维修开始时间不能为空', trigger: 'blur' }]"> | ||||
| 									<el-date-picker | ||||
| 										v-model="dataForm.maintenanceStartTime" | ||||
| 										type="datetime" | ||||
| 										:disabled="disabled" | ||||
| 										placeholder="请选择维修开始时间" | ||||
| 										value-format="timestamp" /> | ||||
| 								</el-form-item> | ||||
| 							</el-col> | ||||
| 							<el-col :span="6"> | ||||
| 								<el-form-item | ||||
| 									label="维修结束时间" | ||||
| 									prop="maintenanceFinishTime" | ||||
| 									:rules="[{ required: true, message: '维修结束时间不能为空', trigger: 'blur' }]"> | ||||
| 									<el-date-picker | ||||
| 										v-model="dataForm.maintenanceFinishTime" | ||||
| 										type="datetime" | ||||
| 										:disabled="disabled" | ||||
| 										placeholder="请选择维修开始时间" | ||||
| 										value-format="timestamp" /> | ||||
| 								</el-form-item> | ||||
| 							</el-col> | ||||
| 							<el-col :span="6"> | ||||
| 								<el-form-item | ||||
| 									label="维修方式" | ||||
| 									prop="repairMode" | ||||
| 									:rules="[{ required: true, message: '维修方式不能为空', trigger: 'blur' }]"> | ||||
| 									<el-select | ||||
| 										:disabled="disabled" | ||||
| 										v-model="dataForm.repairMode" | ||||
| 										placeholder="请选择维修方式"> | ||||
| 										<el-option | ||||
| 											v-for="opt in getDictDatas('repair-mode')" | ||||
| 											:key="opt.value" | ||||
| 											:label="opt.label" | ||||
| 											:value="opt.value" /> | ||||
| 									</el-select> | ||||
| 								</el-form-item> | ||||
| 							</el-col> | ||||
| 							<el-col :span="6"> | ||||
| 								<el-form-item label="故障类型" prop="faultType"> | ||||
| 									<el-select | ||||
| 										:disabled="disabled" | ||||
| 										v-model="dataForm.faultType" | ||||
| 										placeholder="请选择故障类型"> | ||||
| 										<el-option | ||||
| 											v-for="opt in getDictDatas('fault-type')" | ||||
| 											:key="opt.value" | ||||
| 											:label="opt.label" | ||||
| 											:value="opt.value" /> | ||||
| 									</el-select> | ||||
| 								</el-form-item> | ||||
| 							</el-col> | ||||
| 						</el-row> | ||||
|  | ||||
| 					<el-row :gutter="20"> | ||||
| 						<el-col> | ||||
| 							<el-form-item | ||||
| 								label="故障明细" | ||||
| 								prop="faultDetail" | ||||
| 								:rules="[{ required: true, message: '故障明细不能为空', trigger: 'blur' }]"> | ||||
| 								<!-- // 富文本 --> | ||||
| 								<editor v-model="dataForm.faultDetail" :read-only="disabled" :min-height="150"/> | ||||
| 							</el-form-item> | ||||
| 						</el-col> | ||||
| 					</el-row> | ||||
| 						<el-row :gutter="20"> | ||||
| 							<el-col> | ||||
| 								<el-form-item | ||||
| 									label="故障明细" | ||||
| 									prop="faultDetail" | ||||
| 									:rules="[{ required: true, message: '故障明细不能为空', trigger: 'blur' }]"> | ||||
| 									<!-- // 富文本 --> | ||||
| 									<editor v-model="dataForm.faultDetail" :read-only="disabled" :min-height="150"/> | ||||
| 								</el-form-item> | ||||
| 							</el-col> | ||||
| 						</el-row> | ||||
|  | ||||
| 					<el-row :gutter="20"> | ||||
| 						<el-col> | ||||
| 							<el-form-item label="维修记录" prop="maintenanceDetail"> | ||||
| 								<!-- // 富文本 --> | ||||
| 								<editor v-model="dataForm.maintenanceDetail" :read-only="disabled" :min-height="150"/> | ||||
| 							</el-form-item> | ||||
| 						</el-col> | ||||
| 					</el-row> | ||||
| 						<el-row :gutter="20"> | ||||
| 							<el-col> | ||||
| 								<el-form-item label="维修记录" prop="maintenanceDetail"> | ||||
| 									<!-- // 富文本 --> | ||||
| 									<editor v-model="dataForm.maintenanceDetail" :read-only="disabled" :min-height="150"/> | ||||
| 								</el-form-item> | ||||
| 							</el-col> | ||||
| 						</el-row> | ||||
|  | ||||
| 					<el-row :gutter="20"> | ||||
| 						<el-col> | ||||
| 							<el-form-item label="维修附件" prop="file"> | ||||
| 								<FileUpload v-model="file" :limit="1" :f-name="fileName" :disabled="disabled" @name="setFileName" /> | ||||
| 							</el-form-item> | ||||
| 						</el-col> | ||||
| 					</el-row> | ||||
| 						<el-row :gutter="20"> | ||||
| 							<el-col> | ||||
| 								<el-form-item label="维修附件" prop="file"> | ||||
| 									<FileUpload v-model="file" :limit="1" :f-name="fileName" :disabled="disabled" @name="setFileName" /> | ||||
| 								</el-form-item> | ||||
| 							</el-col> | ||||
| 						</el-row> | ||||
|  | ||||
| 					<el-row :gutter="20"> | ||||
| 						<el-col> | ||||
| 							<el-form-item label="备注" prop="remark"> | ||||
| 								<el-input | ||||
| 									v-model="dataForm.remark" | ||||
| 									:placeholder="`请输入备注`" | ||||
| 									:disabled="disabled" /> | ||||
| 							</el-form-item> | ||||
| 						</el-col> | ||||
| 					</el-row> | ||||
| 						<el-row :gutter="20"> | ||||
| 							<el-col> | ||||
| 								<el-form-item label="备注" prop="remark"> | ||||
| 									<el-input | ||||
| 										v-model="dataForm.remark" | ||||
| 										:placeholder="`请输入备注`" | ||||
| 										:disabled="disabled" /> | ||||
| 								</el-form-item> | ||||
| 							</el-col> | ||||
| 						</el-row> | ||||
| 					</div> | ||||
| 				</el-form> | ||||
|  | ||||
| 				<div v-if="!disabled" class="drawer-body__footer"> | ||||
| @@ -249,7 +251,7 @@ export default { | ||||
| 					getEqRepair(this.dataForm.id).then(response => { | ||||
| 						this.formLoading = false | ||||
|             this.dataForm = response.data; | ||||
| 						this.dataForm.maintenanceStatus = row.maintenanceStatus || 0 | ||||
| 						this.dataForm.maintenanceStatus = this.dataForm.maintenanceStatus || 0 | ||||
| 						if (this.dataForm.files.length > 0) { | ||||
| 							this.file = this.dataForm.files[0].fileUrl | ||||
| 							this.fileName = this.dataForm.files[0].fileName | ||||
|   | ||||
							
								
								
									
										35
									
								
								src/views/equipment/base/repair/htmls.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/views/equipment/base/repair/htmls.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-11-08 14:00:52 | ||||
|  * @LastEditTime: 2023-12-01 10:12:27 | ||||
|  * @LastEditors: DY | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
|   <div v-html="content" /> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   props: { | ||||
|     injectData: { | ||||
|       type: Object, | ||||
|       default: () => ({}) | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       content: '' | ||||
|     } | ||||
|   }, | ||||
|   mounted() { | ||||
|     this.getContent() | ||||
|   }, | ||||
|  | ||||
|   methods: { | ||||
|     getContent() { | ||||
|       this.content = this.injectData[this.injectData.prop] ?? '' | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @@ -59,6 +59,7 @@ import basicPageMixin from '@/mixins/lb/basicPageMixin'; | ||||
| import CustomDialogForm from './CustomDialogForm.vue'; | ||||
| import { deleteRepair, exportRepairLogExcel } from '@/api/equipment/base/repair' | ||||
| import { parseTime } from '@/utils/ruoyi' | ||||
| import htmls from './htmls.vue' | ||||
| // const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); | ||||
|  | ||||
| export default { | ||||
| @@ -121,7 +122,7 @@ export default { | ||||
| 				{ prop: 'lineName', label: '产线' }, | ||||
| 				{ prop: 'sectionName', label: '工段' }, | ||||
| 				{ prop: 'equipmentName', label: '设备名称', minWidth: 100, showOverflowtooltip: true }, | ||||
| 				{ prop: 'maintenanceDetail', label: '维修明细' }, | ||||
| 				{ prop: 'maintenanceDetail', label: '维修明细', subcomponent: htmls, minWidth: 100, showOverflowtooltip: true }, | ||||
| 				{ prop: 'repairman', label: '维修工', minWidth: 100, showOverflowtooltip: true }, | ||||
| 				{ prop: 'repairmanPhone', label: '联系方式', minWidth: 100, showOverflowtooltip: true }, | ||||
| 				{ prop: 'remark', label: '备注', minWidth: 120, showOverflowtooltip: true }, | ||||
| @@ -168,6 +169,13 @@ export default { | ||||
| 				{ | ||||
| 					type: 'separate', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('equipment:repair:export') ? 'button' : '', | ||||
| 					btnName: '导出', | ||||
| 					name: 'export', | ||||
| 					plain: true, | ||||
| 					color: 'primary', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('equipment:repair:create') ? 'button' : '', | ||||
| 					btnName: '新增', | ||||
| @@ -175,13 +183,6 @@ export default { | ||||
| 					plain: true, | ||||
| 					color: 'success', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('equipment:repair:export') ? 'button' : '', | ||||
| 					btnName: '导出', | ||||
| 					name: 'export', | ||||
| 					plain: true, | ||||
| 					color: 'warning', | ||||
| 				}, | ||||
| 			], | ||||
| 			rows: [ | ||||
| 				[ | ||||
|   | ||||
| @@ -9,72 +9,80 @@ | ||||
| 	<el-drawer | ||||
| 		:visible.sync="visible" | ||||
| 		:show-close="false" | ||||
| 		:wrapper-closable="false" | ||||
| 		:wrapper-closable="disabled" | ||||
| 		class="drawer" | ||||
| 		size="60%"> | ||||
| 		size="60%" | ||||
| 		@closed="$emit('destroy')"> | ||||
| 		<small-title slot="title" :no-padding="true"> | ||||
| 			{{ disabled ? '查看备件' : '添加备件' }} | ||||
| 		</small-title> | ||||
| 		<el-form | ||||
| 			ref="form" | ||||
| 			:model="dataForm" | ||||
| 			label-width="100px" | ||||
| 			v-loading="formLoading"> | ||||
| 			<el-row :gutter="20"> | ||||
| 				<el-col :span="12"> | ||||
| 					<el-form-item label="配置名" prop="name"> | ||||
| 						<span>{{ dataForm.name }}</span> | ||||
| 					</el-form-item> | ||||
| 				</el-col> | ||||
| 				<el-col :span="12"> | ||||
| 					<el-form-item label="设备名称" prop="equipmentName"> | ||||
| 						<span>{{ dataForm.equipmentName }}</span> | ||||
| 					</el-form-item> | ||||
| 				</el-col> | ||||
| 			</el-row> | ||||
| 			<el-row :gutter="20"> | ||||
| 				<el-col :span="12"> | ||||
| 					<el-form-item label="负责人" prop="responsible"> | ||||
| 						<span>{{ dataForm.responsible }}</span> | ||||
| 					</el-form-item> | ||||
| 				</el-col> | ||||
| 			</el-row> | ||||
| 			<el-form-item label="描述" prop="faultTime"> | ||||
| 				<editor v-model="dataForm.description" read-only :min-height="200"/> | ||||
| 			</el-form-item> | ||||
| 		</el-form> | ||||
| 		<div class="content"> | ||||
| 			<el-form | ||||
| 				ref="form" | ||||
| 				:model="dataForm" | ||||
| 				label-width="100px" | ||||
| 				label-position="top" | ||||
| 				v-loading="formLoading"> | ||||
| 				<el-row :gutter="20"> | ||||
| 					<el-col :span="6"> | ||||
| 						<el-form-item label="配置名" prop="name"> | ||||
| 							<span>{{ dataForm.name }}</span> | ||||
| 						</el-form-item> | ||||
| 					</el-col> | ||||
| 					<el-col :span="6"> | ||||
| 						<el-form-item label="设备名称" prop="equipmentName"> | ||||
| 							<span>{{ dataForm.equipmentName }}</span> | ||||
| 						</el-form-item> | ||||
| 					</el-col> | ||||
| 					<el-col :span="6"> | ||||
| 						<el-form-item label="负责人" prop="responsible"> | ||||
| 							<span>{{ dataForm.responsible }}</span> | ||||
| 						</el-form-item> | ||||
| 					</el-col> | ||||
| 				</el-row> | ||||
| 				<el-form-item label="描述" prop="description"> | ||||
| 					<div v-html="dataForm.description" style="padding: 5px; margin: 0; border: 1px solid #dfdfdf" /> | ||||
| 					<!-- <editor v-model="dataForm.description" read-only :min-height="200"/> --> | ||||
| 				</el-form-item> | ||||
| 			</el-form> | ||||
| 			 | ||||
| 			<div v-if="!disabled" class="action_btn"> | ||||
| 				<template> | ||||
| 					<span style="display: inline-block;" @click="addNew()"> | ||||
| 						<svg-icon style="width: 14px; height: 14px" class="item-icon" icon-class="table_add" /> | ||||
| 						<span class="add">添加</span> | ||||
| 					</span> | ||||
| 				</template> | ||||
| 			</div> | ||||
| 			<base-table | ||||
| 				:table-props="tableProps" | ||||
| 				:page="listQuery.pageNo" | ||||
| 				:limit="listQuery.pageSize" | ||||
| 				:table-data="list"> | ||||
| 				<method-btn | ||||
| 					v-if="!disabled" | ||||
| 					slot="handleBtn" | ||||
| 					:width="120" | ||||
| 					label="操作" | ||||
| 					:method-list="tableBtn" | ||||
| 					@clickBtn="handleClick" /> | ||||
| 			</base-table> | ||||
| 			<pagination | ||||
| 				v-show="listQuery.total > 0" | ||||
| 				:total="listQuery.total" | ||||
| 				:page.sync="listQuery.pageNo" | ||||
| 				:limit.sync="listQuery.pageSize" | ||||
| 				:page-sizes="[5, 10, 15]" | ||||
| 				@pagination="getList" /> | ||||
| 			<div> | ||||
| 				<small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true"> | ||||
| 					{{ '备品备件' }} | ||||
| 				</small-title> | ||||
| 				<div v-if="!disabled" class="action_btn"> | ||||
| 					<template> | ||||
| 						<span style="display: inline-block;" @click="addNew()"> | ||||
| 							<svg-icon style="width: 14px; height: 14px" class="item-icon" icon-class="table_add" /> | ||||
| 							<span class="add">添加</span> | ||||
| 						</span> | ||||
| 					</template> | ||||
| 				</div> | ||||
| 				<base-table | ||||
| 					:table-props="tableProps" | ||||
| 					:page="listQuery.pageNo" | ||||
| 					:limit="listQuery.pageSize" | ||||
| 					:table-data="list"> | ||||
| 					<method-btn | ||||
| 						v-if="!disabled" | ||||
| 						slot="handleBtn" | ||||
| 						:width="120" | ||||
| 						label="操作" | ||||
| 						:method-list="tableBtn" | ||||
| 						@clickBtn="handleClick" /> | ||||
| 				</base-table> | ||||
| 				<pagination | ||||
| 					v-show="listQuery.total > 0" | ||||
| 					:total="listQuery.total" | ||||
| 					:page.sync="listQuery.pageNo" | ||||
| 					:limit.sync="listQuery.pageSize" | ||||
| 					:page-sizes="[5, 10, 15]" | ||||
| 					@pagination="getList" /> | ||||
| 			</div>	 | ||||
|  | ||||
| 		<div class="drawer-body__footer"> | ||||
| 			<el-button type="primary" @click="goback()">关闭</el-button> | ||||
| 			<div v-if="!disabled" class="drawer-body__footer"> | ||||
| 				<el-button type="primary" @click="goback()">关闭</el-button> | ||||
| 			</div> | ||||
| 		</div> | ||||
|  | ||||
| 		<attr-add | ||||
| @@ -255,10 +263,10 @@ export default { | ||||
| 	padding: 18px; | ||||
| } | ||||
| .action_btn { | ||||
|   /* float: right; */ | ||||
|   float: right; | ||||
| 	display: flex; | ||||
| 	justify-content: right; | ||||
|   margin: 5px 15px; | ||||
|   margin: -35px 15px; | ||||
|   font-size: 14px; | ||||
| } | ||||
| .add { | ||||
| @@ -312,4 +320,7 @@ export default { | ||||
| 	justify-content: flex-end; | ||||
| 	padding: 18px; | ||||
| } | ||||
| .content { | ||||
| 	padding: 0 20px; | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -17,7 +17,7 @@ | ||||
| 				v-if="tableBtn.length" | ||||
| 				slot="handleBtn" | ||||
| 				label="操作" | ||||
| 				:width="250" | ||||
| 				:width="180" | ||||
| 				:method-list="tableBtn" | ||||
| 				@clickBtn="handleTableBtnClick" /> | ||||
| 		</base-table> | ||||
| @@ -34,7 +34,7 @@ | ||||
| 		<base-dialog | ||||
| 			:dialogTitle="title" | ||||
| 			:dialogVisible="open" | ||||
| 			width="35%" | ||||
| 			width="50%" | ||||
| 			@close="cancel" | ||||
| 			@cancel="cancel" | ||||
| 			@confirm="submitForm"> | ||||
| @@ -44,12 +44,14 @@ | ||||
| 				v-model="form" | ||||
| 				:disabled="mode == 'detail'" | ||||
| 				:has-files="false" | ||||
| 				:rows="rows" /> | ||||
| 				:rows="rows" | ||||
| 				style="margin: 0 30px" /> | ||||
| 		</base-dialog> | ||||
| 		<addSparts | ||||
| 			v-if="addOrUpdateVisible" | ||||
| 			ref="addOrUpdate" | ||||
| 			@refreshDataList="getList" /> | ||||
| 			@refreshDataList="getList" | ||||
| 			@destroy="addOrUpdateVisible = false" /> | ||||
| 	</div> | ||||
| </template> | ||||
|  | ||||
| @@ -79,22 +81,24 @@ export default { | ||||
| 				// 			btnName: '详情', | ||||
| 				// 	  } | ||||
| 				// 	: undefined, | ||||
| 				this.$auth.hasPermi('equipment:spare-parts-config:update') | ||||
| 				this.$auth.hasPermi('equipment:spare-parts-config:addParts') | ||||
| 					? { | ||||
| 							type: 'edit', | ||||
| 							btnName: '修改', | ||||
| 							type: 'addParts', | ||||
| 							btnName: '添加', | ||||
| 							showTip: '添加备件' | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 				this.$auth.hasPermi('equipment:spare-parts-config:queryParts') | ||||
| 					? { | ||||
| 							type: 'queryParts', | ||||
| 							btnName: '查看备件', | ||||
| 							btnName: '查看', | ||||
| 							showTip: '查看备件' | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 				this.$auth.hasPermi('equipment:spare-parts-config:addParts') | ||||
| 				this.$auth.hasPermi('equipment:spare-parts-config:update') | ||||
| 					? { | ||||
| 							type: 'addParts', | ||||
| 							btnName: '添加备件', | ||||
| 							type: 'edit', | ||||
| 							btnName: '修改', | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 				this.$auth.hasPermi('equipment:spare-parts-config:delete') | ||||
| @@ -105,15 +109,15 @@ export default { | ||||
| 					: undefined, | ||||
| 			].filter((v) => v), | ||||
| 			tableProps: [ | ||||
| 				{ prop: 'name', label: '配置名' }, | ||||
| 				{ prop: 'lineName', label: '产线' }, | ||||
| 				{ prop: 'sectionName', label: '工段' }, | ||||
| 				{ prop: 'equipmentName', label: '设备名' }, | ||||
| 				{ prop: 'equipmentCode', label: '设备编码' }, | ||||
| 				{ prop: 'responsible', label: '负责人' }, | ||||
| 				{ prop: 'name', label: '配置名', minWidth: 100, showOverflowtooltip: true }, | ||||
| 				{ prop: 'lineName', label: '产线', minWidth: 100, showOverflowtooltip: true }, | ||||
| 				{ prop: 'sectionName', label: '工段', minWidth: 100, showOverflowtooltip: true }, | ||||
| 				{ prop: 'equipmentName', label: '设备名', minWidth: 120, showOverflowtooltip: true }, | ||||
| 				{ prop: 'equipmentCode', label: '设备编码', minWidth: 100, showOverflowtooltip: true }, | ||||
| 				{ prop: 'responsible', label: '负责人', minWidth: 150, showOverflowtooltip: true }, | ||||
| 				// { prop: 'unit', label: '单位', filter: publicFormatter('unit_dict') }, | ||||
| 				{ prop: 'description', label: '描述', subcomponent: htmls }, | ||||
| 				{ prop: 'sparePartNumber', label: '备品备件数量' }, | ||||
| 				{ prop: 'description', label: '描述', subcomponent: htmls, minWidth: 120, showOverflowtooltip: true }, | ||||
| 				{ prop: 'sparePartNumber', label: '备品备件数量', width: 130 }, | ||||
| 				// { prop: 'remark', label: '备注' }, | ||||
| 			], | ||||
| 			searchBarFormConfig: [ | ||||
| @@ -198,7 +202,7 @@ export default { | ||||
| 						prop: 'description', // TODO: 富文本 | ||||
| 						subcomponent: Editor, | ||||
| 						bind: { | ||||
| 							'min-height': 192 | ||||
| 							'min-height': 150 | ||||
| 						} | ||||
| 					}, | ||||
| 				], | ||||
|   | ||||
| @@ -9,81 +9,84 @@ | ||||
| 	<el-drawer | ||||
| 		:visible.sync="visible" | ||||
| 		:show-close="false" | ||||
| 		:wrapper-closable="false" | ||||
| 		:wrapper-closable="!isLog" | ||||
| 		class="drawer" | ||||
| 		size="60%"> | ||||
| 		<small-title slot="title" :no-padding="true"> | ||||
| 			{{ !isLog ? '操作页面' : '更换记录' }} | ||||
| 		</small-title> | ||||
| 		<el-form | ||||
| 			ref="form" | ||||
| 			:model="dataForm" | ||||
| 			label-width="100px" | ||||
| 			v-loading="formLoading"> | ||||
| 			<el-row :gutter="20"> | ||||
| 				<el-col :span="12"> | ||||
| 					<el-form-item v-if="!isLog" label="配置名" prop="name"> | ||||
| 						<span>{{ dataForm.name }}</span> | ||||
| 					</el-form-item> | ||||
| 					<el-form-item v-else label="产线名称" prop="lineName"> | ||||
| 						<span>{{ dataForm.lineName }}</span> | ||||
| 					</el-form-item> | ||||
| 				</el-col> | ||||
| 				<el-col :span="12"> | ||||
| 					<el-form-item label="设备名称" prop="equipmentName"> | ||||
| 						<span>{{ dataForm.equipmentName }}</span> | ||||
| 					</el-form-item> | ||||
| 				</el-col> | ||||
| 			</el-row> | ||||
| 			<el-form-item label="描述" prop="faultTime"> | ||||
| 				<editor v-model="dataForm.description" read-only :min-height="200"/> | ||||
| 			</el-form-item> | ||||
| 		</el-form> | ||||
| 		 | ||||
| 		<div v-if="!isLog"> | ||||
| 			<base-table | ||||
| 				:table-props="tableProps" | ||||
| 				:page="listQuery.pageNo" | ||||
| 				:limit="listQuery.pageSize" | ||||
| 				:table-data="list"> | ||||
| 				<method-btn | ||||
| 					v-if="!isLog" | ||||
| 					slot="handleBtn" | ||||
| 					:width="120" | ||||
| 					label="操作" | ||||
| 					:method-list="tableBtn" | ||||
| 					@clickBtn="handleClick" /> | ||||
| 			</base-table> | ||||
| 			<pagination | ||||
| 				v-show="listQuery.total > 0" | ||||
| 				:total="listQuery.total" | ||||
| 				:page.sync="listQuery.pageNo" | ||||
| 				:limit.sync="listQuery.pageSize" | ||||
| 				:page-sizes="[5, 10, 15]" | ||||
| 				@pagination="getList" /> | ||||
| 		<div class="content"> | ||||
| 			<el-form | ||||
| 				ref="form" | ||||
| 				:model="dataForm" | ||||
| 				label-width="90px" | ||||
| 				v-loading="formLoading"> | ||||
| 				<el-row :gutter="20"> | ||||
| 					<el-col :span="12"> | ||||
| 						<el-form-item v-if="!isLog" label="配置名" prop="name"> | ||||
| 							<span style="margin-left: 5px">{{ dataForm.name }}</span> | ||||
| 						</el-form-item> | ||||
| 						<el-form-item v-else label="产线名称" prop="lineName"> | ||||
| 							<span style="margin-left: 5px">{{ dataForm.lineName }}</span> | ||||
| 						</el-form-item> | ||||
| 					</el-col> | ||||
| 					<el-col :span="12"> | ||||
| 						<el-form-item label="设备名称" prop="equipmentName"> | ||||
| 							<span style="margin-left: 5px">{{ dataForm.equipmentName }}</span> | ||||
| 						</el-form-item> | ||||
| 					</el-col> | ||||
| 				</el-row> | ||||
| 				<el-form-item label="描述" prop="description"> | ||||
| 					<div v-html="dataForm.description" style="padding: 5px; margin-left: 5px; border: 1px solid #dfdfdf" /> | ||||
| 					<!-- <editor v-model="dataForm.description" :read-only="true" :min-height="200"/> --> | ||||
| 				</el-form-item> | ||||
| 			</el-form> | ||||
| 			 | ||||
| 			<div v-if="!isLog"> | ||||
| 				<base-table | ||||
| 					:table-props="tableProps" | ||||
| 					:page="listQuery.pageNo" | ||||
| 					:limit="listQuery.pageSize" | ||||
| 					:table-data="list"> | ||||
| 					<method-btn | ||||
| 						v-if="!isLog" | ||||
| 						slot="handleBtn" | ||||
| 						:width="120" | ||||
| 						label="操作" | ||||
| 						:method-list="tableBtn" | ||||
| 						@clickBtn="handleClick" /> | ||||
| 				</base-table> | ||||
| 				<pagination | ||||
| 					v-show="listQuery.total > 0" | ||||
| 					:total="listQuery.total" | ||||
| 					:page.sync="listQuery.pageNo" | ||||
| 					:limit.sync="listQuery.pageSize" | ||||
| 					:page-sizes="[5, 10, 15]" | ||||
| 					@pagination="getList" /> | ||||
| 			</div> | ||||
|  | ||||
| 			<div v-else> | ||||
| 				<!-- 搜索工作栏 --> | ||||
| 				<SearchBar | ||||
| 					:formConfigs="formConfig" | ||||
| 					ref="search-bar" | ||||
| 					@headBtnClick="buttonClick" /> | ||||
| 				<base-table | ||||
| 					:table-props="tableProps1" | ||||
| 					:page="listQuery1.pageNo" | ||||
| 					:limit="listQuery1.pageSize" | ||||
| 					:table-data="list1" /> | ||||
| 				<pagination | ||||
| 					v-show="listQuery1.total > 0" | ||||
| 					:total="listQuery1.total" | ||||
| 					:page.sync="listQuery1.pageNo" | ||||
| 					:limit.sync="listQuery1.pageSize" | ||||
| 					:page-sizes="[5, 10, 15]" | ||||
| 					@pagination="getList1" /> | ||||
| 			</div> | ||||
| 		</div> | ||||
|  | ||||
| 		<div v-else> | ||||
| 			<!-- 搜索工作栏 --> | ||||
| 			<SearchBar | ||||
| 				:formConfigs="formConfig" | ||||
| 				ref="search-bar" | ||||
| 				@headBtnClick="buttonClick" /> | ||||
| 			<base-table | ||||
| 				:table-props="tableProps1" | ||||
| 				:page="listQuery1.pageNo" | ||||
| 				:limit="listQuery1.pageSize" | ||||
| 				:table-data="list1" /> | ||||
| 			<pagination | ||||
| 				v-show="listQuery1.total > 0" | ||||
| 				:total="listQuery1.total" | ||||
| 				:page.sync="listQuery1.pageNo" | ||||
| 				:limit.sync="listQuery1.pageSize" | ||||
| 				:page-sizes="[5, 10, 15]" | ||||
| 				@pagination="getList1" /> | ||||
| 		</div> | ||||
|  | ||||
| 		<div class="drawer-body__footer"> | ||||
| 		<div v-if="isLog" class="drawer-body__footer"> | ||||
| 			<el-button type="primary" @click="goback()">关闭</el-button> | ||||
| 		</div> | ||||
|  | ||||
| @@ -249,7 +252,7 @@ export default { | ||||
| 					type: 'button', | ||||
| 					btnName: '导出', | ||||
| 					name: 'export', | ||||
| 					color: 'warning', | ||||
| 					color: 'primary', | ||||
| 					plain: true | ||||
| 				}, | ||||
| 			], | ||||
| @@ -429,4 +432,7 @@ export default { | ||||
| 	justify-content: flex-end; | ||||
| 	padding: 18px; | ||||
| } | ||||
| .content { | ||||
| 	padding: 0 20px; | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -74,8 +74,7 @@ const remainBox = { | ||||
| 		value() { | ||||
| 			const temp = this.injectData[this.injectData.prop] || null; | ||||
| 			if (temp) { | ||||
| 				console.log('12', temp); | ||||
| 				return temp === 'Green' ? 'green' : 'red'; | ||||
| 				return temp === 'Green' ? '未超期' : temp === 'Red' ? '已超期' : '即将超期'; | ||||
| 			} | ||||
| 			return this.injectData[this.injectData.prop] || null; | ||||
| 		}, | ||||
| @@ -83,7 +82,7 @@ const remainBox = { | ||||
| 			if (this.value) { | ||||
| 				// const v = +this.value; | ||||
| 				// return v < 0 ? 'red' : v >= 0 && v < 2 ? 'yellow' : 'green'; | ||||
| 				return this.value; | ||||
| 				return this.value === '未超期' ? '#37D97F' : this.value === '已超期' ? '#FF5454' : '#FFD767'; | ||||
| 			} | ||||
| 			return 'unset'; | ||||
| 		}, | ||||
| @@ -95,9 +94,9 @@ const remainBox = { | ||||
| 					this.color | ||||
| 					// this.color == 'Green' ? 'green' : this.color == 'Red' ? 'red' : 'yellow' | ||||
| 				}; position:absolute; inset: 0; padding: 0 10px; display: flex; align-items: center; color: ${ | ||||
| 					this.color == 'red' || this.color == 'green' ? '#fff' : 'unset' | ||||
| 					'#fff' | ||||
| 				}`}> | ||||
| 				{this.injectData[this.injectData.prop] || ''} | ||||
| 				{this.value} | ||||
| 			</div> | ||||
| 		); | ||||
| 	}, | ||||
| @@ -155,18 +154,19 @@ export default { | ||||
| 				// 	: undefined, | ||||
| 			].filter((v) => v), | ||||
| 			tableProps: [ | ||||
| 				{ prop: 'name', label: '配置名' }, | ||||
| 				{ prop: 'lineName', label: '产线名称' }, | ||||
| 				{ prop: 'sectionName', label: '工段名' }, | ||||
| 				{ prop: 'equipmentName', label: '设备名称' }, | ||||
| 				{ prop: 'responsible', label: '负责人' }, | ||||
| 				{ prop: 'name', label: '配置名', showOverflowtooltip: true }, | ||||
| 				{ prop: 'lineName', label: '产线名称', showOverflowtooltip: true }, | ||||
| 				{ prop: 'sectionName', label: '工段名', showOverflowtooltip: true }, | ||||
| 				{ prop: 'equipmentName', label: '设备名称', showOverflowtooltip: true }, | ||||
| 				{ prop: 'responsible', label: '负责人', minWidth: 130, showOverflowtooltip: true }, | ||||
| 				{ prop: 'color', label: '是否超期', subcomponent: remainBox }, | ||||
| 				{ prop: 'opt1', label: '备件更换', name: '操作', subcomponent: btn }, | ||||
| 				{ prop: 'opt1', label: '备件更换', name: '操作', subcomponent: btn, width: 110 }, | ||||
| 				{ | ||||
| 					prop: 'opt2', | ||||
| 					label: '更换记录', | ||||
| 					name: '更新记录', | ||||
| 					subcomponent: btn, | ||||
| 					width: 110 | ||||
| 				}, // TODO: 是否换成按钮, 群里问 | ||||
| 				// { prop: 'remark', label: '备注' }, | ||||
| 			], | ||||
|   | ||||
		Reference in New Issue
	
	Block a user