emis-frontend/src/views/system/sysMerchantService/index.vue
2024-06-02 17:59:42 +08:00

540 lines
19 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<!--
<el-form-item label="" prop="orderFrom">
<el-select v-model="queryParams.orderFrom" placeholder="平台" clearable filterable @change="handleQuery">
<el-option
v-for="item in orderFromOptions"
v-bind:key="item.value"
v-bind:label="item.label"
v-bind:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="" prop="pri">
<el-select v-model="queryParams.pri" clearable="" @change="handleQuery" placeholder="任务状态">
<el-option
v-for="dict in dict.type.sys_pri_level"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
-->
<el-form-item label="" prop="merId">
<el-input
v-model="queryParams.merId"
placeholder="商户编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="serviceCode">
<el-input
v-model="queryParams.serviceCode"
placeholder="服务编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:sysMerchantService:add']"
>新增</el-button>
</el-col>
<!--
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:sysMerchantService:edit']"
>修改</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:sysMerchantService:remove']"
>删除</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:sysMerchantService:export']"
>导出</el-button>
</el-col> -->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="sysMerchantServiceList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" min-width="60">
<template slot-scope="scope">
<span v-text="getIndex(scope.$index)"> </span>
</template>
</el-table-column>
<!--
<el-table-column label="xxx" align="left" prop="xxx" min-width="180">
<template slot-scope="scope">
<div class="link-type" @click="handleView(scope.row)">{{scope.row.orderSn}}</div>
</template>
</el-table-column>
<el-table-column label="结算状态" align="center" prop="settleStatus" min-width="80">
<template slot-scope="scope">
<div v-if="scope.row.settleStatus == 0" style="color:red;">
<span class="el-tag el-tag--info">未结算</span>
</div>
<div v-if="scope.row.settleStatus == 10" style="color:red;">
<span class="el-tag">待确认</span>
</div>
<div v-if="scope.row.settleStatus == 11" style="color:green;">
<span class="el-tag el-tag--success el-tag--light">已确认</span>
</div>
<div v-if="scope.row.settleStatus == 20" >
<span class="el-tag el-tag--warning el-tag--light">待打款</span>
</div>
<div v-if="scope.row.settleStatus == 21" style="color:green;">
<span class="el-tag el-tag--success el-tag--light">已打款</span>
</div>
<div v-if="scope.row.settleStatus == 40" style="color:red;">
<span class="el-tag el-tag--danger">已拒绝</span>
</div>
</template>
</el-table-column>
-->
<el-table-column label="商户编号" align="center" prop="merId" min-width="100" />
<el-table-column label="计费服务编号" align="left" prop="serviceCode" min-width="180" />
<!-- <el-table-column label="服务参数" align="left" prop="serviceParam" min-width="100" /> -->
<el-table-column label="计费方式" align="center" prop="feeType" min-width="100" />
<el-table-column label="有效次数" align="center" prop="validCount" min-width="100" />
<el-table-column label="已用次数" align="center" prop="usedCount" min-width="100" />
<el-table-column label="开始时间" align="center" prop="startTime" min-width="100" />
<el-table-column label="结束时间" align="center" prop="endTime" min-width="100" />
<el-table-column label="状态" align="center" prop="status" min-width="100" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:sysMerchantService:edit']"
>修改</el-button>
<!--
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:sysMerchantService:remove']"
>删除</el-button> -->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page-sizes="[20,50,100,300,500,1000,2000,5000]"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
:page-size="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改商户服务表对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="计费服务编号" prop="serviceCode">
<el-input v-model="form.serviceCode" placeholder="请输入计费服务编号" readonly="" />
</el-form-item>
<el-form-item label="服务参数" prop="serviceParam">
<el-input v-model="form.serviceParam" placeholder="请输入服务参数" />
</el-form-item>
<el-form-item label="计费方式 0-按次付费 1-时间区间付费" prop="feeType">
<el-input v-model="form.feeType" placeholder="请输入计费方式 0-按次付费 1-时间区间付费" />
</el-form-item>
<el-form-item label="有效次数" prop="validCount">
<el-input v-model="form.validCount" placeholder="请输入有效次数" />
</el-form-item>
<el-form-item label="已使用次数" prop="usedCount">
<el-input v-model="form.usedCount" placeholder="请输入已使用次数" />
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker clearable
v-model="form.startTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker clearable
v-model="form.endTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="0-初始 1-有效 -2 失效 " prop="status">
<el-input v-model="form.status" placeholder="请输入0-初始 1-有效 -2 失效 " />
</el-form-item>
<el-form-item label="删除标志(0代表存在 2代表删除)" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入删除标志(0代表存在 2代表删除)" />
</el-form-item>
<el-form-item label="创建者" prop="createBy">
<el-input v-model="form.createBy" placeholder="请输入创建者" />
</el-form-item>
<el-form-item label="更新者" prop="updateByName">
<el-input v-model="form.updateBy" placeholder="请输入更新者" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listSysMerchantService, getSysMerchantService, delSysMerchantService, addSysMerchantService, updateSysMerchantService } from "@/api/system/sysMerchantService";
import elDateSimplePicker from '@/components/DatePickerAdv/elDateSimplePicker';
export default {
name: "sysMerchantService",
components: { elDateSimplePicker },
dicts: [
// 'xxx',
],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 创建时间搜索
dateTimeRange:[],
// 搜索下拉
// itemOptions:[],
// 下拉枚举
// xxStatusOtions: [
// {value: '0', label: 'xx1'},
// {value: '10', label: 'xxx'},
// ],
// 总条数
total: 0,
// 商户服务表表格数据
sysMerchantServiceList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 备注时间范围
daterangeStartTime: [],
// 备注时间范围
daterangeEndTime: [],
// 备注时间范围
daterangeCreateTime: [],
// 备注时间范围
daterangeUpdateTime: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 20,
id: null,
merId: null,
serviceCode: null,
serviceParam: null,
feeType: null,
validCount: null,
usedCount: null,
startTime: null,
endTime: null,
status: null,
delFlag: null,
createBy: null,
updateBy: null,
remark: null
},
// 表单参数
form: {},
// 表单校验
rules: {
id: [
{ required: true, message: "序号不能为空", trigger: "blur" }
],
merId: [
{ required: true, message: "商户编号不能为空", trigger: "blur" }
],
serviceCode: [
{ required: true, message: "计费服务编号不能为空", trigger: "blur" }
],
serviceParam: [
{ required: true, message: "服务参数不能为空", trigger: "blur" }
],
feeType: [
{ required: true, message: "计费方式 0-按次付费 1-时间区间付费不能为空", trigger: "blur" }
],
validCount: [
{ required: true, message: "有效次数不能为空", trigger: "blur" }
],
usedCount: [
{ required: true, message: "已使用次数不能为空", trigger: "blur" }
],
startTime: [
{ required: true, message: "开始时间不能为空", trigger: "blur" }
],
endTime: [
{ required: true, message: "结束时间不能为空", trigger: "blur" }
],
status: [
{ required: true, message: "0-初始 1-有效 -2 失效 不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除标志(0代表存在 2代表删除)不能为空", trigger: "blur" }
],
createBy: [
{ required: true, message: "创建者不能为空", trigger: "blur" }
],
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateBy: [
{ required: true, message: "更新者不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "更新时间不能为空", trigger: "blur" }
],
remark: [
{ required: true, message: "备注不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询商户服务表列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeStartTime && '' != this.daterangeStartTime) {
this.queryParams.params["beginStartTime"] = this.daterangeStartTime[0];
this.queryParams.params["endStartTime"] = this.daterangeStartTime[1];
}
if (null != this.daterangeEndTime && '' != this.daterangeEndTime) {
this.queryParams.params["beginEndTime"] = this.daterangeEndTime[0];
this.queryParams.params["endEndTime"] = this.daterangeEndTime[1];
}
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
}
if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
}
listSysMerchantService(this.addDateRange(this.queryParams, this.dateTimeRange)).then(response => {
this.sysMerchantServiceList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
merId: null,
serviceCode: null,
serviceParam: null,
feeType: null,
validCount: null,
usedCount: null,
startTime: null,
endTime: null,
status: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "新增";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getSysMerchantService(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改";
});
},
handleView(row) {
// this.orderId=row.orderId;
// this.titleView="查看信息";
// this.openView=true;
// this.router.push({ path: '/cebOrderMgnt/viewDetail', query: { orderId: row.orderId }})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateSysMerchantService(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSysMerchantService(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除').then(function() {
return delSysMerchantService(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
// this.download('system/sysMerchantService/export', {
// ...this.queryParams
// }, `sysMerchantService_${new Date().getTime()}.xlsx`)
const loadingInstance = this.$loading({
text: '正在导出...'
})
var qParam = {...this.queryParams};
qParam.pageNum=1;
qParam.pageSize=5000;
listSysMerchantService(this.addDateRange(qParam, this.dateTimeRange)).then(response => {
this.downloadLoading = false
if (response.code === 200) {
const curList = response.rows
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['序号','商户编号','计费服务编号','服务参数','计费方式 0-按次付费 1-时间区间付费','有效次数','已使用次数','开始时间','结束时间','0-初始 1-有效 -2 失效 ','删除标志(0代表存在 2代表删除)','创建者','创建时间','更新者','更新时间','备注',];
const filterVal = ['id','merId','serviceCode','serviceParam','feeType','validCount','usedCount','startTime','endTime','status','delFlag','createBy','createTime','updateBy','updateTime','remark',];
const data = this.formatJson(filterVal, curList, response.rows)
excel.export_json_to_excel({
header: tHeader,
data,
filename: '商户服务表',
autoWidth: true
})
loadingInstance.close()
})
}
});
},
formatJson(filterVal, jsonData, resData) {
let index = 0
return jsonData.map(v => filterVal.map(j => {
if (j === 'index') {
return ++index
}
if (j === 'status') {
var statusStr='xxx'
if(v[j] == 10){
statusStr='xxx'
}
return statusStr;
}
return v[j]
}))
},
/** 列索引函数 */
getIndex($index) {
return (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1
},
/** 时间搜索响应函数 */
dateTimeChange(value){
this.dateTimeRange=value;
},
}
};
</script>