projects/mesxc-zhp #161
@@ -1,3 +1,10 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-10-17 09:26:38
 | 
			
		||||
 * @LastEditTime: 2023-11-20 15:50:08
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @Description:
 | 
			
		||||
 */
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
// 创建质量检测信息基础
 | 
			
		||||
@@ -52,3 +59,11 @@ export function exportQualityInspectionDetExcel(query) {
 | 
			
		||||
    responseType: 'blob'
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function getQualityInspectionDetList(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/quality-inspection-det/listAll',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -65,6 +65,7 @@
 | 
			
		||||
						v-if="col.subcomponent"
 | 
			
		||||
						:key="col.key"
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						:read-only="disabled"
 | 
			
		||||
						:is="col.subcomponent"
 | 
			
		||||
						v-model="form[col.prop]"
 | 
			
		||||
						:inlineStyle="col.style"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,279 +1,293 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <el-upload
 | 
			
		||||
      :action="uploadFileUrl"
 | 
			
		||||
      :before-upload="handleBeforeUpload"
 | 
			
		||||
      :on-success="handleUploadSuccess"
 | 
			
		||||
      :on-error="handleUploadError"
 | 
			
		||||
      name="file"
 | 
			
		||||
      :show-file-list="false"
 | 
			
		||||
      :headers="headers"
 | 
			
		||||
      style="display: none"
 | 
			
		||||
      ref="upload"
 | 
			
		||||
      v-if="this.type === 'url'"
 | 
			
		||||
    >
 | 
			
		||||
    </el-upload>
 | 
			
		||||
    <div class="editor" ref="editor" :style="styles"></div>
 | 
			
		||||
  </div>
 | 
			
		||||
	<div :class="[readOnly ? 'editor-wrapper' : '']">
 | 
			
		||||
		<el-upload
 | 
			
		||||
			:action="uploadFileUrl"
 | 
			
		||||
			:before-upload="handleBeforeUpload"
 | 
			
		||||
			:on-success="handleUploadSuccess"
 | 
			
		||||
			:on-error="handleUploadError"
 | 
			
		||||
			name="file"
 | 
			
		||||
			:show-file-list="false"
 | 
			
		||||
			:headers="headers"
 | 
			
		||||
			style="display: none"
 | 
			
		||||
			ref="upload"
 | 
			
		||||
			v-if="this.type === 'url'"></el-upload>
 | 
			
		||||
		<div class="editor" ref="editor" :style="styles"></div>
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import Quill from "quill";
 | 
			
		||||
import "quill/dist/quill.core.css";
 | 
			
		||||
import "quill/dist/quill.snow.css";
 | 
			
		||||
import "quill/dist/quill.bubble.css";
 | 
			
		||||
import { getAccessToken } from "@/utils/auth";
 | 
			
		||||
import Quill from 'quill';
 | 
			
		||||
import 'quill/dist/quill.core.css';
 | 
			
		||||
import 'quill/dist/quill.snow.css';
 | 
			
		||||
import 'quill/dist/quill.bubble.css';
 | 
			
		||||
import { getAccessToken } from '@/utils/auth';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "Editor",
 | 
			
		||||
  props: {
 | 
			
		||||
    /* 编辑器的内容 */
 | 
			
		||||
    value: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    /* 高度 */
 | 
			
		||||
    height: {
 | 
			
		||||
      type: Number,
 | 
			
		||||
      default: null,
 | 
			
		||||
    },
 | 
			
		||||
    /* 最小高度 */
 | 
			
		||||
    minHeight: {
 | 
			
		||||
      type: Number,
 | 
			
		||||
      default: null,
 | 
			
		||||
    },
 | 
			
		||||
    /* 只读 */
 | 
			
		||||
    readOnly: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: false,
 | 
			
		||||
    },
 | 
			
		||||
    // 上传文件大小限制(MB)
 | 
			
		||||
    fileSize: {
 | 
			
		||||
      type: Number,
 | 
			
		||||
      default: 5,
 | 
			
		||||
    },
 | 
			
		||||
    /* 类型(base64格式、url格式) */
 | 
			
		||||
    type: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "url",
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      uploadFileUrl: process.env.VUE_APP_BASE_API + "/admin-api/infra/file/upload", // 请求地址
 | 
			
		||||
      headers: { Authorization: "Bearer " + getAccessToken() }, // 设置上传的请求头部
 | 
			
		||||
      Quill: null,
 | 
			
		||||
      currentValue: "",
 | 
			
		||||
      options: {
 | 
			
		||||
        theme: "snow",
 | 
			
		||||
        bounds: document.body,
 | 
			
		||||
        debug: "warn",
 | 
			
		||||
        modules: {
 | 
			
		||||
          // 工具栏配置
 | 
			
		||||
          toolbar: [
 | 
			
		||||
            ["bold", "italic", "underline", "strike"],       // 加粗 斜体 下划线 删除线
 | 
			
		||||
            ["blockquote", "code-block"],                    // 引用  代码块
 | 
			
		||||
            [{ list: "ordered" }, { list: "bullet" }],       // 有序、无序列表
 | 
			
		||||
            [{ indent: "-1" }, { indent: "+1" }],            // 缩进
 | 
			
		||||
            [{ size: ["small", false, "large", "huge"] }],   // 字体大小
 | 
			
		||||
            [{ header: [1, 2, 3, 4, 5, 6, false] }],         // 标题
 | 
			
		||||
            [{ color: [] }, { background: [] }],             // 字体颜色、字体背景颜色
 | 
			
		||||
            [{ align: [] }],                                 // 对齐方式
 | 
			
		||||
            ["clean"],                                       // 清除文本格式
 | 
			
		||||
            ["link", "image", "video"]                       // 链接、图片、视频
 | 
			
		||||
          ],
 | 
			
		||||
        },
 | 
			
		||||
        placeholder: "请输入内容",
 | 
			
		||||
        readOnly: true,
 | 
			
		||||
      },
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    styles() {
 | 
			
		||||
      let style = {};
 | 
			
		||||
      if (this.minHeight) {
 | 
			
		||||
        style.minHeight = `${this.minHeight}px`;
 | 
			
		||||
      }
 | 
			
		||||
      if (this.height) {
 | 
			
		||||
        style.height = `${this.height}px`;
 | 
			
		||||
      }
 | 
			
		||||
      return style;
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  watch: {
 | 
			
		||||
    value: {
 | 
			
		||||
      handler(val) {
 | 
			
		||||
        if (val !== this.currentValue) {
 | 
			
		||||
          this.currentValue = val === null ? "" : val;
 | 
			
		||||
          if (this.Quill) {
 | 
			
		||||
            this.Quill.pasteHTML(this.currentValue);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      immediate: true,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    this.init();
 | 
			
		||||
  },
 | 
			
		||||
  beforeDestroy() {
 | 
			
		||||
    this.Quill = null;
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init() {
 | 
			
		||||
      const editor = this.$refs.editor;
 | 
			
		||||
      this.Quill = new Quill(editor, this.options);
 | 
			
		||||
      // 取消自动聚焦 start
 | 
			
		||||
      this.$nextTick(()=>{
 | 
			
		||||
        this.Quill.blur();
 | 
			
		||||
        if(!this.readOnly){
 | 
			
		||||
          this.Quill.enable();
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
      // 如果设置了上传地址则自定义图片上传事件
 | 
			
		||||
      if (this.type === 'url') {
 | 
			
		||||
        let toolbar = this.Quill.getModule("toolbar");
 | 
			
		||||
        toolbar.addHandler("image", (value) => {
 | 
			
		||||
          this.uploadType = "image";
 | 
			
		||||
          if (value) {
 | 
			
		||||
            this.$refs.upload.$children[0].$refs.input.click();
 | 
			
		||||
          } else {
 | 
			
		||||
            this.quill.format("image", false);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
      this.Quill.pasteHTML(this.currentValue);
 | 
			
		||||
      this.Quill.on("text-change", (delta, oldDelta, source) => {
 | 
			
		||||
        const html = this.$refs.editor.children[0].innerHTML;
 | 
			
		||||
        const text = this.Quill.getText();
 | 
			
		||||
        const quill = this.Quill;
 | 
			
		||||
        this.currentValue = html;
 | 
			
		||||
        this.$emit("input", html);
 | 
			
		||||
        this.$emit("on-change", { html, text, quill });
 | 
			
		||||
      });
 | 
			
		||||
      this.Quill.on("text-change", (delta, oldDelta, source) => {
 | 
			
		||||
        this.$emit("on-text-change", delta, oldDelta, source);
 | 
			
		||||
      });
 | 
			
		||||
      this.Quill.on("selection-change", (range, oldRange, source) => {
 | 
			
		||||
        this.$emit("on-selection-change", range, oldRange, source);
 | 
			
		||||
      });
 | 
			
		||||
      this.Quill.on("editor-change", (eventName, ...args) => {
 | 
			
		||||
        this.$emit("on-editor-change", eventName, ...args);
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    // 上传前校检格式和大小
 | 
			
		||||
    handleBeforeUpload(file) {
 | 
			
		||||
      // 校检文件大小
 | 
			
		||||
      if (this.fileSize) {
 | 
			
		||||
        const isLt = file.size / 1024 / 1024 < this.fileSize;
 | 
			
		||||
        if (!isLt) {
 | 
			
		||||
          this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      return true;
 | 
			
		||||
    },
 | 
			
		||||
    handleUploadSuccess(res, file) {
 | 
			
		||||
      // 获取富文本组件实例
 | 
			
		||||
      let quill = this.Quill;
 | 
			
		||||
      // 如果上传成功
 | 
			
		||||
      // edit by 芋道源码
 | 
			
		||||
      if (res.code === 200 || res.code === 0) {
 | 
			
		||||
        // 获取光标所在位置
 | 
			
		||||
        let length = quill.getSelection().index;
 | 
			
		||||
        // 插入图片  res.url为服务器返回的图片地址
 | 
			
		||||
        // edit by 芋道源码
 | 
			
		||||
        quill.insertEmbed(length, "image", res.data);
 | 
			
		||||
        // 调整光标到最后
 | 
			
		||||
        quill.setSelection(length + 1);
 | 
			
		||||
      } else {
 | 
			
		||||
        this.$message.error("图片插入失败");
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    handleUploadError() {
 | 
			
		||||
      this.$message.error("图片插入失败");
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
	name: 'Editor',
 | 
			
		||||
	props: {
 | 
			
		||||
		/* 编辑器的内容 */
 | 
			
		||||
		value: {
 | 
			
		||||
			type: String,
 | 
			
		||||
			default: '',
 | 
			
		||||
		},
 | 
			
		||||
		/* 高度 */
 | 
			
		||||
		height: {
 | 
			
		||||
			type: Number,
 | 
			
		||||
			default: null,
 | 
			
		||||
		},
 | 
			
		||||
		/* 最小高度 */
 | 
			
		||||
		minHeight: {
 | 
			
		||||
			type: Number,
 | 
			
		||||
			default: null,
 | 
			
		||||
		},
 | 
			
		||||
		/* 只读 */
 | 
			
		||||
		readOnly: {
 | 
			
		||||
			type: Boolean,
 | 
			
		||||
			default: false,
 | 
			
		||||
		},
 | 
			
		||||
		// 上传文件大小限制(MB)
 | 
			
		||||
		fileSize: {
 | 
			
		||||
			type: Number,
 | 
			
		||||
			default: 5,
 | 
			
		||||
		},
 | 
			
		||||
		/* 类型(base64格式、url格式) */
 | 
			
		||||
		type: {
 | 
			
		||||
			type: String,
 | 
			
		||||
			default: 'url',
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			uploadFileUrl:
 | 
			
		||||
				process.env.VUE_APP_BASE_API + '/admin-api/infra/file/upload', // 请求地址
 | 
			
		||||
			headers: { Authorization: 'Bearer ' + getAccessToken() }, // 设置上传的请求头部
 | 
			
		||||
			Quill: null,
 | 
			
		||||
			currentValue: '',
 | 
			
		||||
			options: {
 | 
			
		||||
				theme: 'snow',
 | 
			
		||||
				bounds: document.body,
 | 
			
		||||
				debug: 'warn',
 | 
			
		||||
				modules: {
 | 
			
		||||
					// 工具栏配置
 | 
			
		||||
					toolbar: [
 | 
			
		||||
						['bold', 'italic', 'underline', 'strike'], // 加粗 斜体 下划线 删除线
 | 
			
		||||
						['blockquote', 'code-block'], // 引用  代码块
 | 
			
		||||
						[{ list: 'ordered' }, { list: 'bullet' }], // 有序、无序列表
 | 
			
		||||
						[{ indent: '-1' }, { indent: '+1' }], // 缩进
 | 
			
		||||
						[{ size: ['small', false, 'large', 'huge'] }], // 字体大小
 | 
			
		||||
						[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题
 | 
			
		||||
						[{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色
 | 
			
		||||
						[{ align: [] }], // 对齐方式
 | 
			
		||||
						['clean'], // 清除文本格式
 | 
			
		||||
						['link', 'image', 'video'], // 链接、图片、视频
 | 
			
		||||
					],
 | 
			
		||||
				},
 | 
			
		||||
				placeholder: '请输入内容',
 | 
			
		||||
				readOnly: true,
 | 
			
		||||
			},
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	computed: {
 | 
			
		||||
		styles() {
 | 
			
		||||
			let style = {};
 | 
			
		||||
			if (this.minHeight) {
 | 
			
		||||
				style.minHeight = `${this.minHeight}px`;
 | 
			
		||||
			}
 | 
			
		||||
			if (this.height) {
 | 
			
		||||
				style.height = `${this.height}px`;
 | 
			
		||||
			}
 | 
			
		||||
			return style;
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	watch: {
 | 
			
		||||
		value: {
 | 
			
		||||
			handler(val) {
 | 
			
		||||
				if (val !== this.currentValue) {
 | 
			
		||||
					this.currentValue = val === null ? '' : val;
 | 
			
		||||
					if (this.Quill) {
 | 
			
		||||
						this.Quill.pasteHTML(this.currentValue);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			},
 | 
			
		||||
			immediate: true,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		this.init();
 | 
			
		||||
	},
 | 
			
		||||
	beforeDestroy() {
 | 
			
		||||
		this.Quill = null;
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		init() {
 | 
			
		||||
			const editor = this.$refs.editor;
 | 
			
		||||
			this.Quill = new Quill(editor, this.options);
 | 
			
		||||
			// 取消自动聚焦 start
 | 
			
		||||
			this.$nextTick(() => {
 | 
			
		||||
				this.Quill.blur();
 | 
			
		||||
				if (!this.readOnly) {
 | 
			
		||||
					this.Quill.enable();
 | 
			
		||||
				}
 | 
			
		||||
			});
 | 
			
		||||
			// 如果设置了上传地址则自定义图片上传事件
 | 
			
		||||
			if (this.type === 'url') {
 | 
			
		||||
				let toolbar = this.Quill.getModule('toolbar');
 | 
			
		||||
				toolbar.addHandler('image', (value) => {
 | 
			
		||||
					this.uploadType = 'image';
 | 
			
		||||
					if (value) {
 | 
			
		||||
						this.$refs.upload.$children[0].$refs.input.click();
 | 
			
		||||
					} else {
 | 
			
		||||
						this.quill.format('image', false);
 | 
			
		||||
					}
 | 
			
		||||
				});
 | 
			
		||||
			}
 | 
			
		||||
			this.Quill.pasteHTML(this.currentValue);
 | 
			
		||||
			this.Quill.on('text-change', (delta, oldDelta, source) => {
 | 
			
		||||
				const html = this.$refs.editor.children[0].innerHTML;
 | 
			
		||||
				const text = this.Quill.getText();
 | 
			
		||||
				const quill = this.Quill;
 | 
			
		||||
				this.currentValue = html;
 | 
			
		||||
				this.$emit('input', html);
 | 
			
		||||
				this.$emit('on-change', { html, text, quill });
 | 
			
		||||
			});
 | 
			
		||||
			this.Quill.on('text-change', (delta, oldDelta, source) => {
 | 
			
		||||
				this.$emit('on-text-change', delta, oldDelta, source);
 | 
			
		||||
			});
 | 
			
		||||
			this.Quill.on('selection-change', (range, oldRange, source) => {
 | 
			
		||||
				this.$emit('on-selection-change', range, oldRange, source);
 | 
			
		||||
			});
 | 
			
		||||
			this.Quill.on('editor-change', (eventName, ...args) => {
 | 
			
		||||
				this.$emit('on-editor-change', eventName, ...args);
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		// 上传前校检格式和大小
 | 
			
		||||
		handleBeforeUpload(file) {
 | 
			
		||||
			// 校检文件大小
 | 
			
		||||
			if (this.fileSize) {
 | 
			
		||||
				const isLt = file.size / 1024 / 1024 < this.fileSize;
 | 
			
		||||
				if (!isLt) {
 | 
			
		||||
					this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
 | 
			
		||||
					return false;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			return true;
 | 
			
		||||
		},
 | 
			
		||||
		handleUploadSuccess(res, file) {
 | 
			
		||||
			// 获取富文本组件实例
 | 
			
		||||
			let quill = this.Quill;
 | 
			
		||||
			// 如果上传成功
 | 
			
		||||
			// edit by 芋道源码
 | 
			
		||||
			if (res.code === 200 || res.code === 0) {
 | 
			
		||||
				// 获取光标所在位置
 | 
			
		||||
				let length = quill.getSelection().index;
 | 
			
		||||
				// 插入图片  res.url为服务器返回的图片地址
 | 
			
		||||
				// edit by 芋道源码
 | 
			
		||||
				quill.insertEmbed(length, 'image', res.data);
 | 
			
		||||
				// 调整光标到最后
 | 
			
		||||
				quill.setSelection(length + 1);
 | 
			
		||||
			} else {
 | 
			
		||||
				this.$message.error('图片插入失败');
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		handleUploadError() {
 | 
			
		||||
			this.$message.error('图片插入失败');
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style>
 | 
			
		||||
.editor, .ql-toolbar {
 | 
			
		||||
  white-space: pre-wrap !important;
 | 
			
		||||
  line-height: normal !important;
 | 
			
		||||
.editor-wrapper {
 | 
			
		||||
	position: relative;
 | 
			
		||||
  cursor: not-allowed;
 | 
			
		||||
 | 
			
		||||
	&::after {
 | 
			
		||||
		content: '';
 | 
			
		||||
		position: absolute;
 | 
			
		||||
		top: 0;
 | 
			
		||||
		left: 0;
 | 
			
		||||
		width: 100%;
 | 
			
		||||
		height: 100%;
 | 
			
		||||
		background: #f5f7fa77;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
.editor,
 | 
			
		||||
.ql-toolbar {
 | 
			
		||||
	white-space: pre-wrap !important;
 | 
			
		||||
	line-height: normal !important;
 | 
			
		||||
}
 | 
			
		||||
.quill-img {
 | 
			
		||||
  display: none;
 | 
			
		||||
	display: none;
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-tooltip[data-mode="link"]::before {
 | 
			
		||||
  content: "请输入链接地址:";
 | 
			
		||||
.ql-snow .ql-tooltip[data-mode='link']::before {
 | 
			
		||||
	content: '请输入链接地址:';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
 | 
			
		||||
  border-right: 0px;
 | 
			
		||||
  content: "保存";
 | 
			
		||||
  padding-right: 0px;
 | 
			
		||||
	border-right: 0px;
 | 
			
		||||
	content: '保存';
 | 
			
		||||
	padding-right: 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.ql-snow .ql-tooltip[data-mode="video"]::before {
 | 
			
		||||
  content: "请输入视频地址:";
 | 
			
		||||
.ql-snow .ql-tooltip[data-mode='video']::before {
 | 
			
		||||
	content: '请输入视频地址:';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-label::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-item::before {
 | 
			
		||||
  content: "14px";
 | 
			
		||||
	content: '14px';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before {
 | 
			
		||||
  content: "10px";
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='small']::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value='small']::before {
 | 
			
		||||
	content: '10px';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before {
 | 
			
		||||
  content: "18px";
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='large']::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value='large']::before {
 | 
			
		||||
	content: '18px';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before {
 | 
			
		||||
  content: "32px";
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='huge']::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value='huge']::before {
 | 
			
		||||
	content: '32px';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item::before {
 | 
			
		||||
  content: "文本";
 | 
			
		||||
	content: '文本';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
 | 
			
		||||
  content: "标题1";
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='1']::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='1']::before {
 | 
			
		||||
	content: '标题1';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
 | 
			
		||||
  content: "标题2";
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='2']::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='2']::before {
 | 
			
		||||
	content: '标题2';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
 | 
			
		||||
  content: "标题3";
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='3']::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='3']::before {
 | 
			
		||||
	content: '标题3';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
 | 
			
		||||
  content: "标题4";
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='4']::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='4']::before {
 | 
			
		||||
	content: '标题4';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
 | 
			
		||||
  content: "标题5";
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='5']::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='5']::before {
 | 
			
		||||
	content: '标题5';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
 | 
			
		||||
  content: "标题6";
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='6']::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='6']::before {
 | 
			
		||||
	content: '标题6';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.ql-snow .ql-picker.ql-font .ql-picker-label::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-font .ql-picker-item::before {
 | 
			
		||||
  content: "标准字体";
 | 
			
		||||
	content: '标准字体';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before {
 | 
			
		||||
  content: "衬线字体";
 | 
			
		||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='serif']::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='serif']::before {
 | 
			
		||||
	content: '衬线字体';
 | 
			
		||||
}
 | 
			
		||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
 | 
			
		||||
  content: "等宽字体";
 | 
			
		||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='monospace']::before,
 | 
			
		||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='monospace']::before {
 | 
			
		||||
	content: '等宽字体';
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-07-19 15:18:30
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-11-15 16:04:06
 | 
			
		||||
 * @LastEditTime: 2023-11-22 13:58:30
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -14,6 +14,8 @@
 | 
			
		||||
    }">
 | 
			
		||||
      <img src="../../assets/img/logo.png" style="width:1.1em;position:relative;top:.4em" alt="">
 | 
			
		||||
      许昌安彩AGV原片周转看板
 | 
			
		||||
      <h3 class="unit">单位:河南汇融科技服务有限公司</h3>
 | 
			
		||||
      <h3 class="time">{{ times }}</h3>
 | 
			
		||||
      <!-- <el-button
 | 
			
		||||
        type="text"
 | 
			
		||||
        class="title-button"
 | 
			
		||||
@@ -87,11 +89,11 @@
 | 
			
		||||
            <!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
 | 
			
		||||
              <top-radio-group />
 | 
			
		||||
            </div> -->
 | 
			
		||||
            <el-row :gutter="9 * beilv">
 | 
			
		||||
              <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="24">
 | 
			
		||||
            <!-- <el-row :gutter="9 * beilv"> -->
 | 
			
		||||
              <!-- <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="24"> -->
 | 
			
		||||
                <base-table :page="1" :limit="9" :show-index="false" :beilv="1" :table-config="inventoryTableProps"
 | 
			
		||||
                  :table-data="inventoryList" />
 | 
			
		||||
              </el-col>
 | 
			
		||||
              <!-- </el-col> -->
 | 
			
		||||
              <!-- <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
 | 
			
		||||
                <base-table3
 | 
			
		||||
                  :page="2"
 | 
			
		||||
@@ -101,7 +103,7 @@
 | 
			
		||||
                  :table-data="qualityList2"
 | 
			
		||||
                />
 | 
			
		||||
              </el-col> -->
 | 
			
		||||
            </el-row>
 | 
			
		||||
            <!-- </el-row> -->
 | 
			
		||||
          </base-container>
 | 
			
		||||
        </el-col>
 | 
			
		||||
        <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
 | 
			
		||||
@@ -666,7 +668,8 @@ export default {
 | 
			
		||||
    return {
 | 
			
		||||
      beilv: 1,
 | 
			
		||||
      beilv2: 1,
 | 
			
		||||
      clientWidth:0,
 | 
			
		||||
      clientWidth: 0,
 | 
			
		||||
      times:undefined,
 | 
			
		||||
      value: 100,
 | 
			
		||||
      qualityYearTableProps,
 | 
			
		||||
      cxNameList,
 | 
			
		||||
@@ -748,6 +751,7 @@ export default {
 | 
			
		||||
    // this.fetchList('order-process')
 | 
			
		||||
    // this.fetchList('line-chart-data')
 | 
			
		||||
    this.init()
 | 
			
		||||
    this.getTimes()
 | 
			
		||||
    this.windowWidth(document.documentElement.clientWidth)
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
@@ -776,6 +780,30 @@ export default {
 | 
			
		||||
  //   removeEventListener('resize', resizeFun)
 | 
			
		||||
  // },
 | 
			
		||||
  methods: {
 | 
			
		||||
    getTimes() {
 | 
			
		||||
      setInterval(this.getTimesInterval, 1000);
 | 
			
		||||
    },
 | 
			
		||||
    getTimesInterval: function () {
 | 
			
		||||
      let _this = this;
 | 
			
		||||
      let year = new Date().getFullYear(); //获取当前时间的年份
 | 
			
		||||
      let month = new Date().getMonth() + 1; //获取当前时间的月份
 | 
			
		||||
      let day = new Date().getDate(); //获取当前时间的天数
 | 
			
		||||
      let hours = new Date().getHours(); //获取当前时间的小时
 | 
			
		||||
      let minutes = new Date().getMinutes(); //获取当前时间的分数
 | 
			
		||||
      let seconds = new Date().getSeconds(); //获取当前时间的秒数
 | 
			
		||||
      //当小于 10 的是时候,在前面加 0
 | 
			
		||||
      if (hours < 10) {
 | 
			
		||||
        hours = "0" + hours;
 | 
			
		||||
      }
 | 
			
		||||
      if (minutes < 10) {
 | 
			
		||||
        minutes = "0" + minutes;
 | 
			
		||||
      }
 | 
			
		||||
      if (seconds < 10) {
 | 
			
		||||
        seconds = "0" + seconds;
 | 
			
		||||
      }
 | 
			
		||||
      //拼接格式化当前时间
 | 
			
		||||
      this.times = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
 | 
			
		||||
    },
 | 
			
		||||
    windowWidth(value) {
 | 
			
		||||
      this.clientWidth = value
 | 
			
		||||
    },
 | 
			
		||||
@@ -846,7 +874,19 @@ export default {
 | 
			
		||||
    background-size: 100% 100%;
 | 
			
		||||
    color: #00fff0;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
 | 
			
		||||
    position: relative;
 | 
			
		||||
    .unit{
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      left: 260px;
 | 
			
		||||
      top:25px;
 | 
			
		||||
      font-size: 20px;
 | 
			
		||||
    }
 | 
			
		||||
    .time{
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      left: 1360px;
 | 
			
		||||
      top:25px;
 | 
			
		||||
      font-size: 20px;
 | 
			
		||||
    }
 | 
			
		||||
    .title-button {
 | 
			
		||||
      color: #00fff0;
 | 
			
		||||
      font-size: 20px;
 | 
			
		||||
 
 | 
			
		||||
@@ -162,7 +162,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '属性名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '属性名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
		v-loading="formLoading">
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="8">
 | 
			
		||||
				<el-form-item label="设备名称" prop="name" :rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
				<el-form-item label="设备名称" prop="name" :rules="[{ required: true, message: '设备名称不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input v-model="form.name" :disabled="disabled" placeholder="请输入设备名称"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
@@ -33,7 +33,7 @@
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="8">
 | 
			
		||||
				<el-form-item label="设备类型" prop="equipmentTypeId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '设备类型不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select v-model="form.equipmentTypeId" :disabled="disabled" filterable placeholder="请选择设备类型">
 | 
			
		||||
						<el-option v-for="eqType in eqTypeList" :key="eqType.id" :label="eqType.name"
 | 
			
		||||
							:value="eqType.id"></el-option>
 | 
			
		||||
@@ -43,7 +43,7 @@
 | 
			
		||||
 | 
			
		||||
			<el-col :span="8">
 | 
			
		||||
				<el-form-item label="预计生产时间(min/天)" prop="workTime" :rules="[
 | 
			
		||||
					{ required: true, message: '不能为空', trigger: 'blur' },
 | 
			
		||||
					{ required: true, message: '预计生产时间不能为空', trigger: 'blur' },
 | 
			
		||||
					{
 | 
			
		||||
						type: 'number',
 | 
			
		||||
						message: '请输入正确的数字值',
 | 
			
		||||
@@ -71,7 +71,7 @@
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="8">
 | 
			
		||||
				<el-form-item label="设备TT值" prop="tvalue" :rules="[
 | 
			
		||||
					{ required: true, message: '不能为空', trigger: 'blur' },
 | 
			
		||||
					{ required: true, message: '设备TT值不能为空', trigger: 'blur' },
 | 
			
		||||
					{
 | 
			
		||||
						type: 'number',
 | 
			
		||||
						message: '请输入正确的数字值',
 | 
			
		||||
@@ -86,7 +86,7 @@
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="8">
 | 
			
		||||
				<el-form-item label="产品加工时间(s)" prop="processingTime" :rules="[
 | 
			
		||||
					{ required: true, message: '不能为空', trigger: 'blur' },
 | 
			
		||||
					{ required: true, message: '产品加工时间不能为空', trigger: 'blur' },
 | 
			
		||||
					{
 | 
			
		||||
						type: 'number',
 | 
			
		||||
						message: '请输入正确的数字值',
 | 
			
		||||
 
 | 
			
		||||
@@ -196,7 +196,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '设备名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: this.editMode == 'detail', // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
@@ -211,10 +211,6 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '英文名称',
 | 
			
		||||
						prop: 'enName',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: true, // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -222,10 +218,6 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '缩写',
 | 
			
		||||
						prop: 'abbr',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: true, // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
					},
 | 
			
		||||
 | 
			
		||||
					{
 | 
			
		||||
@@ -233,7 +225,7 @@ export default {
 | 
			
		||||
						label: '设备类型',
 | 
			
		||||
						prop: 'equipmentTypeId',
 | 
			
		||||
						url: '/base/core-equipment-type/page?pageNo=1&pageSize=100',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备类型不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
@@ -243,7 +235,7 @@ export default {
 | 
			
		||||
						label: '预计生产时间(min/天)',
 | 
			
		||||
						prop: 'workTime',
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '不能为空', trigger: 'blur' },
 | 
			
		||||
							{ required: true, message: '预计生产时间不能为空', trigger: 'blur' },
 | 
			
		||||
							{
 | 
			
		||||
								type: 'number',
 | 
			
		||||
								message: '请输入正确的数字值',
 | 
			
		||||
@@ -275,7 +267,7 @@ export default {
 | 
			
		||||
						prop: 'tvalue',
 | 
			
		||||
						label: '设备TT值',
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '不能为空', trigger: 'blur' },
 | 
			
		||||
							{ required: true, message: '设备TT值不能为空', trigger: 'blur' },
 | 
			
		||||
							{
 | 
			
		||||
								type: 'number',
 | 
			
		||||
								message: '请输入正确的数字值',
 | 
			
		||||
@@ -291,7 +283,7 @@ export default {
 | 
			
		||||
						label: '产品加工时间(s)',
 | 
			
		||||
						prop: 'processingTime',
 | 
			
		||||
						rules: [
 | 
			
		||||
							{ required: true, message: '不能为空', trigger: 'blur' },
 | 
			
		||||
							{ required: true, message: '产品加工时间不能为空', trigger: 'blur' },
 | 
			
		||||
							{
 | 
			
		||||
								type: 'number',
 | 
			
		||||
								message: '请输入正确的数字值',
 | 
			
		||||
@@ -304,7 +296,6 @@ export default {
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '制造商',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						prop: 'manufacturer',
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
@@ -317,7 +308,6 @@ export default {
 | 
			
		||||
					{
 | 
			
		||||
						textarea: true,
 | 
			
		||||
						label: '功能描述',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						prop: 'description',
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
 
 | 
			
		||||
@@ -149,7 +149,7 @@ export default {
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '产线',
 | 
			
		||||
						prop: 'productionLineId',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '产线名不能为空', trigger: 'blur' }],
 | 
			
		||||
						url: '/base/core-production-line/listAll',
 | 
			
		||||
						bind: { clearable: true, filterable: true },
 | 
			
		||||
						// watch: 'workshopSectionId'
 | 
			
		||||
@@ -159,7 +159,7 @@ export default {
 | 
			
		||||
						label: '工段',
 | 
			
		||||
						prop: 'workshopSectionId',
 | 
			
		||||
						depends: 'productionLineId',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '工段不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: { clearable: true, filterable: true },
 | 
			
		||||
						url: '/base/core-workshop-section/listByParentId',
 | 
			
		||||
					},
 | 
			
		||||
@@ -169,7 +169,7 @@ export default {
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '设备',
 | 
			
		||||
						prop: 'equipmentId',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备名不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: { clearable: true, filterable: true },
 | 
			
		||||
						url: '/base/core-equipment/listAll',
 | 
			
		||||
					},
 | 
			
		||||
 
 | 
			
		||||
@@ -135,7 +135,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '设备类型名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备类型名不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: true, // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="产线"
 | 
			
		||||
					prop="productionLineId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '产线不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="dataForm.productionLineId"
 | 
			
		||||
						placeholder="请选择产线"
 | 
			
		||||
@@ -35,7 +35,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="工段"
 | 
			
		||||
					prop="workshopSectionId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '工段不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="dataForm.workshopSectionId"
 | 
			
		||||
						filterable
 | 
			
		||||
@@ -55,7 +55,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="设备"
 | 
			
		||||
					prop="equipmentId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '设备不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="dataForm.equipmentId"
 | 
			
		||||
						filterable
 | 
			
		||||
 
 | 
			
		||||
@@ -176,7 +176,7 @@ export default {
 | 
			
		||||
						url: '/base/production-line/listAll',
 | 
			
		||||
						// prop: '__product_line', // __开头代表不传递给服务器
 | 
			
		||||
						prop: 'productionLineId', // 编辑接口返回的产线id,所以不能使用上面那种形式
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '产线不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
@@ -185,7 +185,7 @@ export default {
 | 
			
		||||
						// depends: '__product_line', // 依赖产线获取数据
 | 
			
		||||
						depends: 'productionLineId',
 | 
			
		||||
						prop: 'workshopSectionId',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '工段不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -194,7 +194,7 @@ export default {
 | 
			
		||||
						label: '设备',
 | 
			
		||||
						url: '/base/core-equipment/page?pageNo=1&pageSize=100',
 | 
			
		||||
						prop: 'equipmentId',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
 
 | 
			
		||||
@@ -16,36 +16,20 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警编码"
 | 
			
		||||
					prop="code"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '报警编码不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.code"
 | 
			
		||||
						@change="$emit('update', dataForm)"
 | 
			
		||||
						placeholder="请输入工段排序" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
				<!-- 				
 | 
			
		||||
						<el-form-item
 | 
			
		||||
						label="报警编码"
 | 
			
		||||
						prop="code"
 | 
			
		||||
						:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
						<el-select
 | 
			
		||||
						v-model="dataForm.code"
 | 
			
		||||
						placeholder="请选择产线"
 | 
			
		||||
						@change="handleProductlineChange">
 | 
			
		||||
						<el-option
 | 
			
		||||
						v-for="opt in productionLineList"
 | 
			
		||||
						:key="opt.value"
 | 
			
		||||
						:label="opt.label"
 | 
			
		||||
						:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item> -->
 | 
			
		||||
			</el-col>
 | 
			
		||||
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警类型"
 | 
			
		||||
					prop="type"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '报警类型不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="dataForm.type"
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
@@ -68,7 +52,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警级别"
 | 
			
		||||
					prop="grade"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '报警级别不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.grade"
 | 
			
		||||
@@ -101,7 +85,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="参数列名"
 | 
			
		||||
					prop="plcParamName"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '参数列名不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.plcParamName"
 | 
			
		||||
@@ -113,7 +97,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警内容"
 | 
			
		||||
					prop="alarmContent"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '报警内容不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.alarmContent"
 | 
			
		||||
 
 | 
			
		||||
@@ -137,7 +137,7 @@ export default {
 | 
			
		||||
						label: '报警编码', // 自动生成
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-group-alarm/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '报警编码不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
@@ -147,7 +147,7 @@ export default {
 | 
			
		||||
							{ label: '布尔型', value: 2 },
 | 
			
		||||
							{ label: '字符型', value: 1 },
 | 
			
		||||
						],
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '报警类型不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -168,13 +168,13 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '参数列名', // 在实时数据库的列名
 | 
			
		||||
						prop: 'plcParamName',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '参数列名不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '报警内容',
 | 
			
		||||
						prop: 'alarmContent',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '报警内容不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
			],
 | 
			
		||||
 
 | 
			
		||||
@@ -177,7 +177,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '关联表名',
 | 
			
		||||
						prop: 'plcTableName',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '关联表名不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: true, // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
@@ -187,7 +187,7 @@ export default {
 | 
			
		||||
						label: '编码',
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-group/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '编码不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -195,7 +195,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '标识',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '标识不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: true, // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
 
 | 
			
		||||
@@ -166,13 +166,13 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '参数列名',
 | 
			
		||||
						prop: 'plcParamName',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '参数列名不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '参数名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '参数名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -181,7 +181,6 @@ export default {
 | 
			
		||||
						label: '单位',
 | 
			
		||||
						prop: 'unit',
 | 
			
		||||
						options: this.getDictDatas(this.DICT_TYPE.UNIT_DICT),
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						switch: true,
 | 
			
		||||
@@ -222,7 +221,6 @@ export default {
 | 
			
		||||
								transform: (val) => Number(val),
 | 
			
		||||
							},
 | 
			
		||||
						],
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -230,13 +228,11 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '标准值',
 | 
			
		||||
						prop: 'defaultValue',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '描述',
 | 
			
		||||
						prop: 'description',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -244,7 +240,6 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '备注',
 | 
			
		||||
						prop: 'remark',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
			],
 | 
			
		||||
 
 | 
			
		||||
@@ -236,7 +236,7 @@ export default {
 | 
			
		||||
						prop: 'plcId',
 | 
			
		||||
						labelKey: `plcTableName`,
 | 
			
		||||
						url: '/base/equipment-plc/listAll',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '关联表名不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
@@ -248,7 +248,7 @@ export default {
 | 
			
		||||
						label: '设备',
 | 
			
		||||
						prop: 'equipmentId',
 | 
			
		||||
						url: '/base/core-equipment/page?pageNo=1&pageSize=99',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
@@ -274,7 +274,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '设备名',
 | 
			
		||||
						prop: 'equipmentName',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备名不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: this.editMode == 'detail', // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
 
 | 
			
		||||
@@ -120,13 +120,13 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '参数列名',
 | 
			
		||||
						prop: 'plcParamName',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '参数列名不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '参数名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '参数名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -135,7 +135,6 @@ export default {
 | 
			
		||||
						label: '单位',
 | 
			
		||||
						prop: 'unit',
 | 
			
		||||
						options: this.getDictDatas(this.DICT_TYPE.UNIT_DICT),
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						switch: true,
 | 
			
		||||
@@ -176,7 +175,6 @@ export default {
 | 
			
		||||
								transform: (val) => Number(val),
 | 
			
		||||
							},
 | 
			
		||||
						],
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -184,13 +182,11 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '标准值',
 | 
			
		||||
						prop: 'defaultValue',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '描述',
 | 
			
		||||
						prop: 'description',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -198,7 +194,6 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '备注',
 | 
			
		||||
						prop: 'remark',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
			],
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,10 @@
 | 
			
		||||
				<section v-for="(section, index) in sections" :key="section.key">
 | 
			
		||||
					<SmallTitle v-if="index != 0">{{ section.name }}</SmallTitle>
 | 
			
		||||
 | 
			
		||||
					<div class="form-part" v-if="section.key == 'base'">
 | 
			
		||||
					<div
 | 
			
		||||
						class="form-part"
 | 
			
		||||
						v-if="section.key == 'base'"
 | 
			
		||||
						style="border-bottom: 1px solid #dfdfdf; margin-bottom: 24px">
 | 
			
		||||
						<el-skeleton v-if="!showForm" animated />
 | 
			
		||||
						<!-- <BaseInfoForm
 | 
			
		||||
							key="drawer-dialog-form"
 | 
			
		||||
@@ -64,9 +67,8 @@
 | 
			
		||||
					<div
 | 
			
		||||
						v-if="section.key == 'attrs'"
 | 
			
		||||
						style="position: relative; margin-top: 12px">
 | 
			
		||||
						<div
 | 
			
		||||
							v-if="!mode.includes('detail')"
 | 
			
		||||
							style="position: absolute; top: -40px; right: 0">
 | 
			
		||||
						<!-- v-if="!mode.includes('detail')" -->
 | 
			
		||||
						<div style="position: absolute; top: -40px; right: 0">
 | 
			
		||||
							<el-button @click="handleAddAttr" type="text">
 | 
			
		||||
								<i class="el-icon-plus"></i>
 | 
			
		||||
								添加报警
 | 
			
		||||
@@ -102,9 +104,9 @@
 | 
			
		||||
 | 
			
		||||
			<div class="drawer-body__footer">
 | 
			
		||||
				<el-button style="" @click="handleCancel">取消</el-button>
 | 
			
		||||
				<el-button v-if="mode == 'detail'" type="primary" @click="toggleEdit">
 | 
			
		||||
				<!-- <el-button v-if="mode == 'detail'" type="primary" @click="toggleEdit">
 | 
			
		||||
					编辑
 | 
			
		||||
				</el-button>
 | 
			
		||||
				</el-button> -->
 | 
			
		||||
				<!-- <el-button v-else type="primary" @click="handleCancel">确定</el-button> -->
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
@@ -123,9 +125,9 @@
 | 
			
		||||
			<DialogForm
 | 
			
		||||
				v-if="attrFormVisible"
 | 
			
		||||
				ref="attrForm"
 | 
			
		||||
				:disabled="mode.includes('detail')"
 | 
			
		||||
				v-model="attrForm"
 | 
			
		||||
				:rows="attrRows" />
 | 
			
		||||
			<!-- :disabled="mode.includes('detail')" -->
 | 
			
		||||
		</base-dialog>
 | 
			
		||||
	</el-drawer>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -189,8 +191,30 @@ export default {
 | 
			
		||||
						label: '报警编码', // 自动生成
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-group-alarm/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '报警编码不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '报警级别', // 字典
 | 
			
		||||
						prop: 'grade',
 | 
			
		||||
						options: this.getDictDatas(this.DICT_TYPE.EQU_ALARM_LEVEL),
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '参数列名', // 在实时数据库的列名
 | 
			
		||||
						prop: 'plcParamName',
 | 
			
		||||
						rules: [{ required: true, message: '参数列名不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '报警内容',
 | 
			
		||||
						prop: 'alarmContent',
 | 
			
		||||
						rules: [{ required: true, message: '报警内容不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '报警类型', // 固定选项
 | 
			
		||||
@@ -199,15 +223,7 @@ export default {
 | 
			
		||||
							{ label: '布尔型', value: 2 },
 | 
			
		||||
							{ label: '字符型', value: 1 },
 | 
			
		||||
						],
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '报警级别', // 字典
 | 
			
		||||
						prop: 'grade',
 | 
			
		||||
						options: this.getDictDatas(this.DICT_TYPE.EQU_ALARM_LEVEL),
 | 
			
		||||
						rules: [{ required: true, message: '报警类型不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
@@ -215,20 +231,6 @@ export default {
 | 
			
		||||
						prop: 'alarmCode',
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '参数列名', // 在实时数据库的列名
 | 
			
		||||
						prop: 'plcParamName',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '报警内容',
 | 
			
		||||
						prop: 'alarmContent',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
			],
 | 
			
		||||
			attrQuery: {
 | 
			
		||||
				params: {
 | 
			
		||||
 
 | 
			
		||||
@@ -16,46 +16,26 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警编码"
 | 
			
		||||
					prop="code"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '报警编码不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.code"
 | 
			
		||||
						@change="$emit('update', dataForm)"
 | 
			
		||||
						placeholder="请输入报警编码" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
				<!-- 				
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警编码"
 | 
			
		||||
					prop="code"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="dataForm.code"
 | 
			
		||||
						placeholder="请选择产线"
 | 
			
		||||
						@change="handleProductlineChange">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in productionLineList"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item> -->
 | 
			
		||||
			</el-col>
 | 
			
		||||
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警类型"
 | 
			
		||||
					prop="type"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					label="报警级别"
 | 
			
		||||
					prop="grade"
 | 
			
		||||
					:rules="[{ required: true, message: '报警级别不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.type"
 | 
			
		||||
						placeholder="请选择报警类型"
 | 
			
		||||
						@change="handleTypeChange">
 | 
			
		||||
						v-model="dataForm.grade"
 | 
			
		||||
						placeholder="请选择报警级别"
 | 
			
		||||
						@change="$emit('update', dataForm)">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in [
 | 
			
		||||
								{ label: '布尔型', value: 2 },
 | 
			
		||||
								{ label: '字符型', value: 1 },
 | 
			
		||||
							]"
 | 
			
		||||
							v-for="opt in getDictDatas(DICT_TYPE.EQU_ALARM_LEVEL)"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
@@ -66,16 +46,45 @@
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警级别"
 | 
			
		||||
					prop="grade"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					label="参数列名"
 | 
			
		||||
					prop="plcParamName"
 | 
			
		||||
					:rules="[{ required: true, message: '参数列名不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.plcParamName"
 | 
			
		||||
						placeholder="请输入参数列名"
 | 
			
		||||
						@change="$emit('update', dataForm)"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警内容"
 | 
			
		||||
					prop="alarmContent"
 | 
			
		||||
					:rules="[{ required: true, message: '报警内容不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.alarmContent"
 | 
			
		||||
						placeholder="请输入报警内容"
 | 
			
		||||
						@change="$emit('update', dataForm)"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警类型"
 | 
			
		||||
					prop="type"
 | 
			
		||||
					:rules="[{ required: true, message: '报警类型不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.grade"
 | 
			
		||||
						placeholder="请选择报警级别"
 | 
			
		||||
						@change="$emit('update', dataForm)">
 | 
			
		||||
						v-model="dataForm.type"
 | 
			
		||||
						placeholder="请选择报警类型"
 | 
			
		||||
						@change="handleTypeChange">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in getDictDatas(DICT_TYPE.EQU_ALARM_LEVEL)"
 | 
			
		||||
							v-for="opt in [
 | 
			
		||||
								{ label: '布尔型', value: 2 },
 | 
			
		||||
								{ label: '字符型', value: 1 },
 | 
			
		||||
							]"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
@@ -96,32 +105,6 @@
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="参数列名"
 | 
			
		||||
					prop="plcParamName"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.plcParamName"
 | 
			
		||||
						placeholder="请输入参数列名"
 | 
			
		||||
						@change="$emit('update', dataForm)"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警内容"
 | 
			
		||||
					prop="alarmContent"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.alarmContent"
 | 
			
		||||
						placeholder="请输入报警内容"
 | 
			
		||||
						@change="$emit('update', dataForm)"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
	</el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -183,10 +183,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '设备分组名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: this.editMode == 'detail', // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
						rules: [{ required: true, message: '设备分组名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
@@ -271,7 +268,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '分组名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '分组名称不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: true, // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
@@ -283,7 +280,7 @@ export default {
 | 
			
		||||
						label: '分组编码',
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-group/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '分组编码不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -291,7 +288,6 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '备注',
 | 
			
		||||
						prop: 'remark',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							placeholder: '请输入备注',
 | 
			
		||||
						},
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,10 @@
 | 
			
		||||
				<section v-for="(section, index) in sections" :key="section.key">
 | 
			
		||||
					<SmallTitle v-if="index != 0">{{ section.name }}</SmallTitle>
 | 
			
		||||
 | 
			
		||||
					<div class="form-part" v-if="section.key == 'base'">
 | 
			
		||||
					<div
 | 
			
		||||
						class="form-part"
 | 
			
		||||
						v-if="section.key == 'base'"
 | 
			
		||||
						style="border-bottom: 1px solid #dfdfdf; margin-bottom: 24px">
 | 
			
		||||
						<el-skeleton v-if="!showForm" animated />
 | 
			
		||||
						<!-- <BaseInfoForm
 | 
			
		||||
							key="drawer-dialog-form"
 | 
			
		||||
@@ -64,9 +67,8 @@
 | 
			
		||||
					<div
 | 
			
		||||
						v-if="section.key == 'attrs'"
 | 
			
		||||
						style="position: relative; margin-top: 12px">
 | 
			
		||||
						<div
 | 
			
		||||
							v-if="!mode.includes('detail')"
 | 
			
		||||
							style="position: absolute; top: -40px; right: 0">
 | 
			
		||||
						<!-- v-if="!mode.includes('detail')" -->
 | 
			
		||||
						<div style="position: absolute; top: -40px; right: 0">
 | 
			
		||||
							<el-button @click="handleAddAttr" type="text">
 | 
			
		||||
								<i class="el-icon-plus"></i>
 | 
			
		||||
								添加属性
 | 
			
		||||
@@ -102,9 +104,9 @@
 | 
			
		||||
 | 
			
		||||
			<div class="drawer-body__footer">
 | 
			
		||||
				<el-button style="" @click="handleCancel">取消</el-button>
 | 
			
		||||
				<el-button v-if="mode == 'detail'" type="primary" @click="toggleEdit">
 | 
			
		||||
				<!-- <el-button v-if="mode == 'detail'" type="primary" @click="toggleEdit">
 | 
			
		||||
					编辑
 | 
			
		||||
				</el-button>
 | 
			
		||||
				</el-button> -->
 | 
			
		||||
				<!-- <el-button v-else type="primary" @click="handleCancel">确定</el-button> -->
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
@@ -120,10 +122,10 @@
 | 
			
		||||
			@close="closeAttrForm"
 | 
			
		||||
			@cancel="closeAttrForm"
 | 
			
		||||
			@confirm="submitAttrForm">
 | 
			
		||||
			<!-- :disabled="mode.includes('detail')" -->
 | 
			
		||||
			<DialogForm
 | 
			
		||||
				v-if="attrFormVisible"
 | 
			
		||||
				ref="attrForm"
 | 
			
		||||
				:disabled="mode.includes('detail')"
 | 
			
		||||
				v-model="attrForm"
 | 
			
		||||
				:rows="attrRows" />
 | 
			
		||||
		</base-dialog>
 | 
			
		||||
@@ -189,7 +191,7 @@ export default {
 | 
			
		||||
						label: '报警编码', // 自动生成
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-group-alarm/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '报警编码不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
@@ -199,7 +201,7 @@ export default {
 | 
			
		||||
							{ label: '布尔型', value: 2 },
 | 
			
		||||
							{ label: '字符型', value: 1 },
 | 
			
		||||
						],
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '报警类型不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -220,13 +222,13 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '参数列名', // 在实时数据库的列名
 | 
			
		||||
						prop: 'plcParamName',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '参数列名不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '报警内容',
 | 
			
		||||
						prop: 'alarmContent',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '报警内容不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
			],
 | 
			
		||||
 
 | 
			
		||||
@@ -16,46 +16,27 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警编码"
 | 
			
		||||
					prop="code"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '报警编码不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.code"
 | 
			
		||||
						@change="$emit('update', dataForm)"
 | 
			
		||||
						placeholder="请输入工段排序" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
				<!-- 				
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警编码"
 | 
			
		||||
					prop="code"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="dataForm.code"
 | 
			
		||||
						placeholder="请选择产线"
 | 
			
		||||
						@change="handleProductlineChange">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in productionLineList"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item> -->
 | 
			
		||||
			</el-col>
 | 
			
		||||
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警类型"
 | 
			
		||||
					prop="type"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					label="报警级别"
 | 
			
		||||
					prop="grade"
 | 
			
		||||
					:rules="[{ required: true, message: '报警级别不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.type"
 | 
			
		||||
						placeholder="请选择报警类型"
 | 
			
		||||
						@change="handleTypeChange">
 | 
			
		||||
						v-model="dataForm.grade"
 | 
			
		||||
						placeholder="请选择报警级别"
 | 
			
		||||
						@change="$emit('update', dataForm)">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in [
 | 
			
		||||
								{ label: '布尔型', value: 2 },
 | 
			
		||||
								{ label: '字符型', value: 1 },
 | 
			
		||||
							]"
 | 
			
		||||
							v-for="opt in getDictDatas(DICT_TYPE.EQU_ALARM_LEVEL)"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
@@ -66,16 +47,45 @@
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警级别"
 | 
			
		||||
					prop="grade"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					label="参数列名"
 | 
			
		||||
					prop="plcParamName"
 | 
			
		||||
					:rules="[{ required: true, message: '参数列名不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.plcParamName"
 | 
			
		||||
						placeholder="请输入参数列名"
 | 
			
		||||
						@change="$emit('update', dataForm)"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警内容"
 | 
			
		||||
					prop="alarmContent"
 | 
			
		||||
					:rules="[{ required: true, message: '报警内容不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.alarmContent"
 | 
			
		||||
						placeholder="请输入报警内容"
 | 
			
		||||
						@change="$emit('update', dataForm)"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警类型"
 | 
			
		||||
					prop="type"
 | 
			
		||||
					:rules="[{ required: true, message: '报警类型不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.grade"
 | 
			
		||||
						placeholder="请选择报警级别"
 | 
			
		||||
						@change="$emit('update', dataForm)">
 | 
			
		||||
						v-model="dataForm.type"
 | 
			
		||||
						placeholder="请选择报警类型"
 | 
			
		||||
						@change="handleTypeChange">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in getDictDatas(DICT_TYPE.EQU_ALARM_LEVEL)"
 | 
			
		||||
							v-for="opt in [
 | 
			
		||||
								{ label: '布尔型', value: 2 },
 | 
			
		||||
								{ label: '字符型', value: 1 },
 | 
			
		||||
							]"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
@@ -96,32 +106,6 @@
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="参数列名"
 | 
			
		||||
					prop="plcParamName"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.plcParamName"
 | 
			
		||||
						placeholder="请输入参数列名"
 | 
			
		||||
						@change="$emit('update', dataForm)"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警内容"
 | 
			
		||||
					prop="alarmContent"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.alarmContent"
 | 
			
		||||
						placeholder="请输入报警内容"
 | 
			
		||||
						@change="$emit('update', dataForm)"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
	</el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -224,7 +224,7 @@ export default {
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -238,7 +238,7 @@ export default {
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '报警分组不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
			],
 | 
			
		||||
@@ -269,7 +269,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '设备分组名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备分组名称不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: this.editMode == 'detail', // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
 
 | 
			
		||||
@@ -224,7 +224,7 @@ export default {
 | 
			
		||||
						prop: 'plcId',
 | 
			
		||||
						labelKey: `plcTableName`,
 | 
			
		||||
						url: '/base/equipment-plc/listAll',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '关联表名不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
@@ -236,7 +236,7 @@ export default {
 | 
			
		||||
						label: '设备',
 | 
			
		||||
						prop: 'equipmentId',
 | 
			
		||||
						url: '/base/core-equipment/page?pageNo=1&pageSize=99',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
@@ -262,7 +262,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '设备名',
 | 
			
		||||
						prop: 'equipmentName',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备名不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: this.editMode == 'detail', // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
 
 | 
			
		||||
@@ -184,7 +184,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '关联表名',
 | 
			
		||||
						prop: 'plcTableName',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '关联表名不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: true, // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
@@ -194,7 +194,7 @@ export default {
 | 
			
		||||
						label: '编码',
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-group/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '编码不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -202,7 +202,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '标识',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '标识不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: true, // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,10 @@
 | 
			
		||||
				<section v-for="(section, index) in sections" :key="section.key">
 | 
			
		||||
					<SmallTitle v-if="index != 0">{{ section.name }}</SmallTitle>
 | 
			
		||||
 | 
			
		||||
					<div class="form-part" v-if="section.key == 'base'">
 | 
			
		||||
					<div
 | 
			
		||||
						class="form-part"
 | 
			
		||||
						v-if="section.key == 'base'"
 | 
			
		||||
						style="border-bottom: 1px solid #dfdfdf; margin-bottom: 24px">
 | 
			
		||||
						<el-skeleton v-if="!showForm" animated />
 | 
			
		||||
						<!-- <BaseInfoForm
 | 
			
		||||
							key="drawer-dialog-form"
 | 
			
		||||
@@ -66,9 +69,8 @@
 | 
			
		||||
					<div
 | 
			
		||||
						v-if="section.key == 'attrs'"
 | 
			
		||||
						style="position: relative; margin-top: 12px">
 | 
			
		||||
						<div
 | 
			
		||||
							v-if="!mode.includes('detail')"
 | 
			
		||||
							style="position: absolute; top: -40px; right: 0">
 | 
			
		||||
						<!-- v-if="!mode.includes('detail')" -->
 | 
			
		||||
						<div style="position: absolute; top: -40px; right: 0">
 | 
			
		||||
							<el-button @click="handleAddAttr" type="text">
 | 
			
		||||
								<i class="el-icon-plus"></i>
 | 
			
		||||
								添加属性
 | 
			
		||||
@@ -104,9 +106,9 @@
 | 
			
		||||
 | 
			
		||||
			<div class="drawer-body__footer">
 | 
			
		||||
				<el-button style="" @click="handleCancel">取消</el-button>
 | 
			
		||||
				<el-button v-if="mode == 'detail'" type="primary" @click="toggleEdit">
 | 
			
		||||
				<!-- <el-button v-if="mode == 'detail'" type="primary" @click="toggleEdit">
 | 
			
		||||
					编辑
 | 
			
		||||
				</el-button>
 | 
			
		||||
				</el-button> -->
 | 
			
		||||
				<!-- <el-button v-else type="primary" @click="handleCancel">确定</el-button> -->
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
@@ -122,10 +124,10 @@
 | 
			
		||||
			@close="closeAttrForm"
 | 
			
		||||
			@cancel="closeAttrForm"
 | 
			
		||||
			@confirm="submitAttrForm">
 | 
			
		||||
			<!-- :disabled="mode.includes('detail')" -->
 | 
			
		||||
			<DialogForm
 | 
			
		||||
				v-if="attrFormVisible"
 | 
			
		||||
				ref="attrForm"
 | 
			
		||||
				:disabled="mode.includes('detail')"
 | 
			
		||||
				v-model="attrForm"
 | 
			
		||||
				:rows="attrRows" />
 | 
			
		||||
		</base-dialog>
 | 
			
		||||
@@ -192,13 +194,13 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '参数列名',
 | 
			
		||||
						prop: 'plcParamName',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '参数列名不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '参数名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '参数名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -207,7 +209,6 @@ export default {
 | 
			
		||||
						label: '单位',
 | 
			
		||||
						prop: 'unit',
 | 
			
		||||
						options: this.getDictDatas(this.DICT_TYPE.UNIT_DICT),
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						switch: true,
 | 
			
		||||
@@ -229,7 +230,7 @@ export default {
 | 
			
		||||
							{ label: '工艺参数', value: 2 },
 | 
			
		||||
							{ label: '报警参数', value: 3 },
 | 
			
		||||
						],
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备参数类型不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
@@ -241,7 +242,7 @@ export default {
 | 
			
		||||
							{ label: '破损数量', value: 3 },
 | 
			
		||||
							{ label: '无类型', value: 4 },
 | 
			
		||||
						],
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '生产参数类型不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -273,7 +274,6 @@ export default {
 | 
			
		||||
								transform: (val) => Number(val),
 | 
			
		||||
							},
 | 
			
		||||
						],
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -281,13 +281,11 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '标准值',
 | 
			
		||||
						prop: 'defaultValue',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '描述',
 | 
			
		||||
						prop: 'description',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -295,7 +293,6 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '备注',
 | 
			
		||||
						prop: 'remark',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
			],
 | 
			
		||||
 
 | 
			
		||||
@@ -1,187 +0,0 @@
 | 
			
		||||
<!-- 
 | 
			
		||||
    filename: dialogForm.vue
 | 
			
		||||
    author: liubin
 | 
			
		||||
    date: 2023-09-11 15:55:13
 | 
			
		||||
    description: DialogForm for equipmentBindSection only
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
	<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="code"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.code"
 | 
			
		||||
						@change="$emit('update', dataForm)"
 | 
			
		||||
						placeholder="请输入工段排序" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
				<!-- 				
 | 
			
		||||
						<el-form-item
 | 
			
		||||
						label="报警编码"
 | 
			
		||||
						prop="code"
 | 
			
		||||
						:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
						<el-select
 | 
			
		||||
						v-model="dataForm.code"
 | 
			
		||||
						placeholder="请选择产线"
 | 
			
		||||
						@change="handleProductlineChange">
 | 
			
		||||
						<el-option
 | 
			
		||||
						v-for="opt in productionLineList"
 | 
			
		||||
						:key="opt.value"
 | 
			
		||||
						:label="opt.label"
 | 
			
		||||
						:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item> -->
 | 
			
		||||
			</el-col>
 | 
			
		||||
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警类型"
 | 
			
		||||
					prop="type"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="dataForm.type"
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						placeholder="请选择报警类型"
 | 
			
		||||
						@change="$emit('update', dataForm)">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in [
 | 
			
		||||
								{ label: '布尔型', value: 2 },
 | 
			
		||||
								{ label: '字符型', value: 1 },
 | 
			
		||||
							]"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警级别"
 | 
			
		||||
					prop="grade"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.grade"
 | 
			
		||||
						placeholder="请选择报警级别"
 | 
			
		||||
						@change="$emit('update', dataForm)">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in getDictDatas(DICT_TYPE.EQU_ALARM_LEVEL)"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					v-if="+dataForm.type == 1"
 | 
			
		||||
					label="设备报警编码"
 | 
			
		||||
					prop="alarmCode">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.alarmCode"
 | 
			
		||||
						@change="$emit('update', dataForm)"
 | 
			
		||||
						placeholder="请输入设备报警编码" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="参数列名"
 | 
			
		||||
					prop="plcParamName"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.plcParamName"
 | 
			
		||||
						placeholder="请输入参数列名"
 | 
			
		||||
						@change="$emit('update', dataForm)"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警内容"
 | 
			
		||||
					prop="alarmContent"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						:disabled="disabled"
 | 
			
		||||
						v-model="dataForm.alarmContent"
 | 
			
		||||
						placeholder="请输入报警内容"
 | 
			
		||||
						@change="$emit('update', dataForm)"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
	</el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
	name: 'DialogForm',
 | 
			
		||||
	model: {
 | 
			
		||||
		prop: 'dataForm',
 | 
			
		||||
		event: 'update',
 | 
			
		||||
	},
 | 
			
		||||
	emits: ['update'],
 | 
			
		||||
	components: {},
 | 
			
		||||
	props: {
 | 
			
		||||
		dataForm: {
 | 
			
		||||
			type: Object,
 | 
			
		||||
			default: () => ({}),
 | 
			
		||||
		},
 | 
			
		||||
		disabled: {
 | 
			
		||||
			type: Boolean,
 | 
			
		||||
			default: false,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			formLoading: true,
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		this.getCode('/base/equipment-group-alarm/getCode').then((code) => {
 | 
			
		||||
			this.formLoading = false;
 | 
			
		||||
			this.$emit('update', {
 | 
			
		||||
				...this.dataForm,
 | 
			
		||||
				code,
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		/** 模拟透传 ref  */
 | 
			
		||||
		validate(cb) {
 | 
			
		||||
			return this.$refs.form.validate(cb);
 | 
			
		||||
		},
 | 
			
		||||
		resetFields(args) {
 | 
			
		||||
			return this.$refs.form.resetFields(args);
 | 
			
		||||
		},
 | 
			
		||||
		async handleProductlineChange(id) {
 | 
			
		||||
			await this.getWorksectionList(id);
 | 
			
		||||
			this.dataForm.workshopSectionId = null;
 | 
			
		||||
			this.$emit('update', this.dataForm);
 | 
			
		||||
		},
 | 
			
		||||
		async getCode(url) {
 | 
			
		||||
			const response = await this.$axios(url);
 | 
			
		||||
			return response.data;
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
.el-date-editor,
 | 
			
		||||
.el-select {
 | 
			
		||||
	width: 100%;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -1,361 +0,0 @@
 | 
			
		||||
<template>
 | 
			
		||||
	<div class="app-container">
 | 
			
		||||
		<!-- 搜索工作栏 -->
 | 
			
		||||
		<SearchBar
 | 
			
		||||
			:formConfigs="searchBarFormConfig"
 | 
			
		||||
			ref="search-bar"
 | 
			
		||||
			@headBtnClick="handleSearchBarBtnClick" />
 | 
			
		||||
 | 
			
		||||
		<!-- 列表 -->
 | 
			
		||||
		<base-table
 | 
			
		||||
			:table-props="tableProps"
 | 
			
		||||
			:page="queryParams.pageNo"
 | 
			
		||||
			:limit="queryParams.pageSize"
 | 
			
		||||
			:table-data="list"
 | 
			
		||||
			@emitFun="handleEmitFun">
 | 
			
		||||
			<method-btn
 | 
			
		||||
				v-if="tableBtn.length"
 | 
			
		||||
				slot="handleBtn"
 | 
			
		||||
				label="操作"
 | 
			
		||||
				:width="120"
 | 
			
		||||
				:method-list="tableBtn"
 | 
			
		||||
				@clickBtn="handleTableBtnClick" />
 | 
			
		||||
		</base-table>
 | 
			
		||||
 | 
			
		||||
		<!-- 分页组件 -->
 | 
			
		||||
		<pagination
 | 
			
		||||
			v-show="total > 0"
 | 
			
		||||
			:total="total"
 | 
			
		||||
			:page.sync="queryParams.pageNo"
 | 
			
		||||
			:limit.sync="queryParams.pageSize"
 | 
			
		||||
			@pagination="getList" />
 | 
			
		||||
 | 
			
		||||
		<!-- 对话框(添加 / 修改) -->
 | 
			
		||||
		<base-dialog
 | 
			
		||||
			:dialogTitle="title"
 | 
			
		||||
			:dialogVisible="open"
 | 
			
		||||
			width="736px"
 | 
			
		||||
			@close="cancel"
 | 
			
		||||
			@cancel="cancel"
 | 
			
		||||
			@confirm="submitForm">
 | 
			
		||||
			<DialogForm v-if="open" ref="form" v-model="form" :rows="rows" />
 | 
			
		||||
		</base-dialog>
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import {
 | 
			
		||||
	createEquipmentGroupAlarm,
 | 
			
		||||
	updateEquipmentGroupAlarm,
 | 
			
		||||
	deleteEquipmentGroupAlarm,
 | 
			
		||||
	getEquipmentGroupAlarm,
 | 
			
		||||
	getEquipmentGroupAlarmPage,
 | 
			
		||||
	exportEquipmentGroupAlarmExcel,
 | 
			
		||||
} from '@/api/base/equipmentGroupAlarm';
 | 
			
		||||
import basicPageMixin from '@/mixins/lb/basicPageMixin';
 | 
			
		||||
import moment from 'moment';
 | 
			
		||||
import { publicFormatter } from '@/utils/dict';
 | 
			
		||||
import DialogForm from './dialogForm.vue';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
	name: 'EquipmentGroupAlarm',
 | 
			
		||||
	components: { DialogForm },
 | 
			
		||||
	mixins: [basicPageMixin],
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			searchBarKeys: [''],
 | 
			
		||||
			tableBtn: [
 | 
			
		||||
				this.$auth.hasPermi('base:equipment-group-alarm:update')
 | 
			
		||||
					? {
 | 
			
		||||
							type: 'edit',
 | 
			
		||||
							btnName: '修改',
 | 
			
		||||
					  }
 | 
			
		||||
					: undefined,
 | 
			
		||||
				this.$auth.hasPermi('base:equipment-group-alarm:delete')
 | 
			
		||||
					? {
 | 
			
		||||
							type: 'delete',
 | 
			
		||||
							btnName: '删除',
 | 
			
		||||
					  }
 | 
			
		||||
					: undefined,
 | 
			
		||||
			].filter((v) => v),
 | 
			
		||||
			tableProps: [
 | 
			
		||||
				{
 | 
			
		||||
					prop: 'createTime',
 | 
			
		||||
					label: '添加时间',
 | 
			
		||||
					fixed: true,
 | 
			
		||||
					width: 180,
 | 
			
		||||
					filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'),
 | 
			
		||||
				},
 | 
			
		||||
				{  width: 240, prop: 'code', label: '报警编码' },
 | 
			
		||||
				{
 | 
			
		||||
					prop: 'type',
 | 
			
		||||
					label: '报警类型',
 | 
			
		||||
					filter: (val) =>
 | 
			
		||||
						val != null ? ['-', '字符型', '布尔型', '-'][val] : '-',
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					prop: 'grade',
 | 
			
		||||
					label: '报警级别',
 | 
			
		||||
					filter: publicFormatter(this.DICT_TYPE.EQU_ALARM_LEVEL),
 | 
			
		||||
				},
 | 
			
		||||
				{ prop: 'alarmCode', label: '设备报警编码' },
 | 
			
		||||
				{ prop: 'plcParamName', label: '参数列名' },
 | 
			
		||||
				{ prop: 'alarmContent', label: '报警内容' },
 | 
			
		||||
			],
 | 
			
		||||
			searchBarFormConfig: [
 | 
			
		||||
				{
 | 
			
		||||
					type: 'input',
 | 
			
		||||
					label: '设备分组编码',
 | 
			
		||||
					width: '220',
 | 
			
		||||
					placeholder: '/',
 | 
			
		||||
					param: 'equipmentGroupCode',
 | 
			
		||||
					defaultSelect: null,
 | 
			
		||||
					disabled: true,
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'input',
 | 
			
		||||
					label: '设备分组名称',
 | 
			
		||||
					placeholder: '/',
 | 
			
		||||
					param: 'equipmentGroupName',
 | 
			
		||||
					defaultSelect: null,
 | 
			
		||||
					disabled: true,
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: this.$auth.hasPermi('base:equipment-group-alarm:create')
 | 
			
		||||
						? 'button'
 | 
			
		||||
						: '',
 | 
			
		||||
					btnName: '新增',
 | 
			
		||||
					name: 'add',
 | 
			
		||||
					plain: true,
 | 
			
		||||
					color: 'success',
 | 
			
		||||
				},
 | 
			
		||||
			],
 | 
			
		||||
			rows: [
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '报警编码', // 自动生成
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-group-alarm/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '报警类型', // 固定选项
 | 
			
		||||
						prop: 'type',
 | 
			
		||||
						options: [
 | 
			
		||||
							{ label: '布尔型', value: 2 },
 | 
			
		||||
							{ label: '字符型', value: 1 },
 | 
			
		||||
						],
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '报警级别', // 字典
 | 
			
		||||
						prop: 'grade',
 | 
			
		||||
						options: this.getDictDatas(this.DICT_TYPE.EQU_ALARM_LEVEL),
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '设备报警编码', // 对应到设备实际的报警编码
 | 
			
		||||
						prop: 'alarmCode',
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '参数列名', // 在实时数据库的列名
 | 
			
		||||
						prop: 'plcParamName',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '报警内容',
 | 
			
		||||
						prop: 'alarmContent',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
			],
 | 
			
		||||
			// 是否显示弹出层
 | 
			
		||||
			open: false,
 | 
			
		||||
			// 查询参数
 | 
			
		||||
			queryParams: {
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
				equipmentGroupId: null,
 | 
			
		||||
			},
 | 
			
		||||
			// 表单参数
 | 
			
		||||
			form: {
 | 
			
		||||
				id: null,
 | 
			
		||||
				equipmentGroupId: null,
 | 
			
		||||
				code: null,
 | 
			
		||||
				type: null,
 | 
			
		||||
				grade: null,
 | 
			
		||||
				alarmCode: null,
 | 
			
		||||
				alarmContent: null,
 | 
			
		||||
				plcParamName: null,
 | 
			
		||||
			},
 | 
			
		||||
			// // 表单校验
 | 
			
		||||
			// rules: {
 | 
			
		||||
			//   equipmentGroupId: [{ required: true, message: "设备分组ID,关联base_equipment_group不能为空", trigger: "blur" }],
 | 
			
		||||
			//   type: [{ required: true, message: "报警类型:1.字符型,2.布尔型不能为空", trigger: "change" }],
 | 
			
		||||
			//   alarmContent: [{ required: true, message: "报警内容 该条报警具体的解释不能为空", trigger: "blur" }],
 | 
			
		||||
			//   plcParamName: [{ required: true, message: "关联编码,对应到plc_param_name的编码,用于链接数采不能为空", trigger: "blur" }],
 | 
			
		||||
			// }
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	// watch: {
 | 
			
		||||
	//   $route(value) {
 | 
			
		||||
	//     console.log('new route info', value)
 | 
			
		||||
	//   }
 | 
			
		||||
	// },
 | 
			
		||||
	// created() {
 | 
			
		||||
	// 	this.getList();
 | 
			
		||||
	// },
 | 
			
		||||
	activated() {
 | 
			
		||||
		// 设置顶部搜索栏信息
 | 
			
		||||
		const { equipmentGroupName, equipmentGroupCode, equipmentGroupId } =
 | 
			
		||||
			this.$route.params;
 | 
			
		||||
		this.setSearchBarFormValue('equipmentGroupName', equipmentGroupName);
 | 
			
		||||
		this.setSearchBarFormValue('equipmentGroupCode', equipmentGroupCode);
 | 
			
		||||
		this.queryParams.equipmentGroupId = equipmentGroupId;
 | 
			
		||||
		// if (!equipmentGroupId) this.getList(); // 拦截
 | 
			
		||||
		this.getList();
 | 
			
		||||
	},
 | 
			
		||||
	deactivated() {
 | 
			
		||||
		this.setSearchBarFormValue('equipmentGroupName', null);
 | 
			
		||||
		this.setSearchBarFormValue('equipmentGroupCode', null);
 | 
			
		||||
		this.queryParams.equipmentGroupId = null;
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		/** 设置 searchBarForm 的默认值 - 用得比较少 */
 | 
			
		||||
		setSearchBarFormValue(param, value) {
 | 
			
		||||
			this.searchBarFormConfig.forEach((config) => {
 | 
			
		||||
				if (config.param == param) {
 | 
			
		||||
					config.defaultSelect = value;
 | 
			
		||||
				}
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		/** 查询列表 */
 | 
			
		||||
		getList() {
 | 
			
		||||
			this.loading = true;
 | 
			
		||||
			// 执行查询
 | 
			
		||||
			getEquipmentGroupAlarmPage(this.queryParams).then((response) => {
 | 
			
		||||
				this.list = response.data.list;
 | 
			
		||||
				this.total = response.data.total;
 | 
			
		||||
				this.loading = false;
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		/** 取消按钮 */
 | 
			
		||||
		cancel() {
 | 
			
		||||
			this.open = false;
 | 
			
		||||
			this.reset();
 | 
			
		||||
		},
 | 
			
		||||
		/** 表单重置 */
 | 
			
		||||
		reset() {
 | 
			
		||||
			this.form = {
 | 
			
		||||
				id: null,
 | 
			
		||||
				equipmentGroupId: null,
 | 
			
		||||
				code: null,
 | 
			
		||||
				type: null,
 | 
			
		||||
				grade: null,
 | 
			
		||||
				alarmCode: null,
 | 
			
		||||
				alarmContent: null,
 | 
			
		||||
				plcParamName: null,
 | 
			
		||||
			};
 | 
			
		||||
			this.resetForm('form');
 | 
			
		||||
		},
 | 
			
		||||
		/** 搜索按钮操作 */
 | 
			
		||||
		handleQuery() {
 | 
			
		||||
			this.queryParams.pageNo = 1;
 | 
			
		||||
			this.getList();
 | 
			
		||||
		},
 | 
			
		||||
		/** 重置按钮操作 */
 | 
			
		||||
		resetQuery() {
 | 
			
		||||
			this.resetForm('queryForm');
 | 
			
		||||
			this.handleQuery();
 | 
			
		||||
		},
 | 
			
		||||
		/** 新增按钮操作 */
 | 
			
		||||
		handleAdd() {
 | 
			
		||||
			if (this.queryParams.equipmentGroupId == null)
 | 
			
		||||
				return this.$message.error('没有检测到设备分组信息');
 | 
			
		||||
			this.reset();
 | 
			
		||||
			this.open = true;
 | 
			
		||||
			this.title = '添加设备分组报警明细';
 | 
			
		||||
		},
 | 
			
		||||
		/** 修改按钮操作 */
 | 
			
		||||
		handleUpdate(row) {
 | 
			
		||||
			this.reset();
 | 
			
		||||
			const id = row.id;
 | 
			
		||||
			getEquipmentGroupAlarm(id).then((response) => {
 | 
			
		||||
				this.form = response.data;
 | 
			
		||||
				this.open = true;
 | 
			
		||||
				this.title = '修改设备分组报警明细';
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		/** 提交按钮 */
 | 
			
		||||
		submitForm() {
 | 
			
		||||
			this.$refs['form'].validate((valid) => {
 | 
			
		||||
				if (!valid) {
 | 
			
		||||
					return;
 | 
			
		||||
				}
 | 
			
		||||
				// 修改的提交
 | 
			
		||||
				if (this.form.id != null) {
 | 
			
		||||
					updateEquipmentGroupAlarm({
 | 
			
		||||
						...this.form,
 | 
			
		||||
						equipmentGroupId: this.queryParams.equipmentGroupId,
 | 
			
		||||
					}).then((response) => {
 | 
			
		||||
						this.$modal.msgSuccess('修改成功');
 | 
			
		||||
						this.open = false;
 | 
			
		||||
						this.getList();
 | 
			
		||||
					});
 | 
			
		||||
					return;
 | 
			
		||||
				}
 | 
			
		||||
				// 添加的提交
 | 
			
		||||
				createEquipmentGroupAlarm({
 | 
			
		||||
					...this.form,
 | 
			
		||||
					equipmentGroupId: this.queryParams.equipmentGroupId,
 | 
			
		||||
				}).then((response) => {
 | 
			
		||||
					this.$modal.msgSuccess('新增成功');
 | 
			
		||||
					this.open = false;
 | 
			
		||||
					this.getList();
 | 
			
		||||
				});
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		/** 删除按钮操作 */
 | 
			
		||||
		handleDelete(row) {
 | 
			
		||||
			const id = row.id;
 | 
			
		||||
			this.$modal
 | 
			
		||||
				.confirm('是否确认删除该报警?')
 | 
			
		||||
				.then(function () {
 | 
			
		||||
					return deleteEquipmentGroupAlarm(id);
 | 
			
		||||
				})
 | 
			
		||||
				.then(() => {
 | 
			
		||||
					this.getList();
 | 
			
		||||
					this.$modal.msgSuccess('删除成功');
 | 
			
		||||
				})
 | 
			
		||||
				.catch(() => {});
 | 
			
		||||
		},
 | 
			
		||||
		/** 导出按钮操作 */
 | 
			
		||||
		handleExport() {
 | 
			
		||||
			// 处理查询参数
 | 
			
		||||
			let params = { ...this.queryParams };
 | 
			
		||||
			params.pageNo = undefined;
 | 
			
		||||
			params.pageSize = undefined;
 | 
			
		||||
			this.$modal
 | 
			
		||||
				.confirm('是否确认导出所有设备分组报警明细数据项?')
 | 
			
		||||
				.then(() => {
 | 
			
		||||
					this.exportLoading = true;
 | 
			
		||||
					return exportEquipmentGroupAlarmExcel(params);
 | 
			
		||||
				})
 | 
			
		||||
				.then((response) => {
 | 
			
		||||
					this.$download.excel(response, '设备分组报警明细.xls');
 | 
			
		||||
					this.exportLoading = false;
 | 
			
		||||
				})
 | 
			
		||||
				.catch(() => {});
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
@@ -127,7 +127,7 @@ export default {
 | 
			
		||||
						label: '巡检内容编号',
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-check/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '巡检内容编号不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -135,7 +135,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '巡检项目',
 | 
			
		||||
						prop: 'program',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '巡检项目不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -143,7 +143,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '巡检内容',
 | 
			
		||||
						prop: 'content',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '巡检内容不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
 
 | 
			
		||||
@@ -166,7 +166,7 @@ export default {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
							clearable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -181,8 +181,7 @@ export default {
 | 
			
		||||
							clearable: true,
 | 
			
		||||
							multiple: true,
 | 
			
		||||
						},
 | 
			
		||||
						options: [{ label: 'test', value: 'test' }],
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '维修工不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
@@ -195,7 +194,7 @@ export default {
 | 
			
		||||
						datetime: true,
 | 
			
		||||
						label: '故障发生时间',
 | 
			
		||||
						prop: 'faultTime',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '故障发生时间不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							format: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
							'value-format': 'timestamp',
 | 
			
		||||
 
 | 
			
		||||
@@ -152,14 +152,14 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '配置名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '配置名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '配置编码',
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-check-config/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '配置编码不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -168,7 +168,7 @@ export default {
 | 
			
		||||
						label: '设备名称',
 | 
			
		||||
						prop: 'equipmentId',
 | 
			
		||||
						url: '/base/core-equipment/listAll',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
 
 | 
			
		||||
@@ -169,14 +169,14 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '计划名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '计划名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '计划编号',
 | 
			
		||||
						prop: 'code',
 | 
			
		||||
						url: '/base/equipment-maintain-plan/getCode',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '计划编号不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -185,7 +185,7 @@ export default {
 | 
			
		||||
						label: '设备名称',
 | 
			
		||||
						prop: 'equipmentId',
 | 
			
		||||
						url: '/base/core-equipment/listAll',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
 
 | 
			
		||||
@@ -186,7 +186,7 @@ export default {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
							clearable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '保养设备不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
@@ -199,7 +199,7 @@ export default {
 | 
			
		||||
							clearable: true,
 | 
			
		||||
							multiple: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '保养人员不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
@@ -216,7 +216,7 @@ export default {
 | 
			
		||||
							'active-value': 1,
 | 
			
		||||
							'inactive-value': 2,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '是否计划保养不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{},
 | 
			
		||||
					{
 | 
			
		||||
@@ -235,7 +235,7 @@ export default {
 | 
			
		||||
						datetime: true,
 | 
			
		||||
						label: '开始时间',
 | 
			
		||||
						prop: 'startTime',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							format: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
							'value-format': 'timestamp',
 | 
			
		||||
@@ -247,7 +247,7 @@ export default {
 | 
			
		||||
						datetime: true,
 | 
			
		||||
						label: '结束时间',
 | 
			
		||||
						prop: 'endTime',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							format: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
							'value-format': 'timestamp',
 | 
			
		||||
@@ -269,7 +269,6 @@ export default {
 | 
			
		||||
						prop: 'files',
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				// TODO: 富文本
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						label: '保养描述',
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,7 @@
 | 
			
		||||
					<el-form-item
 | 
			
		||||
						label="维修开始时间"
 | 
			
		||||
						prop="maintenanceStartTime"
 | 
			
		||||
						:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
						:rules="[{ required: true, message: '维修开始时间不能为空', trigger: 'blur' }]">
 | 
			
		||||
						<el-date-picker
 | 
			
		||||
							v-model="dataForm.maintenanceStartTime"
 | 
			
		||||
							type="datetime"
 | 
			
		||||
@@ -77,7 +77,7 @@
 | 
			
		||||
					<el-form-item
 | 
			
		||||
						label="维修结束时间"
 | 
			
		||||
						prop="maintenanceFinishTime"
 | 
			
		||||
						:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
						:rules="[{ required: true, message: '维修结束时间不能为空', trigger: 'blur' }]">
 | 
			
		||||
						<el-date-picker
 | 
			
		||||
							v-model="dataForm.maintenanceFinishTime"
 | 
			
		||||
							type="datetime"
 | 
			
		||||
@@ -91,7 +91,7 @@
 | 
			
		||||
					<el-form-item
 | 
			
		||||
						label="维修方式"
 | 
			
		||||
						prop="repairMode"
 | 
			
		||||
						:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
						:rules="[{ required: true, message: '维修方式不能为空', trigger: 'blur' }]">
 | 
			
		||||
						<el-select
 | 
			
		||||
							:disabled="disabled"
 | 
			
		||||
							v-model="dataForm.repairMode"
 | 
			
		||||
@@ -127,7 +127,7 @@
 | 
			
		||||
					<el-form-item
 | 
			
		||||
						label="故障明细"
 | 
			
		||||
						prop="faultDetail"
 | 
			
		||||
						:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
						:rules="[{ required: true, message: '故障明细不能为空', trigger: 'blur' }]">
 | 
			
		||||
						<!-- // 富文本 -->
 | 
			
		||||
						<editor v-model="dataForm.faultDetail" :read-only="disabled" :min-height="380"/>
 | 
			
		||||
					</el-form-item>
 | 
			
		||||
 
 | 
			
		||||
@@ -169,7 +169,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '维修单号',
 | 
			
		||||
						prop: 'repairOrderNumber',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '维修单号不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
@@ -180,7 +180,7 @@ export default {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
							clearable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -198,7 +198,7 @@ export default {
 | 
			
		||||
							// multiple: true,
 | 
			
		||||
						},
 | 
			
		||||
						// options: [{ label: 'test', value: 'test' }],
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '维修工不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						input: true,
 | 
			
		||||
@@ -211,7 +211,7 @@ export default {
 | 
			
		||||
						datetime: true,
 | 
			
		||||
						label: '故障发生时间',
 | 
			
		||||
						prop: 'faultTime',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '故障发生时间不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							format: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
							'value-format': 'timestamp',
 | 
			
		||||
 
 | 
			
		||||
@@ -161,7 +161,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '配置名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '配置名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -174,7 +174,7 @@ export default {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
							clearable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
 
 | 
			
		||||
@@ -153,7 +153,7 @@ export default {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
							clearable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '供应商不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -196,21 +196,6 @@ export default {
 | 
			
		||||
						prop: 'remark',
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				// [
 | 
			
		||||
				// {
 | 
			
		||||
				// 	datetime: true,
 | 
			
		||||
				// 	label: '故障发生时间',
 | 
			
		||||
				// 	prop: 'faultTime',
 | 
			
		||||
				// 	rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
				// 	bind: {
 | 
			
		||||
				// 		format: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
				// 		'value-format': 'timestamp',
 | 
			
		||||
				// 		// 'value-format': 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
				// 		clearable: true,
 | 
			
		||||
				// 	},
 | 
			
		||||
				// },
 | 
			
		||||
 | 
			
		||||
				// ],
 | 
			
		||||
			],
 | 
			
		||||
			// 是否显示弹出层
 | 
			
		||||
			open: false,
 | 
			
		||||
 
 | 
			
		||||
@@ -211,7 +211,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '配置名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '配置名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -224,7 +224,7 @@ export default {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
							clearable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
 
 | 
			
		||||
@@ -180,7 +180,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '工艺名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '工艺名称不能为空', trigger: 'blur' }],
 | 
			
		||||
						// bind: {
 | 
			
		||||
						// 	disabled: this.editMode == 'detail', // some condition, like detail mode...
 | 
			
		||||
						// }
 | 
			
		||||
@@ -197,6 +197,7 @@ export default {
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '产线',
 | 
			
		||||
						prop: 'lineId',
 | 
			
		||||
						rules: [{ required: true, message: '产线不能为空', trigger: 'blur' }],
 | 
			
		||||
						// cache: 'processFlow::lineList',
 | 
			
		||||
						url: '/base/core-production-line/listAll',
 | 
			
		||||
						bind: {
 | 
			
		||||
@@ -217,8 +218,9 @@ export default {
 | 
			
		||||
				[
 | 
			
		||||
					{
 | 
			
		||||
						textarea: true,
 | 
			
		||||
						label: '功能描述',
 | 
			
		||||
						label: '工艺描述',
 | 
			
		||||
						prop: 'remark',
 | 
			
		||||
						rules: [{ required: true, message: '工艺描述不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
			],
 | 
			
		||||
 
 | 
			
		||||
@@ -102,7 +102,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '工序名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '工序名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -111,7 +111,7 @@ export default {
 | 
			
		||||
						label: '工段',
 | 
			
		||||
						prop: 'sectionId',
 | 
			
		||||
						url: '/base/core-workshop-section/listAll',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '工段不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ export default {
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			flowId: null,
 | 
			
		||||
			currentDet: null
 | 
			
		||||
			currentDet: null,
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	provide() {
 | 
			
		||||
@@ -36,6 +36,14 @@ export default {
 | 
			
		||||
			},
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	beforeRouteEnter(to, from, next) {
 | 
			
		||||
		console.log('tot', to, from);
 | 
			
		||||
		if (to.params.id) {
 | 
			
		||||
			next();
 | 
			
		||||
		} else {
 | 
			
		||||
			next({ path: '/extend/process-flow' });
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	activated() {
 | 
			
		||||
		console.log('activated...', this.$route.params);
 | 
			
		||||
		this.flowId = this.$route.params.id;
 | 
			
		||||
@@ -44,10 +52,9 @@ export default {
 | 
			
		||||
	methods: {
 | 
			
		||||
		handleDetSelected(det) {
 | 
			
		||||
			if (det != null) {
 | 
			
		||||
				this.currentDet = { ...det }
 | 
			
		||||
			}
 | 
			
		||||
			else this.currentDet = null;
 | 
			
		||||
		}
 | 
			
		||||
				this.currentDet = { ...det };
 | 
			
		||||
			} else this.currentDet = null;
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '工序名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '工序名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -77,7 +77,7 @@ export default {
 | 
			
		||||
						label: '工段',
 | 
			
		||||
						prop: 'sectionId',
 | 
			
		||||
						url: '/base/core-workshop-section/listAll',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '工段不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
 
 | 
			
		||||
@@ -27,24 +27,26 @@
 | 
			
		||||
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="按钮盒识别码" prop="buttonId" :rules="[
 | 
			
		||||
						{ required: true, message: '不能为空', trigger: 'blur' },
 | 
			
		||||
						{
 | 
			
		||||
							type: 'number',
 | 
			
		||||
							message: '请输入整数',
 | 
			
		||||
							trigger: 'blur',
 | 
			
		||||
							transform: (val) => Number.isInteger(Number(val)) && Number(val),
 | 
			
		||||
						},
 | 
			
		||||
					]">
 | 
			
		||||
        	{ required: true, message: '不能为空', trigger: 'blur' },
 | 
			
		||||
        	{
 | 
			
		||||
        		type: 'number',
 | 
			
		||||
        		message: '请输入整数',
 | 
			
		||||
        		trigger: 'blur',
 | 
			
		||||
        		transform: (val) => Number.isInteger(Number(val)) && Number(val),
 | 
			
		||||
        	},
 | 
			
		||||
        ]">
 | 
			
		||||
          <el-input v-model="dataForm.buttonId" @change="$emit('update', dataForm)" placeholder="请输入整数" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <!--
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="报警编码"
 | 
			
		||||
					prop="code"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					label="产线"
 | 
			
		||||
					prop="productionLineId"
 | 
			
		||||
					:rules="[
 | 
			
		||||
						{ required: true, message: '产线不能为空', trigger: 'blur' },
 | 
			
		||||
					]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="dataForm.code"
 | 
			
		||||
						v-model="dataForm.productionLineId"
 | 
			
		||||
						placeholder="请选择产线"
 | 
			
		||||
						filterable
 | 
			
		||||
						@change="handleProductlineChange">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in productionLineList"
 | 
			
		||||
@@ -52,38 +54,78 @@
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item> -->
 | 
			
		||||
      </el-col>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="工段"
 | 
			
		||||
					prop="sectionId"
 | 
			
		||||
					:rules="[
 | 
			
		||||
						{ required: true, message: '工段不能为空', trigger: 'blur' },
 | 
			
		||||
					]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="dataForm.sectionId"
 | 
			
		||||
						placeholder="请选择工段"
 | 
			
		||||
						filterable
 | 
			
		||||
						@change="$emit('update', dataForm)">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in workshopSectionList"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="按钮盒模式" prop="model">
 | 
			
		||||
          <el-input v-model="dataForm.model" @change="$emit('update', dataForm)" placeholder="请输入按钮盒模式" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="按钮盒识别码"
 | 
			
		||||
					prop="buttonId"
 | 
			
		||||
					:rules="[
 | 
			
		||||
						{
 | 
			
		||||
							required: true,
 | 
			
		||||
							message: '按钮盒识别码不能为空',
 | 
			
		||||
							trigger: 'blur',
 | 
			
		||||
						},
 | 
			
		||||
						{
 | 
			
		||||
							type: 'number',
 | 
			
		||||
							message: '请输入整数',
 | 
			
		||||
							trigger: 'blur',
 | 
			
		||||
							transform: (val) => Number.isInteger(Number(val)) && Number(val),
 | 
			
		||||
						},
 | 
			
		||||
					]">
 | 
			
		||||
					<el-input
 | 
			
		||||
						v-model="dataForm.buttonId"
 | 
			
		||||
						@change="$emit('update', dataForm)"
 | 
			
		||||
						placeholder="请输入整数" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="按钮值" prop="keyValue" :rules="[
 | 
			
		||||
						{ required: true, message: '不能为空', trigger: 'blur' },
 | 
			
		||||
						{
 | 
			
		||||
							type: 'number',
 | 
			
		||||
							message: '请输入100以内的整数',
 | 
			
		||||
							trigger: 'blur',
 | 
			
		||||
							transform: (val) =>
 | 
			
		||||
								Number.isInteger(+val) &&
 | 
			
		||||
								Number(val) >= 0 &&
 | 
			
		||||
								Number(val) <= 100 &&
 | 
			
		||||
								Number(val),
 | 
			
		||||
						},
 | 
			
		||||
					]">
 | 
			
		||||
        	{ required: true, message: '不能为空', trigger: 'blur' },
 | 
			
		||||
        	{
 | 
			
		||||
        		type: 'number',
 | 
			
		||||
        		message: '请输入100以内的整数',
 | 
			
		||||
        		trigger: 'blur',
 | 
			
		||||
        		transform: (val) =>
 | 
			
		||||
        			Number.isInteger(+val) &&
 | 
			
		||||
        			Number(val) >= 0 &&
 | 
			
		||||
        			Number(val) <= 100 &&
 | 
			
		||||
        			Number(val),
 | 
			
		||||
        	},
 | 
			
		||||
        ]">
 | 
			
		||||
          <el-input v-model="dataForm.keyValue" type="number" min="0" max="100" @change="$emit('update', dataForm)"
 | 
			
		||||
            placeholder="请输入按钮盒模式" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="检测内容" prop="inspectionDetContent">
 | 
			
		||||
          <el-input type="textarea" v-model="dataForm.inspectionDetContent" placeholder="请输入检测内容"
 | 
			
		||||
            @change="$emit('update', dataForm)"></el-input>
 | 
			
		||||
        <el-form-item label="检测内容" prop="inspectionDetId">
 | 
			
		||||
          <el-select v-model="dataForm.inspectionDetId" placeholder="请选择检测内容" filterable
 | 
			
		||||
            @change="$emit('update', dataForm)">
 | 
			
		||||
            <el-option v-for="opt in inspectionDetList" :key="opt.value" :label="opt.label" :value="opt.value" />
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
@@ -108,12 +150,14 @@ export default {
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			formLoading: true,
 | 
			
		||||
			productionLineList: [],
 | 
			
		||||
      productionLineList: [],
 | 
			
		||||
      inspectionDetList:[],
 | 
			
		||||
			workshopSectionList: [],
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		this.getProductionLineList();
 | 
			
		||||
    this.getProductionLineList()
 | 
			
		||||
    this.getQualityInspectionDetList()
 | 
			
		||||
		// this.getWorksectionList();
 | 
			
		||||
		// this.getCode('/base/equipment-group-alarm/getCode').then((code) => {
 | 
			
		||||
		// 	this.formLoading = false;
 | 
			
		||||
@@ -153,7 +197,20 @@ export default {
 | 
			
		||||
			}
 | 
			
		||||
			this.formLoading = false;
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
    async getQualityInspectionDetList() {
 | 
			
		||||
      this.formLoading = true;
 | 
			
		||||
      const res = await this.$axios({
 | 
			
		||||
        url: '/base/quality-inspection-det/listAll',
 | 
			
		||||
        method: 'get',
 | 
			
		||||
      });
 | 
			
		||||
      if (res.code == 0) {
 | 
			
		||||
        this.inspectionDetList = res.data.map((item) => ({
 | 
			
		||||
          label: item.content,
 | 
			
		||||
          value: item.id,
 | 
			
		||||
        }));
 | 
			
		||||
      }
 | 
			
		||||
      this.formLoading = false;
 | 
			
		||||
    },
 | 
			
		||||
		async getWorksectionList(id) {
 | 
			
		||||
			this.formLoading = true;
 | 
			
		||||
			const res = await this.$axios({
 | 
			
		||||
 
 | 
			
		||||
@@ -70,7 +70,7 @@ export default {
 | 
			
		||||
						label: '产线',
 | 
			
		||||
						url: '/base/production-line/listAll',
 | 
			
		||||
						prop: 'productionId',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '产线不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
@@ -80,7 +80,7 @@ export default {
 | 
			
		||||
						label: '工段',
 | 
			
		||||
						url: '/base/workshop-section/listAll',
 | 
			
		||||
						prop: 'sectionId',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '工段不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
@@ -118,13 +118,17 @@ export default {
 | 
			
		||||
							},
 | 
			
		||||
						],
 | 
			
		||||
						bind: { type: 'number', min: 0, max: 100 },
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						textarea: true,
 | 
			
		||||
						label: '检测内容',
 | 
			
		||||
						prop: 'inspectionDetContent',
 | 
			
		||||
						// rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            select: true,
 | 
			
		||||
            label: '检测内容',
 | 
			
		||||
            url: '/base/quality-inspection-det/listAll',
 | 
			
		||||
            prop: 'inspectionDetId',
 | 
			
		||||
            rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
            bind: {
 | 
			
		||||
              filterable: true,
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
				],
 | 
			
		||||
			],
 | 
			
		||||
			searchBarFormConfig: [
 | 
			
		||||
@@ -218,7 +222,7 @@ export default {
 | 
			
		||||
			form: {
 | 
			
		||||
				id: null,
 | 
			
		||||
				buttonId: null,
 | 
			
		||||
				inspectionDetContent: null,
 | 
			
		||||
        inspectionDetId: null,
 | 
			
		||||
        productionLineId: null,
 | 
			
		||||
				sectionId: null,
 | 
			
		||||
				model: null,
 | 
			
		||||
 
 | 
			
		||||
@@ -50,7 +50,7 @@
 | 
			
		||||
							label: '检测类型',
 | 
			
		||||
							prop: 'typeId',
 | 
			
		||||
							url: '/base/quality-inspection-type/listAll',
 | 
			
		||||
							rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
							rules: [{ required: true, message: '检测类型不能为空', trigger: 'blur' }],
 | 
			
		||||
							bind: {
 | 
			
		||||
								filterable: true,
 | 
			
		||||
							},
 | 
			
		||||
@@ -61,7 +61,7 @@
 | 
			
		||||
							input: true,
 | 
			
		||||
							label: '检测内容',
 | 
			
		||||
							prop: 'content',
 | 
			
		||||
							rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
							rules: [{ required: true, message: '检测内容不能为空', trigger: 'blur' }],
 | 
			
		||||
						},
 | 
			
		||||
					],
 | 
			
		||||
					[
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,13 @@
 | 
			
		||||
							input: true,
 | 
			
		||||
							label: '检测类型名称',
 | 
			
		||||
							prop: 'name',
 | 
			
		||||
							rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
							rules: [
 | 
			
		||||
								{
 | 
			
		||||
									required: true,
 | 
			
		||||
									message: '检测类型名称不能为空',
 | 
			
		||||
									trigger: 'blur',
 | 
			
		||||
								},
 | 
			
		||||
							],
 | 
			
		||||
							// bind: {
 | 
			
		||||
							// 	disabled: true, // some condition, like detail mode...
 | 
			
		||||
							// }
 | 
			
		||||
@@ -174,31 +180,7 @@ export default {
 | 
			
		||||
					plain: true,
 | 
			
		||||
					color: 'success',
 | 
			
		||||
				},
 | 
			
		||||
				// {
 | 
			
		||||
				// 	type: this.$auth.hasPermi('base:quality-inspection-type:export')
 | 
			
		||||
				// 		? 'button'
 | 
			
		||||
				// 		: '',
 | 
			
		||||
				// 	btnName: '导出',
 | 
			
		||||
				// 	name: 'export',
 | 
			
		||||
				// 	color: 'warning',
 | 
			
		||||
				// },
 | 
			
		||||
			],
 | 
			
		||||
			// 表单配置
 | 
			
		||||
			// formRows: [
 | 
			
		||||
			// 	[
 | 
			
		||||
			// 		{
 | 
			
		||||
			// 			input: true,
 | 
			
		||||
			// 			label: '检测类型名称',
 | 
			
		||||
			// 			prop: 'name',
 | 
			
		||||
			// 			rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
			// 			// bind: {
 | 
			
		||||
			// 			// 	disabled: true, // some condition, like detail mode...
 | 
			
		||||
			// 			// }
 | 
			
		||||
			// 		},
 | 
			
		||||
			// 	],
 | 
			
		||||
			// 	[{ input: true, label: '检测类型编码', prop: 'code' }],
 | 
			
		||||
			// 	[{ input: true, label: '备注', prop: 'remark' }],
 | 
			
		||||
			// ],
 | 
			
		||||
			// 是否显示弹出层
 | 
			
		||||
			open: false,
 | 
			
		||||
			// 查询参数
 | 
			
		||||
@@ -208,11 +190,11 @@ export default {
 | 
			
		||||
				name: null,
 | 
			
		||||
			},
 | 
			
		||||
			// 表单参数
 | 
			
		||||
      form: {
 | 
			
		||||
        name: null,
 | 
			
		||||
        code: undefined,
 | 
			
		||||
        remark:undefined
 | 
			
		||||
      },
 | 
			
		||||
			form: {
 | 
			
		||||
				name: null,
 | 
			
		||||
				code: undefined,
 | 
			
		||||
				remark: undefined,
 | 
			
		||||
			},
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	// watch: {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-11-06 15:15:30
 | 
			
		||||
 * @LastEditTime: 2023-11-06 16:00:24
 | 
			
		||||
 * @LastEditTime: 2023-11-20 15:23:59
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
@@ -10,18 +10,18 @@
 | 
			
		||||
    <el-row :gutter="20">
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="报废原因编码" prop="code">
 | 
			
		||||
          <el-input v-model="dataForm.code" placeholder="请输入报废类型编码" />
 | 
			
		||||
          <el-input v-model="dataForm.code" placeholder="请输入报废原因编码" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="报废原因" prop="content">
 | 
			
		||||
          <el-input v-model="dataForm.content" placeholder="请输入报废类型" />
 | 
			
		||||
          <el-input v-model="dataForm.content" placeholder="请输入报废原因" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-row :gutter="20">
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="报废类型" prop="description">
 | 
			
		||||
        <el-form-item label="报废类型" prop="typeId">
 | 
			
		||||
          <el-select v-model="dataForm.typeId" placeholder="请选择报废类型">
 | 
			
		||||
            <el-option v-for="dict in typeList" :key="dict.id" :label="dict.name" :value="dict.id" />
 | 
			
		||||
          </el-select>
 | 
			
		||||
@@ -68,6 +68,7 @@ export default {
 | 
			
		||||
				// materialId: [{ required: true, message: "", trigger: "blur" }],
 | 
			
		||||
        code: [{ required: true, message: "报废原因编码不能为空", trigger: "blur" }],
 | 
			
		||||
        content: [{ required: true, message: "报废原因不能为空", trigger: "blur" }],
 | 
			
		||||
        typeId: [{ required: true, message: "报废类型不能为空", trigger: "change" }],
 | 
			
		||||
      }
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-11-06 15:15:30
 | 
			
		||||
 * @LastEditTime: 2023-11-07 18:56:20
 | 
			
		||||
 * @LastEditTime: 2023-11-21 14:11:18
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
@@ -23,8 +23,8 @@
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item label="数量" prop="sum">
 | 
			
		||||
          <el-input v-model="dataForm.sum" placeholder="请输入数量" />
 | 
			
		||||
        <el-form-item label="数量" prop="num">
 | 
			
		||||
          <el-input v-model="dataForm.num" placeholder="请输入数量" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
@@ -176,9 +176,9 @@ export default {
 | 
			
		||||
      getDetList().then((res) => {
 | 
			
		||||
        console.log(res);
 | 
			
		||||
        // console.log(response);
 | 
			
		||||
        this.workOrderList = res.data.map((item) => {
 | 
			
		||||
        this.detList = res.data.map((item) => {
 | 
			
		||||
          return {
 | 
			
		||||
            name: item.name,
 | 
			
		||||
            name: item.content,
 | 
			
		||||
            id: item.id
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="检测内容"
 | 
			
		||||
					prop="inspectionDetId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '检测内容不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.inspectionDetId"
 | 
			
		||||
						placeholder="请选择检测内容"
 | 
			
		||||
@@ -36,7 +36,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="来源"
 | 
			
		||||
					prop="source"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '来源不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.source"
 | 
			
		||||
						placeholder="请选择来源"
 | 
			
		||||
@@ -60,7 +60,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="产线"
 | 
			
		||||
					prop="productionLineId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '产线不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.productionLineId"
 | 
			
		||||
						placeholder="请选择产线"
 | 
			
		||||
@@ -79,7 +79,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="工段"
 | 
			
		||||
					prop="sectionId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '工段不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.sectionId"
 | 
			
		||||
						placeholder="请选择工段"
 | 
			
		||||
@@ -110,7 +110,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="检测时间"
 | 
			
		||||
					prop="checkTime"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '检测时间不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-date-picker
 | 
			
		||||
						v-model="innerDataForm.checkTime"
 | 
			
		||||
						type="datetime"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,6 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <!-- 搜索工作栏 -->
 | 
			
		||||
    <SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" @headBtnClick="handleSearchBarBtnClick" />
 | 
			
		||||
 | 
			
		||||
    <!-- 列表 -->
 | 
			
		||||
    <el-row>
 | 
			
		||||
      <el-col class="custom-tabs">
 | 
			
		||||
@@ -20,6 +18,7 @@
 | 
			
		||||
            </div>
 | 
			
		||||
          </el-tab-pane>
 | 
			
		||||
          <el-tab-pane :label="'\u3000图形数据\u3000'" name="chart" style="overflow: inherit">
 | 
			
		||||
            <SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" @headBtnClick="handleSearchBarBtnClick" />
 | 
			
		||||
            <div id="main" style="height: 500px;width: 1000px;"></div>
 | 
			
		||||
          </el-tab-pane>
 | 
			
		||||
        </el-tabs>
 | 
			
		||||
@@ -75,13 +74,13 @@ export default {
 | 
			
		||||
      },
 | 
			
		||||
      activeName: 'table',
 | 
			
		||||
      searchBarFormConfig: [
 | 
			
		||||
        // {
 | 
			
		||||
        //   type: 'select',
 | 
			
		||||
        //   label: '工单号',
 | 
			
		||||
        //   placeholder: '请选择工单号',
 | 
			
		||||
        //   param: 'workOrderId',
 | 
			
		||||
        //   selectOptions: [],
 | 
			
		||||
        // },
 | 
			
		||||
        {
 | 
			
		||||
          type: 'label',
 | 
			
		||||
          label: '当前检测数据柱状图',
 | 
			
		||||
          // placeholder: '请选择工单号',
 | 
			
		||||
          // param: 'workOrderId',
 | 
			
		||||
          // selectOptions: [],
 | 
			
		||||
        },
 | 
			
		||||
				// {
 | 
			
		||||
				// 	type: 'select',
 | 
			
		||||
				// 	label: '产品',
 | 
			
		||||
@@ -95,40 +94,40 @@ export default {
 | 
			
		||||
				// 	placeholder: '请输入检测内容',
 | 
			
		||||
				// 	param: 'inspectionDetContent',
 | 
			
		||||
				// },
 | 
			
		||||
				{
 | 
			
		||||
					type: 'datePicker',
 | 
			
		||||
					label: '时间段',
 | 
			
		||||
					dateType: 'daterange', // datetimerange
 | 
			
		||||
					// format: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
					format: 'yyyy-MM-dd',
 | 
			
		||||
          valueFormat: 'timestamp',
 | 
			
		||||
					rangeSeparator: '-',
 | 
			
		||||
					startPlaceholder: '开始日期',
 | 
			
		||||
					endPlaceholder: '结束日期',
 | 
			
		||||
					defaultTime: ['00:00:00', '23:59:59'],
 | 
			
		||||
					param: 'checkTime',
 | 
			
		||||
					// width: 350,
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'button',
 | 
			
		||||
					btnName: '查询',
 | 
			
		||||
					name: 'search',
 | 
			
		||||
					color: 'primary',
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'separate',
 | 
			
		||||
				},
 | 
			
		||||
				// {
 | 
			
		||||
				// 	type: this.$auth.hasPermi(
 | 
			
		||||
				// 		'base:quality-inspection-record:create'
 | 
			
		||||
				// 	)
 | 
			
		||||
				// 		? 'button'
 | 
			
		||||
				// 		: '',
 | 
			
		||||
				// 	btnName: '新增',
 | 
			
		||||
				// 	name: 'add',
 | 
			
		||||
				// 	plain: true,
 | 
			
		||||
				// 	color: 'success',
 | 
			
		||||
				// 	type: 'datePicker',
 | 
			
		||||
				// 	label: '时间段',
 | 
			
		||||
				// 	dateType: 'daterange', // datetimerange
 | 
			
		||||
				// 	// format: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
				// 	format: 'yyyy-MM-dd',
 | 
			
		||||
        //   valueFormat: 'timestamp',
 | 
			
		||||
				// 	rangeSeparator: '-',
 | 
			
		||||
				// 	startPlaceholder: '开始日期',
 | 
			
		||||
				// 	endPlaceholder: '结束日期',
 | 
			
		||||
				// 	defaultTime: ['00:00:00', '23:59:59'],
 | 
			
		||||
				// 	param: 'checkTime',
 | 
			
		||||
				// 	// width: 350,
 | 
			
		||||
				// },
 | 
			
		||||
				// {
 | 
			
		||||
				// 	type: 'button',
 | 
			
		||||
				// 	btnName: '查询',
 | 
			
		||||
				// 	name: 'search',
 | 
			
		||||
				// 	color: 'primary',
 | 
			
		||||
				// },
 | 
			
		||||
				// {
 | 
			
		||||
				// 	type: 'separate',
 | 
			
		||||
				// },
 | 
			
		||||
				// // {
 | 
			
		||||
				// // 	type: this.$auth.hasPermi(
 | 
			
		||||
				// // 		'base:quality-inspection-record:create'
 | 
			
		||||
				// // 	)
 | 
			
		||||
				// // 		? 'button'
 | 
			
		||||
				// // 		: '',
 | 
			
		||||
				// // 	btnName: '新增',
 | 
			
		||||
				// // 	name: 'add',
 | 
			
		||||
				// // 	plain: true,
 | 
			
		||||
				// // 	color: 'success',
 | 
			
		||||
				// // },
 | 
			
		||||
			],
 | 
			
		||||
			// tableBtn: [
 | 
			
		||||
			// 	this.$auth.hasPermi('base:quality-inspection-record:update')
 | 
			
		||||
@@ -316,6 +315,7 @@ export default {
 | 
			
		||||
              data: arrYAxis,
 | 
			
		||||
              type: 'bar',
 | 
			
		||||
              showBackground: true,
 | 
			
		||||
              barWidth:'20',
 | 
			
		||||
              backgroundStyle: {
 | 
			
		||||
                color: 'rgba(180, 180, 180, 0.2)'
 | 
			
		||||
              }
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,7 @@ export default {
 | 
			
		||||
						input: true,
 | 
			
		||||
						label: '工序名称',
 | 
			
		||||
						prop: 'name',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '工序名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -77,7 +77,7 @@ export default {
 | 
			
		||||
						label: '工段',
 | 
			
		||||
						prop: 'sectionId',
 | 
			
		||||
						url: '/base/core-workshop-section/listAll',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '工段不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
 
 | 
			
		||||
@@ -6,141 +6,81 @@
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
	<el-form
 | 
			
		||||
		ref="form"
 | 
			
		||||
		:model="innerDataForm"
 | 
			
		||||
		label-width="100px"
 | 
			
		||||
		v-loading="formLoading">
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="检测内容"
 | 
			
		||||
					prop="inspectionDetId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.inspectionDetId"
 | 
			
		||||
						placeholder="请选择检测内容"
 | 
			
		||||
						filterable
 | 
			
		||||
						clearable
 | 
			
		||||
						@change="handleInspectionDetChange">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in inspectionDetList"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
  <el-form ref="form" :model="innerDataForm" label-width="100px" v-loading="formLoading">
 | 
			
		||||
    <el-row :gutter="20">
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="工单号" prop="workOrderId" :rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
          <el-select v-model="innerDataForm.workOrderId" placeholder="请选择工单号" filterable clearable>
 | 
			
		||||
            <el-option v-for="opt in workOrderList" :key="opt.value" :label="opt.label" :value="opt.value" />
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="检测内容" prop="inspectionDetId"
 | 
			
		||||
          :rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
          <el-select v-model="innerDataForm.inspectionDetId" placeholder="请选择检测内容" filterable clearable
 | 
			
		||||
            @change="handleInspectionDetChange">
 | 
			
		||||
            <el-option v-for="opt in inspectionDetList" :key="opt.value" :label="opt.label" :value="opt.value" />
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-row :gutter="20">
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="产线" prop="productionLineId"
 | 
			
		||||
          :rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
          <el-select v-model="innerDataForm.productionLineId" placeholder="请选择产线" filterable clearable
 | 
			
		||||
            @change="handleProductlineChange">
 | 
			
		||||
            <el-option v-for="opt in productionLineList" :key="opt.value" :label="opt.label" :value="opt.value" />
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="工段" prop="sectionId" :rules="[{ required: false, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
          <el-select v-model="innerDataForm.sectionId" placeholder="请选择工段" clearable filterable
 | 
			
		||||
            @change="$emit('update', innerDataForm)">
 | 
			
		||||
            <el-option v-for="opt in sectionList" :key="opt.value" :label="opt.label" :value="opt.value" />
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-row :gutter="20">
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="检测人员" prop="checkPerson">
 | 
			
		||||
          <el-input v-model="innerDataForm.checkPerson" clearable @change="$emit('update', innerDataForm)"
 | 
			
		||||
            placeholder="请输入检测人员" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="来源"
 | 
			
		||||
					prop="source"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.source"
 | 
			
		||||
						placeholder="请选择来源"
 | 
			
		||||
						filterable
 | 
			
		||||
						clearable
 | 
			
		||||
						@change="$emit('update', innerDataForm)">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in [
 | 
			
		||||
								{ label: '手动', value: 1 },
 | 
			
		||||
								{ label: '自动', value: 2 },
 | 
			
		||||
							]"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="产线"
 | 
			
		||||
					prop="productionLineId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.productionLineId"
 | 
			
		||||
						placeholder="请选择产线"
 | 
			
		||||
						filterable
 | 
			
		||||
						clearable
 | 
			
		||||
						@change="handleProductlineChange">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in productionLineList"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="工段"
 | 
			
		||||
					prop="sectionId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.sectionId"
 | 
			
		||||
						placeholder="请选择工段"
 | 
			
		||||
						clearable
 | 
			
		||||
						filterable
 | 
			
		||||
						@change="$emit('update', innerDataForm)">
 | 
			
		||||
						<el-option
 | 
			
		||||
							v-for="opt in sectionList"
 | 
			
		||||
							:key="opt.value"
 | 
			
		||||
							:label="opt.label"
 | 
			
		||||
							:value="opt.value" />
 | 
			
		||||
					</el-select>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item label="检测人员" prop="checkPerson">
 | 
			
		||||
					<el-input
 | 
			
		||||
						v-model="innerDataForm.checkPerson"
 | 
			
		||||
						clearable
 | 
			
		||||
						@change="$emit('update', innerDataForm)"
 | 
			
		||||
						placeholder="请输入检测人员" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="检测时间"
 | 
			
		||||
					prop="checkTime"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-date-picker
 | 
			
		||||
						v-model="innerDataForm.checkTime"
 | 
			
		||||
						type="datetime"
 | 
			
		||||
						placeholder="请选择检测时间"
 | 
			
		||||
						value-format="timestamp"
 | 
			
		||||
						@change="$emit('update', innerDataForm)"></el-date-picker>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col>
 | 
			
		||||
				<el-form-item label="描述" prop="explainText">
 | 
			
		||||
					<el-input
 | 
			
		||||
						v-model="innerDataForm.explainText"
 | 
			
		||||
						placeholder="请输入描述信息"
 | 
			
		||||
						@change="$emit('update', innerDataForm)"
 | 
			
		||||
						type="textarea"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col>
 | 
			
		||||
				<el-form-item label="备注" prop="remark">
 | 
			
		||||
					<el-input
 | 
			
		||||
						v-model="innerDataForm.remark"
 | 
			
		||||
						@change="$emit('update', innerDataForm)"
 | 
			
		||||
						placeholder="请输入备注"></el-input>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
	</el-form>
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="检测时间" prop="checkTime" :rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
          <el-date-picker v-model="innerDataForm.checkTime" type="datetime" placeholder="请选择检测时间"
 | 
			
		||||
            value-format="timestamp" @change="$emit('update', innerDataForm)"></el-date-picker>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-row :gutter="20">
 | 
			
		||||
      <el-col :span="12">
 | 
			
		||||
        <el-form-item label="来源" prop="source" :rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
          <el-select v-model="innerDataForm.source" placeholder="请选择来源" filterable clearable
 | 
			
		||||
            @change="$emit('update', innerDataForm)">
 | 
			
		||||
            <el-option v-for="opt in [
 | 
			
		||||
            	{ label: '手动', value: 1 },
 | 
			
		||||
            	{ label: '自动', value: 2 },
 | 
			
		||||
            ]" :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="remark">
 | 
			
		||||
          <el-input v-model="innerDataForm.remark" @change="$emit('update', innerDataForm)" placeholder="请输入备注">
 | 
			
		||||
          </el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
  </el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
@@ -163,13 +103,14 @@ export default {
 | 
			
		||||
			formLoading: true,
 | 
			
		||||
			inspectionDetList: [],
 | 
			
		||||
			productionLineList: [],
 | 
			
		||||
			sectionList: [],
 | 
			
		||||
      sectionList: [],
 | 
			
		||||
      workOrderList:[],
 | 
			
		||||
			innerDataForm: {},
 | 
			
		||||
			cacheInspectionDetList: null,
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		Promise.all([this.getProductLineList(), this.getInspectionDetList()]).then(
 | 
			
		||||
    Promise.all([this.getProductLineList(), this.getInspectionDetList(), this.getWorkOrderList()]).then(
 | 
			
		||||
			() => {
 | 
			
		||||
				this.formLoading = false;
 | 
			
		||||
			}
 | 
			
		||||
@@ -231,6 +172,14 @@ export default {
 | 
			
		||||
			}));
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
    async getWorkOrderList() {
 | 
			
		||||
      const response = await this.$axios('base/core-work-order/listbyfilter');
 | 
			
		||||
      this.workOrderList = response.data.map((item) => ({
 | 
			
		||||
        label: item.name,
 | 
			
		||||
        value: item.id,
 | 
			
		||||
      }));
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
		// 获取检测内容列表
 | 
			
		||||
		async getInspectionDetList() {
 | 
			
		||||
			const response = await this.$axios(
 | 
			
		||||
 
 | 
			
		||||
@@ -74,7 +74,7 @@ export default {
 | 
			
		||||
						url: '/base/quality-inspection-det/listAll',
 | 
			
		||||
						prop: 'inspectionDetId',
 | 
			
		||||
						labelKey: 'content',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '检测内容不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
@@ -102,7 +102,7 @@ export default {
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '产线不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						select: true,
 | 
			
		||||
@@ -113,7 +113,7 @@ export default {
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
						},
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: false, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				[
 | 
			
		||||
@@ -126,7 +126,7 @@ export default {
 | 
			
		||||
						datetime: true,
 | 
			
		||||
						label: '检测时间',
 | 
			
		||||
						prop: 'checkTime',
 | 
			
		||||
						rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
						rules: [{ required: true, message: '检测时间不能为空', trigger: 'blur' }],
 | 
			
		||||
						bind: {
 | 
			
		||||
							format: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
							'value-format': 'timestamp',
 | 
			
		||||
@@ -135,31 +135,25 @@ export default {
 | 
			
		||||
						},
 | 
			
		||||
					},
 | 
			
		||||
				],
 | 
			
		||||
				// [
 | 
			
		||||
				// 	{
 | 
			
		||||
				// 		textarea: true,
 | 
			
		||||
				// 		label: '检测内容',
 | 
			
		||||
				// 		prop: 'inspectionDetContent',
 | 
			
		||||
				// 		value: '',
 | 
			
		||||
				// 		rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
 | 
			
		||||
				// 	},
 | 
			
		||||
				// ],
 | 
			
		||||
				[{ textarea: true, label: '描述', prop: 'explainText' }],
 | 
			
		||||
				[{ input: true, label: '备注', prop: 'remark' }],
 | 
			
		||||
			],
 | 
			
		||||
			searchBarFormConfig: [
 | 
			
		||||
				{
 | 
			
		||||
					type: 'select',
 | 
			
		||||
					label: '产线',
 | 
			
		||||
					placeholder: '请选择产线',
 | 
			
		||||
					param: 'productionLineId',
 | 
			
		||||
					selectOptions: [],
 | 
			
		||||
					label: '工单号',
 | 
			
		||||
          placeholder: '请选择工单号',
 | 
			
		||||
					param: 'workOrderId',
 | 
			
		||||
          selectOptions: [],
 | 
			
		||||
          filterable:true
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'input',
 | 
			
		||||
          type: 'select',
 | 
			
		||||
					label: '检测内容',
 | 
			
		||||
					placeholder: '请输入检测内容',
 | 
			
		||||
					param: 'inspectionDetContent',
 | 
			
		||||
          placeholder: '请输入检测内容',
 | 
			
		||||
          selectOptions: [],
 | 
			
		||||
          param: 'inspectionDetContent',
 | 
			
		||||
          filterable: true
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'datePicker',
 | 
			
		||||
@@ -217,7 +211,12 @@ export default {
 | 
			
		||||
					fixed: true,
 | 
			
		||||
					width: 180,
 | 
			
		||||
					filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'),
 | 
			
		||||
				},
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          // width: 128,
 | 
			
		||||
          prop: 'workOrderName',
 | 
			
		||||
          label: '工单Id',
 | 
			
		||||
        },
 | 
			
		||||
				{
 | 
			
		||||
					// width: 128,
 | 
			
		||||
					prop: 'inspectionDetContent',
 | 
			
		||||
@@ -255,7 +254,8 @@ export default {
 | 
			
		||||
				inspectionDetContent: undefined,
 | 
			
		||||
				productionLineId: undefined,
 | 
			
		||||
				sectionId: undefined,
 | 
			
		||||
				checkPerson: undefined,
 | 
			
		||||
        checkPerson: undefined,
 | 
			
		||||
        workOrderId:undefined,
 | 
			
		||||
				checkTime: undefined,
 | 
			
		||||
				source: undefined,
 | 
			
		||||
				explainText: undefined,
 | 
			
		||||
@@ -264,16 +264,17 @@ export default {
 | 
			
		||||
			// 查询参数
 | 
			
		||||
			queryParams: {
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
        pageSize: 10,
 | 
			
		||||
        workOrderId:null,
 | 
			
		||||
				inspectionDetContent: null,
 | 
			
		||||
				checkTime: [],
 | 
			
		||||
				productionLineId: null,
 | 
			
		||||
				// productionLineId: null,
 | 
			
		||||
			},
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	created() {
 | 
			
		||||
		this.getList();
 | 
			
		||||
		// this.getProductLineList();
 | 
			
		||||
		this.getProductLineList()
 | 
			
		||||
	},
 | 
			
		||||
	watch: {
 | 
			
		||||
		form: {
 | 
			
		||||
@@ -309,7 +310,7 @@ export default {
 | 
			
		||||
	methods: {
 | 
			
		||||
		/** 获取搜索栏的产线列表 */
 | 
			
		||||
		getProductLineList() {
 | 
			
		||||
			this.$axios('/base/production-line/listAll').then((response) => {
 | 
			
		||||
      this.$axios('/base/core-work-order/listbyfilter').then((response) => {
 | 
			
		||||
				this.searchBarFormConfig[0].selectOptions = response.data.map(
 | 
			
		||||
					(item) => {
 | 
			
		||||
						return {
 | 
			
		||||
@@ -318,7 +319,17 @@ export default {
 | 
			
		||||
						};
 | 
			
		||||
					}
 | 
			
		||||
				);
 | 
			
		||||
			});
 | 
			
		||||
      })
 | 
			
		||||
      this.$axios('/base/quality-inspection-det/listAll').then((response) => {
 | 
			
		||||
        this.searchBarFormConfig[1].selectOptions = response.data.map(
 | 
			
		||||
          (item) => {
 | 
			
		||||
            return {
 | 
			
		||||
              name: item.content,
 | 
			
		||||
              id: item.content,
 | 
			
		||||
            };
 | 
			
		||||
          }
 | 
			
		||||
        );
 | 
			
		||||
      });
 | 
			
		||||
		},
 | 
			
		||||
		/** 查询列表 */
 | 
			
		||||
		getList() {
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="检测内容"
 | 
			
		||||
					prop="inspectionDetId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '检测内容不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.inspectionDetId"
 | 
			
		||||
						placeholder="请选择检测内容"
 | 
			
		||||
@@ -36,7 +36,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="来源"
 | 
			
		||||
					prop="source"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '来源不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.source"
 | 
			
		||||
						placeholder="请选择来源"
 | 
			
		||||
@@ -60,7 +60,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="产线"
 | 
			
		||||
					prop="productionLineId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '产线不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.productionLineId"
 | 
			
		||||
						placeholder="请选择产线"
 | 
			
		||||
@@ -79,7 +79,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="工段"
 | 
			
		||||
					prop="sectionId"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '工段不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="innerDataForm.sectionId"
 | 
			
		||||
						placeholder="请选择工段"
 | 
			
		||||
@@ -110,7 +110,7 @@
 | 
			
		||||
				<el-form-item
 | 
			
		||||
					label="检测时间"
 | 
			
		||||
					prop="checkTime"
 | 
			
		||||
					:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
 | 
			
		||||
					:rules="[{ required: true, message: '检测时间不能为空', trigger: 'blur' }]">
 | 
			
		||||
					<el-date-picker
 | 
			
		||||
						v-model="innerDataForm.checkTime"
 | 
			
		||||
						type="datetime"
 | 
			
		||||
 
 | 
			
		||||
@@ -206,6 +206,16 @@ export default {
 | 
			
		||||
  computed: {
 | 
			
		||||
    tableProps() {
 | 
			
		||||
      return [
 | 
			
		||||
        {
 | 
			
		||||
          // width: 128,
 | 
			
		||||
          prop: 'workOrderId',
 | 
			
		||||
          label: '工单号',
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          // width: 128,
 | 
			
		||||
          prop: 'productionName',
 | 
			
		||||
          label: '产品',
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          // width: 160,
 | 
			
		||||
          prop: 'inspectionContent',
 | 
			
		||||
@@ -214,8 +224,8 @@ export default {
 | 
			
		||||
        ...this.dynamicProps,
 | 
			
		||||
        {
 | 
			
		||||
          // width: 128,
 | 
			
		||||
          prop: 'sumInput',
 | 
			
		||||
          label: '检测类型总数',
 | 
			
		||||
          prop: 'sumScrap',
 | 
			
		||||
          label: '未检测总数',
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          // width: 128,
 | 
			
		||||
@@ -342,6 +352,8 @@ export default {
 | 
			
		||||
          inspectionContent: item.inspectionContent,
 | 
			
		||||
          ...keyValuePairs,
 | 
			
		||||
          sumInput: item.sumInput,
 | 
			
		||||
          productionName: item.productionName,
 | 
			
		||||
          workOrderId: item.workOrderId,
 | 
			
		||||
          scrapRatio: item.scrapRatio,
 | 
			
		||||
        };
 | 
			
		||||
      });
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user