规则
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
},
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user