<template> <div class="app-container"> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button type="warning" plain icon="el-icon-plus" size="mini" @click="handleUpdate" v-hasPermi="['ecw:currency:update']">{{$t('修改')}} </el-button> </el-col> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> <!-- 列表 --> <el-table v-loading="loading" :data="list"> <el-table-column :label="$t('金额')" align="center" prop="fromFee"> <template slot-scope="scope"> <span>{{scope.row.fromFee}} <!-- {{ scope.row.fromCurrency | currencyDataFilter(currencyDictDatas) }} --> {{currencyName(scope.row.fromCurrency)}} </span> </template> </el-table-column> <el-table-column label="" align="center">=</el-table-column> <el-table-column :label="$t('兑换金额')" align="center"> <template slot-scope="scope"> <el-input v-show="showFlag" v-model="scope.row.toFee" type="text" @blur="updateEcash(scope.row)"></el-input> <span v-show="!showFlag">{{ scope.row.toFee}}</span> </template> </el-table-column> <el-table-column :label="$t('兑换货币类型')" align="center" prop="toCurrency"> <template slot-scope="scope"> <!-- <span>{{ scope.row.toCurrency | currencyDataFilter(currencyDictDatas) }}</span> --> {{currencyName(scope.row.toCurrency)}} </template> </el-table-column> </el-table> <el-card> <el-form ref="retForm" :model="retForm"> <el-form-item :label="$t('有效时间') + '(' + $t('尼日利亚') + ')'"> <el-col :span="3"> <el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" v-model="retForm.nrlyStartTime" style="width: 100%;" @change="changeDictData1"></el-date-picker> </el-col> <el-col :span="1" align="center">-</el-col> <el-col :span="3"> <el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" v-model="retForm.nrlyEndTime" @change="changeDictData2" style="width: 100%;"></el-date-picker> </el-col> </el-form-item> </el-form> <el-form> <el-form-item :label="$t('有效时间') +'(' + $t('北京') + ')'"> <el-col :span="3"> <el-date-picker type="datetime" :disable="showFlag" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" @change="changeDictData3" v-model="retForm.bjStartTime" style="width: 100%;"></el-date-picker> </el-col> <el-col align="center" :span="1">-</el-col> <el-col :span="3"> <el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" v-model="retForm.bjEndTime" @change="changeDictData4" style="width: 100%;"></el-date-picker> </el-col> </el-form-item> </el-form> <el-form :inline="true"> <el-form-item :label="$t('过期提示语')" prop="remark"> <el-input v-model="retForm.remark" type="textarea" @change="changeDictData5"></el-input> </el-form-item> </el-form> </el-card> <!-- <!– 分页组件 –>--> <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"--> <!-- @pagination="getList"/>--> <!-- 对话框(添加 / 修改) --> <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form-item :label="$t('金额')" prop="fromFee"> <el-input v-model="form.fromFee" :placeholder="$t('请输入金额')"/> </el-form-item> <el-form-item :label="$t('货币类型')" prop="fromCurrency"> <el-select v-model="form.fromCurrency" clearable> <el-option v-for="item in currencyList" :key="item.id" :label="$l(item, 'title')" :value="item.id"/> </el-select> </el-form-item> <el-form-item :label="$t('兑换金额')" prop="toFee"> <el-input v-model="form.toFee" :placeholder="$t('请输入兑换金额')"/> </el-form-item> <!-- <el-form-item :label="$t('状态')" prop="show">--> <!-- <el-input v-model="form.show" :placeholder="$t('请输入状态')" />--> <!-- </el-form-item>--> <el-form-item :label="$t('兑换货币类型')" prop="toCurrency"> <el-select v-model="form.toCurrency" clearable> <el-option v-for="item in currencyList" :key="item.id" :label="$l(item, 'title')" :value="item.id"/> </el-select> </el-form-item> <el-form-item :label="$t('开始时间(尼日利亚)')" prop="nrlyStartTime"> <el-date-picker v-model="form.nrlyStartTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" :placeholder="$t('选择开始时间')"></el-date-picker> </el-form-item> <el-form-item :label="$t('结束时间(尼日利亚)')" prop="nrlyEndTime"> <el-date-picker v-model="form.nrlyEndTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" :placeholder="$t('选择结束时间')"></el-date-picker> </el-form-item> <el-form-item :label="$t('开始时间(北京)')" prop="bjStartTime"> <el-date-picker v-model="form.bjStartTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" :placeholder="$t('选择开始时间')"></el-date-picker> </el-form-item> <el-form-item :label="$t('结束时间(北京)')" prop="bjEndTime"> <el-date-picker v-model="form.bjEndTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" :placeholder="$t('选择结束时间')"></el-date-picker> </el-form-item> <el-form-item :label="$t('过期提示语')" prop="remark"> <el-input v-model="form.remark" type="textarea"></el-input> </el-form-item> <!-- <el-form-item label="" prop="createAt">--> <!-- <el-input v-model="form.createAt" :placeholder="$t('请输入')" />--> <!-- </el-form-item>--> <!-- <el-form-item label="" prop="updateAt">--> <!-- <el-input v-model="form.updateAt" :placeholder="$t('请输入')" />--> <!-- </el-form-item>--> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm">{{ $t('确 定') }}</el-button> <el-button @click="cancel">{{ $t('取 消') }}</el-button> </div> </el-dialog> </div> </template> <script> import { createCurrencyEcash, updateCurrencyEcash, deleteCurrencyEcash, updateCurrencyEcashAll, getCurrencyEcash, getCurrencyEcashPage, exportCurrencyEcashExcel } from "@/api/ecw/currencyEcash"; import {CommonStatusEnum} from "@/utils/constants"; import {changeUserStatus} from "@/api/system/user"; import {DICT_TYPE, getDictDatas, getDictData} from "@/utils/dict"; import { getCurrencyList } from "@/api/ecw/currency"; import {arrryToKeyedObjectBy} from '@/utils/index' export default { name: "CurrencyEcash", components: {}, /* filters: { currencyDataFilter(e, currencyDictDatas) { if (e) return currencyDictDatas.find(item => item.value == e) }, ecashDataFilter(e, ecashDatas) { if (e) return ecashDatas.find(item => item.value == e) } }, */ data() { return { // 遮罩层 loading: true, // 导出遮罩层 exportLoading: false, // 显示搜索条件 showSearch: true, // 总条数 total: 0, // E-Cash汇率单位列表 list: [], // 弹出层标题 title: "", // 是否显示弹出层 open: false, dateRangeCreateTime: [], showFlag: false, nrlyStartTime: getDictData(DICT_TYPE.ECASH_INIT, 1).label, nrlyEndTime: getDictData(DICT_TYPE.ECASH_INIT, 2).label, bjStartTime: getDictData(DICT_TYPE.ECASH_INIT, 3).label, bjEndTime: getDictData(DICT_TYPE.ECASH_INIT, 4).label, remark: getDictData(DICT_TYPE.ECASH_INIT, 5).label, startTime: "", // 查询参数 queryParams: { pageNo: 1, pageSize: 10, titleZh: null, titleEn: null, fuhao: null, status: null, huilv: null, aorder: null, }, retForm: {}, updForm: {}, // 表单参数 form: {}, // 表单校验 rules: {}, /* statusDictDatas: getDictDatas(DICT_TYPE.COMMON_STATUS), */ /* ecashDatas: getDictDatas(DICT_TYPE.ECASH_INIT), */ currencyList: [] }; }, computed:{ currencyMap(){ return arrryToKeyedObjectBy(this.currencyList, 'id') }, currencyName(){ return id => { let obj = this.currencyMap[id] if(obj) return this.$l(obj, 'title') return this.$t('未知') } } }, created() { this.getList(); getCurrencyList().then(res => { this.currencyList = res.data }) }, methods: { /** 查询列表 */ getList() { this.loading = true; // 处理查询参数 let params = {...this.queryParams}; this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime'); // 执行查询 getCurrencyEcashPage(params).then(response => { this.list = response.data.list; this.retForm = response.data.list[0]; this.total = response.data.total; this.loading = false; }); }, /** 取消按钮 */ cancel() { this.open = false; this.reset(); }, /** 表单重置 */ reset() { this.form = { id: undefined, titleZh: undefined, titleEn: undefined, fuhao: undefined, status: undefined, huilv: undefined, aorder: undefined, }; this.resetForm("form"); }, /** 搜索按钮操作 */ handleQuery() { this.queryParams.pageNo = 1; this.getList(); }, /** 重置按钮操作 */ resetQuery() { this.dateRangeCreateTime = []; this.resetForm("queryForm"); this.handleQuery(); }, /** 新增按钮操作 */ handleAdd() { this.reset(); this.open = true; this.title = this.$t("添加E-Cash汇率单位"); }, /** 修改按钮操作 */ handleUpdate() { this.showFlag = true; // this.reset(); // const id = row.id; // getCurrencyEcash(id).then(response => { // this.form = response.data; // this.open = true; // this.title = "修改E-Cash汇率单位"; // }); }, updateEcash(row) { updateCurrencyEcash(row).then(response => { this.$modal.msgSuccess(this.$t("修改成功")); this.getList(); this.showFlag = false; }); }, changeDictData1(value) { this.updForm.nrlyStartTime = value; updateCurrencyEcashAll(this.updForm).then(response => { this.$modal.msgSuccess(this.$t("修改成功")); this.getList(); this.showFlag = false; }); }, changeDictData2(value) { this.updForm.nrlyEndTime = value; updateCurrencyEcashAll(this.updForm).then(response => { this.$modal.msgSuccess(this.$t("修改成功")); this.getList(); this.showFlag = false; }); }, changeDictData3(value) { this.updForm.bjStartTime = value; updateCurrencyEcashAll(this.updForm).then(response => { this.$modal.msgSuccess(this.$t("修改成功")); this.getList(); this.showFlag = false; }); }, changeDictData4(value) { this.updForm.bjEndTime = value; updateCurrencyEcashAll(this.updForm).then(response => { this.$modal.msgSuccess(this.$t("修改成功")); this.getList(); this.showFlag = false; }); }, changeDictData5(value) { this.updForm.remark = value; updateCurrencyEcashAll(this.updForm).then(response => { this.$modal.msgSuccess(this.$t("修改成功")); this.getList(); this.showFlag = false; }); }, /** 提交按钮 */ submitForm() { this.$refs["form"].validate(valid => { if (!valid) { return; } // 修改的提交 // if (this.form.id != null) { // updateCurrencyEcash(this.form).then(response => { // this.$modal.msgSuccess(this.$t("修改成功")); // this.open = false; // this.getList(); // }); // return; // } // 添加的提交 createCurrencyEcash(this.form).then(response => { this.$modal.msgSuccess(this.$t("新增成功")); this.open = false; this.getList(); }); }); }, /** 删除按钮操作 */ handleDelete(row) { const id = row.id; this.$modal.confirm(this.$t('是否确认删除E-Cash汇率单位编号为{id}的数据项?', {id})).then(function () { return deleteCurrencyEcash(id); }).then(() => { this.getList(); this.$modal.msgSuccess(this.$t("删除成功")); }).catch(() => { }); }, /** 导出按钮操作 */ handleExport() { // 处理查询参数 let params = {...this.queryParams}; params.pageNo = undefined; params.pageSize = undefined; this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime'); // 执行导出 this.$modal.confirm(this.$t('是否确认导出所有E-Cash汇率单位数据项?')).then(() => { this.exportLoading = true; return exportCurrencyEcashExcel(params); }).then(response => { this.$download.excel(response, '${table.classComment}.xls'); this.exportLoading = false; }).catch(() => { }); } } }; </script>