This commit is contained in:
shijingjing
2022-08-12 18:35:02 +08:00
parent 9961da1d25
commit a275e873fa
3 changed files with 49 additions and 58 deletions

View File

@@ -10,16 +10,16 @@
</template>
<template #right>
<el-input size="small" placeholder="请输入居民名称或真实姓名" v-model="search.userName" clearable
@clear="page.current = 1, search.userName = '', getTableData()" suffix-icon="iconfont iconSearch"
v-throttle="() => {(page.current = 1), getTableData();}"/>
@clear="current = 1, search.userName = '', getTableData()" suffix-icon="iconfont iconSearch"
v-throttle="() => {(current = 1), getTableData();}"/>
<ai-download :instance="instance" url="`/app/appintegraluser/girdIntegralExport" :params="search" fileName="网格员积分"
:disabled="tableData.length == 0">
<el-button size="small">导出</el-button>
</ai-download>
</template>
</ai-search-bar>
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
@getList="getTableData" :col-configs="colConfigs" :dict="dict">
<ai-table :tableData="tableData" :total="page.total" :current.sync="current" :size.sync="page.size"
@getList="getTableData()" :col-configs="colConfigs" :dict="dict">
<el-table-column slot="integral" label="积分余额" align="center" :sortable="'custom'">
<template slot-scope="{ row }">
<span>{{ row.integral }}</span>
@@ -100,9 +100,9 @@ export default {
size: 10,
},
tableData: [],
page: {current: 1, size: 10, total: 0},
page: {size: 10, total: 0},
current: 1,
girdList: [],
form: {
ids: [],
eventDesc: "",
@@ -153,6 +153,7 @@ export default {
params: {
...this.page,
...this.search,
current: this.current
}
}).then(res => {
if(res?.data) {

View File

@@ -7,7 +7,7 @@
<ai-search-bar>
<template #left>
<el-button type="primary" icon="iconfont iconAdd" @click="dialog=true">添加</el-button>
<el-cascader size="small" v-model="search.eventType" :options="rulesOpsList" placeholder="请选择事件/类型" clearable
<el-cascader size="small" v-model="search.systemRuleId" :options="rulesOps" placeholder="请选择事件/类型" clearable
:props="rulesProps" @change="handleTypeSearch" ref="eventTypeSearch" />
<ai-select
v-model="search.status"
@@ -24,7 +24,7 @@
:total="page.total" :dict="dict"
:current.sync="page.current"
:size.sync="page.size"
@getList="getList">
@getList="getList()">
<el-table-column slot="integral" label="分值" align="center">
<template slot-scope="{ row }">
<span
@@ -50,22 +50,16 @@
</template>
</ai-list>
<!-- <ai-empty v-else>暂无应用权限</ai-empty> -->
<ai-dialog :title="dialogTitle" :visible.sync="dialog" @onConfirm="onConfirm" @closed="form={ }" width="900px" >
<ai-dialog :title="dialogTitle" :visible.sync="dialog" @onConfirm="onConfirm" @closed="form={}" width="900px" >
<div class="form_div">
<el-form ref="DialogForm" :model="form" :rules="formRules" size="small" label-suffix="" label-width="150px">
<el-form-item label="规则类型" prop="rulueType" :rules="[{required: true, message: '请选择规则类型', trigger: 'change'}]">
<el-radio-group v-model="rulueType">
<el-radio label="0">系统规则</el-radio>
<el-radio label="1">自定义规则</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="事件类型" prop="systemRuleId">
<el-cascader v-model="form.systemRuleId" :props="etOps" clearable placeholder="请选择" @change="handleTypeForm"
<el-cascader v-model="form.systemRuleId" ref="cascaderArr" :props="etOps" clearable placeholder="请选择" @change="handleTypeForm"
:options="rulesOps"/>
</el-form-item>
<el-form-item label="自定义事件" v-if="rulueType == 1">
<el-form-item label="自定义事件" v-if="form.systemRuleId == '自定义'">
<el-input placeholder="请输入,周期范围内,不填写表示不限制" v-model="form.ruleName" clearable/>
</el-form-item>
@@ -120,7 +114,7 @@
</el-form-item>
<el-form-item label="生效网格" :prop="form.validRangeType == 1? 'validRangeData' :''" :rules="[{required: true, message: '请选择生效网格', trigger: 'change'}]" v-if="form.validRangeType == 1">
<el-button type="text" @click="showGrid = true,beforeSelectTree()">请选择</el-button>
<el-button type="text" @click="showGrid = true,beforeSelectTree()">{{ girdInfoList.length? '已选择':'请选择' }}</el-button>
</el-form-item>
</el-form>
@@ -159,21 +153,28 @@ export default {
},
data() {
return {
search: {status: "", eventType: null},
search: {
status: "",
systemRuleId: "",
},
page: {current: 1, size: 10, total: 0},
colConfigs: [
{prop: "event", label: "事件", dict: "integralRuleEvent"},
{prop: "type", label: "类型", dict: "integralRuleEventType"},
{prop: "parentRuleName", label: "类型", dict: "integralRuleEventType"},
{prop: "ruleName", label: "事件", dict: "integralRuleEvent"},
{prop: "ruleType", label: "规则", dict: "integralRuleRuleType"},
{prop: "scoringCycle", label: "周期范围", dict: "integralRuleScoringCycle"},
{prop: "scoringCycle", label: "周期范围", dict: "integralRuleScoringCycle",render: (h, {row}) => {
return h('span', {
}, row.numberLimit.length? $dict.getLabel('integralRuleScoringCycle', row.scoringCycle):$dict.getLabel('integralRuleScoringCycle', row.scoringCycle) + row.numberLimit + '次')
}},
{slot: "integral",label: "积分分值", align: "center"},
{prop: "validRangeType", label: "有效范围", dict: "integralRuleScoringCycle"},
{prop: "validRangeType", label: "有效范围", formart: v => v==0? '全局':'指定网格'},
{prop: "status", label: "状态", align: "center", width: 96, dict: "integralRuleStatus"},
{slot: "options", label: "操作", align: "center"},
],
tableData: [],
dialog: false,
form: {
ruleType: 0,
systemRuleId: '',
ruleName: '',
scoringCycle: '',
@@ -185,13 +186,10 @@ export default {
formRules: {
systemRuleId: [{required: true, message: "请选择事件/类型", trigger: "change"}],
scoringCycle: [{required: true, message: "请选择周期范围", trigger: "change"}],
// numberLimit: [{pattern: /^\d*$/, message: "请输入正整数"}],
integral: [{required: true, pattern: /^\d*[.\d]\d?$/, message: "请输入积分分值,最多保留一位小数"}],
validRangeType: [{required: true, message: "请选择有效范围", trigger: "change"}],
// validRangeData: [{required: true, message: "请选择生效网格", trigger: "change"}],
},
rulesOps: [],
rulesOpsList: [],
rulesProps: {
label: "ruleName",
value: "id",
@@ -222,7 +220,10 @@ export default {
methods: {
getList() {
this.instance.post(`/app/appintegralrule/list`, null, {
params: {...this.search, ...this.page},
params: {
...this.search,
...this.page,
},
}).then(res => {
if (res?.data) {
this.tableData = res.data.records;
@@ -231,21 +232,10 @@ export default {
});
},
toEdit(row) {
console.log(row);
this.form = this.$copy(row)
let {ladderRule, event, type} = this.form,
dict = 'integralRuleEvent' + event
this.$dict.load(dict).then(() => {
this.form.eventType = [event, type]
this.form.ladderRule = JSON.parse(ladderRule || "[]")
this.cacheOps = this.$dict.getDict('integralRuleEvent').map(e => {
if (e.dictValue == event) {
e.children = this.$dict.getDict(dict).map(d => ({...d, leaf: true}))
}
return e
})
this.$nextTick(() => {
this.dialog = true
})
this.$nextTick(() => {
this.dialog = true
})
},
remove(id) {
@@ -300,18 +290,14 @@ export default {
});
},
handleTypeSearch(v) {
this.search.event = v?.[0]
this.search.type = v?.[1]
this.search.systemRuleId = v?.[v.length - 1]
this.page.current = 1
this.$refs.eventTypeSearch.dropDownVisible = false
this.getList()
},
handleTypeForm(v) {
if (this.dialog) {
// this.form.event = v?.[0]
if(this.dialog) {
this.form.systemRuleId = v?.[v.length - 1]
console.log(this.form.systemRuleId);
// this.form.ruleType = !this.form.event ? null : this.form.event == 3 ? 1 : 0
}
},
handleDelete(i) {
@@ -326,8 +312,7 @@ export default {
this.instance.post(`/app/appintegralsystemrule/list?current=1&sizes=3000`).then(res=> {
if(res?.data) {
this.rulesOps = this.toTree(res.data.records)
this.rulesOpsList = this.rulesOps
this.rulesOpsList.push({
this.rulesOps.push({
ruleName: '自定义',
id: '自定义'
})
@@ -346,7 +331,6 @@ export default {
});
data.forEach(item => {
let parent = map[item.parentRuleId];
console.log(parent);
if (parent) {
(parent.children || (parent.children = [])).push(item);
} else {
@@ -385,9 +369,9 @@ export default {
...this.$refs.tree.getCheckedNodes(),
checkType: true
})
// this.girdInfoList = this.$refs.tree.getCheckedNodes()
console.log(this.$refs.tree.getCheckedNodes());
this.form.validRangeData = this.$refs.tree.getCheckedNodes().map(e=> e.id).toString()
console.log(this.form.validRangeData);
this.showGrid = false;
},

View File

@@ -58,7 +58,7 @@
<template #left>
<el-cascader ref="cascader2" v-model="search.girdId" :options="girdOptions" placeholder="所属网格" size="small"
:props="defaultProps" :show-all-levels="false" clearable @change="gridChangeOpt"></el-cascader>
<ai-select v-model="search.integralType" placeholder="请选择类型" @change="page.current=1, getTableData()"
<ai-select v-model="search.integralType" placeholder="请选择类型" @change="current=1, getTableData()"
:selectList="dict.getDict('integralType')"/>
<el-date-picker v-model="time" size="small" type="daterange" value-format="yyyy-MM-dd"
range-separator="" start-placeholder="开始日期" end-placeholder="结束日期" @change="onChange">
@@ -66,11 +66,11 @@
</template>
<template #right>
<el-input size="small" placeholder="请输入姓名" v-model="search.userName" clearable
@clear="page.current = 1, search.userName = '', getTableData()" suffix-icon="iconfont iconSearch"
v-throttle="() => {(page.current = 1), getTableData();}" />
@clear="current = 1, search.userName = '', getTableData()" suffix-icon="iconfont iconSearch"
v-throttle="() => {(current = 1), getTableData();}" />
</template>
</ai-search-bar>
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
<ai-table :tableData="tableData" :total="page.total" :current.sync="current" :size.sync="page.size"
@getList="getTableData" :col-configs="colConfigs" :dict="dict">
<el-table-column slot="changeIntegral" label="积分变动" align="center">
<template slot-scope="{ row }">
@@ -140,7 +140,12 @@ export default {
startTime: '',
endTime: '',
},
page: {current: 1, size: 10,total: 0,},
page: {
size: 10,
total: 0,
},
current: '1',
girdList: [],
time: [],
timeCheck: ['昨日','近7天','近30天','自定义'],
@@ -239,6 +244,7 @@ export default {
params: {
...this.page,
...this.search,
current: this.current
}
}).then(res => {
if(res?.data) {