fix: 高级检索bug

test
Brian Lee 11 months ago
parent 0aa8adcb37
commit bea6e46bb3

@ -14,7 +14,12 @@ VITE_BASE_URL = /
VITE_DROP_CONSOLE = true VITE_DROP_CONSOLE = true
# 跨域代理,可以配置多个,请注意不要换行 # 跨域代理,可以配置多个,请注意不要换行
VITE_PROXY=[["/api","http://47.93.59.251:8311/jeecg-boot"]] #VITE_PROXY=[["/api","http://localhost:9090/foodapi"]]
#VITE_PROXY=[["/api","http://81.70.154.131:8311/jeecg-boot"]]
VITE_PROXY=[["/api","http://81.70.154.131:9000/jeecg-boot"]]
#VITE_PROXY=[["/api","http://aiocr-test.prevailcloud.com:8330/jeecg-boot"]]
#VITE_PROXY=[["/api","http://aiocr-uat.prevailcloud.com:8311/jeecg-boot"]]
#VITE_PROXY=[["/api","http://aiocr.prevailcloud.com:8311/jeecg-boot"]]
# API 接口地址 # API 接口地址
VITE_GLOB_API_URL = VITE_GLOB_API_URL =
@ -23,7 +28,11 @@ VITE_GLOB_API_URL =
VITE_GLOB_UPLOAD_URL= VITE_GLOB_UPLOAD_URL=
# 图片前缀地址 # 图片前缀地址
VITE_GLOB_IMG_URL="http://47.93.59.251:8311/jeecg-boot" #VITE_GLOB_IMG_URL="http://81.70.154.131:8311/jeecg-boot"
VITE_GLOB_IMG_URL="http://81.70.154.131:9000/jeecg-boot"
#VITE_GLOB_IMG_URL="http://aiocr-test.prevailcloud.com:8330/jeecg-boot"
#VITE_GLOB_IMG_URL="http://aiocr-uat.prevailcloud.com:8311/jeecg-boot"
#VITE_GLOB_IMG_URL="http://aiocr.prevailcloud.com:8311/jeecg-boot"
# 接口前缀 # 接口前缀
VITE_GLOB_API_URL_PREFIX = /api VITE_GLOB_API_URL_PREFIX = /api

@ -17,12 +17,16 @@ VITE_GLOB_API_URL =
VITE_GLOB_UPLOAD_URL= VITE_GLOB_UPLOAD_URL=
# 图片前缀地址 # 图片前缀地址
# 测试环境
#VITE_GLOB_IMG_URL="http://81.70.154.131/api"
VITE_GLOB_IMG_URL="http://81.70.154.131:9000/api"
# 客户uat # 客户uat
#VITE_GLOB_IMG_URL="http://aiocr-uat.prevailcloud.com/api" #VITE_GLOB_IMG_URL="http://aiocr-uat.prevailcloud.com/api"
# 客户test
#VITE_GLOB_IMG_URL="http://aiocr-test.prevailcloud.com:8330/api"
# 客户生产 # 客户生产
#VITE_GLOB_IMG_URL="http://aiocr.prevailcloud.com/api" #VITE_GLOB_IMG_URL="http://aiocr.prevailcloud.com/api"
# 测试环境
VITE_GLOB_IMG_URL="http://81.70.154.131/api"
# 接口前缀 # 接口前缀
VITE_GLOB_API_URL_PREFIX = /api VITE_GLOB_API_URL_PREFIX = /api

1
components.d.ts vendored

@ -29,6 +29,7 @@ declare module 'vue' {
NGi: typeof import('naive-ui')['NGi'] NGi: typeof import('naive-ui')['NGi']
NGrid: typeof import('naive-ui')['NGrid'] NGrid: typeof import('naive-ui')['NGrid']
NGridItem: typeof import('naive-ui')['NGridItem'] NGridItem: typeof import('naive-ui')['NGridItem']
NIcon: typeof import('naive-ui')['NIcon']
NImage: typeof import('naive-ui')['NImage'] NImage: typeof import('naive-ui')['NImage']
NInput: typeof import('naive-ui')['NInput'] NInput: typeof import('naive-ui')['NInput']
NMessageProvider: typeof import('naive-ui')['NMessageProvider'] NMessageProvider: typeof import('naive-ui')['NMessageProvider']

@ -66,10 +66,10 @@ const rules: FormRules = {
message: '请选择逻辑关系', message: '请选择逻辑关系',
trigger: 'blur', trigger: 'blur',
}, },
conditions: { // conditions: {
// required: true, // // required: true,
}, // },
} }
const formRef = ref<FormInst | null>(null) const formRef = ref<FormInst | null>(null)
@ -104,6 +104,12 @@ function handleSumbit(e: MouseEvent) {
} }
}) })
for (const index in list) {
console.info(list)
if (list[index].searchvalue == undefined || list[index].searchvalue == '')
return
}
const param: FilterCondition = { const param: FilterCondition = {
searchname: formValue.name!, searchname: formValue.name!,
type: 1, type: 1,
@ -123,7 +129,7 @@ function formatValue(searchfield: string, searchvalue: any) {
const end = formatToDate2(searchvalue[1]) const end = formatToDate2(searchvalue[1])
return `${start}-${end}` return `${start}-${end}`
} }
if (searchfield != 'izyear' && Array.isArray(searchvalue)) if (searchfield != 'izyear' && Array.isArray(searchvalue))
return searchvalue.join(',') return searchvalue.join(',')
return searchvalue return searchvalue
@ -303,12 +309,12 @@ defineExpose({
maxlength="15" maxlength="15"
@keydown.enter.prevent @keydown.enter.prevent
/> />
<template #feedback> <template #feedback>
<div v-show="!formValue.name" style="color:#d03050"> <div v-show="!formValue.name" style="color:#d03050">
{{formValue.name}} {{ formValue.name }}
<SvgIcon size="16" name="notice" style="margin-top: -2px;margin-right: 5px;"/> 请输入标题内容 <SvgIcon size="16" name="notice" style="margin-top: -2px;margin-right: 5px;" /> 请输入标题内容
</div> </div>
</template> </template>
</n-form-item> </n-form-item>
<n-form-item v-show="false" path="logic" label="逻辑关系"> <n-form-item v-show="false" path="logic" label="逻辑关系">
<n-select <n-select
@ -318,116 +324,114 @@ defineExpose({
:options="logicOptions" :options="logicOptions"
/> />
</n-form-item> </n-form-item>
<div class="sssscroll"> <div class="sssscroll">
<n-form-item <n-form-item
v-for="(item, index) in formValue.conditions" v-for="(item, index) in formValue.conditions"
:key="index" :key="index"
:style="formItemStyle" :style="formItemStyle"
path="conditions" path="conditions"
:label="formLabel(index)" :label="formLabel(index)"
> >
<n-select <n-select
v-model:value="item.type" v-model:value="item.type"
filterable filterable
placeholder="请选择筛选项名称" placeholder="请选择筛选项名称"
:options="typeOptions" :options="typeOptions"
@change="item.result = ''" @change="item.result = ''"
/> />
<n-select <n-select
v-model:value="item.operator" v-model:value="item.operator"
filterable filterable
style="margin-left: 8px" style="margin-left: 8px"
placeholder="请选择" placeholder="请选择"
:options="operatorOptions" :options="operatorOptions"
/> />
<n-space v-if="item.type === 'izyear'"> <n-space v-if="item.type === 'izyear'">
<n-date-picker <n-date-picker
v-model:value="item.result"
style="margin-left: 8px; width: 240px"
type="daterange"
clearable
/>
</n-space>
<n-select
v-else
v-model:value="item.result" v-model:value="item.result"
style="margin-left: 8px; width: 240px" :max-tag-count="1"
type="daterange" :multiple="item.type != 'izyear' && item.type != 'izsimilarity'"
clearable filterable
style="margin-left: 8px"
placeholder="请选择"
:options="getOptions(item.type!)"
/> />
</n-space> <n-button
<n-select :style="noBorderInput"
v-else icon-placement="right"
:max-tag-count="1" style=" padding: 0;
:multiple="item.type!='izyear'&&item.type!='izsimilarity'"
v-model:value="item.result"
filterable
style="margin-left: 8px"
placeholder="请选择"
:options="getOptions(item.type!)"
/>
<n-button
:style="noBorderInput"
icon-placement="right"
@click="index==0?()=>{}:removeCondition(index)"
style=" padding: 0;
margin-left: 17px;" margin-left: 17px;"
> @click="index == 0 ? () => {} : removeCondition(index)"
<template #icon> >
<!-- <SvgIcon size="24" name="close" color="#F00"/> <template #icon>
<!-- <SvgIcon size="24" name="close" color="#F00"/>
--> -->
<svg <svg
:style="index==0?'cursor: not-allowed':''" :style="index == 0 ? 'cursor: not-allowed' : ''"
width="24px" width="24px"
height="24px" height="24px"
viewBox="0 0 64 64" viewBox="0 0 64 64"
version="1.1" version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
>
<title>清除</title>
<g
id="页面-1"
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
> >
<title>清除</title>
<g <g
id="PrevailCloud-Design-图标集" id="页面-1"
transform="translate(-3040.000000, -3118.000000)" stroke="none"
fill-rule="nonzero" stroke-width="1"
fill="none"
fill-rule="evenodd"
> >
<g id="清除" transform="translate(3040.000000, 3118.000000)"> <g
<rect id="PrevailCloud-Design-图标集"
id="矩形" transform="translate(-3040.000000, -3118.000000)"
fill="#000000" fill-rule="nonzero"
opacity="0" >
x="0" <g id="清除" transform="translate(3040.000000, 3118.000000)">
y="0" <rect
width="64" id="矩形"
height="64" fill="#000000"
/> opacity="0"
<path x="0"
id="形状" y="0"
d="M32,4 C16.5619675,4 4,16.5600322 4,32 C4,47.4399678 16.5600322,60 32,60 C47.4380325,60 60,47.4399678 60,32 C60,16.5600322 47.4399678,4 32,4 Z M43.4220132,40.6240021 C44.2020159,41.4079827 44.1999731,42.6720064 43.4180353,43.4520091 C43.0280877,43.8400215 42.5180487,44.0360166 42.0060745,44.0360166 C41.4920576,44.0360166 40.9800834,43.8400214 40.5900283,43.4480311 L31.9900014,34.8219862 L23.3620213,43.3580432 C22.9720737,43.7420776 22.4639699,43.9360301 21.9559737,43.9360301 C21.4400215,43.9360301 20.9260046,43.7379922 20.5340143,43.3420239 C19.7579895,42.5560005 19.7640102,41.2919768 20.5500336,40.5140169 L29.1680151,31.9900013 L20.5819648,23.3759978 C19.8019621,22.5939524 19.8040049,21.3279935 20.5859428,20.5479908 C21.3679882,19.7659454 22.6319043,19.7700309 23.4139498,20.5519687 L32.0119339,29.1759709 L40.639914,20.6400214 C41.4238946,19.8620614 42.6918962,19.8700173 43.467921,20.6560407 C44.2458809,21.4420641 44.2379251,22.708023 43.4519016,23.4840477 L34.8340277,32.0079559 L43.4220132,40.6240021 Z" width="64"
fill="#DDDDDD" height="64"
/> />
<path
id="形状"
d="M32,4 C16.5619675,4 4,16.5600322 4,32 C4,47.4399678 16.5600322,60 32,60 C47.4380325,60 60,47.4399678 60,32 C60,16.5600322 47.4399678,4 32,4 Z M43.4220132,40.6240021 C44.2020159,41.4079827 44.1999731,42.6720064 43.4180353,43.4520091 C43.0280877,43.8400215 42.5180487,44.0360166 42.0060745,44.0360166 C41.4920576,44.0360166 40.9800834,43.8400214 40.5900283,43.4480311 L31.9900014,34.8219862 L23.3620213,43.3580432 C22.9720737,43.7420776 22.4639699,43.9360301 21.9559737,43.9360301 C21.4400215,43.9360301 20.9260046,43.7379922 20.5340143,43.3420239 C19.7579895,42.5560005 19.7640102,41.2919768 20.5500336,40.5140169 L29.1680151,31.9900013 L20.5819648,23.3759978 C19.8019621,22.5939524 19.8040049,21.3279935 20.5859428,20.5479908 C21.3679882,19.7659454 22.6319043,19.7700309 23.4139498,20.5519687 L32.0119339,29.1759709 L40.639914,20.6400214 C41.4238946,19.8620614 42.6918962,19.8700173 43.467921,20.6560407 C44.2458809,21.4420641 44.2379251,22.708023 43.4519016,23.4840477 L34.8340277,32.0079559 L43.4220132,40.6240021 Z"
fill="#DDDDDD"
/>
</g>
</g> </g>
</g> </g>
</g> </svg>
</svg> </template>
</template> </n-button>
</n-button>
<template #feedback> <template #feedback>
<div v-if="formValue.conditions[index].type==null||formValue.conditions[index].result==null||formValue.conditions[index].result==''" style="color:#d03050"> <div v-if="formValue.conditions[index].type == null || formValue.conditions[index].result == null || formValue.conditions[index].result == ''" style="color:#d03050">
<SvgIcon size="16" name="notice" style="margin-top: -2px;margin-right: 5px;" />请选择过滤条件
<SvgIcon size="16" name="notice" style="margin-top: -2px;margin-right: 5px;"/>请选择过滤条件 </div>
</div> </template>
</template> </n-form-item>
</n-form-item> <div class="wrapper-new" @click="createCondition">
<div class="wrapper-new" @click="createCondition"> <SvgIcon size="16" name="addicon" style="margin-top: 3px;" />
<SvgIcon size="16" name="addicon" style="margin-top: 3px;"/> <span style="margin-left: 8px;">添加筛选条件</span>
<span style="margin-left: 8px;">添加筛选条件</span> </div>
</div> </div>
</div>
</n-form> </n-form>
</div> </div>
</div> </div>
<div class="bottomline"></div> <div class="bottomline" />
<template #footer> <template #footer>
<div class="wrapper-footer"> <div class="wrapper-footer">
<n-button style="background-color: #507afd;width: 72px;height: 38px;" type="info" @click="handleSumbit"> <n-button style="background-color: #507afd;width: 72px;height: 38px;" type="info" @click="handleSumbit">

@ -1,6 +1,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { FormInst, FormItemRule, FormRules } from 'naive-ui' import type { FormInst, FormItemRule, FormRules } from 'naive-ui'
import { computed, defineOptions, onBeforeMount, reactive, ref, unref, watch,h } from 'vue' import { computed, defineOptions, h, onBeforeMount, reactive, ref, unref, watch } from 'vue'
import { forEach } from 'lodash'
import { asideMap } from '@/config/aside' import { asideMap } from '@/config/aside'
import { useDictionary } from '@/store/modules/dictonary' import { useDictionary } from '@/store/modules/dictonary'
import { useConfig } from '@/store/modules/asideConfig' import { useConfig } from '@/store/modules/asideConfig'
@ -11,9 +12,9 @@ import SvgIcon from '@/components/Icon/SvgIcon.vue'
type Status = 'edit' | 'new' type Status = 'edit' | 'new'
const emit = defineEmits(['onOk','handleOk','select']) const emit = defineEmits(['onOk', 'handleOk', 'select'])
const show = ref(false) const show = ref(false)
const editValue=ref({}) const editValue = ref({})
const configStore = useConfig() const configStore = useConfig()
const dicStore = useDictionary() const dicStore = useDictionary()
const currentStatus = ref<Status>('new') const currentStatus = ref<Status>('new')
@ -68,9 +69,11 @@ const rules: FormRules = {
message: '请选择逻辑关系', message: '请选择逻辑关系',
trigger: 'blur', trigger: 'blur',
}, },
conditions: { // conditions: {
// required: true,
}, // message: '',
// trigger: 'blur',
// },
} }
const formRef = ref<FormInst | null>(null) const formRef = ref<FormInst | null>(null)
@ -106,6 +109,12 @@ function handleSumbit(e: MouseEvent) {
} }
}) })
for (const index in list) {
console.info(list)
if (list[index].searchvalue == undefined || list[index].searchvalue == '')
return
}
const param: FilterCondition = { const param: FilterCondition = {
searchname: formValue.name!, searchname: formValue.name!,
type: 0, type: 0,
@ -116,16 +125,15 @@ function handleSumbit(e: MouseEvent) {
addCondition(param) addCondition(param)
else updateCondition({ id: currentEditId!, ...param }) else updateCondition({ id: currentEditId!, ...param })
console.log(editValue.value) console.log(editValue.value)
let obj=editValue.value const obj = editValue.value
if(currentStatus.value != 'new'){ if (currentStatus.value != 'new')
obj.searchname=param.searchname obj.searchname = param.searchname
// obj.ocrUsersearchchildList=param.ocrUsersearchchildList // obj.ocrUsersearchchildList=param.ocrUsersearchchildList
}
emit('handleOk', obj)
if(currentStatus.value != 'new'){ emit('handleOk', obj)
emit('select', currentEditId)
} if (currentStatus.value != 'new')
emit('select', currentEditId)
closeModal() closeModal()
}) })
@ -153,8 +161,9 @@ function unformatValue(searchfield: string, searchvalue: any) {
const start = formatToDate3(dataStrs[0]) const start = formatToDate3(dataStrs[0])
const end = formatToDate3(dataStrs[1]) const end = formatToDate3(dataStrs[1])
return [start, end] return [start, end]
}else if(searchfield !="izsimilarity"){ }
searchvalue= searchvalue.split(","); else if (searchfield != 'izsimilarity') {
searchvalue = searchvalue.split(',')
} }
// 80,90 // 80,90
@ -288,7 +297,7 @@ function leaveHandler() {
function edit(editFilter: any) { function edit(editFilter: any) {
currentStatus.value = 'edit' currentStatus.value = 'edit'
console.log(editFilter, 'editFilter') console.log(editFilter, 'editFilter')
editValue.value=editFilter editValue.value = editFilter
const { searchname, ocrUsersearchchildList, id } = editFilter const { searchname, ocrUsersearchchildList, id } = editFilter
currentEditId = id currentEditId = id
formValue.name = searchname formValue.name = searchname
@ -300,15 +309,14 @@ function edit(editFilter: any) {
} }
}) })
} }
function createTimeForNumber (type) { function createTimeForNumber(type) {
console.log(formValue.name) console.log(formValue.name)
if(formValue.name){ if (formValue.name)
return ``} return ``
else{ else
return `请输入标题内容` return `请输入标题内容`
}
} }
let inputNumberFeedback= createTimeForNumber(1) const inputNumberFeedback = createTimeForNumber(1)
defineExpose({ defineExpose({
showModal, showModal,
edit, edit,
@ -316,12 +324,12 @@ defineExpose({
watch( watch(
() => formValue.name, () => formValue.name,
(newVal) => { (newVal) => {
console.log(formValue.name) console.log(formValue.name)
if(formValue.name){ if (formValue.name)
createTimeForNumber(0) createTimeForNumber(0)
}else{
createTimeForNumber(1) else
} createTimeForNumber(1)
}, },
) )
</script> </script>
@ -361,7 +369,7 @@ if(formValue.name){
:rules="rules" :rules="rules"
require-mark-placement="left" require-mark-placement="left"
> >
<n-form-item path="name" label="标题" merged-require-mark-placement="left" > <n-form-item path="name" label="标题" merged-require-mark-placement="left">
<!-- j --> <!-- j -->
<n-input <n-input
v-model:value="formValue.name" v-model:value="formValue.name"
@ -370,12 +378,12 @@ if(formValue.name){
placeholder="请输入过滤条件名称" placeholder="请输入过滤条件名称"
@keydown.enter.prevent @keydown.enter.prevent
/> />
<template #feedback> <template #feedback>
<div v-show="!formValue.name" style="color:#d03050"> <div v-show="!formValue.name" style="color:#d03050">
{{formValue.name}} {{ formValue.name }}
<SvgIcon size="16" name="notice" style="margin-top: -2px;"/> {{ inputNumberFeedback }} <SvgIcon size="16" name="notice" style="margin-top: -2px;" /> {{ inputNumberFeedback }}
</div> </div>
</template> </template>
</n-form-item> </n-form-item>
<n-form-item v-show="false" path="logic" label="逻辑关系"> <n-form-item v-show="false" path="logic" label="逻辑关系">
<n-select <n-select
@ -385,118 +393,116 @@ if(formValue.name){
:options="logicOptions" :options="logicOptions"
/> />
</n-form-item> </n-form-item>
<div class="sssscroll"> <div class="sssscroll">
<n-form-item <n-form-item
v-for="(item, index) in formValue.conditions" v-for="(item, index) in formValue.conditions"
:key="index" :key="index"
:style="formItemStyle" :style="formItemStyle"
path="conditions" path="conditions"
:label="formLabel(index)" :label="formLabel(index)"
> >
<n-select <n-select
v-model:value="item.type" v-model:value="item.type"
filterable filterable
placeholder="请选择筛选项名称" placeholder="请选择筛选项名称"
:options="typeOptions" :options="typeOptions"
@change="item.result = ''" @change="item.result = ''"
/> />
<n-select <n-select
v-model:value="item.operator" v-model:value="item.operator"
filterable filterable
style="margin-left: 8px" style="margin-left: 8px"
placeholder="请选择" placeholder="请选择"
:options="operatorOptions" :options="operatorOptions"
/>
<n-space v-if="item.type === 'izyear'">
<n-date-picker
v-model:value="item.result"
style="margin-left: 8px; width: 240px"
type="daterange"
clearable
/> />
</n-space>
<n-select <n-space v-if="item.type === 'izyear'">
v-else <n-date-picker
v-model:value="item.result"
style="margin-left: 8px; width: 240px"
type="daterange"
clearable
/>
</n-space>
<n-select
v-else
v-model:value="item.result"
:max-tag-count="1" :max-tag-count="1"
:multiple="item.type!='izyear'&&item.type!='izsimilarity'" :multiple="item.type != 'izyear' && item.type != 'izsimilarity'"
v-model:value="item.result" filterable
filterable style="margin-left: 8px"
style="margin-left: 8px" placeholder="请选择"
placeholder="请选择" :options="getOptions(item.type!)"
:options="getOptions(item.type!)" />
/> <n-button
<n-button :style="noBorderInput"
:style="noBorderInput" icon-placement="right"
icon-placement="right" style=" padding: 0;
@click="index==0?()=>{}:removeCondition(index)"
style=" padding: 0;
margin-left: 17px;" margin-left: 17px;"
> @click="index == 0 ? () => {} : removeCondition(index)"
<template #icon> >
<!-- <SvgIcon size="24" name="close" color="#F00"/> <template #icon>
<!-- <SvgIcon size="24" name="close" color="#F00"/>
--> -->
<svg <svg
:style="index==0?'cursor: not-allowed':''" :style="index == 0 ? 'cursor: not-allowed' : ''"
width="24px" width="24px"
height="24px" height="24px"
viewBox="0 0 64 64" viewBox="0 0 64 64"
version="1.1" version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
>
<title>清除</title>
<g
id="页面-1"
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
> >
<title>清除</title>
<g <g
id="PrevailCloud-Design-图标集" id="页面-1"
transform="translate(-3040.000000, -3118.000000)" stroke="none"
fill-rule="nonzero" stroke-width="1"
fill="none"
fill-rule="evenodd"
> >
<g id="清除" transform="translate(3040.000000, 3118.000000)"> <g
<rect id="PrevailCloud-Design-图标集"
id="矩形" transform="translate(-3040.000000, -3118.000000)"
fill="#000000" fill-rule="nonzero"
opacity="0" >
x="0" <g id="清除" transform="translate(3040.000000, 3118.000000)">
y="0" <rect
width="64" id="矩形"
height="64" fill="#000000"
/> opacity="0"
<path x="0"
id="形状" y="0"
d="M32,4 C16.5619675,4 4,16.5600322 4,32 C4,47.4399678 16.5600322,60 32,60 C47.4380325,60 60,47.4399678 60,32 C60,16.5600322 47.4399678,4 32,4 Z M43.4220132,40.6240021 C44.2020159,41.4079827 44.1999731,42.6720064 43.4180353,43.4520091 C43.0280877,43.8400215 42.5180487,44.0360166 42.0060745,44.0360166 C41.4920576,44.0360166 40.9800834,43.8400214 40.5900283,43.4480311 L31.9900014,34.8219862 L23.3620213,43.3580432 C22.9720737,43.7420776 22.4639699,43.9360301 21.9559737,43.9360301 C21.4400215,43.9360301 20.9260046,43.7379922 20.5340143,43.3420239 C19.7579895,42.5560005 19.7640102,41.2919768 20.5500336,40.5140169 L29.1680151,31.9900013 L20.5819648,23.3759978 C19.8019621,22.5939524 19.8040049,21.3279935 20.5859428,20.5479908 C21.3679882,19.7659454 22.6319043,19.7700309 23.4139498,20.5519687 L32.0119339,29.1759709 L40.639914,20.6400214 C41.4238946,19.8620614 42.6918962,19.8700173 43.467921,20.6560407 C44.2458809,21.4420641 44.2379251,22.708023 43.4519016,23.4840477 L34.8340277,32.0079559 L43.4220132,40.6240021 Z" width="64"
fill="#DDDDDD" height="64"
/> />
<path
id="形状"
d="M32,4 C16.5619675,4 4,16.5600322 4,32 C4,47.4399678 16.5600322,60 32,60 C47.4380325,60 60,47.4399678 60,32 C60,16.5600322 47.4399678,4 32,4 Z M43.4220132,40.6240021 C44.2020159,41.4079827 44.1999731,42.6720064 43.4180353,43.4520091 C43.0280877,43.8400215 42.5180487,44.0360166 42.0060745,44.0360166 C41.4920576,44.0360166 40.9800834,43.8400214 40.5900283,43.4480311 L31.9900014,34.8219862 L23.3620213,43.3580432 C22.9720737,43.7420776 22.4639699,43.9360301 21.9559737,43.9360301 C21.4400215,43.9360301 20.9260046,43.7379922 20.5340143,43.3420239 C19.7579895,42.5560005 19.7640102,41.2919768 20.5500336,40.5140169 L29.1680151,31.9900013 L20.5819648,23.3759978 C19.8019621,22.5939524 19.8040049,21.3279935 20.5859428,20.5479908 C21.3679882,19.7659454 22.6319043,19.7700309 23.4139498,20.5519687 L32.0119339,29.1759709 L40.639914,20.6400214 C41.4238946,19.8620614 42.6918962,19.8700173 43.467921,20.6560407 C44.2458809,21.4420641 44.2379251,22.708023 43.4519016,23.4840477 L34.8340277,32.0079559 L43.4220132,40.6240021 Z"
fill="#DDDDDD"
/>
</g>
</g> </g>
</g> </g>
</g> </svg>
</svg> </template>
</n-button>
<template #feedback>
<div v-if="formValue.conditions[index].type == null || formValue.conditions[index].result == null || formValue.conditions[index].result == ''" style="color:#d03050">
<SvgIcon size="16" name="notice" style="margin-top: -2px;margin-right: 5px;" />请选择过滤条件
</div>
</template> </template>
</n-button> </n-form-item>
<template #feedback> <div class="wrapper-new" @click="createCondition">
<div v-if="formValue.conditions[index].type==null||formValue.conditions[index].result==null||formValue.conditions[index].result==''" style="color:#d03050"> <SvgIcon size="16" name="addicon" style="margin-top: 3px;" />
<span style="margin-left: 8px">添加筛选条件</span>
<SvgIcon size="16" name="notice" style="margin-top: -2px;margin-right: 5px;"/>请选择过滤条件 </div>
</div> </div>
</template>
</n-form-item>
<div class="wrapper-new" @click="createCondition">
<SvgIcon size="16" name="addicon" style="margin-top: 3px;"/>
<span style="margin-left: 8px">添加筛选条件</span>
</div>
</div>
</n-form> </n-form>
</div> </div>
</div> </div>
<div class="bottomline"></div> <div class="bottomline" />
<template #footer> <template #footer>
<div class="wrapper-footer"> <div class="wrapper-footer">
<n-button style="background-color: #507afd;width: 72px;height: 38px;" type="info" @click="handleSumbit"> <n-button style="background-color: #507afd;width: 72px;height: 38px;" type="info" @click="handleSumbit">

@ -65,9 +65,9 @@ const rules: FormRules = {
message: '请选择逻辑关系', message: '请选择逻辑关系',
trigger: 'blur', trigger: 'blur',
}, },
conditions: { // conditions: {
}, // },
} }
const formRef = ref<FormInst | null>(null) const formRef = ref<FormInst | null>(null)
@ -101,6 +101,11 @@ function handleSumbit(e: MouseEvent) {
orderNum: index + 1, orderNum: index + 1,
} }
}) })
for (const index in list) {
console.info(list)
if (list[index].searchvalue == undefined || list[index].searchvalue == '')
return
}
const param: FilterCondition = { const param: FilterCondition = {
searchname: formValue.name!, searchname: formValue.name!,
@ -121,7 +126,7 @@ function formatValue(searchfield: string, searchvalue: any) {
const end = formatToDate2(searchvalue[1]) const end = formatToDate2(searchvalue[1])
return `${start}-${end}` return `${start}-${end}`
} }
if (searchfield != 'izyear' && Array.isArray(searchvalue)) if (searchfield != 'izyear' && Array.isArray(searchvalue))
return searchvalue.join(',') return searchvalue.join(',')
return searchvalue return searchvalue
@ -236,13 +241,12 @@ function leaveHandler() {
}, },
] ]
} }
function createTimeForNumber (type) { function createTimeForNumber(type) {
console.log(formValue.name) console.log(formValue.name)
if(formValue.name){ if (formValue.name)
return ``} return ``
else{ else
return `请输入标题内容` return `请输入标题内容`
}
} }
function edit(editFilter: any) { function edit(editFilter: any) {
currentStatus.value = 'edit' currentStatus.value = 'edit'
@ -261,12 +265,12 @@ function edit(editFilter: any) {
watch( watch(
() => formValue.name, () => formValue.name,
(newVal) => { (newVal) => {
console.log(formValue.name) console.log(formValue.name)
if(formValue.name){ if (formValue.name)
createTimeForNumber(0) createTimeForNumber(0)
}else{
createTimeForNumber(1) else
} createTimeForNumber(1)
}, },
) )
defineExpose({ defineExpose({
@ -309,7 +313,6 @@ defineExpose({
:rules="rules" :rules="rules"
require-mark-placement="left" require-mark-placement="left"
> >
<n-form-item path="name" label="标题"> <n-form-item path="name" label="标题">
<n-input <n-input
v-model:value="formValue.name" v-model:value="formValue.name"
@ -320,10 +323,10 @@ defineExpose({
/> />
<template #feedback> <template #feedback>
<div v-show="!formValue.name" style="color:#d03050"> <div v-show="!formValue.name" style="color:#d03050">
{{formValue.name}} {{ formValue.name }}
<SvgIcon size="16" name="notice" style="margin-top: -2px;margin-right: 5px;"/> 请输入标题内容 <SvgIcon size="16" name="notice" style="margin-top: -2px;margin-right: 5px;" /> 请输入标题内容
</div> </div>
</template> </template>
</n-form-item> </n-form-item>
<n-form-item v-show="false" path="logic" label="逻辑关系"> <n-form-item v-show="false" path="logic" label="逻辑关系">
<n-select <n-select
@ -334,123 +337,123 @@ defineExpose({
/> />
</n-form-item> </n-form-item>
<div class="sssscroll"> <div class="sssscroll">
<n-form-item <n-form-item
v-for="(item, index) in formValue.conditions" v-for="(item, index) in formValue.conditions"
:key="index" :key="index"
:style="formItemStyle" :style="formItemStyle"
path="conditions" path="conditions"
:label="formLabel(index)" :label="formLabel(index)"
> >
<n-select <n-select
v-model:value="item.type" v-model:value="item.type"
filterable filterable
placeholder="请选择筛选项名称" placeholder="请选择筛选项名称"
:options="typeOptions" :options="typeOptions"
@change="item.result = ''" @change="item.result = ''"
/> />
<n-select <n-select
v-model:value="item.operator" v-model:value="item.operator"
filterable filterable
style="margin-left: 8px" style="margin-left: 8px"
placeholder="请选择" placeholder="请选择"
:options="operatorOptions" :options="operatorOptions"
/> />
<n-space v-if="item.type === 'izuptime'"> <n-space v-if="item.type === 'izuptime'">
<n-date-picker <n-date-picker
v-model:value="item.result"
style="margin-left: 8px; width: 240px"
type="daterange"
clearable
/>
</n-space>
<n-select
v-else
v-model:value="item.result" v-model:value="item.result"
style="margin-left: 8px; width: 240px"
type="daterange"
clearable
/>
</n-space>
<n-select
v-else
:max-tag-count="1" :max-tag-count="1"
:multiple="item.type!='izyear'&&item.type!='izsimilarity'" :multiple="item.type != 'izyear' && item.type != 'izsimilarity'"
v-model:value="item.result" filterable
filterable style="margin-left: 8px"
style="margin-left: 8px" placeholder="请选择"
placeholder="请选择" :options="getOptions(item.type!)"
:options="getOptions(item.type!)" />
/> <n-button
<n-button :style="noBorderInput"
:style="noBorderInput" icon-placement="right"
icon-placement="right" style=" padding: 0;
@click="index==0?()=>{}:removeCondition(index)"
style=" padding: 0;
margin-left: 17px;" margin-left: 17px;"
> @click="index == 0 ? () => {} : removeCondition(index)"
<template #icon> >
<!-- <SvgIcon size="24" name="close" color="#F00"/> <template #icon>
<!-- <SvgIcon size="24" name="close" color="#F00"/>
--> -->
<svg <svg
:style="index==0?'cursor: not-allowed':''" :style="index == 0 ? 'cursor: not-allowed' : ''"
width="24px" width="24px"
height="24px" height="24px"
viewBox="0 0 64 64" viewBox="0 0 64 64"
version="1.1" version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
>
<title>清除</title>
<g
id="页面-1"
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
> >
<title>清除</title>
<g <g
id="PrevailCloud-Design-图标集" id="页面-1"
transform="translate(-3040.000000, -3118.000000)" stroke="none"
fill-rule="nonzero" stroke-width="1"
fill="none"
fill-rule="evenodd"
> >
<g id="清除" transform="translate(3040.000000, 3118.000000)"> <g
<rect id="PrevailCloud-Design-图标集"
id="矩形" transform="translate(-3040.000000, -3118.000000)"
fill="#000000" fill-rule="nonzero"
opacity="0" >
x="0" <g id="清除" transform="translate(3040.000000, 3118.000000)">
y="0" <rect
width="64" id="矩形"
height="64" fill="#000000"
/> opacity="0"
<path x="0"
id="形状" y="0"
d="M32,4 C16.5619675,4 4,16.5600322 4,32 C4,47.4399678 16.5600322,60 32,60 C47.4380325,60 60,47.4399678 60,32 C60,16.5600322 47.4399678,4 32,4 Z M43.4220132,40.6240021 C44.2020159,41.4079827 44.1999731,42.6720064 43.4180353,43.4520091 C43.0280877,43.8400215 42.5180487,44.0360166 42.0060745,44.0360166 C41.4920576,44.0360166 40.9800834,43.8400214 40.5900283,43.4480311 L31.9900014,34.8219862 L23.3620213,43.3580432 C22.9720737,43.7420776 22.4639699,43.9360301 21.9559737,43.9360301 C21.4400215,43.9360301 20.9260046,43.7379922 20.5340143,43.3420239 C19.7579895,42.5560005 19.7640102,41.2919768 20.5500336,40.5140169 L29.1680151,31.9900013 L20.5819648,23.3759978 C19.8019621,22.5939524 19.8040049,21.3279935 20.5859428,20.5479908 C21.3679882,19.7659454 22.6319043,19.7700309 23.4139498,20.5519687 L32.0119339,29.1759709 L40.639914,20.6400214 C41.4238946,19.8620614 42.6918962,19.8700173 43.467921,20.6560407 C44.2458809,21.4420641 44.2379251,22.708023 43.4519016,23.4840477 L34.8340277,32.0079559 L43.4220132,40.6240021 Z" width="64"
fill="#DDDDDD" height="64"
/> />
<path
id="形状"
d="M32,4 C16.5619675,4 4,16.5600322 4,32 C4,47.4399678 16.5600322,60 32,60 C47.4380325,60 60,47.4399678 60,32 C60,16.5600322 47.4399678,4 32,4 Z M43.4220132,40.6240021 C44.2020159,41.4079827 44.1999731,42.6720064 43.4180353,43.4520091 C43.0280877,43.8400215 42.5180487,44.0360166 42.0060745,44.0360166 C41.4920576,44.0360166 40.9800834,43.8400214 40.5900283,43.4480311 L31.9900014,34.8219862 L23.3620213,43.3580432 C22.9720737,43.7420776 22.4639699,43.9360301 21.9559737,43.9360301 C21.4400215,43.9360301 20.9260046,43.7379922 20.5340143,43.3420239 C19.7579895,42.5560005 19.7640102,41.2919768 20.5500336,40.5140169 L29.1680151,31.9900013 L20.5819648,23.3759978 C19.8019621,22.5939524 19.8040049,21.3279935 20.5859428,20.5479908 C21.3679882,19.7659454 22.6319043,19.7700309 23.4139498,20.5519687 L32.0119339,29.1759709 L40.639914,20.6400214 C41.4238946,19.8620614 42.6918962,19.8700173 43.467921,20.6560407 C44.2458809,21.4420641 44.2379251,22.708023 43.4519016,23.4840477 L34.8340277,32.0079559 L43.4220132,40.6240021 Z"
fill="#DDDDDD"
/>
</g>
</g> </g>
</g> </g>
</g> </svg>
</svg> </template>
</n-button>
<template #feedback>
<div v-if="formValue.conditions[index].type == null || formValue.conditions[index].result == null || formValue.conditions[index].result == ''" style="color:#d03050">
<SvgIcon size="16" name="notice" style="margin-top: -2px;margin-right: 5px;" />请选择过滤条件
</div>
</template> </template>
</n-button> </n-form-item>
<template #feedback> <div class="wrapper-new" @click="createCondition">
<div v-if="formValue.conditions[index].type==null||formValue.conditions[index].result==null||formValue.conditions[index].result==''" style="color:#d03050"> <SvgIcon size="16" name="addicon" style="margin-top: 3px;" />
<span style="margin-left: 8px">添加筛选条件</span>
<SvgIcon size="16" name="notice" style="margin-top: -2px;margin-right: 5px;"/>请选择过滤条件 </div>
</div> </div>
</template>
</n-form-item>
<div class="wrapper-new" @click="createCondition">
<SvgIcon size="16" name="addicon" style="margin-top: 3px;"/>
<span style="margin-left: 8px">添加筛选条件</span>
</div>
</div>
</n-form> </n-form>
</div> </div>
</div> </div>
<div class="bottomline"></div> <div class="bottomline" />
<template #footer> <template #footer>
<div class="wrapper-footer"> <div class="wrapper-footer">
<n-button type="info" @click="handleSumbit" style="width: 72px;height: 38px; <n-button
"> type="info" style="width: 72px;height: 38px;
" @click="handleSumbit"
>
保存 保存
</n-button> </n-button>
<n-button secondary style="margin-left: 15px ;width: 72px;height: 38px;background-color: #fff; border:1px solid rgb(202, 210, 221)" @click="closeModal" > <n-button secondary style="margin-left: 15px ;width: 72px;height: 38px;background-color: #fff; border:1px solid rgb(202, 210, 221)" @click="closeModal">
取消 取消
</n-button> </n-button>
</div> </div>

Loading…
Cancel
Save