Changes
This commit is contained in:
parent
64adcf9782
commit
40023d01d0
@ -8,6 +8,13 @@ export function listRuleConfig(query) {
|
||||
params: query,
|
||||
})
|
||||
}
|
||||
export function listRuleConfigs(query) {
|
||||
return request({
|
||||
url: '/api/ruleConfig/selectList',
|
||||
method: 'get',
|
||||
params: query,
|
||||
})
|
||||
}
|
||||
|
||||
// 查询支付配置规则列表
|
||||
export function getRuleConfig(id) {
|
||||
|
@ -34,4 +34,42 @@ export function updateApi(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export function getNameListApi(name) {
|
||||
return request({
|
||||
url: 'messageTemplate/getMessageTemplate?name=' + name,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function sendMessageSaveApi(data) {
|
||||
return request({
|
||||
url: 'MessageRecord',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function messageRecordListApi(query) {
|
||||
return request({
|
||||
url: 'MessageRecord',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function selectChildList(query) {
|
||||
return request({
|
||||
url: 'MessageRecord/selectChildList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getOneApi(id) {
|
||||
return request({
|
||||
url: 'messageTemplate/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
@ -41,3 +41,11 @@ export function updateCostApi(data) {
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function getCostReListApi(query) {
|
||||
return request({
|
||||
url: 'MessageCost/getRechargeList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
43
fuintAdmin/src/api/sys/messageRechargeRecord.js
Normal file
43
fuintAdmin/src/api/sys/messageRechargeRecord.js
Normal file
@ -0,0 +1,43 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
|
||||
// 分页查询所有的订单信息
|
||||
export function getCostListApi(query) {
|
||||
return request({
|
||||
url: 'MessageCost',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
//
|
||||
export function getInfoApi(id) {
|
||||
return request({
|
||||
url: 'MessageCost/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
//
|
||||
export function deleteCostApi(id) {
|
||||
return request({
|
||||
url: 'MessageCost/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
//
|
||||
export function saveMessageRechargeRecordApi(data) {
|
||||
return request({
|
||||
url: 'MessageRechargeRecord',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 保存修改信息
|
||||
export function updateCostApi(data) {
|
||||
return request({
|
||||
url: 'MessageCost',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
18
fuintAdmin/src/api/sys/receiptPrint.js
Normal file
18
fuintAdmin/src/api/sys/receiptPrint.js
Normal file
@ -0,0 +1,18 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
|
||||
//
|
||||
export function addReceiptPrinting(data) {
|
||||
return request({
|
||||
url: 'receiptPrinting/addReceiptPrinting',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function getApi() {
|
||||
return request({
|
||||
url: 'receiptPrinting/queryReceiptPrintingList',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
BIN
fuintAdmin/src/assets/xiaopiao.jpg
Normal file
BIN
fuintAdmin/src/assets/xiaopiao.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 104 KiB |
File diff suppressed because it is too large
Load Diff
@ -397,9 +397,10 @@
|
||||
label="操作">
|
||||
<template slot-scope="scope">
|
||||
<div style="display: flex;justify-content: center;width: 100%">
|
||||
<div style="color: #409EFF;cursor: pointer;margin: 0 10px" v-hasPermi="['payment:edit']" @click="editRule(scope.row)">修改</div>
|
||||
<div style="color: #409EFF;cursor: pointer;margin: 0 10px" v-hasPermi="['payment:delete']" @click="deleteRule(scope.row)">删除</div>
|
||||
<div style="color: #409EFF;cursor: pointer;margin: 0 10px" @click="EnableRule(scope.row)">启用</div>
|
||||
<div style="color: #409EFF;cursor: pointer;margin: 0 10px" v-hasPermi="['payment:edit']" v-if="scope.row.status!= 'qy'" @click="editRule(scope.row,1)">修改</div>
|
||||
<div style="color: #409EFF;cursor: pointer;margin: 0 10px" v-hasPermi="['payment:delete']" v-if="scope.row.status!= 'qy'" @click="deleteRule(scope.row)">删除</div>
|
||||
<div style="color: #409EFF;cursor: pointer;margin: 0 10px" v-if="scope.row.status!= 'qy'" @click="EnableRule(scope.row)">启用</div>
|
||||
<div style="color: #409EFF;cursor: pointer;margin: 0 10px" v-if="scope.row.status!= 'jy'" @click="editRule(scope.row,2)">查看</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
@ -456,11 +457,11 @@
|
||||
<el-dialog :title="Ruletitle" :visible.sync="addRule">
|
||||
<el-form :model="formRule" ref="formRule" :rules="rules">
|
||||
<el-form-item label="规则名称" :label-width="formLabelWidth" prop="ruleName">
|
||||
<el-input v-model="formRule.ruleName" placeholder="请输入规则名称" autocomplete="off" style="width: 350px"></el-input>
|
||||
<el-input v-model="formRule.ruleName" placeholder="请输入规则名称" autocomplete="off" style="width: 350px" :disabled="!isEditable"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="规则描述" :label-width="formLabelWidth">
|
||||
<el-input type="textarea" v-model="formRule.description" placeholder="请输入规则描述" autocomplete="off"
|
||||
style="width: 350px"></el-input>
|
||||
style="width: 350px" :disabled="!isEditable"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="规则类型" :label-width="formLabelWidth" prop="ruleType">
|
||||
<div style="display: flex">
|
||||
@ -494,7 +495,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="交易占比" :label-width="formLabelWidth">
|
||||
|
||||
<el-input v-model="item.proportion" placeholder="请输入交易占比" autocomplete="off" style="width: 300px">
|
||||
<el-input v-model="item.proportion" placeholder="请输入交易占比" autocomplete="off" style="width: 300px" :disabled="!isEditable">
|
||||
<template slot="append">%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -691,7 +692,8 @@ import {
|
||||
deleteRuleConfig,
|
||||
editRuleConfig,
|
||||
getOilGunList,
|
||||
getRuleConfig
|
||||
getRuleConfig,
|
||||
listRuleConfig, listRuleConfigs
|
||||
} from "../../../api/payConfig/ruleConfig";
|
||||
import {selectChildByDeptId} from "../../../api/system/role";
|
||||
import {getPaymentParameterByDeptId} from "../../../api/payConfig/paymentParameter";
|
||||
@ -710,6 +712,7 @@ export default {
|
||||
// 规则周期
|
||||
ruleCycle: "singleDay",
|
||||
form: {
|
||||
isEditable: false,
|
||||
name: '',
|
||||
region: '',
|
||||
date1: '',
|
||||
@ -782,6 +785,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.tableData1list();
|
||||
},
|
||||
methods: {
|
||||
submitEnable(val){
|
||||
@ -923,9 +927,15 @@ export default {
|
||||
this.payChannel = res.data
|
||||
})
|
||||
},
|
||||
editRule(data){
|
||||
editRule(data, index){
|
||||
getRuleConfig(data.id).then(res => {
|
||||
this.Ruletitle = '修改商户信息'
|
||||
if (index === 2) {
|
||||
this.Ruletitle = '查看商户信息';
|
||||
this.isEditable = false;
|
||||
}else {
|
||||
this.Ruletitle = '修改商户信息';
|
||||
this.isEditable = true;
|
||||
}
|
||||
this.addRule = true
|
||||
this.formRule = res.data
|
||||
this.formRule.ruleList.forEach(item => {
|
||||
@ -951,6 +961,7 @@ export default {
|
||||
return deleteRuleConfig(data.id);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.tableData1list();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {
|
||||
});
|
||||
@ -1213,6 +1224,25 @@ export default {
|
||||
this.oilConfigList = response.data;
|
||||
})
|
||||
},
|
||||
// 商户分账列表
|
||||
tableData1list() {
|
||||
listRuleConfigs().then(response => {
|
||||
|
||||
console.log(response.data + " -==- -==-")
|
||||
|
||||
this.tableData1 = response.data;
|
||||
/*this.merchantList.forEach(item => {
|
||||
if (item.isOpenRule == "1") {
|
||||
this.value1 = false;
|
||||
this.value = true;
|
||||
}
|
||||
})
|
||||
})
|
||||
listOilConfig().then(response => {
|
||||
this.oilConfigList = response.data;
|
||||
})*/
|
||||
})
|
||||
},
|
||||
open() {
|
||||
this.$confirm('此操作会发布事件, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
|
@ -1,15 +1,340 @@
|
||||
<template>
|
||||
<div>
|
||||
小票打印配置
|
||||
<div class="container">
|
||||
<img :src="logo" alt="Logo" style="margin-left: 80px;" class="logo">
|
||||
<div class="form-container">
|
||||
<el-form ref="form" :model="form" label-width="120px">
|
||||
<p style="font-weight: bold;">LOGO设置</p>
|
||||
<div class="radio-and-upload">
|
||||
<el-radio-group v-model="form.logoSet" style="display: inline-block;">
|
||||
<el-radio v-model="logoSet" label="0">自定义小票LOGO</el-radio>
|
||||
<el-radio v-model="logoSet" label="1">不打印小票LOGO</el-radio>
|
||||
</el-radio-group>
|
||||
<!-- logo -->
|
||||
<el-upload
|
||||
:action="uploadAction"
|
||||
list-type="picture-card"
|
||||
:class="{hide:hideUpload}"
|
||||
:file-list="uploadFiles"
|
||||
:auto-upload="true"
|
||||
:show-file-list="false"
|
||||
:headers="uploadHeader"
|
||||
:on-success="handleUploadSuccessCover">
|
||||
<img
|
||||
v-if="this.form.logeImage"
|
||||
:src="imagePath + this.form.logeImage"
|
||||
class="list-img"
|
||||
style="width: 100%; height: auto;"
|
||||
/>
|
||||
<i v-if="!this.form.logeImage" class="el-icon-plus"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
<p style="font-weight: bold;">抬头、脚注设置</p>
|
||||
<el-checkbox-group v-model="form.headfootSets" class="vertical-checkbox-group">
|
||||
<el-checkbox :label="0">店铺名称</el-checkbox>
|
||||
<div class="checkbox-input-container">
|
||||
<el-checkbox :label="1">标题</el-checkbox>
|
||||
<el-input v-model="form.title" style="width: 300px" placeholder="请输入标题"></el-input>
|
||||
</div>
|
||||
|
||||
<div class="checkbox-input-container">
|
||||
<el-checkbox :label="2">小票类型</el-checkbox>
|
||||
<span style="font-size: 10px">注:会员充值、一件加油、收银台消费</span>
|
||||
</div>
|
||||
|
||||
<div class="checkbox-input-container">
|
||||
<el-checkbox :label="3">脚注</el-checkbox>
|
||||
<el-input v-model="form.foot" style="width: 300px" placeholder="请输入脚注"></el-input>
|
||||
</div>
|
||||
|
||||
</el-checkbox-group>
|
||||
<p style="font-weight: bold;">顶部设置</p>
|
||||
<el-checkbox-group v-model="form.topSets">
|
||||
<el-checkbox :label="0" >订单编号</el-checkbox>
|
||||
<el-checkbox :label="1" >会员卡号</el-checkbox>
|
||||
<el-checkbox :label="2" >车牌号</el-checkbox>
|
||||
<el-checkbox :label="3" >会员等级</el-checkbox>
|
||||
<el-checkbox :label="4" >手机号码</el-checkbox>
|
||||
<el-checkbox :label="5" >会员余额</el-checkbox>
|
||||
<el-checkbox :label="6" >会员积分</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
<p style="font-weight: bold;">中部设置</p>
|
||||
<span style="font-size: 15px;font-weight: lighter">该区域为小票模板的固定排版,无法调整!</span>
|
||||
<p style="font-weight: bold;">底部设置</p>
|
||||
<el-checkbox-group v-model="form.bottomSets">
|
||||
<el-checkbox :label="0" >操作时间</el-checkbox>
|
||||
<el-checkbox :label="1" >联系方式</el-checkbox>
|
||||
<el-checkbox :label="2" >操作员</el-checkbox>
|
||||
<el-checkbox :label="3" >地址</el-checkbox>
|
||||
<el-checkbox :label="4" >备注</el-checkbox>
|
||||
<el-input v-model="form.remarks" style="width: 300px" placeholder="请输入备注"></el-input>
|
||||
</el-checkbox-group>
|
||||
<p style="font-weight: bold;">二维码设置</p>
|
||||
<div class="radio-and-upload">
|
||||
<el-radio-group v-model="form.codeSet" >
|
||||
<el-radio v-model="logoSet" label="1">自定义二维码</el-radio>
|
||||
<el-radio v-model="logoSet" label="2">不打印二维码</el-radio>
|
||||
</el-radio-group>
|
||||
<!-- 二维码 -->
|
||||
<el-upload
|
||||
:action="uploadAction"
|
||||
list-type="picture-card"
|
||||
:class="{hide:hideUpload}"
|
||||
:file-list="uploadFiles"
|
||||
:auto-upload="true"
|
||||
:show-file-list="false"
|
||||
:headers="uploadHeader"
|
||||
:on-success="ermUploadSuccessCover">
|
||||
<img
|
||||
v-if="this.form.codeImage"
|
||||
:src="imagePath + this.form.codeImage"
|
||||
class="list-img"
|
||||
style="width: 100%; height: auto"
|
||||
/>
|
||||
<i v-if="!this.form.codeImage" class="el-icon-plus"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm3('form')">保存并同步更新小票样式</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
|
||||
import { getToken } from '../../utils/auth'
|
||||
import {addReceiptPrinting, getApi} from "@/api/sys/receiptPrint";
|
||||
import {getListApi} from "@/api/sys/message";
|
||||
export default {
|
||||
data(){
|
||||
return{
|
||||
|
||||
checked: true,
|
||||
form: {
|
||||
id:'',
|
||||
topSets: [],
|
||||
bottomSets: [],
|
||||
headfootSets: [],
|
||||
codeSet:'',
|
||||
logoSet: '',
|
||||
logeImage: '',
|
||||
remarks:'',
|
||||
codeImage:'',
|
||||
title:'',
|
||||
foot:'',
|
||||
},
|
||||
form2: {
|
||||
id:'',
|
||||
topSets: [],
|
||||
bottomSets: [],
|
||||
headfootSets: [],
|
||||
codeSet:'',
|
||||
logoSet: '',
|
||||
logeImage: '',
|
||||
remarks:'',
|
||||
codeImage:'',
|
||||
title:'',
|
||||
foot:'',
|
||||
},
|
||||
logoSet: '', // 单选框的值,
|
||||
ding: '',
|
||||
logo:require('@/assets/xiaopiao.jpg'),
|
||||
imageUrl: '',
|
||||
// 上传地址
|
||||
uploadAction: process.env.VUE_APP_BASE_API + 'backendApi/file/upload',
|
||||
uploadHeader: { 'Access-Token' : getToken() }, // 上传文件列表
|
||||
uploadFiles: [
|
||||
{name:"nihao",
|
||||
url:'http://localhost:8008/static/uploadImages/20231103/ffbbe7d3ee1441fdaf706802fa0f176a.png'}
|
||||
],
|
||||
// 图片根目录
|
||||
imagePath: process.env.VUE_APP_BASE_API,
|
||||
// 隐藏上传
|
||||
hideUpload: false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
getApi().then(res => {
|
||||
if (res.code === 200) {
|
||||
if (res.data != null) {
|
||||
this.form = res.data;
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 上传logo
|
||||
handleUploadSuccessCover(file) {
|
||||
this.form.logeImage = file.data.fileName;
|
||||
},
|
||||
// 二维码
|
||||
ermUploadSuccessCover(file) {
|
||||
this.form.codeImage = file.data.fileName;
|
||||
},
|
||||
submitForm3() {
|
||||
addReceiptPrinting(this.cle()) .then(res => {
|
||||
if (res.code === 200) {
|
||||
this.$message({
|
||||
message: '保存成功',
|
||||
type: 'success'
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: res.msg,
|
||||
type: 'error'
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
cle() {
|
||||
this.form2.id=this.form.id
|
||||
this.form2.topSets= this.form.topSets
|
||||
this.form2.bottomSets= this.form.bottomSets
|
||||
this.form2.headfootSets= this.form.headfootSets
|
||||
this.form2.codeSet= this.form.codeSet
|
||||
this.form2.logoSet= this.form.logoSet
|
||||
this.form2.logeImage= this.form.logeImage
|
||||
this.form2.remarks= this.form.remarks
|
||||
this.form2.codeImage= this.form.codeImage
|
||||
this.form2.title= this.form.title
|
||||
this.form2.foot= this.form.foot
|
||||
return this.form2;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
.checkbox-input-container {
|
||||
display: flex;
|
||||
align-items: center; /* 垂直居中对齐 */
|
||||
gap: 10px; /* 设置复选框和输入框之间的间距 */
|
||||
}
|
||||
|
||||
.input-field {
|
||||
width: 300px; /* 设置输入框宽度 */
|
||||
}
|
||||
|
||||
.vertical-checkbox-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.vertical-checkbox-group .el-checkbox {
|
||||
margin-bottom: 8px; /* 调整间距 */
|
||||
}
|
||||
|
||||
|
||||
.list-img{
|
||||
width: 98px;
|
||||
height: 98px;
|
||||
}
|
||||
.avatar-uploader-icon {
|
||||
font-size: 28px;
|
||||
color: #8c939d;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 5px; /* 减小间距 */
|
||||
}
|
||||
|
||||
.upload-text {
|
||||
font-size: 8px;
|
||||
color: #606266;
|
||||
}
|
||||
|
||||
.radio-and-upload {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
::v-deep .el-radio{
|
||||
display: block;
|
||||
margin:10px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 200px; /* 根据需要调整图片宽度 */
|
||||
height: auto; /* 保持图片比例 */
|
||||
margin-right: 100px; /* 图片与内容之间的间距 */
|
||||
}
|
||||
|
||||
.content {
|
||||
flex: 1; /* 使内容区域占据剩余空间 */
|
||||
}
|
||||
|
||||
.radio-and-upload {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.avatar-uploader {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border: 1px dashed #d9d9d9;
|
||||
border-radius: 6px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.avatar-uploader .avatar {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.avatar-uploader-icon {
|
||||
font-size: 28px;
|
||||
color: #8c939d;
|
||||
}
|
||||
|
||||
avatar-uploader .el-upload {
|
||||
border: 1px dashed #d9d9d9;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.avatar-uploader .el-upload:hover {
|
||||
border-color: #409EFF;
|
||||
}
|
||||
.avatar-uploader-icon {
|
||||
font-size: 28px;
|
||||
color: #8c939d;
|
||||
width: 178px;
|
||||
height: 178px;
|
||||
line-height: 178px;
|
||||
text-align: center;
|
||||
}
|
||||
.avatar {
|
||||
width: 178px;
|
||||
height: 178px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.form-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
/* 使按钮居中对齐 */
|
||||
.el-form-item {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue
Block a user