3 Commits

Author SHA1 Message Date
gyq
6a20930a7d 优化交班记录 2026-04-09 14:51:10 +08:00
gyq
506dcbb804 优化 2026-04-08 15:07:19 +08:00
gyq
75e46ec6dd 优化首页 2026-04-02 16:59:48 +08:00
8 changed files with 66 additions and 140 deletions

View File

@@ -7,8 +7,8 @@ VITE_APP_BASE_API=/dev-api
# 接口地址
# VITE_APP_API_URL=https://tapi.cashier.sxczgkj.cn/ # 测试
VITE_APP_API_URL=https://cashier.sxczgkj.com/ # 正式
# VITE_APP_API_URL=http://192.168.1.42/ # 本地
# VITE_APP_API_URL=https://cashier.sxczgkj.com/ # 正式
VITE_APP_API_URL=http://192.168.1.42/ # 本地
VITE_APP_API_PHP_URL=http://192.168.1.42:8000 #php抖音美团测试环境
VITE_APP_API_PHP_IMPORT_URL=http://192.168.1.42:8789 #本地php批量导入
# VITE_APP_API_PHP_IMPORT_URL=https://diftcs.sxczgkj.com #本地线上php批量导入

View File

@@ -4,10 +4,10 @@
<el-table-column prop="shopName" align="center" label="商户名称" />
<el-table-column prop="staffName" align="center" label="职员名称" />
<el-table-column prop="orderCount" align="center" label="订单数量" />
<el-table-column prop="handAmount" align="center" label="应交金额" />
<el-table-column prop="quickInAmount" align="center" label="快捷收款金额" />
<el-table-column prop="orderTurnover" align="center" label="应交金额" />
<el-table-column prop="balance" align="center" label="余额支付" />
<el-table-column prop="refundAmount" align="center" label="退款金额" />
<el-table-column prop="handAmount" align="center" label="总收入" />
<el-table-column prop="turnover" align="center" label="总收入" />
<el-table-column prop="loginTime" align="center" label="开始时间" />
<el-table-column prop="handoverTime" align="center" label="交班时间" />
<el-table-column label="操作" align="center">

View File

