This commit is contained in:
大魔王 2024-08-31 16:53:25 +08:00
parent 64adcf9782
commit 40023d01d0
9 changed files with 1079 additions and 130 deletions

View File

@ -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) {

View File

@ -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'
})
}

View File

@ -41,3 +41,11 @@ export function updateCostApi(data) {
data: data
})
}
export function getCostReListApi(query) {
return request({
url: 'MessageCost/getRechargeList',
method: 'get',
params: query
})
}

View 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
})
}

View 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'
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

File diff suppressed because it is too large Load Diff

View File

@ -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: '确定',

View File

@ -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>