markSetShowRed.js 1.74 KB
export default {
	computed: {
		// 快照条件下,modifySet显示红色
		isShowRed () {
			let showRed = ''
			// 快照模式下显示红色下划线
			if (this.mode === "display") {
				// 获取prop两种方式,第一种是组件的form-item上的prop,或者是customModifykey
				let prop = this.customModifykey || this.$parent.prop
				if (!prop) {
					return showRed;
				}
				let propKey = prop.substring(prop.lastIndexOf(".") + 1)
				// 如果组件直接传入了markSet数组所在的对象则直接使用此对象中的markSet,否则通过prop路径到model中去找
				if (this.markSetData) {
					let markSetData = this.markSetData
					if (markSetData.markSet && markSetData.markSet.length > 0 && markSetData.markSet.includes(propKey)) {
						showRed = 'red'
					}
					if (markSetData.markSetX && markSetData.markSetX.length > 0 && markSetData.markSetX.includes(propKey)) {
						showRed = 'green'
					}
				} else {
					if (!this.root) {
						return showRed;
					}
					let tempObj = this.root.model
					let propArr = prop.split('.')
					propArr.pop()
					let curProp = null
					if (propArr && propArr.length > 0) {
						while (curProp = propArr.shift()) {
							if (tempObj[curProp]) {
								tempObj = tempObj[curProp]
							}
						}
					}
					if (tempObj.markSet && tempObj.markSet.length > 0 && tempObj.markSet.includes(propKey)) {
						showRed = 'red'
					}
					if (tempObj.markSetX && tempObj.markSetX.length > 0 && tempObj.markSetX.includes(propKey)) {
						showRed = 'green'
					}
				}
			}
			return showRed
		}
  },
  methods: {
    resetValidate() {
      let prop = this.customModifykey || this.$parent.prop
      if (prop && this.root) {
        this.root.$refs['modelForm'].clearValidate([prop]);
      }
    }
  }
}