|
@@ -140,6 +140,141 @@
|
|
|
</div>
|
|
|
<!-- 允许偏差值范围 -->
|
|
|
<div v-if="deviationRangeShow && !isResetFun" class="border-dashed-card hc-formula-card-range mb-14px">
|
|
|
+ <div class="hc-flex mb-12px text-14px">
|
|
|
+ <div>允许偏差值范围:</div>
|
|
|
+ <div class="w-130px">
|
|
|
+ <el-select v-model="deviationRangeSymbol" filterable clearable placeholder="请选择允许偏差值范围">
|
|
|
+ <el-option label="【min,max】" value="【min,max】" />
|
|
|
+ <el-option label=">" value=">" />
|
|
|
+ <el-option label="<" value="<" />
|
|
|
+ <el-option label="≥" value="≥" />
|
|
|
+ <el-option label="≤" value="≤" />
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div class="ml-50px">模式:</div>
|
|
|
+ <div class="mr-50px w-100px">
|
|
|
+ <el-select v-model="deviationRangeResult" filterable clearable placeholder="请选择模式">
|
|
|
+ <el-option label="普通" value="1" />
|
|
|
+ <el-option label="自定义" value="2" />
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div v-if="deviationRangeResult === '1'" class="hc-flex mr-50px">
|
|
|
+ <VueTagsInput
|
|
|
+ v-if="!(deviationRangeSymbol === '<' || deviationRangeSymbol === '≤')" v-model="deviationRangeTag1" :tags="deviationRangeTags1"
|
|
|
+ placeholder="输入/参数" class="mr-12px" @focus="curRangeFocusIndex = 1" @blur="deviationRangeBlur1"
|
|
|
+ @before-adding-tag="rangeAddingTag"
|
|
|
+ />
|
|
|
+ <VueTagsInput
|
|
|
+ v-if="!(deviationRangeSymbol === '>' || deviationRangeSymbol === '≥')" v-model="deviationRangeTag2" :tags="deviationRangeTags2"
|
|
|
+ placeholder="输入/参数" @focus="curRangeFocusIndex = 2" @blur="deviationRangeBlur2" @before-adding-tag="rangeAddingTag"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <el-button type="info">选择参数</el-button>
|
|
|
+ </div>
|
|
|
+ <div v-if="deviationRangeResult === '2'" class="relative mb-12px">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col v-if="!(deviationRangeSymbol === '<' || deviationRangeSymbol === '≤')" :span="12">
|
|
|
+ <div class="deviation-range-param-card">
|
|
|
+ <div class="title-box">参数1</div>
|
|
|
+ <div class="action-box hc-flex">
|
|
|
+ <div class="left hc-flex flex-1">
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunText">
|
|
|
+ <span class="text">输入值</span>
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunBrackets('(')">
|
|
|
+ <span class="symbol">(</span>
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunBrackets(')')">
|
|
|
+ <span class="symbol">)</span>
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunOperator('+')">
|
|
|
+ <i class="i-ri-add-line" />
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunOperator('-')">
|
|
|
+ <i class="i-ri-subtract-line" />
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunOperator('*')">
|
|
|
+ <i class="i-ri-close-line" />
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunOperator('%')">
|
|
|
+ <hc-icon name="divide" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="right hc-flex">
|
|
|
+ <el-tooltip content="删除元素" placement="top-end">
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunDel">
|
|
|
+ <i class="i-ri-delete-back-2-line" />
|
|
|
+ </div>
|
|
|
+ </el-tooltip>
|
|
|
+ <el-tooltip content="清空所有" placement="top-end">
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunClear">
|
|
|
+ <i class="i-ri-delete-bin-3-line" />
|
|
|
+ </div>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="input-box">
|
|
|
+ <draggable v-if="selectEleFormula.length > 0" v-model="selectEleFormula" item-key="index">
|
|
|
+ <template #item="{ element }">
|
|
|
+ <span class="element-class" :class="[`is-${element.type}`, element.selected ? 'is-cur' : '']" @click="selectEleFormulaItem(element)">{{ element.name }}</span>
|
|
|
+ </template>
|
|
|
+ </draggable>
|
|
|
+ <div v-else class="text-gray-5">请选择元素</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="!(deviationRangeSymbol === '>' || deviationRangeSymbol === '≥')" :span="12">
|
|
|
+ <div class="deviation-range-param-card">
|
|
|
+ <div class="title-box">参数2</div>
|
|
|
+ <div class="action-box hc-flex">
|
|
|
+ <div class="left hc-flex flex-1">
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunText">
|
|
|
+ <span class="text">输入值</span>
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunBrackets('(')">
|
|
|
+ <span class="symbol">(</span>
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunBrackets(')')">
|
|
|
+ <span class="symbol">)</span>
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunOperator('+')">
|
|
|
+ <i class="i-ri-add-line" />
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunOperator('-')">
|
|
|
+ <i class="i-ri-subtract-line" />
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunOperator('*')">
|
|
|
+ <i class="i-ri-close-line" />
|
|
|
+ </div>
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunOperator('%')">
|
|
|
+ <hc-icon name="divide" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="right hc-flex">
|
|
|
+ <el-tooltip content="删除元素" placement="top-end">
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunDel">
|
|
|
+ <i class="i-ri-delete-back-2-line" />
|
|
|
+ </div>
|
|
|
+ </el-tooltip>
|
|
|
+ <el-tooltip content="清空所有" placement="top-end">
|
|
|
+ <div class="btn hc-flex-center" @click="resetFunClear">
|
|
|
+ <i class="i-ri-delete-bin-3-line" />
|
|
|
+ </div>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="input-box">
|
|
|
+ <draggable v-if="selectEleFormula.length > 0" v-model="selectEleFormula" item-key="index">
|
|
|
+ <template #item="{ element }">
|
|
|
+ <span class="element-class" :class="[`is-${element.type}`, element.selected ? 'is-cur' : '']" @click="selectEleFormulaItem(element)">{{ element.name }}</span>
|
|
|
+ </template>
|
|
|
+ </draggable>
|
|
|
+ <div v-else class="text-gray-5">请选择元素</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
允许偏差值范围
|
|
|
</div>
|
|
|
</div>
|
|
@@ -159,6 +294,7 @@ import {
|
|
|
getObjValue, getRandom, isNullES,
|
|
|
} from 'js-fast-way'
|
|
|
import { ElMessageBox } from 'element-plus'
|
|
|
+import { VueTagsInput } from '@vojtechlanka/vue-tags-input'
|
|
|
import draggable from 'vuedraggable'
|
|
|
|
|
|
//接口文件
|
|
@@ -177,7 +313,7 @@ const props = defineProps({
|
|
|
})
|
|
|
|
|
|
//事件
|
|
|
-const emit = defineEmits(['close', 'finish'])
|
|
|
+const emit = defineEmits(['close', 'finish', 'uncheck'])
|
|
|
|
|
|
//双向绑定
|
|
|
const isShow = defineModel('modelValue', {
|
|
@@ -663,22 +799,63 @@ const projectQueryClick = () => {
|
|
|
console.log('原来就没做这个功能')
|
|
|
}
|
|
|
|
|
|
+//允许偏差值范围
|
|
|
+const deviationRangeSymbol = ref('【min,max】')
|
|
|
+const deviationRangeResult = ref('1')
|
|
|
+
|
|
|
+//允许偏差值范围1
|
|
|
+const deviationRangeTag1 = ref('')
|
|
|
+const deviationRangeTags1 = ref([])
|
|
|
+const deviationRangeBlur1 = () => {
|
|
|
+ if (deviationRangeTag1.value) {
|
|
|
+ if (deviationRangeTag1.value && deviationRangeTags1.value[0]) {
|
|
|
+ emit('uncheck', deviationRangeTags1.value[0].id)
|
|
|
+ }
|
|
|
+ deviationRangeTags1.value = []
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//允许偏差值范围2
|
|
|
+const deviationRangeTag2 = ref('')
|
|
|
+const deviationRangeTags2 = ref([])
|
|
|
+const deviationRangeBlur2 = () => {
|
|
|
+ if (deviationRangeTag2.value) {
|
|
|
+ if (deviationRangeTag2.value && deviationRangeTags2.value[0]) {
|
|
|
+ emit('uncheck', deviationRangeTags2.value[0].id)
|
|
|
+ }
|
|
|
+ deviationRangeTags2.value = []
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//当前在哪个输入框
|
|
|
+const curRangeFocusIndex = ref(0)
|
|
|
+const rangeAddingTag = () => {
|
|
|
+ console.log('原来的版本就啥也没做')
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
//保存
|
|
|
const submitLoading = ref(false)
|
|
|
const submitClick = async () => {
|
|
|
- //重置函数
|
|
|
if (isResetFun.value) {
|
|
|
+ //重置函数
|
|
|
setProcessFormula()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//关闭抽屉
|
|
|
const drawerClose = () => {
|
|
|
- isShow.value = false
|
|
|
- isResetFun.value = false
|
|
|
- isScrollBar.value = true
|
|
|
- selectEleFormula.value = []
|
|
|
- emit('close')
|
|
|
+ if (isResetFun.value) {
|
|
|
+ //重置函数
|
|
|
+ isResetFun.value = false
|
|
|
+ isScrollBar.value = true
|
|
|
+ } else {
|
|
|
+ isShow.value = false
|
|
|
+ isResetFun.value = false
|
|
|
+ isScrollBar.value = true
|
|
|
+ selectEleFormula.value = []
|
|
|
+ emit('close')
|
|
|
+ }
|
|
|
}
|
|
|
</script>
|
|
|
|