打印机
This commit is contained in:
@@ -7,7 +7,7 @@ const request=http.request
|
|||||||
*/
|
*/
|
||||||
export function tbPrintMachine(data, method = 'post') {
|
export function tbPrintMachine(data, method = 'post') {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/tbPrintMachine',
|
url: '/api/shop-config/printer',
|
||||||
method: method,
|
method: method,
|
||||||
data: {
|
data: {
|
||||||
shopId: uni.getStorageSync('shopId'),
|
shopId: uni.getStorageSync('shopId'),
|
||||||
@@ -22,7 +22,7 @@ export function tbPrintMachine(data, method = 'post') {
|
|||||||
*/
|
*/
|
||||||
export function tbPrintMachineGet(params) {
|
export function tbPrintMachineGet(params) {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/tbPrintMachine',
|
url: '/api/shop-config/printer/list',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: {
|
params: {
|
||||||
shopId: uni.getStorageSync('shopId'),
|
shopId: uni.getStorageSync('shopId'),
|
||||||
@@ -30,4 +30,28 @@ export function tbPrintMachineGet(params) {
|
|||||||
...params
|
...params
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 修改打印机状态
|
||||||
|
export function shopConfigprinter(params) {
|
||||||
|
return request({
|
||||||
|
url: '/api/shop-config/printer',
|
||||||
|
method: 'put',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// * 打印机详情
|
||||||
|
export function printerd(id) {
|
||||||
|
return request({
|
||||||
|
url: '/api/shop-config/printer/' + id,
|
||||||
|
method: 'get',
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 删除
|
||||||
|
export function delTableHandle(id) {
|
||||||
|
return request({
|
||||||
|
url: '/api/shop-config/printer/' + id,
|
||||||
|
method: 'DELETE',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -118,4 +118,4 @@ export function tbPlussShopStaff(data) {
|
|||||||
method: data.id ? "put" : "post",
|
method: data.id ? "put" : "post",
|
||||||
data
|
data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
2169
package-lock.json
generated
2169
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,68 +1,179 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="page-gray color-333 u-font-28">
|
<view class="page-gray color-333 u-font-28">
|
||||||
<view class="block">
|
<view class="block">
|
||||||
<picker-item title="打印机类型" v-model="brands.selIndex" rangeKey="name" :list="brands.list"></picker-item>
|
<picker-item title="打印机品牌" v-model="form.contentType" :modelValue="form.contentType"
|
||||||
<view class="u-p-b-24 u-m-b-24 border-bottom">
|
:list="brandt.list"></picker-item>
|
||||||
<view class="title">设备尺寸</view>
|
<picker-item title="小票打印" v-model="form.subType" :modelValue="form.subType"
|
||||||
<view class="u-m-t-16">
|
:list="receipt.list"></picker-item>
|
||||||
<radio-group class="u-flex u-flex-wrap" @change="sizeChange">
|
|
||||||
<label class="radio u-m-r-60" v-for="(item,index) in deciveSize.list" :key="index">
|
|
||||||
<radio :value="''+index" :checked="index === deciveSize.selIndex" class="scale7" />
|
|
||||||
<text>{{item.label}}</text>
|
|
||||||
</label>
|
|
||||||
</radio-group>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="u-p-b-14 u-m-b-24 border-bottom">
|
<view class="u-p-b-14 u-m-b-24 border-bottom">
|
||||||
<view class="title">名称</view>
|
<view class="title">打印机名称</view>
|
||||||
<view class="">
|
<view class="">
|
||||||
<uni-easyinput :inputBorder="false" :padding-none="true" v-model="form.form"
|
<uni-easyinput :inputBorder="false" :padding-none="true" v-model="form.name"
|
||||||
placeholder="设置打印机名称"></uni-easyinput>
|
placeholder="设置打印机名称"></uni-easyinput>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="u-p-b-14 u-m-b-24 border-bottom">
|
<view class="u-p-b-14 u-m-b-24 border-bottom">
|
||||||
<view class="title">设备号</view>
|
<view class="title">打印机编号</view>
|
||||||
<view class="">
|
<view class="">
|
||||||
<uni-easyinput :inputBorder="false" :padding-none="true" v-model="form.form"
|
<uni-easyinput :inputBorder="false" :padding-none="true" v-model="form.address"
|
||||||
placeholder="输入设备号"></uni-easyinput>
|
placeholder="设置打印机名称"></uni-easyinput>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<picker-item title="打印份数" v-model="printerNums.selIndex" rangeKey="label"
|
<view class="u-p-b-14 u-m-b-24 border-bottom">
|
||||||
:list="printerNums.list"></picker-item>
|
<view class="title">打印机密钥</view>
|
||||||
<picker-item title="出品模式" v-model="form.config.model" rangeKey="name" rangeValue="value"
|
|
||||||
:list="models"></picker-item>
|
|
||||||
<picker-item title="打印类型" v-model="form.subType" rangeKey="name" rangeValue="value"
|
|
||||||
:list="subTypes"></picker-item>
|
|
||||||
<picker-item title="尾部留空"
|
|
||||||
v-model="form.config.feet" rangeKey="name" rangeValue="value"
|
|
||||||
:list="feets"></picker-item>
|
|
||||||
|
|
||||||
<view class="u-p-b-24 u-flex u-row-between u-m-b-24 border-bottom">
|
|
||||||
<view class="title">自动切刀</view>
|
|
||||||
<view class="">
|
<view class="">
|
||||||
<my-switch v-model="form.config.autoCut"></my-switch>
|
<uni-easyinput :inputBorder="false" :padding-none="true" v-model="form.port"
|
||||||
</view>
|
placeholder="设置打印机名称"></uni-easyinput>
|
||||||
</view>
|
|
||||||
<view class="u-p-b-24 u-flex u-row-between u-m-b-24 border-bottom">
|
|
||||||
<view class="title">状态</view>
|
|
||||||
<view class="">
|
|
||||||
<my-switch v-model="form.config.autoCut"></my-switch>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="u-p-b-24 u-flex u-row-between u-m-b-24 border-bottom">
|
|
||||||
<view class="title">排序</view>
|
|
||||||
<view class="">
|
|
||||||
<uni-number-box v-model="form.sort" ></uni-number-box>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="u-p-b-24 u-m-b-24 border-bottom">
|
<view class="u-p-b-24 u-m-b-24 border-bottom">
|
||||||
|
<view class="title">小票尺寸</view>
|
||||||
|
<view class="u-m-t-16">
|
||||||
|
<radio-group class="u-flex u-flex-wrap" @change="sizeChange($event,'receiptSize')">
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="58mm" :checked="form.receiptSize == '58mm'" class="scale7" />
|
||||||
|
<text>58mm</text>
|
||||||
|
</label>
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="80mm" :checked="form.receiptSize == '80mm'" class="scale7" />
|
||||||
|
<text>80mm</text>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="u-p-b-24 u-m-b-24 border-bottom">
|
||||||
|
<view class="title">分类打印</view>
|
||||||
|
<view class="u-m-t-16">
|
||||||
|
<radio-group class="u-flex u-flex-wrap" @change="sizeChange($event,'classifyPrint')">
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="0" :checked="form.classifyPrint == '0'" class="scale7" />
|
||||||
|
<text>打印所有</text>
|
||||||
|
</label>
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="1" :checked="form.classifyPrint == '1'" class="scale7" />
|
||||||
|
<text>部分分类</text>
|
||||||
|
</label>
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="2" :checked="form.classifyPrint == '2'" class="scale7" />
|
||||||
|
<text>部分商品</text>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="u-p-b-24 u-m-b-24 border-bottom">
|
||||||
|
<view class="title">桌台打印</view>
|
||||||
|
<view class="u-m-t-16">
|
||||||
|
<radio-group class="u-flex u-flex-wrap" @change="sizeChange($event,'tablePrint')">
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="0" :checked="form.tablePrint == '0'" class="scale7" />
|
||||||
|
<text>打印所有</text>
|
||||||
|
</label>
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="1" :checked="form.tablePrint == '1'" class="scale7" />
|
||||||
|
<text>打印部分桌台</text>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="u-p-b-24 u-m-b-24 border-bottom">
|
||||||
|
<view class="title">打印数量</view>
|
||||||
|
<view class="u-m-t-16">
|
||||||
|
<radio-group class="u-flex u-flex-wrap" @change="sizeChange($event,'printQty')">
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="c1m1^2" :checked="form.printQty == 'c1m1^2'" class="scale7" />
|
||||||
|
<text>顾客联+商家联「2张」</text>
|
||||||
|
</label>
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="m1^1" :checked="form.printQty == 'm1^1'" class="scale7" />
|
||||||
|
<text>只打印商家联「1张」</text>
|
||||||
|
</label>
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="c1^1" :checked="form.printQty == 'c1^1'" class="scale7" />
|
||||||
|
<text>只打印顾客联「1张」</text>
|
||||||
|
</label>
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="c2m1^3" :checked="form.printQty == 'c2m1^3'" class="scale7" />
|
||||||
|
<text>2张顾客联+1张商家联「3张」</text>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="u-p-b-24 u-m-b-24 border-bottom">
|
||||||
|
<view class="title">打印方式</view>
|
||||||
|
<view class="u-m-t-16">
|
||||||
|
<radio-group class="u-flex u-flex-wrap" @change="sizeChange($event,'printMethod')">
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="1" :checked="form.printMethod == '1'" class="scale7" />
|
||||||
|
<text>普通</text>
|
||||||
|
</label>
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="2" :checked="form.printMethod == '2'" class="scale7" />
|
||||||
|
<text>单个菜</text>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
<view class="u-p-b-24 u-m-b-24 border-bottom">
|
||||||
|
<view class="title">打印类型</view>
|
||||||
|
<view class="u-m-t-16" style="display: flex;">
|
||||||
|
<up-checkbox-group v-model="form.printType">
|
||||||
|
<up-checkbox :customStyle="{marginBottom: '8px'}" label="确认退款单" name="1"
|
||||||
|
style="margin-right: 40rpx;font-size: 28rpx;">
|
||||||
|
</up-checkbox>
|
||||||
|
<up-checkbox :customStyle="{marginBottom: '8px'}" label="交班单" name="2"
|
||||||
|
style="margin-right: 40rpx;font-size: 28rpx;">
|
||||||
|
</up-checkbox>
|
||||||
|
<up-checkbox :customStyle="{marginBottom: '8px'}" label="排队取号" name="3"
|
||||||
|
style="margin-right: 40rpx;font-size: 28rpx;">
|
||||||
|
</up-checkbox>
|
||||||
|
</up-checkbox-group>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<view class="u-p-b-24 u-m-b-24 border-bottom">
|
||||||
|
<view class="title">打印单据</view>
|
||||||
|
<view class="u-m-t-16">
|
||||||
|
<radio-group class="u-flex u-flex-wrap" @change="sizeChange($event,'printReceipt')">
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="0" class="scale7" />
|
||||||
|
<text>全部打印</text>
|
||||||
|
</label>
|
||||||
|
<label class="radio u-m-r-60">
|
||||||
|
<radio value="1" :checked="form.printReceipt == '1'" class="scale7" />
|
||||||
|
<text>仅厨房</text>
|
||||||
|
</label><label class="radio u-m-r-60">
|
||||||
|
<radio value="2" :checked="form.printReceipt == '2'" class="scale7" />
|
||||||
|
<text>仅前台</text>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="u-p-b-24 u-flex u-row-between u-m-b-24 border-bottom">
|
||||||
|
<view class="title">打印机状态</view>
|
||||||
|
<view class="">
|
||||||
|
<!-- <my-switch v-model="form.status"></my-switch> -->
|
||||||
|
<my-switch v-model="form.status"></my-switch>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="u-p-b-24 u-flex u-row-between u-m-b-24 border-bottom">
|
||||||
|
<view class="title">排序</view>
|
||||||
|
<view class="">
|
||||||
|
<uni-number-box v-model="form.sort"></uni-number-box>
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
<!-- <view class="u-p-b-24 u-m-b-24 border-bottom">
|
||||||
<view class="title font-bold">商品分类</view>
|
<view class="title font-bold">商品分类</view>
|
||||||
<view class="u-m-t-16 u-flex u-row-between " @click="categoryShow">
|
<view class="u-m-t-16 u-flex u-row-between " @click="categoryShow">
|
||||||
<view class="color-333" v-if="form.sort">{{form.sort}}</view>
|
<view class="color-333" v-if="form.sort">{{form.sort}}</view>
|
||||||
<view class="color-999" v-else>请选择</view>
|
<view class="color-999" v-else>请选择</view>
|
||||||
<uni-icons type="right" color="#999" size="16"></uni-icons>
|
<uni-icons type="right" color="#999" size="16"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view> -->
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="height: 60rpx;"></view>
|
<view style="height: 60rpx;"></view>
|
||||||
@@ -71,8 +182,8 @@
|
|||||||
<my-button shape="circle" @click="save">保存</my-button>
|
<my-button shape="circle" @click="save">保存</my-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
||||||
<!-- 选择分类 -->
|
<!-- 选择分类 -->
|
||||||
<choose-category v-model="chooseCategoryShow"></choose-category>
|
<choose-category v-model="chooseCategoryShow"></choose-category>
|
||||||
</view>
|
</view>
|
||||||
@@ -84,7 +195,9 @@
|
|||||||
import {
|
import {
|
||||||
devices,
|
devices,
|
||||||
models,
|
models,
|
||||||
subTypes
|
subTypes,
|
||||||
|
brand,
|
||||||
|
receipts
|
||||||
} from '@/pagePrinter/devices.js'
|
} from '@/pagePrinter/devices.js'
|
||||||
import {
|
import {
|
||||||
onLoad,
|
onLoad,
|
||||||
@@ -102,13 +215,24 @@
|
|||||||
import myRadioGroup from './components/my-radio-group.vue';
|
import myRadioGroup from './components/my-radio-group.vue';
|
||||||
import * as Api from '@/http/yskApi/devices.js'
|
import * as Api from '@/http/yskApi/devices.js'
|
||||||
import chooseCategory from './components/choose-category.vue';
|
import chooseCategory from './components/choose-category.vue';
|
||||||
|
|
||||||
//选择分类
|
|
||||||
let chooseCategoryShow=ref(false)
|
|
||||||
function categoryShow(){
|
|
||||||
chooseCategoryShow.value=true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
//选择分类
|
||||||
|
let chooseCategoryShow = ref(false)
|
||||||
|
|
||||||
|
function categoryShow() {
|
||||||
|
chooseCategoryShow.value = true
|
||||||
|
}
|
||||||
|
// brand
|
||||||
|
const brandt = reactive({
|
||||||
|
list: brand,
|
||||||
|
selIndex: '',
|
||||||
|
})
|
||||||
|
// 小票
|
||||||
|
const receipt = reactive({
|
||||||
|
list: receipts,
|
||||||
|
selIndex: '',
|
||||||
|
})
|
||||||
|
let userId = ref(null)
|
||||||
//品牌
|
//品牌
|
||||||
const brands = reactive({
|
const brands = reactive({
|
||||||
list: devices,
|
list: devices,
|
||||||
@@ -129,8 +253,8 @@
|
|||||||
selIndex: 1
|
selIndex: 1
|
||||||
})
|
})
|
||||||
|
|
||||||
function sizeChange(e) {
|
function sizeChange(e, name) {
|
||||||
deciveSize.selIndex = e.detail.value
|
form[name] = e.detail.value
|
||||||
}
|
}
|
||||||
|
|
||||||
//打印份数
|
//打印份数
|
||||||
@@ -144,39 +268,52 @@
|
|||||||
selIndex: 0
|
selIndex: 0
|
||||||
})
|
})
|
||||||
//尾部留空
|
//尾部留空
|
||||||
const feets = ref([0,1,2,3,4,5,8].map(v=>{
|
const feets = ref([0, 1, 2, 3, 4, 5, 8].map(v => {
|
||||||
return v+'行'
|
return v + '行'
|
||||||
}))
|
}))
|
||||||
|
|
||||||
const form = reactive({
|
let form = reactive({
|
||||||
id: '',
|
sort: "0",
|
||||||
contentType: '',
|
|
||||||
config: {
|
|
||||||
width: '80mm', // 设备尺寸
|
|
||||||
printerNum: 1, //打印份数
|
|
||||||
categoryList: '', // 商品分类
|
|
||||||
model: 'normal', // 出品模式,
|
|
||||||
feet: '0',
|
|
||||||
autoCut: 0
|
|
||||||
},
|
|
||||||
name: '',
|
|
||||||
subType: 'kitchen', // 打印类型
|
|
||||||
status: 0,
|
status: 0,
|
||||||
sort: ''
|
connectionType: "network",
|
||||||
|
printType: [],
|
||||||
|
name: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
function save() {
|
async function save() {
|
||||||
|
if (userId.value) {
|
||||||
|
delete form.createdAt
|
||||||
|
delete form.updatedAt
|
||||||
|
const res = await Api.tbPrintMachine({
|
||||||
|
...form
|
||||||
|
}, 'put')
|
||||||
|
} else {
|
||||||
|
const res = await Api.tbPrintMachine({
|
||||||
|
...form
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
go.to('/pagePrinter/index/index')
|
||||||
}
|
}
|
||||||
watch(() => form.config.model, (newval) => {
|
// watch(() => form.config.model, (newval) => {
|
||||||
console.log(newval);
|
// console.log(newval);
|
||||||
})
|
// })
|
||||||
|
|
||||||
const option = reactive({})
|
// const option = reactive({})
|
||||||
|
async function getdetails() {
|
||||||
onLoad((opt) => {
|
const res = await Api.printerd(userId.value)
|
||||||
console.log(opt);
|
form = Object.assign(form, res)
|
||||||
Object.assign(option, opt)
|
form.printType = JSON.parse(res.printType)
|
||||||
|
}
|
||||||
|
onLoad((options) => {
|
||||||
|
if (options.id) {
|
||||||
|
// 有id是编辑,获取详情
|
||||||
|
userId.value = options.id
|
||||||
|
getdetails()
|
||||||
|
} else {
|
||||||
|
userId.value = null
|
||||||
|
}
|
||||||
|
// Object.assign(option, opt)
|
||||||
})
|
})
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
|
|
||||||
@@ -205,7 +342,8 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
.fixed_b{
|
|
||||||
|
.fixed_b {
|
||||||
left: 30rpx;
|
left: 30rpx;
|
||||||
right: 30rpx;
|
right: 30rpx;
|
||||||
bottom: calc(env(safe-area-inset-bottom) + 10rpx);
|
bottom: calc(env(safe-area-inset-bottom) + 10rpx);
|
||||||
|
|||||||
@@ -1,11 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="u-p-b-24 u-m-b-24 border-bottom">
|
<view class="u-p-b-24 u-m-b-24 border-bottom">
|
||||||
<view class="title font-bold">{{title}}</view>
|
<view class="title font-bold">{{title}}</view>
|
||||||
<picker
|
<picker @change="change" range-key="name" :value="value" :range="list">
|
||||||
@change="change"
|
|
||||||
:range-key="rangeKey"
|
|
||||||
:value="index"
|
|
||||||
:range="list">
|
|
||||||
<view class="u-m-t-16 u-flex u-row-between ">
|
<view class="u-m-t-16 u-flex u-row-between ">
|
||||||
<view class="color-333" v-if="selText">{{selText}}</view>
|
<view class="color-333" v-if="selText">{{selText}}</view>
|
||||||
<view class="color-999" v-else>请选择</view>
|
<view class="color-999" v-else>请选择</view>
|
||||||
@@ -18,17 +14,10 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {
|
import {
|
||||||
computed,
|
computed,
|
||||||
ref, watch
|
ref,
|
||||||
|
watch
|
||||||
} from 'vue';
|
} from 'vue';
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
rangeValue:{
|
|
||||||
type: [String, Number],
|
|
||||||
default: ''
|
|
||||||
},
|
|
||||||
rangeKey:{
|
|
||||||
type:String,
|
|
||||||
default:'label'
|
|
||||||
},
|
|
||||||
list: {
|
list: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => []
|
default: () => []
|
||||||
@@ -38,49 +27,23 @@
|
|||||||
default: '标题'
|
default: '标题'
|
||||||
},
|
},
|
||||||
modelValue: {
|
modelValue: {
|
||||||
type: [String, Number],
|
type: String,
|
||||||
default: ''
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
function isObj(obj){
|
const index = ref(props.modelValue)
|
||||||
return typeof obj ==='object'
|
|
||||||
}
|
|
||||||
function findIndex(){
|
|
||||||
return props.list.findIndex(v=>{
|
|
||||||
if(isObj(v)){
|
|
||||||
return v[props.rangeValue]==props.modelValue
|
|
||||||
}else{
|
|
||||||
return v==props.modelValue
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
function findValue(){
|
|
||||||
const item=props.list[index.value]
|
|
||||||
if(isObj(item)){
|
|
||||||
return item[props.rangeValue]
|
|
||||||
}else{
|
|
||||||
return item
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const computedIndex=props.rangeValue? findIndex(): props.modelValue
|
|
||||||
const index = ref(computedIndex)
|
|
||||||
const emits = defineEmits(['update:modelValue'], )
|
const emits = defineEmits(['update:modelValue'], )
|
||||||
watch(()=>index.value,(newval)=>{
|
const selText = computed(() => {
|
||||||
const value=props.rangeValue?findValue() :newval
|
const item = props.list.filter(ele => ele.value == props.modelValue)[0]
|
||||||
console.log(value);
|
return item.name
|
||||||
emits('update:modelValue',value)
|
|
||||||
})
|
})
|
||||||
function change(e){
|
|
||||||
index.value=e.detail.value
|
watch(() => index.value, (newval) => {
|
||||||
|
emits('update:modelValue', props.list[newval].value)
|
||||||
|
})
|
||||||
|
|
||||||
|
function change(e) {
|
||||||
|
index.value = e.detail.value
|
||||||
}
|
}
|
||||||
const selText=computed(()=>{
|
|
||||||
const item=props.list[index.value]
|
|
||||||
if(item&&isObj(item)){
|
|
||||||
return item?item[props.rangeKey]:''
|
|
||||||
}else{
|
|
||||||
return item
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
@@ -1,44 +1,63 @@
|
|||||||
export const devices = [
|
export const brand = [{
|
||||||
{
|
value: 'yxyPrinter',
|
||||||
value: 'printer',
|
name: '云想印'
|
||||||
name: '本地'
|
},
|
||||||
},
|
{
|
||||||
{
|
value: 'fePrinter',
|
||||||
value: 'yxyPrinter',
|
name: '飞鹅'
|
||||||
name: '云想印'
|
}
|
||||||
},
|
]
|
||||||
{
|
export const receipts = [{
|
||||||
value: 'fePrinter',
|
value: 'label',
|
||||||
name: '飞鹅'
|
name: '标签'
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
value: 'kitchen',
|
||||||
|
name: '出品'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'cash',
|
||||||
|
name: '小票'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
export const devices = [{
|
||||||
|
value: 'printer',
|
||||||
|
name: '本地'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'yxyPrinter',
|
||||||
|
name: '云想印'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'fePrinter',
|
||||||
|
name: '飞鹅'
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
export const models = [
|
export const models = [{
|
||||||
{
|
value: 'normal',
|
||||||
value: 'normal',
|
name: '普通出单'
|
||||||
name: '普通出单'
|
},
|
||||||
},
|
{
|
||||||
{
|
value: 'one',
|
||||||
value: 'one',
|
name: '一菜一品'
|
||||||
name: '一菜一品'
|
},
|
||||||
},
|
{
|
||||||
{
|
value: 'category',
|
||||||
value: 'category',
|
name: '分类出单'
|
||||||
name: '分类出单'
|
}
|
||||||
}
|
|
||||||
]
|
]
|
||||||
|
|
||||||
export const subTypes = [
|
export const subTypes = [{
|
||||||
{
|
value: 'kitchen',
|
||||||
value: 'kitchen',
|
name: '出品'
|
||||||
name: '出品'
|
},
|
||||||
},
|
{
|
||||||
{
|
value: 'cash',
|
||||||
value: 'cash',
|
name: '小票'
|
||||||
name: '小票'
|
},
|
||||||
},
|
{
|
||||||
{
|
value: 'label',
|
||||||
value: 'label',
|
name: '标签'
|
||||||
name: '标签'
|
}
|
||||||
}
|
|
||||||
]
|
]
|
||||||
@@ -8,24 +8,24 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="u-flex u-col-center">
|
<view class="u-flex u-col-center">
|
||||||
<template v-if="data.status">
|
<template v-if="data.status">
|
||||||
<text class="online" >在线,状态正常</text>
|
<text class="online">在线,状态正常</text>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<image class="icon-warning" src="/pagePrinter/static/icon/icon-warning.svg" mode=""></image>
|
<image class="icon-warning" src="/pagePrinter/static/icon/icon-warning.svg" mode=""></image>
|
||||||
<text class="leave u-m-l-10" >离线</text>
|
<text class="leave u-m-l-10">离线</text>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="u-m-t-24">
|
<view class="u-m-t-24">
|
||||||
<view class="u-flex u-row-between">
|
<view class="u-flex u-row-between">
|
||||||
<view class="u-flex u-col-center">
|
<view class="u-flex u-col-center">
|
||||||
<image class="icon" src="/pagePrinter/static/icon/icon-setting.svg" mode=""></image>
|
<image class="icon" src="/pagePrinter/static/icon/icon-setting.svg" mode=""></image>
|
||||||
<view class="color-666 u-m-l-10">设置</view>
|
<view class="color-666 u-m-l-10">是否启用</view>
|
||||||
</view>
|
</view>
|
||||||
<view>
|
<view>
|
||||||
{{modelsName(data.config.model)}}
|
<my-switch v-model="data.status" @change="openDiscountChange"></my-switch>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="u-flex u-row-between u-m-t-32">
|
<view class="u-flex u-row-between u-m-t-32">
|
||||||
@@ -47,28 +47,40 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="u-m-t-32 u-flex u-row-right gap-20">
|
<view class="u-m-t-32 u-flex u-row-right gap-20">
|
||||||
<my-button shape="circle" :width="140" :height="56" type="cancel" plain>删除</my-button>
|
<my-button shape="circle" :width="140" :height="56" type="cancel" @tap="delTableHandleEvent()"
|
||||||
<my-button shape="circle" @click="toUrl" :width="140" :height="56" plain>编辑</my-button>
|
plain>删除</my-button>
|
||||||
|
<my-button shape="circle" @click="toUrl" :width="140" :height="56" plain>编辑</my-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { devices, models, subTypes } from '@/pagePrinter/devices.js'
|
import {
|
||||||
|
devices,
|
||||||
|
models,
|
||||||
|
subTypes
|
||||||
|
} from '@/pagePrinter/devices.js'
|
||||||
import go from '@/commons/utils/go.js'
|
import go from '@/commons/utils/go.js'
|
||||||
|
import {
|
||||||
|
shopConfigprinter,
|
||||||
|
delTableHandle
|
||||||
|
} from '@/http/yskApi/devices.js'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
data: {
|
data: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => {}
|
default: () => {}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
let toUrl =()=>{
|
const emit = defineEmits(['init'])
|
||||||
go.to('PAGES_PRINTER_EDIT',{
|
let toUrl = () => {
|
||||||
id:1
|
go.to('PAGES_PRINTER_ADD', {
|
||||||
|
id: props.data.id
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function devicesName(value) {
|
function devicesName(value) {
|
||||||
return devices.find(item => item.value == value).name
|
return devices.find(item => item.value == value).name
|
||||||
}
|
}
|
||||||
@@ -84,26 +96,46 @@
|
|||||||
function timeFilter(s) {
|
function timeFilter(s) {
|
||||||
return dayjs(s).format('YYYY-MM-DD HH:mm:ss')
|
return dayjs(s).format('YYYY-MM-DD HH:mm:ss')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function openDiscountChange(d) {
|
||||||
|
delete props.data.createdAt
|
||||||
|
delete props.data.updatedAt
|
||||||
|
const res = await shopConfigprinter({
|
||||||
|
...props.data,
|
||||||
|
shopId: uni.getStorageSync('shopId'),
|
||||||
|
})
|
||||||
|
emit('init', '')
|
||||||
|
}
|
||||||
|
// 删除
|
||||||
|
async function delTableHandleEvent() {
|
||||||
|
const res = await delTableHandle(props.data.id)
|
||||||
|
emit('init', '')
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.border-bottom{
|
.border-bottom {
|
||||||
border-bottom: 1px solid rgb(240,240,240);
|
border-bottom: 1px solid rgb(240, 240, 240);
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-shadow {
|
.box-shadow {
|
||||||
box-shadow: 0 0 5px #eee;
|
box-shadow: 0 0 5px #eee;
|
||||||
}
|
}
|
||||||
.online{
|
|
||||||
|
.online {
|
||||||
color: #0FC161;
|
color: #0FC161;
|
||||||
}
|
}
|
||||||
.leave{
|
|
||||||
color:#999 ;
|
.leave {
|
||||||
|
color: #999;
|
||||||
}
|
}
|
||||||
.icon-warning{
|
|
||||||
|
.icon-warning {
|
||||||
width: 34rpx;
|
width: 34rpx;
|
||||||
height: 30rpx;
|
height: 30rpx;
|
||||||
}
|
}
|
||||||
.icon{
|
|
||||||
|
.icon {
|
||||||
width: 24rpx;
|
width: 24rpx;
|
||||||
height: 24rpx;
|
height: 24rpx;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,6 +69,7 @@
|
|||||||
//品牌
|
//品牌
|
||||||
const brands = reactive({
|
const brands = reactive({
|
||||||
list: devices,
|
list: devices,
|
||||||
|
brand:brand,
|
||||||
selIndex: '',
|
selIndex: '',
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="min-page bg-gray u-p-30 u-flex u-flex-col u-row-center">
|
<view class="min-page bg-gray u-p-30 u-flex u-flex-col ">
|
||||||
<div class="w-full" v-for="item in pageData.list " :key="item.id">
|
<div class="w-full" v-for="item in pageData.list " :key="item.id">
|
||||||
<printer-item :data="item"></printer-item>
|
<printer-item :data="item" @init='init'></printer-item>
|
||||||
</div>
|
</div>
|
||||||
<view v-if="!pageData.list.length&&pageData.hasAjax">
|
<view v-if="!pageData.list.length&&pageData.hasAjax">
|
||||||
<my-img-empty ></my-img-empty>
|
<my-img-empty ></my-img-empty>
|
||||||
@@ -43,7 +43,6 @@
|
|||||||
async function init() {
|
async function init() {
|
||||||
const res =await Api.tbPrintMachineGet(pageData.query)
|
const res =await Api.tbPrintMachineGet(pageData.query)
|
||||||
pageData.hasAjax=true
|
pageData.hasAjax=true
|
||||||
console.log(res);
|
|
||||||
pageData.list = res.filter(v=>v.address)
|
pageData.list = res.filter(v=>v.address)
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|||||||
61
pages.json
61
pages.json
@@ -99,35 +99,6 @@
|
|||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"pageId": "PAGES_SHOP_SETUP",
|
|
||||||
"path": "pages/shopSetUp/index",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "设置中心"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pageId": "PAGES_SHOP_EDITVAL",
|
|
||||||
"path": "pages/shopSetUp/editVal",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pageId": "PAGES_SHOP_QRCODE",
|
|
||||||
"path": "pages/shopSetUp/shopQRcode",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pageId": "PAGES_SHOP_LIST",
|
|
||||||
"path": "pages/shopSetUp/shopList",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "选择门店"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"pageId": "PAGES_USER_SETUP",
|
"pageId": "PAGES_USER_SETUP",
|
||||||
"path": "pages/userSetUp/userSetUp",
|
"path": "pages/userSetUp/userSetUp",
|
||||||
@@ -1246,32 +1217,7 @@
|
|||||||
"navigationBarTitleText": "订单详情"
|
"navigationBarTitleText": "订单详情"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"pageId": "PAGES_ORDER_DETAIL",
|
|
||||||
"path" : "detail/detail",
|
|
||||||
"style" :
|
|
||||||
{
|
|
||||||
"navigationBarTitleText" : "订单详情"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pageId": "PAGES_ORDER_PAY",
|
|
||||||
"path" : "pay-order/pay-order",
|
|
||||||
"style" :
|
|
||||||
{
|
|
||||||
"navigationBarTitleText" : "结账"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pageId": "PAGES_ORDER_TUIKUAN",
|
|
||||||
"path" : "tuikuan/tuikuan",
|
|
||||||
"style" :
|
|
||||||
{
|
|
||||||
"navigationBarTitleText" : "退款"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1305,7 +1251,6 @@
|
|||||||
"navigationBarTitleText": "商品销售排行"
|
"navigationBarTitleText": "商品销售排行"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1382,8 +1327,8 @@
|
|||||||
"pageId": "PAGES_PRINTER_ADD",
|
"pageId": "PAGES_PRINTER_ADD",
|
||||||
"path": "add-printer/add-printer",
|
"path": "add-printer/add-printer",
|
||||||
"style": {
|
"style": {
|
||||||
// "navigationBarTitleText" : "添加/编辑云打印机"
|
"navigationBarTitleText" : "添加/编辑云打印机"
|
||||||
"navigationBarTitleText": ""
|
// "navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user