Commit 4e57d152 authored by xieyishang's avatar xieyishang

~~~

parent 030cd585
...@@ -52,7 +52,8 @@ export default { ...@@ -52,7 +52,8 @@ export default {
{ name: 'price', type: 'input', label: '价格' }, { name: 'price', type: 'input', label: '价格' },
{ name: 'integral', type: 'input', label: '积分' }, { name: 'integral', type: 'input', label: '积分' },
{ name: 'sales', type: 'input', label: '销量' }, { name: 'sales', type: 'input', label: '销量' },
{ name: 'stock', type: 'input', label: '库存' } { name: 'stock', type: 'input', label: '库存' },
{ name: 'goods_sn', type: 'input', label: '产品编号' },
] ]
}, },
// sku 字段分隔符 // sku 字段分隔符
......
...@@ -5,7 +5,7 @@ import tool from '@/utils/tool' ...@@ -5,7 +5,7 @@ import tool from '@/utils/tool'
export default { export default {
successCode: 1, //请求完成代码 successCode: 1, //请求完成代码
pageSize: 30, //表格每一页条数 pageSize: 30, //表格每一页条数
pageSizes: [30, 100, 200, 500], //表格可设置的一页条数 pageSizes: [10,30, 100, 200, 500], //表格可设置的一页条数
paginationLayout: "total, sizes, prev, pager, next, jumper", //表格分页布局,可设置"total, sizes, prev, pager, next, jumper" paginationLayout: "total, sizes, prev, pager, next, jumper", //表格分页布局,可设置"total, sizes, prev, pager, next, jumper"
parseData: function (res) { //数据分析 parseData: function (res) { //数据分析
return { return {
......
...@@ -2,64 +2,87 @@ ...@@ -2,64 +2,87 @@
<el-container> <el-container>
<el-main class="nopadding"> <el-main class="nopadding">
<!-- <input class="input" id="inputsmq" ref="inputRef" type="password" /> --> <!-- <input class="input" id="inputsmq" ref="inputRef" type="password" /> -->
<input class="input" id="inputsmq" ref="scannerInput" type="text" @input="handleScannerInput" @focus="onFocus" @blur="blurfun" /> <input class="input" id="inputsmq" value="" ref="scannerInput" type="text" @focus="onFocus" @blur="blurfun" @input="handleScannerInput" />
<!-- -->
<div class="pos"> <div class="pos">
<el-row> <el-row>
<el-col :span='9' class="pos_order" id="order_list"> <el-col :span='9' class="pos_order" id="order_list">
<el-tabs style="padding-left:10px;"> <el-tabs style="padding-left:10px;">
<el-tab-pane label="购物单"> <el-tab-pane label="购物单">
<el-scrollbar :height="scrollbarheight">
<div class="card" v-for="(item, index) in listdata" :key="index">
<div class="top">
<div class="shop_name">{{ item.title }}</div>
</div>
<div class="main">
<div class="card_wrap" v-for="(cc, inner) in item.content" :key="inner">
<div class="card_item" right-width="65">
<div class="card_item_wrap">
<div class="select_box" @click="goodsSelectedHandle(cc.goods_id, cc.goods_sku_id)">
</div>
<div class="img_wrap">
<img :src="cc.goods.cover" mode="aspectFill" />
</div>
<div class="info">
<div class="it">
<div class="goods_title">
{{ cc.goods.title }}
</div>
<div class="card" v-for="(item, index) in listdata" :key="index"> <div class="deleteicon">
<div class="top"> <div class="delete" @click="goodsDeleteHandle(cc.goods_id, cc.goods_sku_id)">删除</div>
<div class="shop_name">{{ item.title }}</div> </div>
</div>
<div class="main">
<div class="card_wrap" v-for="(cc, inner) in item.content" :key="inner">
<div class="card_item" right-width="65">
<div class="card_item_wrap">
<div class="select_box" @click="goodsSelectedHandle(cc.goods_id, cc.goods_sku_id)">
</div>
<div class="img_wrap">
<img :src="cc.goods.cover" mode="aspectFill" />
</div>
<div class="info">
<div class="it">
<div class="goods_title">
{{ cc.goods.title }}
</div>
<div class="deleteicon">
<div class="delete" @click="goodsDeleteHandle(cc.goods_id, cc.goods_sku_id)">删除</div>
</div>
<!-- @click="skuChangeHandle(cc)" --> <!-- @click="skuChangeHandle(cc)" -->
<div class="sku" v-if="cc.sku" > <div class="sku" v-if="cc.sku" >
<div class="text">{{ cc.sku.sku }}</div> <div class="text">{{ cc.sku.sku }}</div>
</div>
</div> </div>
</div> <div class="ib">
<div class="ib"> <!-- 会员 -->
<div class="pricebox"> <div class="pricebox">
<div class="price"> <div class="price">
<div class="price_icon">¥</div>
<div class="price_main din"> <div class="price_icon">会员 ¥</div>
{{ cc.formatBig }} <div class="price_main din">
<text class="mini">{{ cc.formatMini }}</text> {{ cc.formatBig }}
<text class="mini">{{ cc.formatMini }}</text>
</div>
</div> </div>
</div>
<div class="price jfprice">
<div class="price jfprice"> <div class="price_icon">+积分:</div>
<div class="price_icon">积分:</div> <div class="price_main din">
<div class="price_main din"> {{ cc.goods.integral }}
{{ cc.goods.integral }} </div>
</div> </div>
</div> </div>
<div class="num">
<el-input-number :data-gid="cc.goods_id" :data-sid="cc.goods_sku_id"
:data-cid="cc.cart_id" :min="1" @change="(e)=>stepMinusHandle(e, cc)" size="small" v-model="cc.num"></el-input-number>
</div>
</div> </div>
<div class="num">
<el-input-number :data-gid="cc.goods_id" :data-sid="cc.goods_sku_id" <div class="ib">
:data-cid="cc.cart_id" :min="1" @change="(e)=>stepMinusHandle(e, cc)" size="small" v-model="cc.num"></el-input-number> <!-- 会员 -->
<div class="pricebox">
<div class="price">
<div class="price_icon">不用使用积分 ¥</div>
<div class="price_main din">
{{ parseFloat(parseFloat(cc.goods.price) + parseFloat(cc.goods.integral)).toFixed(2) }}
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -67,7 +90,7 @@ ...@@ -67,7 +90,7 @@
</div> </div>
</div> </div>
</div> </div>
</div> </el-scrollbar>
<div class="total"> <div class="total">
...@@ -76,16 +99,19 @@ ...@@ -76,16 +99,19 @@
</div> </div>
<div class="total"> <div class="total">
<small>需付:</small>{{Userprice }} <small>不使用积分需付:</small>{{Userprice }}
</div> </div>
<div class="pos_btn"> <div class="pos_btn">
<!-- <el-button size="large" type="primary" @click="chooseSerial" >连接扫码枪</el-button> --> <!-- <el-button size="large" type="primary" @click="chooseSerial" >连接扫码枪</el-button> -->
<el-button size="large" type="primary" @click="focusfun" >监听扫码枪识别</el-button> <el-button size="large" type="primary" @click="focusfun(1)" >监听扫码枪识别</el-button>
<el-button size="large" type="danger" @click="delAllGoods()">清空购物单</el-button> <el-button size="large" type="danger" @click="delAllGoods()">清空购物单</el-button>
<el-button size="large" type="success" @click="checkOut()">结算</el-button> <el-button size="large" type="success" @click="focusfun(2)">会员扣积分</el-button>
<el-button size="large" type="success" @click="checkOut()">会员结算</el-button>
<!-- addjf 会员扣积分 -->
</div> </div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
...@@ -106,7 +132,7 @@ ...@@ -106,7 +132,7 @@
</div> </div>
</el-header> </el-header>
<scTable tableName="member" ref="table" :apiObj="list.apiObj" :column="list.column" row-key="id" @selection-change="selectionChange" border stripe> <scTable tableName="member" ref="table" :pageSize="11" :apiObj="list.apiObj" :column="list.column" row-key="id" @selection-change="selectionChange" border stripe>
<el-table-column type="selection" width="50"></el-table-column> <el-table-column type="selection" width="50"></el-table-column>
<template #cover="scope"> <template #cover="scope">
<img :src="scope.row.cover" width="40" height="40" v-if="scope.row.cover" /> <img :src="scope.row.cover" width="40" height="40" v-if="scope.row.cover" />
...@@ -185,6 +211,12 @@ ...@@ -185,6 +211,12 @@
<save v-if="dialog.save" ref="saveBox" @success="upsearch" @closed="dialog.save=false" /> <save v-if="dialog.save" ref="saveBox" @success="upsearch" @closed="dialog.save=false" />
<!-- 修改产品 -->
<jfsave v-if="dialog.save1" ref="saveBox1" @success="upsearch1" @closed="dialog.save1=false" />
<!-- 修改积分 -->
</el-main> </el-main>
</el-container> </el-container>
</template> </template>
...@@ -194,18 +226,20 @@ import { ElLoading, ElMessage } from "element-plus"; ...@@ -194,18 +226,20 @@ import { ElLoading, ElMessage } from "element-plus";
import { ElMessageBox } from 'element-plus' import { ElMessageBox } from 'element-plus'
import qrcode from "@/components/qrcode/qrcode.vue"; import qrcode from "@/components/qrcode/qrcode.vue";
import save from '../goods/lists/save.vue'; import save from '../goods/lists/save.vue';
import jfsave from "../member/score/save.vue";
export default { export default {
name: "ucenter.cashierhome", name: "ucenter.cashierhome",
components: { components: {
qrcode, qrcode,
save save,
jfsave,
}, },
data() { data() {
return { return {
childgoods:{spec_list:[]}, childgoods:{spec_list:[]},
dialogVisible:false, dialogVisible:false,
scrollbarheight:0,
dialogVisibletwo:false, dialogVisibletwo:false,
dialog: {search: false, import: false, print: false}, dialog: {search: false, import: false, print: false},
...@@ -245,12 +279,15 @@ export default { ...@@ -245,12 +279,15 @@ export default {
Userprice:0,//不使用积分的价格 Userprice:0,//不使用积分的价格
qrcodeurl:"", qrcodeurl:"",
listeningtype:1,//1 扫产品 2扫会员码
}; };
}, },
mounted(){ mounted(){
var orderHeight = document.body.clientHeight; var orderHeight = document.body.clientHeight;
document.getElementById("order_list").style.height = orderHeight + "px"; // document.getElementById("order_list").style.height = (orderHeight - 100) + "px";
this.scrollbarheight = orderHeight - 320;
}, },
created: function() { created: function() {
...@@ -286,6 +323,7 @@ export default { ...@@ -286,6 +323,7 @@ export default {
} }
}, },
methods: { methods: {
add(){ add(){
this.dialog.save = true this.dialog.save = true
this.$nextTick(() => { this.$nextTick(() => {
...@@ -603,8 +641,15 @@ export default { ...@@ -603,8 +641,15 @@ export default {
}) })
}, },
focusfun(){ focusfun(types){
// 自动聚焦到输入框,方便直接扫描 // 自动聚焦到输入框,方便直接扫描
if(types==2 && this.totaljifen==0){
this.$message.error("店员,没有东西,怎么扣积分呀~");
return false;
}
this.listeningtype = types;
this.loading = ElLoading.service({ this.loading = ElLoading.service({
lock: true, lock: true,
text: "请开始扫码识别", text: "请开始扫码识别",
...@@ -616,9 +661,13 @@ export default { ...@@ -616,9 +661,13 @@ export default {
// this.loading.close(); // this.loading.close();
}, },
handleScannerInput(event) { handleScannerInput(event) {
// return false;
const input = event.target; const input = event.target;
clearTimeout(this.typingTimeout); clearTimeout(this.typingTimeout);
console.log('input.value00:', input.value );
// 如果用户手动输入,则设置一个短暂的延迟 // 如果用户手动输入,则设置一个短暂的延迟
if (this.isTyping) { if (this.isTyping) {
this.typingTimeout = setTimeout(() => { this.typingTimeout = setTimeout(() => {
...@@ -631,12 +680,24 @@ export default { ...@@ -631,12 +680,24 @@ export default {
console.log('input.value:', input.value ); console.log('input.value:', input.value );
if(this.listeningtype==1){
//扫产品
if(input.value && input.value.length>5){
this.childgoods.goods_sn = input.value;
this.childgoods.store_id = 0;
this.addCart("single", "", 1);
}
}else if(this.listeningtype==2){
//扫会员码
console.info("input.value 扫会员码",input.value);
var idPattern = /^\d+$/;
if(input.value && idPattern.test(input.value) && input.value.length<8){
this.addjf(input.value);
}
if(input.value && input.value.length>5){
this.childgoods.goods_sn = input.value;
this.childgoods.store_id = 0;
this.addCart("single", "", 1);
} }
// 清空输入框以便下一次扫描 // 清空输入框以便下一次扫描
input.value = ''; input.value = '';
...@@ -644,19 +705,31 @@ export default { ...@@ -644,19 +705,31 @@ export default {
this.blurfun(); this.blurfun();
}, 500); // 假设用户不会连续输入超过500ms }, 700); // 假设用户不会连续输入超过500ms
} else { } else {
clearTimeout(this.typingTimeout); clearTimeout(this.typingTimeout);
// 扫描完成后的处理逻辑 // 扫描完成后的处理逻辑
this.scannedCode = input.value; this.scannedCode = input.value;
console.log('Scanned code:', this.scannedCode); console.log('Scanned code:', this.scannedCode);
if(input.value && input.value.length>5){ if(this.listeningtype==1){
this.childgoods.goods_sn = input.value; //扫产品
this.childgoods.store_id = 0; if(input.value && input.value.length>5){
this.addCart("single", "", 1); this.childgoods.goods_sn = input.value;
this.childgoods.store_id = 0;
this.addCart("single", "", 1);
}
}else if(this.listeningtype==2){
//扫会员码
console.info("input.value 扫会员码",input.value);
var idPattern = /^\d+$/;
if(input.value && idPattern.test(input.value) && input.value.length<8){
this.addjf(input.value);
}
} }
console.log('input.value:', input.value ); console.log('input.value:', input.value );
// 清空输入框以便下一次扫描 // 清空输入框以便下一次扫描
input.value = ''; input.value = '';
...@@ -664,12 +737,25 @@ export default { ...@@ -664,12 +737,25 @@ export default {
// 处理扫码后的业务逻辑... // 处理扫码后的业务逻辑...
} }
}, },
addjf(user_id){
console.info("addjf");
this.dialog.save1 = true
this.$nextTick(() => {
this.$refs.saveBox1.open().setData({
amount:this.totaljifen,//积分额度
member_id:user_id,//用户
type:'pay',//积分类型
remark:"到店消费",//积分描述
})
})
},
onFocus() { onFocus() {
// 当输入框获得焦点时,认为用户可能开始手动输入 // 当输入框获得焦点时,认为用户可能开始手动输入
this.isTyping = true; this.isTyping = true;
}, },
//失去焦点 //失去焦点
blurfun(){ blurfun(){
console.info('blurfun');
this.isTyping = false; this.isTyping = false;
this.loading.close(); this.loading.close();
}, },
...@@ -769,6 +855,9 @@ export default { ...@@ -769,6 +855,9 @@ export default {
upsearch(){ upsearch(){
this.$refs.table.reload(this.search); this.$refs.table.reload(this.search);
}, },
upsearch1(){
},
moreUpsearch(search){ moreUpsearch(search){
this.search = search; this.search = search;
this.upsearch(); this.upsearch();
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<sc-tag-input v-model="form.tags" placeholder="请输入标签"/> <sc-tag-input v-model="form.tags" placeholder="请输入标签"/>
</el-form-item> </el-form-item>
<el-form-item label="产品编码" prop="goods_sn"> <el-form-item label="产品编码" prop="goods_sn">
<el-input type="textarea" v-model="form.goods_sn" placeholder="请输入产品编码" clearable /> <el-input v-model="form.goods_sn" placeholder="请输入产品编码" clearable />
</el-form-item> </el-form-item>
<el-form-item label="简述" prop="description"> <el-form-item label="简述" prop="description">
<el-input type="textarea" v-model="form.description" placeholder="请输入简述" clearable /> <el-input type="textarea" v-model="form.description" placeholder="请输入简述" clearable />
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
</el-form> </el-form>
<template #footer> <template #footer>
<el-button @click="visible=false" >取 消</el-button> <el-button @click="visible=false" >取 消</el-button>
<el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="submit()">保 存</el-button> <el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="submit()">提 交</el-button>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
...@@ -31,7 +31,7 @@ export default { ...@@ -31,7 +31,7 @@ export default {
return { return {
mode: "add", mode: "add",
titleMap: { titleMap: {
add: '新增等级', add: '积分',
edit: '编辑等级', edit: '编辑等级',
show: '查看' show: '查看'
}, },
......
...@@ -31,7 +31,7 @@ export default { ...@@ -31,7 +31,7 @@ export default {
return { return {
mode: "add", mode: "add",
titleMap: { titleMap: {
add: '新增等级', add: '积分',
edit: '编辑等级', edit: '编辑等级',
show: '查看' show: '查看'
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment