Commit 87e23b52 authored by Gakki's avatar Gakki

功能完成

parent 5ac2335c
// 小区列表
<template>
<div class="routerWapper">
{{checkedKeys}}
<!-- {{checkedKeys}} -->
<a-row type='flex'>
<a-col flex='250px' style="overflow: hidden">
<div v-if="$route.path == '/houseData/basicInfoByLabel'" class="layoutMargin layoutPadding">
<div v-if="$route.path == '/houseData/basicInfoByLabel'" class="layoutMargin layoutPadding" style="height: 100%">
<!-- <a-row style="font-weight: bold">标签筛选条件</a-row>
<a-divider /> -->
<a-tree
@check='onCheck'
checkable
......@@ -445,6 +447,16 @@ export default {
console.log(keys, node)
for(let i = 0; i < keys.length; i++) {
console.log(keys[i])
// this.$ajax.get({
// url: this.$api.DELETE_SINGLE_LABEL.replace('{id}', keys[i]),
// }).then(res => {
// if (res.code == 200) {
// if(res.data.content.parentId == '0') {} else {
// this.checkedKeys.push(keys[i])
// }
// }
// })
this.checkedKeys.push(keys[i])
}
// if(node.node.$children.length > 0) { // 一级菜单(有若干个二级菜单)
// console.log('一级菜单')
......@@ -957,6 +969,6 @@ export default {
}
</script>
<style scoped>
<style>
</style>
......@@ -10,9 +10,9 @@
</div>
<div v-if="$route.name=='lvot'">
<a-row>
<a-col :span='4' class="layoutMargin layoutPadding">
<a-row>
<a-button size='small' type="default" @click="addLabel"> <a-icon type="plus" />添加标签 </a-button>
<a-col :span='4' class="layoutMargin layoutPadding" style="height: 680px">
<a-row style="height: 36px">
<a-button style="width: 100%" size='small' type="default" @click="addLabel"> <a-icon type="plus" />添加标签 </a-button>
</a-row>
<a-tree
:tree-data="treeData"
......@@ -22,7 +22,7 @@
/>
</a-col>
<a-col :span='1'></a-col>
<a-col :span='18' class="layoutMargin layoutPadding">
<a-col :span='18' class="layoutMargin layoutPadding" style="height: 680px">
<RightPanel v-if="currentState == 'create'" :trigger-type='currentState' @finish='getFinishState' />
<RightPanel v-else-if="currentState == 'loadChildLabel'" :trigger-type='currentState' :label-id='labelId' @finish='getFinishState' />
<ParentRightPanel v-else-if="currentState == 'loadParentLabel'" :trigger-type='currentState' :label-id='labelId' @finish='getFinishState' />
......@@ -112,7 +112,17 @@ export default {
}
</script>
<style scoped>
<style>
.ant-tree li {
margin: 0;
padding: 10px 0;
white-space: nowrap;
list-style: none;
outline: 0;
}
.ant-tree-child-tree > li:first-child {
padding-top: 20px;
}
</style>
......@@ -2,12 +2,16 @@
<div class="routerWapper">
<div>
<!-- {{triggerType}} - {{labelId}} - {{finish}} - {{jsonData}} - {{initKey}} -->
<!-- {{loopContent.data}} -->
<a-row>
<a-col :span='1' v-if="triggerType == 'create'">
<a-button type='default' @click="backPage()">返回</a-button>
<!-- <a-col :span='1' v-if="triggerType == 'create'"> -->
<a-col :span='1'>
<div class="detailOperations">
<a-button @click="backPage"> 返回 </a-button>
</div>
</a-col>
<a-col :span='1' v-else>
<a-button type='default' @click="deleteLabel(labelId)">删除</a-button>
<a-col :span='1' v-if="triggerType !== 'create' && triggerType !== 'loadParentLabel'" :offset='1'>
<a-button type='danger' @click="deleteLabel(labelId)">删除</a-button>
</a-col>
<!-- <a-col :span='1' :offset='1'>
<a-button type='default'>编辑</a-button>
......@@ -19,79 +23,91 @@
</a-row>
</div>
<a-divider type='horizontal' />
<div style="height: 580px; overflow: scroll">
<a-form :form='labelForm'>
<a-form-item label='标签名' :label-col="{span:3}" :wrapper-col="{span:15}">
<a-input placeholder='请输入标签名' v-decorator="['labelName',{validateTrigger:'blur', initialValue: jsonData.labelName?jsonData.labelName: '', rules: [{required: true, message: '请填写标签名!'}]}]"></a-input>
</a-form-item>
<a-form-item label='标签分组' :label-col="{span:3}" :wrapper-col="{span:7}">
<a-select v-decorator="['parentId',{validateTrigger:'blur', initialValue: jsonData.parentId?jsonData.parentId: '0', rules: []}]">
<a-select-option value='0'>无(将改标签设为一级标签)</a-select-option>
<a-select-option v-for="(item, index) in parentLabelList" :key='index' :value='item.id'>
{{item.labelName}}
</a-select-option>
</a-select>
<!-- <a-input placeholder='请输入分组名称' v-decorator="['parentName',{validateTrigger:'blur', initialValue: jsonData.parentName?jsonData.parentName: '', rules: [{required: true, message: '请填写标签分组名!'}]}]"></a-input> -->
</a-form-item>
<a-row>
<a-col :span='12'>
<a-form-item label='标签分组' :label-col="{span:6}" :wrapper-col="{span:16}">
<a-select v-decorator="['parentId',{validateTrigger:'blur', initialValue: jsonData.parentId?jsonData.parentId: '', rules: [{required: verifySelect, message: '请选择标签分组!'}]}] " placeholder='请选择分组'>
<a-select-option value=''>其他</a-select-option>
<a-select-option v-for="(item, index) in parentLabelList" :key='index' :value='item.id'>
{{item.labelName}}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span='12'>
<a-form-item :label-col="{span:1}" :wrapper-col="{span:12}" v-if="labelForm.getFieldValue('parentId') == ''">
<a-input placeholder='请输入分组名称' v-decorator="['parentName',{validateTrigger:'blur', initialValue: jsonData.parentName?jsonData.parentName: '', rules: [{required: verifyInput, message: '请填写标签分组名!'}]}]"></a-input>
</a-form-item>
</a-col>
</a-row>
<a-form-item label='业务对象' :label-col="{span:3}" :wrapper-col="{span:15}">
<a-select placeholder='请选择业务对象' :disabled="triggerType == 'loadChildLabel'" @change='handleObjChange' v-decorator="['tableName',{validateTrigger:'blur', initialValue: jsonData.tableName?jsonData.tableName: '', rules: [{required: true, message: '请选择业务对象!'}]}]">
<!-- <a-select placeholder='请选择业务对象' :disabled="triggerType == 'loadChildLabel'" @change='handleObjChange' v-decorator="['tableName',{validateTrigger:'blur', initialValue: jsonData.tableName?jsonData.tableName: '', rules: [{required: true, message: '请选择业务对象!'}]}]"> -->
<a-select placeholder='请选择业务对象' @change='handleObjChange' v-decorator="['tableName',{validateTrigger:'blur', initialValue: jsonData.tableName?jsonData.tableName: '', rules: [{required: true, message: '请选择业务对象!'}]}]">
<a-select-option value='tbl_community'>小区</a-select-option>
<a-select-option value='tbl_building'>门牌幢</a-select-option>
</a-select>
</a-form-item>
</a-form>
<a-row style="font-weight: bold; font-size: 16px;">信息筛选配置</a-row>
<a-divider type='horizontal' dashed />
<a-form :form='infoSettingForm' layout='inline'>
<div v-for="(item, index) in loopContent.data" :key='index'>
<a-form-item v-if="!!item.relation">
<a-select style="width: 120px" placeholder='请选择条件' v-decorator="['relation' + index,{initialValue: item.relation, validateTrigger:'blur',rules: []}]">
<a-select-option value='and'></a-select-option>
<a-select-option value='or'></a-select-option>
<a-select-option value='ne'></a-select-option>
</a-select>
</a-form-item>
<a-divider type='horizontal' />
<a-row style="font-weight: bold; font-size: 16px;">信息筛选配置</a-row>
<a-form :form='infoSettingForm' layout='inline'>
<div v-for="(item, index) in loopContent.data" :key='index'>
<a-form-item v-if="!!item.relation">
<a-select style="width: 120px" placeholder='请选择条件' v-decorator="['relation' + index,{initialValue: item.relation, validateTrigger:'blur',rules: []}]">
<a-select-option value='and'></a-select-option>
<a-select-option value='or'></a-select-option>
<a-select-option value='ne'></a-select-option>
</a-select>
</a-form-item>
<a-form-item v-else style="margin-left: 120px"></a-form-item>
<a-form-item v-else style="margin-left: 120px"></a-form-item>
<a-form-item>
<a-select style="width: 120px" placeholder='请选择业务属性' v-decorator="['key' + index,{initialValue: item.key, validateTrigger:'blur',rules: [{required: true, message: '请至少选择一项!'}]}]">
<a-select-option v-for="(item1, index1) in availableKeyList" :key='index1' :value='item1.tblKey'>{{item1.tblKeyName}}</a-select-option>
</a-select>
</a-form-item>
<a-form-item>
<a-select style="width: 120px" placeholder='请选择业务属性' v-decorator="['key' + index,{initialValue: item.key, validateTrigger:'blur',rules: [{required: true, message: '请至少选择一项!'}]}]">
<a-select-option v-for="(item1, index1) in availableKeyList" :key='index1' :value='item1.tblKey'>{{item1.tblKeyName}}</a-select-option>
</a-select>
</a-form-item>
<a-form-item>
<a-select style="width: 120px" placeholder='区间' v-decorator="['codition' + index,{initialValue: item.codition, validateTrigger:'blur',rules: [{required: true, message: '请至少选择一项!'}]}]">
<a-select-option value='eq'>等于</a-select-option>
<a-select-option value='gt'>大于</a-select-option>
<a-select-option value='gte'>大于等于</a-select-option>
<a-select-option value='lt'>小于</a-select-option>
<a-select-option value='lte'>小于等于</a-select-option>
<a-select-option value='btw'>区间</a-select-option>
</a-select>
</a-form-item>
<a-form-item>
<a-select style="width: 120px" placeholder='区间' v-decorator="['codition' + index,{initialValue: item.codition, validateTrigger:'blur',rules: [{required: true, message: '请至少选择一项!'}]}]">
<a-select-option value='eq'>等于</a-select-option>
<a-select-option value='gt'>大于</a-select-option>
<a-select-option value='gte'>大于等于</a-select-option>
<a-select-option value='lt'>小于</a-select-option>
<a-select-option value='lte'>小于等于</a-select-option>
<a-select-option value='btw'>区间</a-select-option>
</a-select>
</a-form-item>
<a-form-item>
<a-input style="width: 120px" placeholder='请输入' v-decorator="['inputOne' + index,{initialValue: getInitialValueOne(item.val), validateTrigger:'blur',rules: [],}]"></a-input>
</a-form-item>
<a-form-item v-if="infoSettingForm.getFieldValue('codition'+index) == 'btw'">
<a-input style="width: 120px" placeholder='请输入' v-decorator="['inputTwo' + index,{initialValue: getInitialValueTwo(item.val), validateTrigger:'blur',rules: []}]"></a-input>
</a-form-item>
<a-form-item>
<a-input style="width: 120px" placeholder='请输入' v-decorator="['inputOne' + index,{initialValue: getInitialValueOne(item.val), validateTrigger:'blur',rules: [],}]"></a-input>
</a-form-item>
<a-form-item v-if="infoSettingForm.getFieldValue('codition'+index) == 'btw'">
<a-input style="width: 120px" placeholder='请输入' v-decorator="['inputTwo' + index,{initialValue: getInitialValueTwo(item.val), validateTrigger:'blur',rules: []}]"></a-input>
</a-form-item>
<a-form-item>
<a-select style="width: 120px" placeholder='查询方式' v-decorator="['selMet' + index,{initialValue: item.selMet, validateTrigger:'blur',rules: [{required: true, message: '请至少选择一项!'}]}]">
<a-select-option value='equels'>精确</a-select-option>
<a-select-option value='like'>模糊</a-select-option>
</a-select>
</a-form-item>
<a-form-item>
<a-icon v-if="index+1 == loopContent.data.length" theme='filled' style="color:lightgreen;" type="plus-circle" @click="addRow()" />
<a-icon v-if="index+1 == loopContent.data.length" theme='filled' style="color:red; margin-left: 5px" type="minus-circle" @click="deleteRow(index)" />
</a-form-item>
<a-divider type='horizontal' dashed />
</div>
</a-form>
<a-form-item>
<a-select style="width: 120px" placeholder='查询方式' v-decorator="['selMet' + index,{initialValue: item.selMet, validateTrigger:'blur',rules: [{required: true, message: '请至少选择一项!'}]}]">
<a-select-option value='equels'>精确</a-select-option>
<a-select-option value='like'>模糊</a-select-option>
</a-select>
</a-form-item>
<a-form-item>
<a-icon v-if="index+1 == loopContent.data.length" theme='filled' style="color:lightgreen;" type="plus-circle" @click="addRow()" />
<a-icon v-if="index+1 == loopContent.data.length" theme='filled' style="color:red; margin-left: 5px" type="minus-circle" @click="deleteRow(index)" />
</a-form-item>
<a-divider type='horizontal' dashed />
</div>
</a-form>
<a-button type='link' v-if="loopContent.data.length == 0" @click="addInitRow()"><a-icon type="plus" />新增配置</a-button>
<!-- <a-button type='link' v-if="loopContent.data.length == 0" @click="addInitRow()"><a-icon type="plus" />新增配置</a-button> -->
<a-row v-if="loopContent.data.length == 0">请选择业务对象后填写筛选配置</a-row>
</div>
<!-- <div v-if="resultList.length > 0">
<a-divider type='horizontal' />
<a-row style="font-weight: bold">筛选结果</a-row>
......@@ -120,6 +136,8 @@ export default {
selMet: ''
}]
},
verifySelect: false,
verifyInput: false,
jsonData: {},
deleteVisible: false,
confirmVisible: false,
......@@ -202,6 +220,15 @@ export default {
},
handleObjChange(val) {
this.getKeyList(val)
this.loopContent.data = [{
key: '',
codition: 'eq',
val: '',
selMet: ''
}]
this.infoSettingForm.resetFields()
// 重置key表项的值为空 或 业务对象干脆disable掉
},
getKeyList(val) {
......@@ -323,8 +350,9 @@ export default {
},
resetFormFields() {
this.loopContent.data = []
this.labelForm.resetFields()
this.resultList = []
this.labelForm.resetFields()
this.jsonData = {selParams: []}
},
handleConfirmVisible() {
if(!!this.labelId) {
......@@ -337,8 +365,6 @@ export default {
this.resetFormFields()
this.finish = true
this.$emit('finish', this.finish)
} else {
this.$message.success('修改失败!')
}
})
} else {
......@@ -361,61 +387,65 @@ export default {
this.confirmVisible = !this.confirmVisible
},
save() {
this.jsonData = {selParams: []}
this.labelForm.validateFields((err, values) => {
if(!err) {
const labelFormData = this.labelForm.getFieldsValue()
this.jsonData = Object.assign(this.jsonData, labelFormData)
this.infoSettingForm.validateFields((err1, values) => {
if(!err1) {
let loopCounts = this.loopContent.data.length
let formData = this.infoSettingForm.getFieldsValue()
for(let i = 0; i < loopCounts; i++) {
this.jsonData.selParams.push({
key: formData['key'+i],
val: !formData['inputTwo' + i] ? formData['inputOne' + i] : formData['inputOne' + i] + ',' + formData['inputTwo' + i],
codition: formData['codition'+i],
relation: formData['relation' + i],
selMet: formData['selMet' + i]
})
}
if(this.loopContent.data.length == 0) {
this.$message.error('请至少添加一项配置')
} else {
// 判断是否选择分组或填写分组
console.log(!!this.labelForm.getFieldValue('parentId'))
if(!!this.labelForm.getFieldValue('parentId')) {
this.verifyInput = false
this.verifySelect = true
} else {
this.verifyInput = true
this.verifySelect = false
}
this.$ajax.post({
url: this.$api.GET_LABEL_BIND_FILTER_RESULT,
params: this.jsonData
}).then(res => {
if (res.code == 200) {
if(res.data == null) {
this.$message.error('该标签无搜索结果,标签添加失败!')
} else if(!!res.data.content) {
if(res.data.content.length > 0) {
this.resultList = res.data.content
this.confirmVisible = !this.confirmVisible
} else {
this.jsonData = {selParams: []}
this.labelForm.validateFields((err, values) => {
if(!err) {
const labelFormData = this.labelForm.getFieldsValue()
this.jsonData = Object.assign(this.jsonData, labelFormData)
this.infoSettingForm.validateFields((err1, values) => {
if(!err1) {
let loopCounts = this.loopContent.data.length
let formData = this.infoSettingForm.getFieldsValue()
for(let i = 0; i < loopCounts; i++) {
this.jsonData.selParams.push({
key: formData['key'+i],
val: !formData['inputTwo' + i] ? formData['inputOne' + i] : formData['inputOne' + i] + ',' + formData['inputTwo' + i],
codition: formData['codition'+i],
relation: formData['relation' + i],
selMet: formData['selMet' + i]
})
}
this.$ajax.post({
url: this.$api.GET_LABEL_BIND_FILTER_RESULT,
params: this.jsonData
}).then(res => {
if (res.code == 200) {
if(res.data == null) {
console.log(1)
this.$message.error('该标签无搜索结果,标签添加失败!')
} else if(!!res.data.content) {
if(res.data.content.length > 0) {
this.resultList = res.data.content
this.confirmVisible = !this.confirmVisible
} else {
console.log(2)
this.$message.error('该标签无搜索结果,标签添加失败!')
}
} else {
}
} else {
this.$message.error('接口报错,报错码 ' + res.code + ', 请稍后重试!')
}
// 如果查询到content里有内容,则在下方以表格的形式展示出来。否则提示无匹配数据。
// if(res.data !== null || res.data.content.length !== 0) {
// this.resultList = res.data.content
// this.confirmVisible = !this.confirmVisible
// // 提交标签内容, 如果有labelId则调用put接口,反之调用post接口
// } else {
// this.$message.error('该标签无搜索结果,标签添加失败!')
// }
// this.$message.success('修改成功!')
// this.resetFormFields()
// this.finish = true
// this.$emit('finish', this.finish)
} else {
this.$message.error('接口报错,报错码 ' + res.code + ', 请稍后重试!')
}
})
}
})
}
})
})
}
})
}
})
}
},
},
}
......
......@@ -4,7 +4,9 @@
<div>
<a-row>
<a-col :span='1'>
<a-button type='default' @click="backPage()">返回</a-button>
<div class="detailOperations">
<a-button @click="backPage"> 返回 </a-button>
</div>
</a-col>
<a-col :span='1' :offset='1'>
<a-button type='primary' @click="save()">保存</a-button>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment