|
|
|
@ -3,71 +3,66 @@ |
|
|
|
<div class="flex1 flex"> |
|
|
|
<el-input v-if="type === 'input'" :maxlength="item.maxlength || 50" :disabled="getDisabled()" |
|
|
|
:class="getFillTypeStyle() + (orangeBg ? ' orange-bg' : '')" @blur="onBlur" |
|
|
|
:placeholder="getPlaceholder()" v-model="inputValue" |
|
|
|
@input="onInputChange" @change="onInputChange" /> |
|
|
|
:placeholder="getPlaceholder()" v-model="inputValue" @input="onInputChange" @change="onInputChange" /> |
|
|
|
<el-input v-else-if="type === 'textarea'" :maxlength="item.maxlength || 50" :disabled="getDisabled()" |
|
|
|
:class="getFillTypeStyle() + (orangeBg ? ' orange-bg' : '')" type="textarea" show-word-limit resize="none" @blur="onBlur" |
|
|
|
:rows="item.rows || 3" :placeholder="getPlaceholder()" |
|
|
|
v-model="inputValue" @input="onInputChange" @change="onInputChange" /> |
|
|
|
<DecimalInput v-else-if="type === 'inputNumber'" @blur="onCommonHandleSaveRecord" :maxlength="item.maxlength || 10" |
|
|
|
class="flex1" :disabled="getDisabled()" :controls="item.controls || false" :min="item.min || 0" |
|
|
|
:prepend = "item.prepend" |
|
|
|
:decimalDigits="item.precision" :class="getFillTypeStyle() + (orangeBg ? ' orange-bg' : '')" |
|
|
|
:placeholder="getPlaceholder()" v-model="inputValue" |
|
|
|
:class="getFillTypeStyle() + (orangeBg ? ' orange-bg' : '')" type="textarea" show-word-limit |
|
|
|
resize="none" @blur="onBlur" :rows="item.rows || 3" :placeholder="getPlaceholder()" v-model="inputValue" |
|
|
|
@input="onInputChange" @change="onInputChange" /> |
|
|
|
<DecimalInput v-else-if="type === 'inputNumber'" @blur="onCommonHandleSaveRecord" |
|
|
|
:maxlength="item.maxlength || 10" class="flex1" :disabled="getDisabled()" |
|
|
|
:controls="item.controls || false" :min="item.min || 0" :prepend="item.prepend" |
|
|
|
:decimalDigits="item.precision" :class="getFillTypeStyle() + (orangeBg ? ' orange-bg' : '')" |
|
|
|
:placeholder="getPlaceholder()" v-model="inputValue" @input="onInputChange" @change="onInputChange" /> |
|
|
|
<el-select v-else-if="type === 'select'" class="flex1" :multiple="item.multiple" |
|
|
|
:class="getFillTypeStyle() + (orangeBg ? ' orange-bg' : '')" v-model="inputValue" :disabled="getDisabled()" |
|
|
|
:placeholder="getPlaceholder()" @visible-change="onSelectBlur" @change="onInputChange"> |
|
|
|
:class="getFillTypeStyle() + (orangeBg ? ' orange-bg' : '')" v-model="inputValue" |
|
|
|
:disabled="getDisabled()" :placeholder="getPlaceholder()" @visible-change="onSelectBlur" |
|
|
|
@change="onInputChange"> |
|
|
|
<el-option v-for="op in item.options" :key="op.value" :label="op.label" :value="op.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
<el-date-picker v-else-if="type === 'dateTime'" type="datetime" class="flex1" :class="getFillTypeStyle() + (orangeBg ? ' orange-bg' : '')" |
|
|
|
v-model="inputValue" :disabled="getDisabled()" format="yyyy/MM/DD HH:mm:ss" |
|
|
|
value-format="yyyy/MM/DD HH:mm:ss" |
|
|
|
<el-date-picker v-else-if="type === 'dateTime'" type="datetime" class="flex1" |
|
|
|
:class="getFillTypeStyle() + (orangeBg ? ' orange-bg' : '')" v-model="inputValue" |
|
|
|
:disabled="getDisabled()" format="yyyy/MM/DD HH:mm:ss" value-format="yyyy/MM/DD HH:mm:ss" |
|
|
|
:placeholder="getPlaceholder()" @change="onCommonHandleSaveRecord"> |
|
|
|
</el-date-picker> |
|
|
|
<div class="clickable" :class="getFillTypeStyle() + (getDisabled()?' disabled':'') + (orangeBg ? ' orange-bg' : '')" v-else-if = "item.type ==='clickable'" @click="handleClickable(item,$event)"> |
|
|
|
<div class="clickable" |
|
|
|
:class="getFillTypeStyle() + (getDisabled() ? ' disabled' : '') + (orangeBg ? ' orange-bg' : '')" |
|
|
|
v-else-if="item.type === 'clickable'" @click="handleClickable(item, $event)"> |
|
|
|
<span v-if="value">{{ value }}</span> |
|
|
|
<span v-else class="default-placeholder-text">{{getPlaceholder()}}</span> |
|
|
|
<span v-else class="default-placeholder-text">{{ getPlaceholder() }}</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- qc才能操作 --> |
|
|
|
<div class="handle-row" v-if="isShowHandle()"> |
|
|
|
<el-checkbox class="ml-5" @change="onCheckboxChange"></el-checkbox> |
|
|
|
<div v-if="getIsShowQuestionIcon()" @mouseenter="(e)=>onMouseEnter('replyRecord',e)" @mouseleave="onMouseLeave"> |
|
|
|
<Question class="handle-icon" :class="getQuestionColor()" /> |
|
|
|
<div v-if="getIsShowQuestionIcon()" @mouseenter="(e) => onMouseEnter('replyRecord', e)" |
|
|
|
@mouseleave="onMouseLeave"> |
|
|
|
<Question class="handle-icon" :class="getQuestionColor()" /> |
|
|
|
</div> |
|
|
|
<img v-if="getIsShowCopyIcon()" @click="onCopy" src="@/assets/images/copy-icon.svg" class="handle-icon" |
|
|
|
<img v-if="getIsShowCopyIcon()" @click="onCopy" src="@/assets/images/copy-icon.svg" class="handle-icon" |
|
|
|
alt="" /> |
|
|
|
<img v-if="getIsShowRecordIcon()" @mouseenter="(e)=>onMouseEnter('modifyRecord',e)" @mouseleave="onMouseLeave" src="@/assets/images/record-icon.svg" class="handle-icon" alt="" /> |
|
|
|
<img v-if="getIsShowRecordIcon()" @mouseenter="(e) => onMouseEnter('modifyRecord', e)" |
|
|
|
@mouseleave="onMouseLeave" src="@/assets/images/record-icon.svg" class="handle-icon" alt="" /> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 修改记录模态框 --> |
|
|
|
<div |
|
|
|
v-if="showModal && modificationRecords.length > 0" |
|
|
|
ref="modalRef" |
|
|
|
:class="['modification-modal', {'show': showModal}]" |
|
|
|
@mouseenter="onModalEnter" |
|
|
|
@mouseleave="onModalLeave" |
|
|
|
> |
|
|
|
<div v-if="showModal && modificationRecords.length > 0" ref="modalRef" |
|
|
|
:class="['modification-modal', { 'show': showModal }]" @mouseenter="onModalEnter" |
|
|
|
@mouseleave="onModalLeave"> |
|
|
|
<div class="modal-content"> |
|
|
|
<div class="records-list"> |
|
|
|
<div |
|
|
|
v-for="(record, index) in modificationRecords" |
|
|
|
:key="index" |
|
|
|
class="record-item" |
|
|
|
> |
|
|
|
<!-- 字段修改记录 --> |
|
|
|
<div v-for="(record, index) in modificationRecords" :key="index" class="record-item"> |
|
|
|
<!-- 字段修改记录 --> |
|
|
|
<div class="record-row" v-if="currentRecordType === 'modifyRecord'"> |
|
|
|
<div> |
|
|
|
<span>{{index+1}}.</span> |
|
|
|
<span>{{ index + 1 }}.</span> |
|
|
|
<span> {{ record.userName }} </span> |
|
|
|
<span>{{ record.time }} </span> |
|
|
|
<span>{{ record.title }}</span> |
|
|
|
</div> |
|
|
|
<div v-if="record.oldValue && record.value"> |
|
|
|
<div>原值:{{record.oldValue}}</div> |
|
|
|
<div>修改值:{{record.value}}</div> |
|
|
|
<div>原值:{{ record.oldValue }}</div> |
|
|
|
<div>修改值:{{ record.value }}</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 回复记录 --> |
|
|
|
@ -77,8 +72,8 @@ |
|
|
|
<span>{{ record.time }} </span> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<div v-if="record.content">复核意见:{{record.content}}</div> |
|
|
|
<div v-if="record.replay">回复意见:{{record.replay}}</div> |
|
|
|
<div v-if="record.content">复核意见:{{ record.content }}</div> |
|
|
|
<div v-if="record.replay">回复意见:{{ record.replay }}</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<hr v-if="index < modificationRecords.length - 1"> |
|
|
|
@ -92,9 +87,10 @@ |
|
|
|
<script> |
|
|
|
import Question from "./icons/Question.vue"; |
|
|
|
import DecimalInput from "./DecimalInput.vue"; |
|
|
|
import { EventBus } from "@/utils/eventBus" |
|
|
|
import { EventBus } from "@/utils/eventBus"; |
|
|
|
import moment from "moment"; |
|
|
|
export default { |
|
|
|
inject: ['templateFillType',"zdxgjl","fhyjjl"], |
|
|
|
inject: ['templateFillType', "zdxgjl", "fhyjjl", "updateZdxgjl", "updateFhyjjl"], |
|
|
|
components: { |
|
|
|
Question, |
|
|
|
DecimalInput |
|
|
|
@ -157,16 +153,16 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
filters: { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
console.log(this.$i18n.locale,"locale") |
|
|
|
console.log(this.$i18n.locale, "locale") |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
|
|
|
|
|
|
|
|
getFillTypeStyle(type) { |
|
|
|
const {fillType} = this.item; |
|
|
|
const { fillType } = this.item; |
|
|
|
const typeObj = { |
|
|
|
actFill: "orange-border",//实际填写的边框颜色 |
|
|
|
green: "green-border", |
|
|
|
@ -180,12 +176,24 @@ export default { |
|
|
|
}, |
|
|
|
//获取question图标颜色 |
|
|
|
getQuestionColor() { |
|
|
|
//gray 灰色 green 绿色 orange 橙色 |
|
|
|
return "green" |
|
|
|
const records = this.getReplyRecords(); |
|
|
|
if (records.length > 0) { |
|
|
|
const o = records[0]; |
|
|
|
if(o.replay && o.content){//有回复意见和复核意见 |
|
|
|
return "green" |
|
|
|
}else if(o.content && !o.replay){//只有复核意见 |
|
|
|
return "green" |
|
|
|
}else{ |
|
|
|
return "gray" |
|
|
|
} |
|
|
|
}else{//没有回复记录 |
|
|
|
return "gray" |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
// 复选框变化处理 |
|
|
|
onCheckboxChange(val) { |
|
|
|
console.log(this.zdxgjl,"zdxgjl") |
|
|
|
console.log(this.zdxgjl, "zdxgjl") |
|
|
|
// 触发修改记录事件 |
|
|
|
EventBus.$emit('onModifyRecord', { |
|
|
|
timestamp: new Date().toLocaleString(), |
|
|
|
@ -206,7 +214,7 @@ export default { |
|
|
|
const value = val !== undefined ? val : this.inputValue; |
|
|
|
this.$emit('input', value); |
|
|
|
this.$emit('change', value); |
|
|
|
|
|
|
|
|
|
|
|
// 根据输入值判断是否显示错误状态 |
|
|
|
const isEmpty = this.isValueEmpty(value); |
|
|
|
if (this.error && !isEmpty) { |
|
|
|
@ -220,43 +228,45 @@ export default { |
|
|
|
this.onCommonHandleSaveRecord(e.target.value); |
|
|
|
}, |
|
|
|
|
|
|
|
async onCommonHandleSaveRecord(val){ |
|
|
|
async onCommonHandleSaveRecord(val) { |
|
|
|
const isEmpty = this.isValueEmpty(this.inputValue); |
|
|
|
if (this.error && !isEmpty) { |
|
|
|
this.$emit('update:error', false); |
|
|
|
} else if (!this.error && isEmpty) { |
|
|
|
this.$emit('update:error', true); |
|
|
|
} |
|
|
|
|
|
|
|
// 检查值是否发生变化 |
|
|
|
if (this.templateFillType === "actFill") { |
|
|
|
// 值发生了变化,需要弹出密码输入框 |
|
|
|
try { |
|
|
|
if(this.oldValue && this.oldValue !== this.inputValue){ |
|
|
|
if (this.oldValue && this.oldValue !== this.inputValue) { |
|
|
|
const passwordResult = await this.$prompt('请输入密码以确认修改', '密码验证', { |
|
|
|
confirmButtonText: '确定', |
|
|
|
cancelButtonText: '取消', |
|
|
|
inputType: 'password', |
|
|
|
inputPattern: /.+/, |
|
|
|
inputErrorMessage: '请输入密码', |
|
|
|
zIndex: 10000, |
|
|
|
confirmButtonText: '确定', |
|
|
|
cancelButtonText: '取消', |
|
|
|
inputType: 'password', |
|
|
|
inputPattern: /.+/, |
|
|
|
inputErrorMessage: '请输入密码', |
|
|
|
zIndex: 10000, |
|
|
|
}); |
|
|
|
|
|
|
|
const baseInfo = this.getCommonRecordInfo(); |
|
|
|
const record = { |
|
|
|
...baseInfo, |
|
|
|
oldValue: this.oldValue, |
|
|
|
value: this.inputValue, |
|
|
|
title: this.oldValue ? "修改记录" : "填写", |
|
|
|
} |
|
|
|
this.updateZdxgjl(record); |
|
|
|
const params = { |
|
|
|
type: "modifyRecord", |
|
|
|
newRecord: record, |
|
|
|
password: passwordResult, |
|
|
|
recordList: this.zdxgjl, |
|
|
|
} |
|
|
|
console.log(params, "params") |
|
|
|
this.$emit("onModifyRecord", params,) |
|
|
|
} |
|
|
|
const {nickName,name} = this.$store.getters; |
|
|
|
//locale:zh-CN 中文 en-US 英文 |
|
|
|
const lang = this.$i18n.locale === "zh-CN"?"cn":"en"; |
|
|
|
const commonInfo = { |
|
|
|
userNameCn:nickName, |
|
|
|
userNameEn:name, |
|
|
|
key:this.fieldKey, |
|
|
|
field:`${this.fieldItemLabel}-${this.item.label}` |
|
|
|
} |
|
|
|
this.$emit("onModifyRecord", { |
|
|
|
timestamp: new Date().toLocaleString(), |
|
|
|
oldValue: this.oldValue, |
|
|
|
value: this.inputValue, |
|
|
|
title:this.oldValue?"修改记录":"填写", |
|
|
|
field:"试验基本信息-其他信息" |
|
|
|
}) |
|
|
|
//用户输入密码并点击确定,保存修改 |
|
|
|
this.oldValue = this.inputValue; // 更新旧值 |
|
|
|
this.$emit("blur", val); |
|
|
|
@ -278,7 +288,29 @@ export default { |
|
|
|
this.$emit("change", val) |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//获取公共记录信息 |
|
|
|
getCommonRecordInfo() { |
|
|
|
const { nickName, name } = this.$store.getters; |
|
|
|
//locale:zh-CN 中文 en-US 英文 |
|
|
|
const lang = this.$i18n.locale === "zh-CN" ? "cn" : "en"; |
|
|
|
const { label, parentLabel } = this.item; |
|
|
|
let fieldLabel = label; |
|
|
|
if (label === "其他") { |
|
|
|
fieldLabel = parentLabel + "其他信息"; |
|
|
|
} else if (!label) { |
|
|
|
fieldLabel = parentLabel + "单位"; |
|
|
|
} |
|
|
|
const commonInfo = { |
|
|
|
userNameCn: nickName, |
|
|
|
userNameEn: name, |
|
|
|
key: this.fieldKey, |
|
|
|
field: `${this.fieldItemLabel}-${fieldLabel}`, |
|
|
|
time: moment().format("YYYY-MM-DD HH:mm:ss"), |
|
|
|
} |
|
|
|
return commonInfo; |
|
|
|
}, |
|
|
|
|
|
|
|
// 判断值是否为空 |
|
|
|
isValueEmpty(value) { |
|
|
|
if (value === null || value === undefined || value === '') { |
|
|
|
@ -292,11 +324,11 @@ export default { |
|
|
|
} |
|
|
|
return false; |
|
|
|
}, |
|
|
|
handleClickable(item,event){ |
|
|
|
if(item.fillType !== 'actFill'){ |
|
|
|
handleClickable(item, event) { |
|
|
|
if (item.fillType !== 'actFill') { |
|
|
|
return |
|
|
|
} |
|
|
|
this.$emit("clickable",item) |
|
|
|
this.$emit("clickable", item) |
|
|
|
}, |
|
|
|
//判断是否显示复制按钮 |
|
|
|
getIsShowCopyIcon() { |
|
|
|
@ -326,58 +358,57 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
getPlaceholder() { |
|
|
|
const { placeholder,label } = this.item; |
|
|
|
const {type} = this; |
|
|
|
if(this.getDisabled()){ |
|
|
|
const { placeholder, label } = this.item; |
|
|
|
const { type } = this; |
|
|
|
if (this.getDisabled()) { |
|
|
|
return "" |
|
|
|
} |
|
|
|
if(type === "clickable"){ |
|
|
|
return "请选择" |
|
|
|
if (type === "clickable") { |
|
|
|
return "请选择" |
|
|
|
} |
|
|
|
let prex = "请输入"; |
|
|
|
if(type === "select" || type === "dateTime"){ |
|
|
|
if (type === "select" || type === "dateTime") { |
|
|
|
prex = "请选择" |
|
|
|
} |
|
|
|
return placeholder ? placeholder : (prex + label) |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
onCopy() { |
|
|
|
this.$emit("copy") |
|
|
|
}, |
|
|
|
//判断是否显示问题图标 |
|
|
|
getIsShowQuestionIcon(){ |
|
|
|
if(this.templateFillType === "qc"){//qc可以直接查看 |
|
|
|
getIsShowQuestionIcon() { |
|
|
|
if (this.templateFillType === "qc") {//qc可以直接查看 |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
//判断是否显示修改记录图标 |
|
|
|
getIsShowRecordIcon(){ |
|
|
|
return this.getModifyRecords().length>0 |
|
|
|
getIsShowRecordIcon() { |
|
|
|
return this.getModifyRecords().length > 0 |
|
|
|
}, |
|
|
|
//获取回复记录 |
|
|
|
getReplyRecords(){ |
|
|
|
const {fieldKey,fhyjjl = []} = this; |
|
|
|
getReplyRecords() { |
|
|
|
const { fieldKey, fhyjjl = [] } = this; |
|
|
|
const records = fhyjjl.filter(item => item.key === fieldKey); |
|
|
|
return records; |
|
|
|
}, |
|
|
|
//获取字段修改记录 |
|
|
|
getModifyRecords(){ |
|
|
|
const {fieldKey,zdxgjl = []} = this; |
|
|
|
getModifyRecords() { |
|
|
|
const { fieldKey, zdxgjl = [] } = this; |
|
|
|
const records = zdxgjl.filter(item => item.key === fieldKey); |
|
|
|
return records; |
|
|
|
}, |
|
|
|
// 鼠标进入主容器 |
|
|
|
async onMouseEnter(type,event) { |
|
|
|
async onMouseEnter(type, event) { |
|
|
|
this.currentRecordType = type; |
|
|
|
clearTimeout(this.modalTimer); |
|
|
|
let record = []; |
|
|
|
if(type === "modifyRecord"){ |
|
|
|
if (type === "modifyRecord") { |
|
|
|
record = this.getModifyRecords(); |
|
|
|
}else if(type === "replyRecord"){ |
|
|
|
} else if (type === "replyRecord") { |
|
|
|
record = this.getReplyRecords(); |
|
|
|
} |
|
|
|
console.log(record,"reeee") |
|
|
|
this.modificationRecords = record; |
|
|
|
// 先计算模态框位置,避免闪烁 |
|
|
|
this.showModal = true; |
|
|
|
@ -385,32 +416,32 @@ export default { |
|
|
|
if (this.$refs.modalRef) { |
|
|
|
const elementRect = event.target.getBoundingClientRect(); |
|
|
|
const modalEl = this.$refs.modalRef; |
|
|
|
|
|
|
|
|
|
|
|
// 设置模态框位置在元素右侧 |
|
|
|
modalEl.style.left = elementRect.right + 5 + 'px'; // 5px间距 |
|
|
|
modalEl.style.top = elementRect.top + 'px'; |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 鼠标离开主容器 |
|
|
|
onMouseLeave() { |
|
|
|
this.currentRecordType = ''; |
|
|
|
this.modificationRecords = [];//清空数据源 |
|
|
|
// this.currentRecordType = ''; |
|
|
|
// this.modificationRecords = [];//清空数据源 |
|
|
|
// 延迟隐藏模态框,让用户有机会移动到模态框上 |
|
|
|
this.modalTimer = setTimeout(() => { |
|
|
|
if (!this.isHoveringModal) { |
|
|
|
this.showModal = false; |
|
|
|
} |
|
|
|
}, 300); |
|
|
|
}, 100); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 鼠标进入模态框 |
|
|
|
onModalEnter() { |
|
|
|
this.isHoveringModal = true; |
|
|
|
clearTimeout(this.modalTimer); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 鼠标离开模态框 |
|
|
|
onModalLeave() { |
|
|
|
this.isHoveringModal = false; |
|
|
|
@ -418,7 +449,7 @@ export default { |
|
|
|
this.modificationRecords = [];//清空数据源 |
|
|
|
this.modalTimer = setTimeout(() => { |
|
|
|
this.showModal = false; |
|
|
|
}, 300); |
|
|
|
}, 100); |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
@ -469,7 +500,8 @@ export default { |
|
|
|
|
|
|
|
.orange-border { |
|
|
|
|
|
|
|
.el-input-group__prepend,input, |
|
|
|
.el-input-group__prepend, |
|
|
|
input, |
|
|
|
textarea { |
|
|
|
border-color: #f9c588; |
|
|
|
|
|
|
|
@ -490,7 +522,8 @@ export default { |
|
|
|
|
|
|
|
.green-border { |
|
|
|
|
|
|
|
.el-input-group__prepend,input, |
|
|
|
.el-input-group__prepend, |
|
|
|
input, |
|
|
|
textarea { |
|
|
|
border-color: green; |
|
|
|
|
|
|
|
@ -511,7 +544,8 @@ export default { |
|
|
|
|
|
|
|
.blue-border { |
|
|
|
|
|
|
|
.el-input-group__prepend,input, |
|
|
|
.el-input-group__prepend, |
|
|
|
input, |
|
|
|
textarea { |
|
|
|
border-color: #4ea2ff; |
|
|
|
|
|
|
|
@ -531,7 +565,9 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
.error-border { |
|
|
|
.el-input-group__prepend,input, |
|
|
|
|
|
|
|
.el-input-group__prepend, |
|
|
|
input, |
|
|
|
textarea, |
|
|
|
.el-select, |
|
|
|
.clickable, |
|
|
|
@ -559,7 +595,7 @@ export default { |
|
|
|
border-color: #f56c6c; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 为点击式表单项添加错误边框样式 |
|
|
|
.clickable { |
|
|
|
border-color: #f56c6c; |
|
|
|
@ -568,8 +604,11 @@ export default { |
|
|
|
|
|
|
|
.orange-bg { |
|
|
|
background-color: #FFF1F1 !important; // 橙色背景,透明度适中 |
|
|
|
|
|
|
|
input, textarea, .el-input__inner, .el-textarea__inner { |
|
|
|
|
|
|
|
input, |
|
|
|
textarea, |
|
|
|
.el-input__inner, |
|
|
|
.el-textarea__inner { |
|
|
|
background-color: #FFF1F1 !important; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -629,27 +668,29 @@ export default { |
|
|
|
font-style: italic; |
|
|
|
} |
|
|
|
|
|
|
|
.clickable{ |
|
|
|
.clickable { |
|
|
|
cursor: pointer; |
|
|
|
width: auto; |
|
|
|
// margin-left: 10px; |
|
|
|
min-width: 100px; |
|
|
|
height: 28px; |
|
|
|
border-radius: 4px; |
|
|
|
border:1px solid #4ea2ff; |
|
|
|
border: 1px solid #4ea2ff; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
padding:0 15px; |
|
|
|
padding: 0 15px; |
|
|
|
font-size: 14px; |
|
|
|
font-weight: normal; |
|
|
|
color: #606266; |
|
|
|
flex:1; |
|
|
|
&.disabled{ |
|
|
|
flex: 1; |
|
|
|
|
|
|
|
&.disabled { |
|
|
|
cursor: not-allowed; |
|
|
|
color: #c0c4cc; |
|
|
|
background-color: #f5f7fa; |
|
|
|
} |
|
|
|
&.error-border{ |
|
|
|
|
|
|
|
&.error-border { |
|
|
|
border-color: #f56c6c !important; |
|
|
|
} |
|
|
|
} |