Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
		| @@ -18,7 +18,7 @@ export default { | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|     permissions: Function | ||||
|     permissions: Function, | ||||
|   }, | ||||
|  | ||||
|   computed: { | ||||
|   | ||||
| @@ -35,7 +35,7 @@ export default { | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|     permissions: Function | ||||
|     permissions: Function, | ||||
|   }, | ||||
|  | ||||
|   data() { | ||||
|   | ||||
| @@ -17,7 +17,7 @@ | ||||
|         </div> | ||||
|       </div> | ||||
|     </el-row> | ||||
|     <el-row class="echertsBox" style="margin-bottom: 16px"> | ||||
|     <!-- <el-row class="echertsBox" style="margin-bottom: 16px"> | ||||
|       <div class="title"> | ||||
|         <h4>事件汇总</h4> | ||||
|         <div class="timecSelect"> | ||||
| @@ -28,27 +28,16 @@ | ||||
|         <div id="chartDom" style="height: 230px; width: 100%;"></div> | ||||
|         <ai-empty v-if="false" style="height: 230px;"></ai-empty> | ||||
|       </div> | ||||
|     </el-row> | ||||
|     </el-row> --> | ||||
|     <ai-card> | ||||
|       <ai-title slot="title" title="余额变动明细"/> | ||||
|       <template #content> | ||||
|         <ai-search-bar> | ||||
|           <template #left> | ||||
|             <el-select size="small" style="width: 200px;" v-model="search.girdId" placeholder="类型" clearable | ||||
|                       @change="getListInit()"> | ||||
|               <el-option | ||||
|                   v-for="(item,i) in girdList" | ||||
|                   :key="i" | ||||
|                   :label="item.girdName" | ||||
|                   :value="item.id" | ||||
|               > | ||||
|               </el-option> | ||||
|             </el-select> | ||||
|             <ai-select v-model="search.type" placeholder="请选择类型" @change="page.current=1,getIntegralChange()"  | ||||
|             :selectList="dict.getDict('integralDetailType')"/> | ||||
|           </template> | ||||
|           <template #right> | ||||
|             <!-- <el-input size="small" placeholder="请输入居民名称或真实姓名" v-model="search.name" clearable | ||||
|               @clear="page.current = 1, search.name = '', getTableData()" suffix-icon="iconfont iconSearch" | ||||
|               v-throttle="() => {(page.current = 1), getTableData();}" style="margin-right: 16px;"/> --> | ||||
|             <ai-download :instance="instance" url="" :params="search" fileName="网格员积分" | ||||
|                          :disabled="tableData.length == 0"> | ||||
|               <el-button size="small">导出</el-button> | ||||
| @@ -67,22 +56,26 @@ | ||||
| import * as echarts from 'echarts'; | ||||
| export default { | ||||
|   name: "gridScoreDetail", | ||||
|   label: "网格员积分详情", | ||||
|   data() { | ||||
|     return { | ||||
|       myChart: null, | ||||
|       tableData: [], | ||||
|       search: { | ||||
|         current: 1, | ||||
|         name: '', | ||||
|         girdId: '', | ||||
|         type: '', | ||||
|       }, | ||||
|       page: { | ||||
|         current: 1,  | ||||
|         size: 10,  | ||||
|         total: 0 | ||||
|       }, | ||||
|       page: {current: 1, size: 10, total: 0}, | ||||
|       girdList: [], | ||||
|       timeList: [], | ||||
|       data: {}, | ||||
|       startTime: '', | ||||
|       endTime: '', | ||||
|        | ||||
|     } | ||||
|   }, | ||||
|   props: { | ||||
| @@ -101,39 +94,47 @@ export default { | ||||
|     colConfigs() { | ||||
|       return [ | ||||
|         { prop: "doTime", label: '时间', align: "left", width: "200px" }, | ||||
|         { prop: "integralType", label: '类型', align: "center", width: "180px" }, | ||||
|         { prop: "changeIntegral", label: '变动积分', align: "center",width: "200px" }, | ||||
|         { prop: "integralType", label: '类型', align: "center", width: "180px", dict:"integralDetailType"}, | ||||
|         { prop: "changeIntegral", label: '变动积分', align: "center",width: "200px",render: (h, { row }) => { | ||||
|           return h('span', {}, `${row.integralCalcType == 1 ? '+' : '-'}${row.changeIntegral}`) | ||||
|         }}, | ||||
|         { prop: "nowIntegral", label: '剩余积分', align: "center",width: "200px" }, | ||||
|         { prop: "eventDesc", label: '事件', align: "center", }, | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.$dict.load('integralDetailType') | ||||
|     this.getDetail() | ||||
|     this.getIntegralChange() | ||||
|   }, | ||||
|   methods: { | ||||
|     // 详情 | ||||
|     getDetail() { | ||||
|       this.instance.post(`/app/appintegraluser/girdDetail?id`).then(res=>{ | ||||
|       this.instance.post(`/app/appintegraluser/girdDetail`,null,{ | ||||
|         params: { | ||||
|           id: this.$route.query.id | ||||
|         } | ||||
|       }).then(res=>{ | ||||
|         if(res?.data) { | ||||
|           this.data = res.data | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     // 事件汇总暂定 | ||||
|     // 事件汇总 暂定 | ||||
|  | ||||
|     // 余额变动明细 | ||||
|     getIntegralChange() { | ||||
|       this.instance.post(`/app/appintegraluser/getChangeDetail`, null, { | ||||
|         param: {  | ||||
|         params: { | ||||
|           ...this.page, | ||||
|           type: this.type  //积分类型 | ||||
|           type: this.search.type,  //积分类型 | ||||
|           id: this.$route.query.id, | ||||
|         } | ||||
|       }).then(res => { | ||||
|         if(res?.data) { | ||||
|           this.tableData = res.data.detailList | ||||
|           this.tableData = res.data.records | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
| @@ -218,7 +219,7 @@ export default { | ||||
|   }, | ||||
|  | ||||
|   mounted() { | ||||
|     this.getColEcherts() | ||||
|     // this.getColEcherts() | ||||
|   }, | ||||
|  | ||||
|   destroyed () { | ||||
|   | ||||
| @@ -20,6 +20,21 @@ | ||||
|         </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"> | ||||
|           <el-table-column slot="integral" label="积分余额" align="center" :sortable="'custom'"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <span>{{ row.integral }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column slot="totalIntegral" label="累计积分" align="center" :sortable="'custom'"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <span>{{ row.totalIntegral }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column slot="usedIntegral" label="已用积分" align="center" :sortable="'custom'"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <span>{{ row.usedIntegral }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column slot="options" label="操作"  align="center"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <el-button type="text" @click="dialog = true">调整积分</el-button> | ||||
| @@ -52,7 +67,7 @@ | ||||
|                     maxlength="100"></el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="上传凭证"> | ||||
|           <ai-uploader :instance="instance" fileType="file" v-model="form.enclosure" :limit="1"></ai-uploader> | ||||
|           <ai-uploader :instance="instance" fileType="file" v-model="form.file" :limit="1"></ai-uploader> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="类型" prop="integralCalcType"> | ||||
|           <ai-select v-model="form.integralCalcType" :selectList="dict.getDict('integralCalcType')"/> | ||||
| @@ -74,7 +89,7 @@ export default { | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|     permissions: Function | ||||
|     permissions: Function, | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
| @@ -89,9 +104,10 @@ export default { | ||||
|       form: { | ||||
|         ids: [], | ||||
|         eventDesc: "",   | ||||
|         enclosure: [],   // 附件 | ||||
|         enclosure: "",   // 附件 | ||||
|         integralCalcType: "", | ||||
|         integral: 0, | ||||
|         file: [], | ||||
|       }, | ||||
|       personList: [], | ||||
|       dialog: false, | ||||
| @@ -109,18 +125,15 @@ export default { | ||||
|     this.getTableData() | ||||
|     this.getGridList() | ||||
|   }, | ||||
|   watch: { | ||||
|     gridChange() {} | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['user']), | ||||
|     colConfigs() { | ||||
|       return [ | ||||
|         { prop: "userName", label: '姓名', align: "left",  }, | ||||
|         { prop: "girdName", label: '所属网格', align: "center",  }, | ||||
|         { prop: "integral", label: '积分余额', align: "center", }, | ||||
|         { prop: "totalIntegral", label: '累计积分', align: "center", }, | ||||
|         { prop: "usedIntegral", label: '已用积分', align: "center", }, | ||||
|         { slot: "integral", label: '积分余额', align: "center", }, | ||||
|         { slot: "totalIntegral", label: '累计积分', align: "center", }, | ||||
|         { slot: "usedIntegral", label: '已用积分', align: "center", }, | ||||
|         { slot: "options" }, | ||||
|       ] | ||||
|     }, | ||||
| @@ -142,6 +155,7 @@ export default { | ||||
|         } | ||||
|       }).then(res => { | ||||
|         if(res?.data) { | ||||
|           console.log(res.data.records); | ||||
|           this.tableData = res.data.records | ||||
|           this.page.total = res.data.total | ||||
|         } | ||||
| @@ -195,17 +209,22 @@ export default { | ||||
|     }, | ||||
|  | ||||
|     onConfirm() { | ||||
|       if(this.form.file?.length) { | ||||
|         this.form.enclosure = this.form.file[0].url | ||||
|       } | ||||
|       this.instance.post(`/app/appintegraluser/changeIntegral`,{ | ||||
|         ids: this.form.ids, | ||||
|         eventDesc: this.form.eventDesc,   | ||||
|         enclosure: this.form.enclosure?.[0].url,   // 附件 | ||||
|         enclosure: this.form.enclosure,   // 附件 | ||||
|         integralCalcType: this.form.integralCalcType, | ||||
|         integral: this.form.integral, | ||||
|       }).then(res => { | ||||
|         if(res.code == 0) { | ||||
|           this.$message.success('调整积分成功') | ||||
|           this.getTableData() | ||||
|           this.dialog = false | ||||
|           setTimeout(() =>{ | ||||
|             this.getTableData() | ||||
|             this.dialog = false | ||||
|           }) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
| @@ -214,7 +233,7 @@ export default { | ||||
|       this.$emit('change', { | ||||
|         type: 'gridScoreDetail', | ||||
|         params: { | ||||
|           id: id || '' | ||||
|           id: id | ||||
|         } | ||||
|       }) | ||||
|     } | ||||
|   | ||||
| @@ -120,6 +120,9 @@ export default { | ||||
|         {prop: "type", label: "类型", dict: "integralRuleEventType"}, | ||||
|         {prop: "ruleType", label: "规则", dict: "integralRuleRuleType"}, | ||||
|         {prop: "scoringCycle", label: "周期范围", dict: "integralRuleScoringCycle"}, | ||||
|         // {prop: "", label: "积分分值", dict: "integralRuleScoringCycle"}, | ||||
|         {slot: "integral",label: "积分分值", align: "center"}, | ||||
|         {prop: "", label: "有效范围", dict: "integralRuleScoringCycle"}, | ||||
|         {prop: "status", label: "状态", align: "center", width: 96, dict: "integralRuleStatus"}, | ||||
|         {slot: "options", label: "操作", align: "center"}, | ||||
|       ], | ||||
|   | ||||
| @@ -57,6 +57,11 @@ | ||||
|         </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"> | ||||
|           <el-table-column slot="changeIntegral" label="积分" align="center"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <span>{{ row.integralCalcType == 1 ? '+' : '-' }}{{ row.changeIntegral }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column slot="options" label="操作"  align="center"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <el-button type="text" @click="open(row.id)">详情</el-button> | ||||
| @@ -144,8 +149,15 @@ export default { | ||||
|         { prop: "integralUserName", label: '姓名', align: "left", width: "200px" }, | ||||
|         { prop: "girdName", label: '所属网格', align: "center", width: "180px" }, | ||||
|         { prop: "eventDesc", label: '事件', align: "center",width: "200px" }, | ||||
|         { prop: "integralType", label: '类型', align: "center",width: "200px" }, | ||||
|         { prop: "changeIntegral", label: '积分变动', align: "center", }, | ||||
|         { prop: "integralType", label: '类型', align: "center",width: "200px", dict:"integralDetailType" }, | ||||
|         //   render: (h, {row}) => { | ||||
|         //       return h('span', { | ||||
|         //         style: { | ||||
|         //           // color: row.status === '0' ? 'red' : '#333' | ||||
|         //         } | ||||
|         //       }, (row.integralCalcType == '0' ? `- ${row.integralCalcType}` : `+ ${row.integralCalcType}`)) | ||||
|         //     } }, | ||||
|         { slot: "changeIntegral", label: '积分变动', align: "center", }, | ||||
|         { prop: "nowIntegral", label: '剩余积分', align: "center", }, | ||||
|         { prop: "createTime", label: '时间', align: "center", }, | ||||
|         { slot: "options" } | ||||
| @@ -313,7 +325,7 @@ export default { | ||||
|                 color: "#5087ec", | ||||
|                 label: { | ||||
|                   show: true,  //开启显示 | ||||
|                   position: 'right',    //在上方显示 | ||||
|                   position: 'right',    //在右方显示 | ||||
|                   textStyle: { | ||||
|                     fontSize: 13, | ||||
|                     color: '#666' | ||||
| @@ -385,7 +397,11 @@ export default { | ||||
|     }, | ||||
|  | ||||
|     getDetail(id) { | ||||
|  | ||||
|       this.instance.post(`/app/appintegraldetail/queryDetailById?id=${id}`).then(res=> { | ||||
|         if(res?.data) { | ||||
|           console.log(res.data); | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     selectDete() { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user