标签:sort border method export min data ash important click
/*mUtils.js*/
export const param2Obj = url => {
const search = url.split(‘?‘)[1]
if (!search) {
return {}
}
return JSON.parse(‘{"‘ + decodeURIComponent(search).replace(/"/g, ‘\\"‘).replace(/&/g, ‘","‘).replace(/=/g, ‘":"‘) + ‘"}‘)
}
/*money.js*/
import Mock from ‘mockjs‘ import * as mUtils from ‘@/utils/mUtils‘ let List = [] const count = 60 let typelist = [1, 2, 3, 4, 5, 6, 7, 8] for (let i = 0; i < count; i++) { List.push(Mock.mock({ id: Mock.Random.guid(), username: Mock.Random.cname(), address: Mock.mock(‘@county(true)‘), createTime: Mock.Random.datetime(), income: Mock.Random.float(0, 9999, 2,2), pay: Mock.Random.float(-5999, 0, 2,2), accoutCash: Mock.Random.float(0, 9999, 2,2), ‘incomePayType|1‘: typelist })) } export default { /* 获取列表getMoneyList*/ getMoneyList: config => { const { name, page = 1, limit = 20 } = mUtils.param2Obj(config.url) console.log(mUtils.param2Obj(config.url)) console.log(page+"++"+limit) const mockList = List.filter(user => { if (name && user.username.indexOf(name) === -1) return false return true }) const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1)) return { code: 200, data: { total: mockList.length, moneyList: pageList } } }, /** 增加资金信息createMoney*/ createMoney: config => { const { username, address, income, pay , accoutCash, incomePayType } = mUtils.param2Obj(config.url) List.push({ id: Mock.Random.guid(), username: username, address: address, createTime: Mock.Random.now(), income: income, pay: pay, accoutCash: accoutCash, incomePayType: incomePayType }) return { code: 200, data: { message: ‘添加成功‘ } } }, /*** 删除用户deleteMoney */ deleteMoney: config => { const { id } = mUtils.param2Obj(config.url) if (!id) { return { code: -999, message: ‘参数不正确‘ } } else { List = List.filter(u => u.id !== id) return { code: 200, data: { message: ‘删除成功‘ } } } }, /* 批量删除 */ batchremoveMoney: config => { console.log(config); // console.log(mUtils.param2Obj(config.url)); let { ids } = mUtils.param2Obj(config.url) console.log(ids); ids = ids.split(‘,‘) List = List.filter(u => !ids.includes(u.id)) return { code: 200, data: { message: ‘批量删除成功‘ } } }, /*修改用户 */ updateMoney: config => { const { id,username, address, income, pay , accoutCash, incomePayType } = mUtils.param2Obj(config.url) List.some(u => { if (u.id === id) { u.username = username u.address = address u.income = income u.pay = pay u.accoutCash = accoutCash u.incomePayType = incomePayType return true } }) return { code: 200, data: { message: ‘编辑成功‘ } } } }
/*index.js*/
import Mock from ‘mockjs‘ import tableAPI from ‘./money‘ import salesAPI from ‘./sales‘ import userAPI from ‘./user‘ // 设置全局延时 没有延时的话有时候会检测不到数据变化 建议保留 Mock.setup({ timeout: ‘300-600‘ }) // 资金相关 Mock.mock(/\/money\/get/, ‘get‘, tableAPI.getMoneyList) Mock.mock(/\/money\/remove/, ‘get‘, tableAPI.deleteMoney) Mock.mock(/\/money\/batchremove/, ‘get‘, tableAPI.batchremoveMoney) Mock.mock(/\/money\/add/, ‘get‘, tableAPI.createMoney) Mock.mock(/\/money\/edit/, ‘get‘, tableAPI.updateMoney) // sales相关 Mock.mock(/\/sales\/get/, ‘get‘, salesAPI.getSalesList) // user相关 Mock.mock(/\/user\/login/, ‘get‘, userAPI.login) Mock.mock(/\/user\/logout/, ‘get‘, userAPI.logout) Mock.mock(/\/user\/info\/get/, ‘get‘, userAPI.getUserInfo) Mock.mock(/\/user\/list\/get/, ‘get‘, userAPI.getUserList)
/*Api.js接口管理*/
import request from ‘@/utils/axios‘ export function getMoneyIncomePay(params) { return request({ url: ‘/money/get‘, method: ‘get‘, params: params }) } export function addMoney(params) { return request({ url: ‘/money/add‘, method: ‘get‘, params: params }) } export function removeMoney(params) { return request({ url: ‘/money/remove‘, method: ‘get‘, params: params }) } export function batchremoveMoney(params) { return request({ url: ‘/money/batchremove‘, method: ‘get‘, params: params }) } export function updateMoney(params) { return request({ url: ‘/money/edit‘, method: ‘get‘, params: params }) }
/*在组件里使用*/
<template> <div class="fillcontain"> <search-item @showDialog="showAddFundDialog" @searchList="getMoneyList" @onBatchDelMoney="onBatchDelMoney"></search-item> <div class="table_container"> <el-table v-loading="loading" :data="tableData" style="width: 100%" align=‘center‘ @select="selectTable" @select-all="selectAll" > <el-table-column v-if="idFlag" prop="id" label="id" align=‘center‘ width="180"> </el-table-column> <el-table-column type="selection" align=‘center‘ width="40"> </el-table-column> <el-table-column prop="username" label="用户姓名" align=‘center‘ width="80"> </el-table-column> <el-table-column prop="address" label="籍贯" align=‘center‘ > </el-table-column> <el-table-column prop="createTime" label="投资时间" align=‘center‘ sortable width="170"> <template slot-scope="scope"> <el-icon name="time"></el-icon> <span style="margin-left: 10px">{{ scope.row.createTime }}</span> </template> </el-table-column> <el-table-column prop="incomePayType" label="收支类型" align=‘center‘ width="130" :formatter="formatterType" :filters="fields.incomePayType.filter.list" :filter-method="filterType"> </el-table-column> <el-table-column prop="income" label="收入" align=‘center‘ width="130" sortable> <template slot-scope="scope"> <span style="color:#00d053">+ {{ scope.row.income }}</span> </template> </el-table-column> <el-table-column prop="pay" label="支出" align=‘center‘ width="130" sortable> <template slot-scope="scope"> <span style="color:#f56767">{{ getPay(scope.row.pay) }}</span> </template> </el-table-column> <el-table-column prop="accoutCash" label="账户现金" align=‘center‘ width="130" sortable> <template slot-scope="scope"> <span style="color:#4db3ff">{{ scope.row.accoutCash }}</span> </template> </el-table-column> <el-table-column prop="operation" align=‘center‘ label="操作" width="180"> <template slot-scope=‘scope‘> <el-button type="warning" icon=‘edit‘ size="mini" @click=‘onEditMoney(scope.row)‘ >编辑</el-button> <el-button type="danger" icon=‘delete‘ size="mini" @click=‘onDeleteMoney(scope.row,scope.$index)‘ >删除</el-button> </template> </el-table-column> </el-table> <pagination :pageTotal="pageTotal" @handleCurrentChange="handleCurrentChange" @handleSizeChange="handleSizeChange"></pagination> <addFundDialog v-if="addFundDialog.show" :isShow="addFundDialog.show" :dialogRow="addFundDialog.dialogRow" @getFundList="getMoneyList" @closeDialog="hideAddFundDialog"></addFundDialog> </div> </div> </template> <script> import { mapGetters } from "vuex"; import * as mutils from ‘@/utils/mUtils‘ import SearchItem from "./components/searchItem"; import AddFundDialog from "./components/addFundDialog"; import Pagination from "@/components/pagination"; import { getMoneyIncomePay , removeMoney, batchremoveMoney } from "@/api/money"; import axios from "axios" export default { data(){ return { tableData: [], tableHeight:0, loading:true, idFlag:false, isShow:false, // 是否显示资金modal,默认为falselimit editid:‘‘, rowIds:[], sortnum:0, format_type_list: { 0: ‘提现‘, 1: ‘提现手续费‘, 2: ‘提现锁定‘, 3: ‘理财服务退出‘, 4: ‘购买宜定盈‘, 5: ‘充值‘, 6: ‘优惠券‘, 7: ‘充值礼券‘, 8: ‘转账‘ }, addFundDialog:{ show:false, dialogRow:{} }, incomePayData:{ page:1, limit:20, name:‘‘ }, pageTotal:0, // 用于列表筛选 fields: { incomePayType:{ filter: { list: [{ text: ‘提现‘, value: 0 },{ text: ‘提现手续费‘, value: 1 }, { text: ‘提现锁定‘, value: 2 }, { text: ‘理财服务退出‘, value: 3 }, { text: ‘购买宜定盈‘, value: 4 }, { text: ‘充值‘, value: 5 }, { text: ‘优惠券‘, value: 6 }, { text: ‘充值礼券‘, value: 7 }, { text: ‘转账‘, value: 8 }], multiple: true } }, }, } }, components:{ SearchItem, AddFundDialog, Pagination }, computed:{ ...mapGetters([‘search‘]) }, mounted() { this.getMoneyList(); // this.setTableHeight(); // window.onresize = () => { // this.setTableHeight(); // } }, methods: { setTableHeight(){ this.$nextTick(() => { this.tableHeight = document.body.clientHeight - 300 }) }, // 获取资金列表数据 getMoneyList(){ const para = Object.assign({},this.incomePayData,this.search); getMoneyIncomePay(para).then(res => { console.log(res) this.loading = false; this.pageTotal = res.data.total // console.log(res) this.tableData = res.data.moneyList }) }, // 显示资金弹框 showAddFundDialog(val){ this.$store.commit(‘SET_DIALOG_TITLE‘, val) this.addFundDialog.show = true; }, hideAddFundDialog(){ this.addFundDialog.show = false; }, // 上下分页 handleCurrentChange(val){ this.incomePayData.page = val; this.getMoneyList() }, // 每页显示多少条 handleSizeChange(val){ this.incomePayData.limit = val; this.getMoneyList() }, getPay(val){ if(mutils.isInteger(val)){ return -val; }else{ return val; } }, /** * 格式化状态 */ formatterType(item) { const type = parseInt(item.incomePayType); return this.format_type_list[type]; }, filterType(value, item) { const type = parseInt(item.incomePayType); return this.format_type_list[value] == this.format_type_list[type]; }, // 编辑操作方法 onEditMoney(row){ this.addFundDialog.dialogRow = row; this.showAddFundDialog(); }, // 删除数据 onDeleteMoney(row){ this.$confirm(‘确认删除该记录吗?‘, ‘提示‘, { type: ‘warning‘ }) .then(() => { const para = { id: row.id } removeMoney(para).then(res => { this.$message({ message: ‘删除成功‘, type: ‘success‘ }) this.getMoneyList() }) }) .catch(() => {}) }, onBatchDelMoney(){ this.$confirm(‘确认批量删除记录吗?‘, ‘提示‘, { type: ‘warning‘ }) .then(() => { const ids = this.rowIds.map(item => item.id).toString() const para = { ids: ids } batchremoveMoney(para).then(res => { this.$message({ message: ‘批量删除成功‘, type: ‘success‘ }) this.getMoneyList() }) }) .catch(() => {}) }, // 当用户手动勾选数据行的 Checkbox 时触发的事件 selectTable(val, row){ this.setSearchBtn(val); }, // 用户全选checkbox时触发该事件 selectAll(val){ val.forEach((item) => { this.rowIds.push(item.id); }); this.setSearchBtn(val); }, setSearchBtn(val){ let isFlag = true; if(val.length > 0){ isFlag = false; }else{ isFlag = true; } this.$store.commit(‘SET_SEARCHBTN_DISABLED‘,isFlag); } }, } </script> <style lang="less" scoped> .table_container{ padding: 10px; background: #fff; border-radius: 2px; } .el-dialog--small{ width: 600px !important; } .pagination{ text-align: left; margin-top: 10px; } </style>
标签:sort border method export min data ash important click
原文地址:https://www.cnblogs.com/kaijiangyugty/p/11612989.html