admin/addon/cashier/source/os/pages/printer/list.vue

345 lines
11 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<base-page>
<view class="printerlist">
<view class="printerlist-box">
<view class="printerlist-left">
<view class="printer-title">
打印机
<text class="iconfont icongengduo1"></text>
</view>
<view class="printer-list-wrap">
<block v-if="list.length > 0">
<scroll-view scroll-y="true" class="printer-list-scroll all-scroll" @scrolltolower="getPrinterList">
<view
class="item"
@click="printerSelect(item, index)"
v-for="(item, index) in list"
:key="index"
:class="index == selectprinterKeys ? 'itemhover' : ''"
>
<view class="item-right">
<view class="printer-name">{{ item.printer_name }}</view>
<view class="printer-money">{{ brandList[item.brand] }}</view>
</view>
</view>
</scroll-view>
</block>
<view class="notYet" v-else-if="!one_judge && list.length == 0">暂无打印机</view>
</view>
<view class="add-printer"><button type="default" class="primary-btn" @click="addprinter">添加打印机</button></view>
</view>
<view class="printerlist-right" v-show="!one_judge">
<view class="printer-title">打印机详情</view>
<view class="printer-information">
<block v-if="JSON.stringify(detail) != '{}'">
<view class="title">基本信息</view>
<view class="information-box">
<view class="box-left">
<view class="information">
<view>名称:</view>
<view>{{ detail.printer_name }}</view>
</view>
<view class="information">
<view>品牌:</view>
<view>{{ brandList[detail.brand] }}</view>
</view>
<view class="information">
<view>打印机编号:</view>
<view>{{ detail.printer_code }}</view>
</view>
<view class="information">
<view>打印机秘钥:</view>
<view>{{ detail.printer_key }}</view>
</view>
<view class="information">
<view>应用id</view>
<view>{{ detail.open_id }}</view>
</view>
<view class="information">
<view>apiKey</view>
<view>{{ detail.apikey }}</view>
</view>
<view class="information">
<view>添加时间:</view>
<view>{{ detail.create_time ? $util.timeFormat(detail.create_time) : '--' }}</view>
</view>
</view>
</view>
<view class="title">支付打印</view>
<view class="information-box">
<view class="box-left">
<view class="information">
<view>支付打印:</view>
<view>{{ detail.order_pay_open ? '开启' : '关闭' }}</view>
</view>
<view class="information" v-if="detail.order_pay_open">
<view>打印模板:</view>
<view>{{ detail.order_pay_template_id ? detail.order_pay_template_name : '--' }}</view>
</view>
<view class="information" v-if="detail.order_pay_open">
<view>打印联数:</view>
<view>{{ detail.order_pay_print_num }}</view>
</view>
<view class="information" v-if="detail.order_pay_open">
<view>订单类型:</view>
<view>
<block v-for="(item, index) in detail.order_pay_order_type" :key="index">
<text v-if="item" class="order-type">{{ detail['order_type_list'][item]['name'] }}</text>
</block>
</view>
</view>
</view>
</view>
<view class="title">收货打印</view>
<view class="information-box">
<view class="box-left">
<view class="information">
<view>收货打印:</view>
<view>{{ detail.take_delivery_open ? '开启' : '关闭' }}</view>
</view>
<view class="information" v-if="detail.take_delivery_open">
<view>打印模板:</view>
<view>{{ detail.take_delivery_template_id ? detail.take_delivery_template_name : '--' }}</view>
</view>
<view class="information" v-if="detail.take_delivery_open">
<view>打印联数:</view>
<view>{{ detail.take_delivery_print_num }}</view>
</view>
<view class="information" v-if="detail.take_delivery_open">
<view>订单类型:</view>
<view>
<block v-for="(item, index) in detail.take_delivery_order_type" :key="index">
<text v-if="item" class="order-type">{{ detail['order_type_list'][item]['name'] }}</text>
</block>
</view>
</view>
</view>
</view>
<view class="title">手动打印</view>
<view class="information-box">
<view class="box-left">
<view class="information">
<view>手动打印:</view>
<view>{{ detail.manual_open ? '开启' : '关闭' }}</view>
</view>
<view class="information" v-if="detail.manual_open">
<view>打印模板:</view>
<view>{{ detail.template_id ? detail.template_name : '--' }}</view>
</view>
<view class="information" v-if="detail.manual_open">
<view>打印联数:</view>
<view>{{ detail.print_num }}</view>
</view>
</view>
</view>
<view class="title">充值打印</view>
<view class="information-box">
<view class="box-left">
<view class="information">
<view>充值打印:</view>
<view>{{ detail.recharge_open ? '开启' : '关闭' }}</view>
</view>
<view class="information" v-if="detail.recharge_open">
<view>打印模板:</view>
<view>{{ detail.recharge_template_id ? detail.recharge_template_name : '--' }}</view>
</view>
<view class="information" v-if="detail.recharge_open">
<view>打印联数:</view>
<view>{{ detail.recharge_print_num }}</view>
</view>
</view>
</view>
<view class="button-box">
<view class="button" @click="deleteprinter(detail.printer_id)">删除</view>
<view class="button" @click="editprinter(detail.printer_id)">修改</view>
</view>
</block>
<block v-else><image class="cart-empty" :src="$util.img('upload/uniapp/cashier/cart_empty.png')" mode="widthFix"></image></block>
</view>
</view>
</view>
</view>
</base-page>
</template>
<script>
import unipopup from '@/components/uni-popup/uni-popup.vue';
export default {
components: { unipopup },
data() {
return {
selectprinterKeys: 0,
search_text: '',
page: 1,
// 每次返回数据数
page_size: 8,
// 第一次请求列表做详情渲染判断
one_judge: true,
//详情数据
detail: {},
brandList: {
yilianyun: '易联云',
'365': '365'
},
template: null,
list: []
};
},
onLoad() {
// 初始化请求打印机列表数据
this.getTemplate();
},
methods: {
printerSelect(item, keys) {
this.selectprinterKeys = keys;
this.getPrinterDetail(item.printer_id);
},
// 搜索员工
search() {
this.page = 1;
this.list = [];
this.one_judge = true;
this.getPrinterList();
},
addprinter() {
this.$util.redirectTo('/pages/printer/add');
},
editprinter(printer_id) {
this.$util.redirectTo('/pages/printer/add', { printer_id: printer_id });
},
/**
* 请求的列表数据
*/
getPrinterList() {
this.$api.sendRequest({
url: '/printer/storeapi/printer/lists',
data: {
page: this.page,
page_size: this.page_size
},
success: res => {
if (res.data.list.length == 0 && this.one_judge) {
this.detail = {};
this.one_judge = false;
}
if (res.code >= 0) {
Object.keys(res.data.list).forEach(key => {
let data = res.data.list[key];
Object.keys(this.template).forEach(index => {
if (data['order_pay_template_id'] == this.template[index]['template_id']) {
res.data.list[key]['order_pay_template_name'] = this.template[index]['template_name'];
}
if (data['take_delivery_template_id'] == this.template[index]['template_id']) {
res.data.list[key]['take_delivery_template_name'] = this.template[index]['template_name'];
}
if (data['recharge_template_id'] == this.template[index]['template_id']) {
res.data.list[key]['recharge_template_name'] = this.template[index]['template_name'];
}
if (data['template_id'] == this.template[index]['template_id']) {
res.data.list[key]['template_name'] = this.template[index]['template_name'];
}
});
});
}
if (res.code >= 0 && res.data.list.length != 0) {
this.page += 1;
if (this.list.length == 0) {
this.list = res.data.list;
} else {
this.list = this.list.concat(res.data.list);
}
//初始时加载一遍详情数据
if (this.one_judge) {
this.getPrinterDetail(this.list[0].printer_id);
}
}
}
});
},
imgError(index) {
this.list[index].printer_img = this.util.img('addon/meirong/o2o/img/default_printer.png');
},
imgDetailError() {
this.detail.printer_img = this.util.img('addon/meirong/o2o/img/default_printer.png');
},
getTemplate() {
this.$api.sendRequest({
url: '/printer/storeapi/printer/template',
success: res => {
if (res.code == 0) {
this.template = res.data;
this.getPrinterList();
}
}
});
},
getPrinterDetail(printer_id) {
this.$api.sendRequest({
url: '/printer/storeapi/printer/info',
data: { printer_id },
success: res => {
if (res.code == 0) {
this.detail = res.data;
Object.keys(this.template).forEach(index => {
if (this.detail['order_pay_template_id'] == this.template[index]['template_id']) {
this.detail['order_pay_template_name'] = this.template[index]['template_name'];
}
if (this.detail['take_delivery_template_id'] == this.template[index]['template_id']) {
this.detail['take_delivery_template_name'] = this.template[index]['template_name'];
}
if (this.detail['recharge_template_id'] == this.template[index]['template_id']) {
this.detail['recharge_template_name'] = this.template[index]['template_name'];
}
if (this.detail['template_id'] == this.template[index]['template_id']) {
this.detail['template_name'] = this.template[index]['template_name'];
}
});
this.one_judge = false;
}
}
});
},
deleteprinter(printer_id) {
let that = this;
uni.showModal({
title: '',
content: '确定要删除吗',
success: function(res) {
if (res.confirm) {
that.$api.sendRequest({
url: '/printer/storeapi/printer/deleteprinter',
data: {
printer_id
},
success: res => {
if (res.code >= 0) {
that.page = 1;
that.list = [];
that.one_judge = true;
that.getPrinterList();
} else {
that.$util.showToast({ title: res.message });
}
}
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
}
};
</script>
<style scoped lang="scss">
@import './public/css/printer.scss';
</style>