Merge branch 'dev' of https://e.coding.net/g-cphe0354/yinshoukeguanliduan/management into ymf
This commit is contained in:
commit
adfdee835b
|
|
@ -3,13 +3,13 @@ ENV = 'production'
|
||||||
# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置
|
# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置
|
||||||
# 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http
|
# 接口地址,注意协议,如果你没有配置 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://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'
|
# VUE_APP_BASE_API = 'http://192.168.2.98:8000'
|
||||||
# 如果接口是 http 形式, wss 需要改为 ws
|
# 如果接口是 http 形式, wss 需要改为 ws
|
||||||
|
|
|
||||||
|
|
@ -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
|
* @returns
|
||||||
*/
|
*/
|
||||||
export function appCenterGet() {
|
export function appCenterGet(params) {
|
||||||
return request({
|
return request({
|
||||||
url: "/api/appCenter",
|
url: "/api/appCenter",
|
||||||
method: "get"
|
method: "get",
|
||||||
|
params
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,15 @@
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<div class="title">应用中心</div>
|
<div class="title">应用中心</div>
|
||||||
<div class="list">
|
<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)">
|
<div class="item" v-for="item in list" :key="item.id" @click="to(item)">
|
||||||
<img :src="item.coverImg" class="icon">
|
<img :src="item.coverImg" class="icon">
|
||||||
<div class="info">
|
<div class="info">
|
||||||
|
|
@ -12,21 +21,64 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { appCenterGet } from "@/api/application";
|
import { appCenterGet, getbinding } from "@/api/application";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
list: []
|
list: [],
|
||||||
|
dialogVisible: false,
|
||||||
|
forms: {},
|
||||||
|
title: '绑定数点票账号',
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.appCenterGet()
|
this.appCenterGet()
|
||||||
|
this.getbinding()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
upPop() {
|
||||||
|
this.dialogVisible = true
|
||||||
|
},
|
||||||
|
sumbitEvent() {
|
||||||
|
if (this.forms.account) {
|
||||||
|
this.dialogVisible = false
|
||||||
|
this.getbinding(this.forms)
|
||||||
|
}
|
||||||
|
},
|
||||||
// 跳转
|
// 跳转
|
||||||
to(item) {
|
to(item) {
|
||||||
localStorage.setItem('applocation', JSON.stringify(item))
|
localStorage.setItem('applocation', JSON.stringify(item))
|
||||||
|
|
@ -42,7 +94,24 @@ export default {
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(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>
|
</script>
|
||||||
|
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 746 B |
|
|
@ -81,9 +81,9 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="发放数量" prop="number" style="width: 100%;">
|
<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-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" />
|
<i class="el-icon-question" />
|
||||||
</el-tooltip>
|
</el-tooltip> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
|
|
@ -97,7 +97,7 @@
|
||||||
<el-input v-model="form.title" placeholder="" style="width: 289px;" />
|
<el-input v-model="form.title" placeholder="" style="width: 289px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="使用门槛" prop="fullAmount">
|
<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>
|
||||||
<el-form-item label="有效期类型" style="width: 100%;">
|
<el-form-item label="有效期类型" style="width: 100%;">
|
||||||
<el-radio-group v-model="form.validityType">
|
<el-radio-group v-model="form.validityType">
|
||||||
|
|
@ -158,9 +158,9 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="发放数量" prop="number" style="width: 100%;">
|
<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-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" />
|
<i class="el-icon-question" />
|
||||||
</el-tooltip>
|
</el-tooltip> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="赠送商品" prop="products">
|
<el-form-item label="赠送商品" prop="products">
|
||||||
<div>
|
<div>
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<el-pagination
|
<el-pagination
|
||||||
:total="tableData.total"
|
:total="tableData.total"
|
||||||
:current-page="tableData.page + 1"
|
:current-page="tableData.page"
|
||||||
:page-size="tableData.size"
|
:page-size="tableData.size"
|
||||||
layout="total, sizes, prev, pager, next, jumper"
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
@current-change="paginationChange"
|
@current-change="paginationChange"
|
||||||
|
|
@ -130,7 +130,7 @@ export default {
|
||||||
resetQuery: null,
|
resetQuery: null,
|
||||||
tableData: {
|
tableData: {
|
||||||
data: [],
|
data: [],
|
||||||
page: 0,
|
page: 1,
|
||||||
size: 10,
|
size: 10,
|
||||||
loading: false,
|
loading: false,
|
||||||
total: 0
|
total: 0
|
||||||
|
|
@ -146,7 +146,7 @@ export default {
|
||||||
*/
|
*/
|
||||||
async getTableData() {
|
async getTableData() {
|
||||||
// eslint-disable-next-line no-unused-vars, prefer-const
|
// 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
|
// eslint-disable-next-line no-unused-vars, prefer-const
|
||||||
let res = await queryReceive({
|
let res = await queryReceive({
|
||||||
|
|
@ -168,8 +168,13 @@ export default {
|
||||||
* 时间选择监听
|
* 时间选择监听
|
||||||
*/
|
*/
|
||||||
queryTimeChange(e) {
|
queryTimeChange(e) {
|
||||||
this.query.startTime = e[0]
|
if (e) {
|
||||||
this.query.endTime = e[1]
|
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) {
|
paginationChange(e) {
|
||||||
this.tableData.page = e - 1
|
this.tableData.page = e
|
||||||
|
this.query.page = e
|
||||||
this.getTableData()
|
this.getTableData()
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,7 @@ export default {
|
||||||
|
|
||||||
|
|
||||||
async profilepicture(d) {
|
async profilepicture(d) {
|
||||||
this.handleSpeak(d.callNum)
|
this.handleSpeak('请'+d.callNum+'用餐')
|
||||||
let res = await callTablecall({
|
let res = await callTablecall({
|
||||||
shopId: localStorage.getItem('shopId'),
|
shopId: localStorage.getItem('shopId'),
|
||||||
callQueueId: d.id
|
callQueueId: d.id
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -189,11 +189,13 @@
|
||||||
style="margin-left: 20px !important;">
|
style="margin-left: 20px !important;">
|
||||||
<el-button type="text" icon="el-icon-edit">编辑</el-button>
|
<el-button type="text" icon="el-icon-edit">编辑</el-button>
|
||||||
</router-link> -->
|
</router-link> -->
|
||||||
<el-button type="text" icon="el-icon-edit" @click="toPath('/product/add_shop', scope.row)">编辑</el-button>
|
<div style="display: flex;gap: 10px;">
|
||||||
<el-popconfirm title="确定删除吗?" @confirm="delTableHandle([scope.row.id])">
|
<el-button type="text" icon="el-icon-edit" @click="toPath('/product/add_shop', scope.row)"
|
||||||
<el-button type="text" icon="el-icon-delete" style="margin-left: 20px !important;"
|
v-if="scope.row.typeEnum">编辑</el-button>
|
||||||
slot="reference">删除</el-button>
|
<el-popconfirm title="确定删除吗?" @confirm="delTableHandle([scope.row.id])">
|
||||||
</el-popconfirm>
|
<el-button type="text" icon="el-icon-delete" slot="reference">删除</el-button>
|
||||||
|
</el-popconfirm>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
@ -244,7 +246,7 @@ import { tbProductListV2, tbShopCategoryGet, tbProductDelete, tbProductIsHot, up
|
||||||
import { hasPermission } from '@/utils/limits.js'
|
import { hasPermission } from '@/utils/limits.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name:'product',
|
name: 'product',
|
||||||
components: {
|
components: {
|
||||||
BindCons,
|
BindCons,
|
||||||
StockHistory
|
StockHistory
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue