This commit is contained in:
shijingjing
2022-08-12 16:13:25 +08:00
parent ab2207b109
commit 7032ea6e4f
2 changed files with 60 additions and 31 deletions

View File

@@ -7,7 +7,7 @@
<ai-search-bar> <ai-search-bar>
<template #left> <template #left>
<el-button type="primary" icon="iconfont iconAdd" @click="dialog=true">添加</el-button> <el-button type="primary" icon="iconfont iconAdd" @click="dialog=true">添加</el-button>
<el-cascader size="small" v-model="search.eventType" :options="rulesOps" placeholder="请选择事件/类型" clearable <el-cascader size="small" v-model="search.eventType" :options="rulesOpsList" placeholder="请选择事件/类型" clearable
:props="rulesProps" @change="handleTypeSearch" ref="eventTypeSearch" /> :props="rulesProps" @change="handleTypeSearch" ref="eventTypeSearch" />
<ai-select <ai-select
v-model="search.status" v-model="search.status"
@@ -50,15 +50,22 @@
</template> </template>
</ai-list> </ai-list>
<!-- <ai-empty v-else>暂无应用权限</ai-empty> --> <!-- <ai-empty v-else>暂无应用权限</ai-empty> -->
<ai-dialog :title="dialogTitle" :visible.sync="dialog" @onConfirm="onConfirm" @closed="form={ladderRule: []}" width="900px" > <ai-dialog :title="dialogTitle" :visible.sync="dialog" @onConfirm="onConfirm" @closed="form={ }" width="900px" >
<div class="form_div"> <div class="form_div">
<el-form ref="DialogForm" :model="form" :rules="formRules" size="small" label-suffix="" label-width="150px"> <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-form-item label="事件类型" prop="systemRuleId">
<el-cascader v-model="form.systemRuleId" :props="etOps" clearable placeholder="请选择" @change="handleTypeForm" <el-cascader v-model="form.systemRuleId" :props="etOps" clearable placeholder="请选择" @change="handleTypeForm"
:options="rulesOps"/> :options="rulesOps"/>
</el-form-item> </el-form-item>
<el-form-item label="自定义事件"> <el-form-item label="自定义事件" v-if="rulueType == 1">
<el-input placeholder="请输入,周期范围内,不填写表示不限制" v-model="form.ruleName" clearable/> <el-input placeholder="请输入,周期范围内,不填写表示不限制" v-model="form.ruleName" clearable/>
</el-form-item> </el-form-item>
@@ -112,31 +119,31 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!-- <el-form-item label="生效网格" prop="ruleType" required> <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()">请选择</el-button>
</el-form-item> --> </el-form-item>
</el-form> </el-form>
</div> </div>
<ai-dialog title="选择网格" :visible.sync="showGrid" :customFooter="true" :destroyOnClose="true" border width="720px" append-to-body> <ai-dialog title="选择网格" :visible.sync="showGrid" :customFooter="true" :destroyOnClose="true" border width="720px" append-to-body>
<div class="grid"> <div class="grid">
<el-tree <el-tree
:data="treeObj.treeList" :data="treeObj.treeList"
:props="treeObj.defaultProps" :props="treeObj.defaultProps"
node-key="id" node-key="id"
ref="tree" ref="tree"
:check-strictly="true" :check-strictly="true"
show-checkbox show-checkbox
default-expand-all default-expand-all
:default-checked-keys="currCheckedKeys" :default-checked-keys="currCheckedKeys"
@check="onCheckChange"> @check="onCheckChange">
</el-tree> </el-tree>
</div> </div>
<div class="dialog-footer" slot="footer"> <div class="dialog-footer" slot="footer">
<el-button size="medium" @click="showGrid=false">取消</el-button> <el-button size="medium" @click="showGrid=false">取消</el-button>
<el-button type="primary" size="medium" @click="getCheckedTree()">确认</el-button> <el-button type="primary" size="medium" @click="getCheckedTree()">确认</el-button>
</div> </div>
</ai-dialog> </ai-dialog>
</ai-dialog> </ai-dialog>
</section> </section>
</template> </template>
@@ -180,9 +187,11 @@ export default {
scoringCycle: [{required: true, message: "请选择周期范围", trigger: "change"}], scoringCycle: [{required: true, message: "请选择周期范围", trigger: "change"}],
// numberLimit: [{pattern: /^\d*$/, message: "请输入正整数"}], // numberLimit: [{pattern: /^\d*$/, message: "请输入正整数"}],
integral: [{required: true, pattern: /^\d*[.\d]\d?$/, message: "请输入积分分值,最多保留一位小数"}], integral: [{required: true, pattern: /^\d*[.\d]\d?$/, message: "请输入积分分值,最多保留一位小数"}],
validRangeType: [{required: true, message: "请选择事件有效范围", trigger: "change"}], validRangeType: [{required: true, message: "请选择有效范围", trigger: "change"}],
// validRangeData: [{required: true, message: "请选择生效网格", trigger: "change"}],
}, },
rulesOps: [], rulesOps: [],
rulesOpsList: [],
rulesProps: { rulesProps: {
label: "ruleName", label: "ruleName",
value: "id", value: "id",
@@ -199,7 +208,8 @@ export default {
checkedKeys: [], checkedKeys: [],
}, },
girdInfoList: [], girdInfoList: [],
currCheckedKeys: [] currCheckedKeys: [],
rulueType: '0',
}; };
}, },
created() { created() {
@@ -298,7 +308,6 @@ export default {
}, },
handleTypeForm(v) { handleTypeForm(v) {
if (this.dialog) { if (this.dialog) {
console.log(v);
// this.form.event = v?.[0] // this.form.event = v?.[0]
this.form.systemRuleId = v?.[v.length - 1] this.form.systemRuleId = v?.[v.length - 1]
console.log(this.form.systemRuleId); console.log(this.form.systemRuleId);
@@ -317,6 +326,11 @@ export default {
this.instance.post(`/app/appintegralsystemrule/list?current=1&sizes=3000`).then(res=> { this.instance.post(`/app/appintegralsystemrule/list?current=1&sizes=3000`).then(res=> {
if(res?.data) { if(res?.data) {
this.rulesOps = this.toTree(res.data.records) this.rulesOps = this.toTree(res.data.records)
this.rulesOpsList = this.rulesOps
this.rulesOpsList.push({
ruleName: '自定义',
id: '自定义'
})
} }
}) })
}, },
@@ -332,6 +346,7 @@ export default {
}); });
data.forEach(item => { data.forEach(item => {
let parent = map[item.parentRuleId]; let parent = map[item.parentRuleId];
console.log(parent);
if (parent) { if (parent) {
(parent.children || (parent.children = [])).push(item); (parent.children || (parent.children = [])).push(item);
} else { } else {

View File

@@ -14,12 +14,12 @@
</div> </div>
<div class="card_list"> <div class="card_list">
<div class="card"> <div class="card">
<h2>剩余积分汇总 <h2>积分余额汇总
<el-tooltip <el-tooltip
placement="right" placement="right"
style="width: 240px;" style="width: 240px;"
content="截止目前所有网格员剩余可用积分余额的总和"> content="截止目前所有网格员剩余可用积分余额的总和">
<i class="iconfont iconModal_Warning"></i> <i class="el-icon-warning-outline" style="display: inline-block; width: 16px;"></i>
</el-tooltip> </el-tooltip>
</h2> </h2>
<p class="color1">{{ data.nowIntegral || 0 }}</p> <p class="color1">{{ data.nowIntegral || 0 }}</p>
@@ -65,14 +65,14 @@
</el-date-picker> </el-date-picker>
</template> </template>
<template #right> <template #right>
<el-input size="small" placeholder="请输入居民名称或真实姓名" v-model="search.userName" clearable <el-input size="small" placeholder="请输入姓名" v-model="search.userName" clearable
@clear="page.current = 1, search.userName = '', getTableData()" suffix-icon="iconfont iconSearch" @clear="page.current = 1, search.userName = '', getTableData()" suffix-icon="iconfont iconSearch"
v-throttle="() => {(page.current = 1), getTableData();}" /> v-throttle="() => {(page.current = 1), getTableData();}" />
</template> </template>
</ai-search-bar> </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="page.current" :size.sync="page.size"
@getList="getTableData" :col-configs="colConfigs" :dict="dict"> @getList="getTableData" :col-configs="colConfigs" :dict="dict">
<el-table-column slot="changeIntegral" label="积分" align="center"> <el-table-column slot="changeIntegral" label="积分变动" align="center">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<span>{{ row.integralCalcType == 1 ? '+' : '-' }}{{ row.changeIntegral }}</span> <span>{{ row.integralCalcType == 1 ? '+' : '-' }}{{ row.changeIntegral }}</span>
</template> </template>
@@ -94,7 +94,7 @@
<ai-info-item label="所属网格" :value="details.girdName"/> <ai-info-item label="所属网格" :value="details.girdName"/>
<ai-info-item label="事件" isLine :value="details.eventDesc"/> <ai-info-item label="事件" isLine :value="details.eventDesc"/>
<ai-info-item label="时间" isLine :value="details.createTime"/> <ai-info-item label="时间" isLine :value="details.createTime"/>
<ai-info-item label="积分">{{ details.integralCalcType==0? '-' : '+' }}{{ details.changeIntegral }}</ai-info-item> <ai-info-item label="积分变动">{{ details.integralCalcType==0? '-' : '+' }}{{ details.changeIntegral }}</ai-info-item>
<ai-info-item label="积分余额" :value="details.nowIntegral"/> <ai-info-item label="积分余额" :value="details.nowIntegral"/>
<ai-info-item label="凭证" isLine v-if="fileDownLoad.length"> <ai-info-item label="凭证" isLine v-if="fileDownLoad.length">
<ai-file-list :fileList="fileDownLoad" style="width: 200px;"></ai-file-list> <ai-file-list :fileList="fileDownLoad" style="width: 200px;"></ai-file-list>
@@ -342,6 +342,20 @@ export default {
axisLine: { axisLine: {
show: false, show: false,
}, },
triggerEvent: true,
//设置文本过长超出隐藏...表示
axisLabel:{
margin: 8,
formatter: function(params){
var val=""
if(params.length > 8) {
val = params.substr(0,8)+'...'
return val
} else {
return params;
}
}
},
}, },
series: [ series: [
{ {