@@ -2,7 +2,6 @@ import printerApi, { type addRequest } from "@/api/account/printer";
import { options } from './config'
import type { IModalConfig } from "@/components/CURD/types";
import { c } from "vite/dist/node/moduleRunnerTransport.d-CXw_Ws6P";
const modalConfig: IModalConfig<addRequest> = {
pageName: "sys:user",
@@ -16,13 +15,9 @@ const modalConfig: IModalConfig<addRequest> = {
},
formAction: function (data) {
let obj = { ...data }
console.log("打印类型", data);
obj.printType = data.printType.join(',')
obj.categoryIds = JSON.stringify(data.categoryIdsArr)
obj.categoryList = JSON.stringify(data.categoryIdsArr)
if (data.classifyPrint == 0) {
obj.categoryIds = ''
}
// obj.categoryIds = '[' + data.categoryIdsArr.join(',') + ']'
return printerApi.add(obj);
},

View File

@@ -20,9 +20,6 @@ const modalConfig: IModalConfig<editRequest> = {
obj.categoryIds = JSON.stringify(data.categoryIdsArr)
obj.categoryList = JSON.stringify(data.categoryIdsArr)
}
if (data.classifyPrint == 0) {
obj.categoryIds = ''
}
return printerApi.edit(obj);
},
beforeSubmit(data) {

View File

@@ -2,35 +2,23 @@
<div class="app-container">
<!-- 列表 -->
<!-- 搜索 -->
<page-search
ref="searchRef"
:search-config="searchConfig"
@query-click="handleQueryClick"
@reset-click="handleResetClick"
/>
<page-search ref="searchRef" :search-config="searchConfig" @query-click="handleQueryClick"
@reset-click="handleResetClick" />
<!-- 列表 -->
<page-content
ref="contentRef"
:content-config="contentConfig"
@add-click="handleAddClick"
@edit-click="handleEditClick"
@export-click="handleExportClick"
@search-click="handleSearchClick"
@toolbar-click="handleToolbarClick"
@operat-click="handleOperatClick"
@filter-change="handleFilterChange"
>
<page-content ref="contentRef" :content-config="contentConfig" @add-click="handleAddClick"
@edit-click="handleEditClick" @export-click="handleExportClick" @search-click="handleSearchClick"
@toolbar-click="handleToolbarClick" @operat-click="handleOperatClick" @filter-change="handleFilterChange">
<template #status="scope">
<el-tag :type="scope.row[scope.prop] == 1 ? 'success' : 'info'">
{{ scope.row[scope.prop] == 1 ? "启用" : "禁用" }}
</el-tag>
</template>
<template #contentType="scope">
{{ scope.row.contentType == "yxyPrinter" ? "云想印" : "飞鹅" }}
{{ scope.row.contentType == 'yxyPrinter' ? "云想印" : "飞鹅" }}
</template>
<template #subType="scope">
{{ scope.row.subType == "label" ? "标签" : "小票" }}
{{ scope.row.subType == 'label' ? "标签" : "小票" }}
</template>
<template #caozuo="scope">
{{ scope }}
@@ -40,12 +28,8 @@
</template>
<template #operate="scope">
<div v-if="scope.row.connectionType != 'USB'">
<el-button @click="handleEditClick(scope.row)" icon="Edit" type="primary" link>
编辑
</el-button>
<el-button @click="handdeleteevent(scope.row)" icon="Delete" type="danger" link>
删除
</el-button>
<el-button @click="handleEditClick(scope.row)" icon="Edit" type="primary" link>编辑</el-button>
<el-button @click="handdeleteevent(scope.row)" icon="Delete" type="danger" link>删除</el-button>
</div>
</template>
<!-- <template #mobile="scope">
@@ -71,11 +55,7 @@
</page-modal>
<!-- 编辑 -->
<page-modal
ref="editModalRef"
:modal-config="editModalConfig"
@submit-click="handleSubmitClick"
>
<page-modal ref="editModalRef" :modal-config="editModalConfig" @submit-click="handleSubmitClick">
<template #gender="scope">
<Dict v-model="scope.formData[scope.prop]" code="gender" v-bind="scope.attrs" />
</template>
@@ -118,11 +98,11 @@ const {
onMounted(() => {
getPrinterType();
});
let PrinterTypeList = ref([]);
let PrinterTypeList = ref([])
// 获取商品分类
async function getPrinterType() {
let res = await UserAPI.getPrinterType();
PrinterTypeList.value = res.records;
PrinterTypeList.value = res.records
}
function handdeleteevent(item) {
ElMessageBox.confirm("确认删除?", "警告", {
@@ -134,6 +114,7 @@ function handdeleteevent(item) {
ElMessage.success("删除成功");
handleQueryClick();
});
});
}
// 新增
@@ -146,15 +127,11 @@ async function handleEditClick(row: IObject) {
editModalRef.value?.setModalVisible();
// 根据id获取数据进行填充
let data = await UserAPI.get(row.id);
data.printType = data.printType.split(",");
data.printType = data.printType.split(',');
if (data.categoryIds) {
data.categoryIdsArr = JSON.parse(data.categoryIds);
} else {
data.categoryIdsArr = [];
data.categoryIdsArr = JSON.parse(data.categoryIds)
}
console.log(data.categoryIdsArr);
console.log(data);
data.classifyPrint = data.classifyPrint * 1;

View File

@@ -3,7 +3,8 @@
<div class="item_wrap">
<div class="title">您好欢迎登录</div>
<div class="item_list">
<div class="item" v-for="(item, index) in quickStore.quickMenus" :key="item.id" @click="menuClick(item.menuId)">
<div class="item" v-for="(item, index) in quickStore.quickMenus.splice(0, 6)" :key="item.id"
@click="menuClick(item.menuId)">
<img class="icon" :src="icons[index + 1]" alt="">
{{ returnMenuName(item.menuId) }}
</div>

View File

@@ -93,13 +93,8 @@
<div>
实收金额
<span style="color: red">{{ detail.payAmount }}</span>
<el-button
v-if="detail.status != 'unpaid' && detail.refundAmount < detail.payAmount"
size="small"
type="danger"
class="u-m-l-10"
@click="tuikuan()"
>
<el-button v-if="detail.status != 'unpaid' && detail.refundAmount < detail.payAmount" size="small"
type="danger" class="u-m-l-10" @click="tuikuan()">
<span>退款</span>
</el-button>
</div>
@@ -130,35 +125,22 @@
<div style="margin-bottom: 16px; font-size: 16px">商品信息</div>
<template v-for="(item, index) in detail.detailMap" :key="index">
<h4>{{ index }}次下单</h4>
<el-table
:data="item"
:ref="'refTable' + index"
@select-all="tableSelectAll($event, index)"
>
<el-table :data="item" :ref="'refTable' + index" @select-all="tableSelectAll($event, index)">
<!-- <el-table-column type="selection" width="55" /> -->
<el-table-column label="数量" type="selection">
<template v-slot="scope">
<div v-if="detail.status == 'unpaid'">
<el-checkbox
v-if="scope.row.num - scope.row.returnNum > 0"
v-model="scope.row.checked"
/>
<el-checkbox v-if="scope.row.num - scope.row.returnNum > 0" v-model="scope.row.checked" />
</div>
<div v-else>
<el-checkbox
v-if="scope.row.num - scope.row.refundNum > 0"
v-model="scope.row.checked"
/>
<el-checkbox v-if="scope.row.num - scope.row.refundNum > 0" v-model="scope.row.checked" />
</div>
</template>
</el-table-column>
<el-table-column label="商品" width="150">
<template v-slot="scope">
<div class="shop_info">
<el-image
:src="scope.row.productImg"
style="width: 40px; height: 40px"
></el-image>
<el-image :src="scope.row.productImg" style="width: 40px; height: 40px"></el-image>
<div class="info">
<span :class="[scope.row.isVip == 1 ? 'colorStyle' : '']">
{{ scope.row.productName }}
@@ -191,32 +173,17 @@
<el-table-column label="实付">
<template v-slot="scope">{{ scope.row.payAmount }}</template>
</el-table-column>
<el-table-column
v-if="detail.status == 'unpaid'"
label="可退菜数量"
align="center"
width="130px"
>
<el-table-column v-if="detail.status == 'unpaid'" label="可退菜数量" align="center" width="130px">
<template v-slot="scope">
<el-input-number
v-if="scope.row.checked"
:min="0"
style="width: 100px"
v-model="scope.row.selNumber"
:max="scope.row.num - scope.row.returnNum"
></el-input-number>
<el-input-number v-if="scope.row.checked" :min="0" style="width: 100px" v-model="scope.row.selNumber"
:max="scope.row.num - scope.row.returnNum"></el-input-number>
<span class="" v-else>{{ scope.row.num - scope.row.returnNum }}</span>
</template>
</el-table-column>
<el-table-column v-else label="可退款数量" align="center" width="130px">
<template v-slot="scope">
<el-input-number
v-if="scope.row.checked"
:min="0"
style="width: 100px"
v-model="scope.row.selNumber"
:max="scope.row.num - scope.row.refundNum - scope.row.returnNum"
></el-input-number>
<el-input-number v-if="scope.row.checked" :min="0" style="width: 100px" v-model="scope.row.selNumber"
:max="scope.row.num - scope.row.refundNum - scope.row.returnNum"></el-input-number>
<span class="" v-else>
{{ scope.row.num - scope.row.refundNum - scope.row.returnNum }}
</span>
@@ -231,23 +198,13 @@
<el-table-column label="操作" fixed="right">
<template v-slot="scope">
<template v-if="detail.status != 'unpaid'">
<el-button
v-if="canTuikuan(scope.row)"
link
size="small"
@click="tuikuan(scope.row)"
>
<el-button v-if="canTuikuan(scope.row)" link size="small" @click="tuikuan(scope.row)">
<span>退款</span>
</el-button>
<span class="color-999" v-if="scope.row.status == 'refund'">已退款</span>
</template>
<template v-if="detail.status == 'unpaid'">
<el-button
v-if="canTuicai(scope.row)"
link
size="small"
@click="tuicai(scope.row)"
>
<el-button v-if="canTuicai(scope.row)" link size="small" @click="tuicai(scope.row)">
<span>退菜</span>
</el-button>
<span class="color-999" v-else>已退菜</span>
@@ -257,41 +214,25 @@
</el-table>
</template>
<!-- 退款 -->
<div
class="u-p-20 u-flex u-row-right"
v-if="
<div class="u-p-20 u-flex u-row-right" v-if="
detail.status !== 'refund' &&
detail.status !== 'unpaid' &&
detail.status !== 'cancelled'
"
>
<el-checkbox
v-model="allSelected"
@change="allSelectedChange"
label="全选"
></el-checkbox>
">
<el-checkbox v-model="allSelected" @change="allSelectedChange" label="全选"></el-checkbox>
<el-button type="danger" class="u-m-l-20" @click.stop="tuikuan('all')">退款</el-button>
</div>
<!-- 退菜 -->
<div class="u-p-20 u-flex u-row-right" v-if="detail.status == 'unpaid'">
<el-checkbox
v-model="allSelected"
@change="allSelectedChange"
label="全选"
></el-checkbox>
<el-checkbox v-model="allSelected" @change="allSelectedChange" label="全选"></el-checkbox>
<el-button type="danger" class="u-m-l-20" @click.stop="tuicai('all')">退菜</el-button>
</div>
</div>
</div>
</el-drawer>
<!-- 退款 -->
<return-money
:modal="false"
ref="refReturnMoney"
:max="selGoods.num"
:goods="selGoods"
@confirm="refReturnMoneyConfirm"
></return-money>
<return-money :modal="false" ref="refReturnMoney" :max="selGoods.num" :goods="selGoods"
@confirm="refReturnMoneyConfirm"></return-money>
<!-- 退菜 -->
<order-return-cart ref="refReturnCart" @confirm="refReturnCartConfirm"></order-return-cart>
</div>
@@ -466,6 +407,12 @@ export default {
},
tuikuan(item) {
if (!item) {
let arrs = []
for (let i in this.detail.detailMap) {
this.detail.detailMap[i].map((v) => {
arrs.push(v);
});
}
this.$refs.refReturnMoney.open([], this.detail);
return;
}
@@ -484,6 +431,10 @@ export default {
if (arr.length == 0) {
return ElMessage.error("请选择要退款的商品和数量");
}
console.log('tuikuan===', arr);
return
this.$refs.refReturnMoney.open(arr, this.detail);
},
tuicai(item) {
@@ -502,7 +453,7 @@ export default {
if (arr.length == 0) {
return ElMessage.error("请选择要退菜的商品和数量");
}
console.log(arr);
console.log('tuicai===', arr);
this.$refs.refReturnCart.open(arr, this.detail);
},

View File

@@ -8,13 +8,18 @@
// adminIn 管理员充值
// adminOut管理员消费
export const $bizCode = {
cashIn: "现金充值",
cashIn: "会员充值",
cashback: "消费返现",
cashback_refund: "消费返现扣减",
freeIn: "霸王餐充值",
awardIn: "充值奖励",
wechatIn: "微信小程序充值",
alipayIn: "支付宝小程序充值",
awardIn: "充值奖励",
rechargeRefund: "充值退款",
orderPay: "订单消费",
orderPay: "订单支付奖励",
orderRefund: "订单退款",
adminIn: "管理员充值",
adminOut: "管理员消费",
rechargeRefund: "充值退款",
rechargeCashRefund: "会员现金退款",
adminIn: "管理员手动增减余额",
adminOut: "管理员退款充值",
rechargeRedemption: "充值兑换码"
}