Browse Source

完善登录

old
wangqing 4 years ago
parent
commit
610f294797
  1. 2
      src/api/index.js
  2. 2
      src/components/form/InputMap/index.vue
  3. 6
      src/utils/expression.js
  4. 32
      src/views/form/statistics/filter.vue

2
src/api/index.js

@ -17,7 +17,7 @@ const toLogin = () => {
const api = axios.create({
baseURL: process.env.VUE_APP_API_ROOT,
timeout: 10000,
timeout: 30000,
responseType: 'json',
withCredentials: false,
headers: {

2
src/components/form/InputMap/index.vue

@ -111,6 +111,7 @@ export default {
},
handleSubmit() {
this.setVal()
this.$emit('input', this.text)
this.box = false
},
handleClear() {
@ -207,6 +208,7 @@ export default {
},
handleClose() {
window.poiPicker.clearSearchResults()
this.box = false
},
addClick() {
this.map.on('click', e => {

6
src/utils/expression.js

@ -55,9 +55,9 @@ export function evalExpression(context, expression) {
let value = itemExpArr[2]
// 比较是否成立
console.log(varName)
let filedValue = _.get(context, varName)
console.log(filedValue)
flag = expressionOperator[sp](filedValue, value)
let fieldValue = _.get(context, varName)
console.log(fieldValue)
flag = expressionOperator[sp](fieldValue, value)
console.log(flag)
// & 一个不成立直接调出循环 返回成功
if (and && !flag) {

32
src/views/form/statistics/filter.vue

@ -3,7 +3,7 @@
<p>点击添加筛选项</p>
<el-row>
<el-col :span="6" class="filter-left">
<p v-for="(field,index) in fields" :key="field.id"
<p v-for="(field,index) in copyFields" :key="field.id"
:class="{'selected':field.selected}"
class="filter-item-label"
@click="selectedFieldHandle(index,field)"
@ -22,12 +22,12 @@
<p class="compare">
选择
</p>
<el-select v-model="filterParams[`filed${field.formItemId}`]">
<el-select v-model="filterParams[`field${field.formItemId}`]">
<el-option
v-for="item in field.expand.options"
:key="item.id"
:key="item.value"
:label="item.label"
:value="item.id"
:value="item.value"
/>
</el-select>
</div>
@ -35,7 +35,7 @@
<p class="compare">
包含
</p>
<el-input v-model="filterParams[`filed${field.formItemId}`]" />
<el-input v-model="filterParams[`field${field.formItemId}`]" />
</div>
<i class="el-icon-delete" @click="removeSelectedFieldHandle" />
</div>
@ -44,7 +44,7 @@
</el-col>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button @click="cancelHandle"> </el-button>
<el-button :disabled="selectedFields.length==0&&filterParams!={}" type="primary"
@click="submitFilterHandle"
> </el-button>
@ -54,6 +54,7 @@
<script>
import DataEmpty from '@/components/DataEmpty'
import {jsonSimpleClone} from '@/utils'
export default {
name: 'StatisticsFilter',
@ -63,7 +64,8 @@ export default {
},
data() {
return {
dialogVisible: true,
copyFields: [],
dialogVisible: false,
selectedFields: [],
//
filterParamsComparison: {},
@ -72,28 +74,36 @@ export default {
},
methods: {
showDialogHandle() {
this.copyFields = jsonSimpleClone(this.fields)
this.selectedFields = []
this.filterParamsComparison = {}
this.filterParams = {}
this.dialogVisible = true
},
removeSelectedFieldHandle(index, item) {
this.selectedFields.splice(index, 1)
item.selected = false
this.$set(this.fields, item.leftIndex, item)
this.$set(this.copyFields, item.leftIndex, item)
},
submitFilterHandle() {
this.$emit('filter', this.filterParams, this.filterParamsComparison)
this.dialogVisible = false
},
cancelHandle() {
this.$emit('filter', null, null)
this.dialogVisible = false
},
selectedFieldHandle(index, item) {
if (item.selected) {
return
}
item.selected = true
this.$set(this.fields, index, item)
this.$set(this.copyFields, index, item)
item.leftIndex = index
if (['SELECT', 'RADIO', 'CHECKBOX', 'IMAGE_SELECT'].includes(item.type)) {
this.filterParamsComparison[`filed${item.formItemId}`] = 'EQ'
this.filterParamsComparison[`field${item.formItemId}`] = 'eq'
} else {
this.filterParamsComparison[`filed${item.formItemId}`] = 'LIKE'
this.filterParamsComparison[`field${item.formItemId}`] = 'like'
}
this.selectedFields.push(item)
}

Loading…
Cancel
Save