This commit is contained in:
YeMingfei666 2024-11-23 17:52:04 +08:00
commit adfdee835b
9 changed files with 222 additions and 24 deletions

View File

@ -3,13 +3,13 @@ ENV = 'production'
# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇Nginx 配置
# 接口地址,注意协议,如果你没有配置 ssl需要将 https 改为 http
# 测试
# VUE_APP_BASE_API = 'https://admintestpapi.sxczgkj.cn'
VUE_APP_BASE_API = 'https://admintestpapi.sxczgkj.cn'
# 生产
# VUE_APP_BASE_API = 'https://cashieradmin.sxczgkj.cn'
# 预发布接口
VUE_APP_BASE_API = 'https://pre-cashieradmin.sxczgkj.cn'
# VUE_APP_BASE_API = 'https://pre-cashieradmin.sxczgkj.cn'
# VUE_APP_BASE_API = 'http://192.168.2.98:8000'
# 如果接口是 http 形式, wss 需要改为 ws

View File

@ -15,14 +15,26 @@ export function tbPrintMachine(data, method = "post") {
});
}
// 开票
export function getbinding(data) {
return request({
url: "/api/tbShopInfo/binding",
method: "post",
data: {
shopId: localStorage.getItem("shopId"),
...data
}
});
}
/**
* 获取应用中心列表
* @returns
*/
export function appCenterGet() {
export function appCenterGet(params) {
return request({
url: "/api/appCenter",
method: "get"
method: "get",
params
});
}

View File

@ -2,6 +2,15 @@
<div class="app-container">
<div class="title">应用中心</div>
<div class="list">
<div class="item" @click="upPop">
<img src="./kp.png" class="icon">
<div class="info">
<div class="name">开票</div>
<div class="intro">
</div>
</div>
</div>
<div class="item" v-for="item in list" :key="item.id" @click="to(item)">
<img :src="item.coverImg" class="icon">
<div class="info">
@ -12,21 +21,64 @@
</div>
</div>
</div>
<!-- 弹窗 -->
<el-dialog :title="title" :visible.sync="dialogVisible" width="30%" >
<el-form :model="forms">
<el-form-item label="账号:" label-width="60px">
<el-input v-model="forms.account" :disabled="title != '绑定数点票账号'" autocomplete="off"></el-input>
</el-form-item>
<!-- <el-form-item label="密码/验证码" label-width="120px">
<el-input v-model="forms.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="开票项目:" label-width="120px">
<el-input v-model="forms.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="开票类型:" label-width="120px">
<el-input v-model="forms.name" autocomplete="off"></el-input>
</el-form-item> -->
<div style="text-align: right;" v-if="title == '绑定数点票账号'">联系区域经理开通</div>
<div style="text-align: center;" v-else @click="title = '绑定数点票账号'">更换绑定</div>
<!-- <el-form-item label="活动区域" label-width="120px">
<el-select v-model="form.region" placeholder="请选择活动区域">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item> -->
</el-form>
<span slot="footer" class="dialog-footer" v-if="title == '绑定数点票账号'">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="sumbitEvent"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { appCenterGet } from "@/api/application";
import { appCenterGet, getbinding } from "@/api/application";
export default {
data() {
return {
list: []
list: [],
dialogVisible: false,
forms: {},
title: '绑定数点票账号',
}
},
mounted() {
this.appCenterGet()
this.getbinding()
},
methods: {
upPop() {
this.dialogVisible = true
},
sumbitEvent() {
if (this.forms.account) {
this.dialogVisible = false
this.getbinding(this.forms)
}
},
//
to(item) {
localStorage.setItem('applocation', JSON.stringify(item))
@ -42,7 +94,24 @@ export default {
} catch (error) {
console.log(error);
}
},
//
async getbinding(d = "") {
try {
const res = await getbinding(d)
if (res) {
this.forms = res.store
this.title = '数电票账号已绑定'
} else {
this.title = '绑定数点票账号'
this.forms = {}
}
} catch (error) {
console.log(error);
}
}
}
}
</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

View File

@ -81,9 +81,9 @@
</el-form-item>
<el-form-item label="发放数量" prop="number" style="width: 100%;">
<el-input v-model="form.number" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" placeholder="" style="width: 200px;" />
<el-tooltip class="item" effect="dark" content="限用户自行领取,(当库存为 0时集草等活动仍会赠送" placement="top-start">
<!-- <el-tooltip class="item" effect="dark" content="限用户自行领取,(当库存为 0时集草等活动仍会赠送" placement="top-start">
<i class="el-icon-question" />
</el-tooltip>
</el-tooltip> -->
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@ -97,7 +97,7 @@
<el-input v-model="form.title" placeholder="" style="width: 289px;" />
</el-form-item>
<el-form-item label="使用门槛" prop="fullAmount">
额满<el-input v-model="form.fullAmount" oninput="value= value.replace(/[^\d|\.]/g, '')" placeholder="" style="width: 100px;margin: 0 23px;"><template slot="suffix"></template></el-input>可用
额满<el-input v-model="form.fullAmount" oninput="value= value.replace(/[^\d|\.]/g, '')" placeholder="" style="width: 100px;margin: 0 23px;"><template slot="suffix"></template></el-input>可用
</el-form-item>
<el-form-item label="有效期类型" style="width: 100%;">
<el-radio-group v-model="form.validityType">
@ -158,9 +158,9 @@
</el-form-item>
<el-form-item label="发放数量" prop="number" style="width: 100%;">
<el-input v-model="form.number" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" placeholder="" style="width: 200px;" />
<el-tooltip class="item" effect="dark" content="限用户自行领取,(当库存为 0时集草等活动仍会赠送" placement="top-start">
<!-- <el-tooltip class="item" effect="dark" content="限用户自行领取,(当库存为 0时集草等活动仍会赠送" placement="top-start">
<i class="el-icon-question" />
</el-tooltip>
</el-tooltip> -->
</el-form-item>
<el-form-item label="赠送商品" prop="products">
<div>

View File

@ -91,7 +91,7 @@
<div class="head-container">
<el-pagination
:total="tableData.total"
:current-page="tableData.page + 1"
:current-page="tableData.page"
:page-size="tableData.size"
layout="total, sizes, prev, pager, next, jumper"
@current-change="paginationChange"
@ -130,7 +130,7 @@ export default {
resetQuery: null,
tableData: {
data: [],
page: 0,
page: 1,
size: 10,
loading: false,
total: 0
@ -146,7 +146,7 @@ export default {
*/
async getTableData() {
// eslint-disable-next-line no-unused-vars, prefer-const
console.log(this.couponId)
// console.log(this.couponId)
// eslint-disable-next-line no-unused-vars, prefer-const
let res = await queryReceive({
@ -168,8 +168,13 @@ export default {
* 时间选择监听
*/
queryTimeChange(e) {
this.query.startTime = e[0]
this.query.endTime = e[1]
if (e) {
this.query.startTime = e[0]
this.query.endTime = e[1]
} else {
this.query.startTime = ''
this.query.endTime = ''
}
},
/**
@ -200,7 +205,8 @@ export default {
},
//
paginationChange(e) {
this.tableData.page = e - 1
this.tableData.page = e
this.query.page = e
this.getTableData()
},
/**

View File

@ -173,7 +173,7 @@ export default {
async profilepicture(d) {
this.handleSpeak(d.callNum)
this.handleSpeak('请'+d.callNum+'用餐')
let res = await callTablecall({
shopId: localStorage.getItem('shopId'),
callQueueId: d.id

View File

@ -0,0 +1,109 @@
<template>
<div class="app-container">
<div class="title">营销中心</div>
<div class="list">
<div class="item" v-for="item in list" :key="item.id" @click="to(item)">
<img :src="item.coverImg" class="icon">
<div class="info">
<div class="name">{{ item.name }}</div>
<div class="intro">
{{ item.value }}
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { appCenterGet } from "@/api/application";
export default {
data() {
return {
list: [],
}
},
mounted() {
this.appCenterGet()
},
methods: {
//
to(item) {
localStorage.setItem('applocation', JSON.stringify(item))
this.$router.push({
name: item.absUrl
})
},
//
async appCenterGet() {
try {
const res = await appCenterGet({
type:'market'
})
this.list = res
} catch (error) {
console.log(error);
}
},
}
}
</script>
<style scoped lang="scss">
.title {
font-size: 24px;
font-weight: bold;
padding-top: 10px;
}
.list {
padding: 20px 0;
display: flex;
flex-wrap: wrap;
gap: 14px;
.item {
width: 400px;
background-color: #f5f5f5;
display: flex;
align-items: center;
padding: 14px;
&:hover {
cursor: pointer;
.info {
.name {
color: #39D47A;
}
.intro {
color: #39D47A;
}
}
}
.icon {
width: 40px;
height: 40px;
object-fit: cover;
}
.info {
flex: 1;
padding-left: 10px;
.name {
font-weight: bold;
}
.intro {
color: #999;
margin-top: 4px;
}
}
}
}
</style>

View File

@ -189,11 +189,13 @@
style="margin-left: 20px !important;">
<el-button type="text" icon="el-icon-edit">编辑</el-button>
</router-link> -->
<el-button type="text" icon="el-icon-edit" @click="toPath('/product/add_shop', scope.row)">编辑</el-button>
<el-popconfirm title="确定删除吗?" @confirm="delTableHandle([scope.row.id])">
<el-button type="text" icon="el-icon-delete" style="margin-left: 20px !important;"
slot="reference">删除</el-button>
</el-popconfirm>
<div style="display: flex;gap: 10px;">
<el-button type="text" icon="el-icon-edit" @click="toPath('/product/add_shop', scope.row)"
v-if="scope.row.typeEnum">编辑</el-button>
<el-popconfirm title="确定删除吗?" @confirm="delTableHandle([scope.row.id])">
<el-button type="text" icon="el-icon-delete" slot="reference">删除</el-button>
</el-popconfirm>
</div>
</template>
</el-table-column>
</el-table>
@ -244,7 +246,7 @@ import { tbProductListV2, tbShopCategoryGet, tbProductDelete, tbProductIsHot, up
import { hasPermission } from '@/utils/limits.js'
export default {
name:'product',
name: 'product',
components: {
BindCons,
StockHistory