拉取DEV代码
This commit is contained in:
14
src/api/homes/record.js
Normal file
14
src/api/homes/record.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询交班记录
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function tbHandoverGet(leng) {
|
||||||
|
return request({
|
||||||
|
url: leng,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1,35 +1,30 @@
|
|||||||
import request from '@/utils/request'
|
import request from "@/utils/request";
|
||||||
|
|
||||||
export function login(username, password, code, uuid) {
|
export function login(data) {
|
||||||
return request({
|
return request({
|
||||||
url: 'auth/login',
|
url: "auth/login",
|
||||||
method: 'post',
|
method: "post",
|
||||||
data: {
|
data
|
||||||
username,
|
});
|
||||||
password,
|
|
||||||
code,
|
|
||||||
uuid
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getInfo() {
|
export function getInfo() {
|
||||||
return request({
|
return request({
|
||||||
url: 'auth/info',
|
url: "auth/info",
|
||||||
method: 'get'
|
method: "get"
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getCodeImg(header) {
|
export function getCodeImg(header) {
|
||||||
return request({
|
return request({
|
||||||
url: 'auth/code',
|
url: "auth/code",
|
||||||
method: 'get'
|
method: "get"
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function logout() {
|
export function logout() {
|
||||||
return request({
|
return request({
|
||||||
url: 'auth/logout',
|
url: "auth/logout",
|
||||||
method: 'delete'
|
method: "delete"
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -465,7 +465,6 @@ export function queryAllShopInfo(params) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改商品排序
|
* 修改商品排序
|
||||||
* @returns
|
* @returns
|
||||||
@@ -502,7 +501,6 @@ export function upCategorySort(data) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询店铺充值记录
|
* 查询店铺充值记录
|
||||||
* @returns
|
* @returns
|
||||||
@@ -526,10 +524,86 @@ export function downloadTableRecharge(data) {
|
|||||||
return request({
|
return request({
|
||||||
url: `/api/tbShopUser/recharge/download`,
|
url: `/api/tbShopUser/recharge/download`,
|
||||||
method: "post",
|
method: "post",
|
||||||
data:{
|
data: {
|
||||||
shopId: localStorage.getItem("shopId"),
|
shopId: localStorage.getItem("shopId"),
|
||||||
...data
|
...data
|
||||||
},
|
},
|
||||||
responseType: "blob"
|
responseType: "blob"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 员工列表
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function tbPlussShopStaffGet(params) {
|
||||||
|
return request({
|
||||||
|
url: `/api/tbPlussShopStaff`,
|
||||||
|
method: "get",
|
||||||
|
params: {
|
||||||
|
shopId: localStorage.getItem("shopId"),
|
||||||
|
...params
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色列表
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function rolesGet() {
|
||||||
|
return request({
|
||||||
|
url: `/api/roles`,
|
||||||
|
method: "get"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 增加员工
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function tbPlussShopStaff(data) {
|
||||||
|
return request({
|
||||||
|
url: `/api/tbPlussShopStaff`,
|
||||||
|
method: data.id ? "put" : "post",
|
||||||
|
data: {
|
||||||
|
shopId: localStorage.getItem("shopId"),
|
||||||
|
...data
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id获取员工信息
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function tbPlussShopStaffDetail(id) {
|
||||||
|
return request({
|
||||||
|
url: `/api/tbPlussShopStaff/${id}`,
|
||||||
|
method: "get"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更改员工状态
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function updateStatus(data) {
|
||||||
|
return request({
|
||||||
|
url: `/api/tbPlussShopStaff/updateStatus`,
|
||||||
|
method: "put",
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 员工删除
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function shopStaffDelete(data) {
|
||||||
|
return request({
|
||||||
|
url: `/api/tbPlussShopStaff`,
|
||||||
|
method: "delete",
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
@@ -58,6 +58,12 @@ export const constantRouterMap = [
|
|||||||
component: (resolve) => require(['@/views/home/data_tables'], resolve),
|
component: (resolve) => require(['@/views/home/data_tables'], resolve),
|
||||||
name: 'data_tables',
|
name: 'data_tables',
|
||||||
meta: { title: '桌台统计' }
|
meta: { title: '桌台统计' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'data_record',
|
||||||
|
component: (resolve) => require(['@/views/home/data_record'], resolve),
|
||||||
|
name: 'data_record',
|
||||||
|
meta: { title: '交班记录' }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { login, getInfo, logout } from '@/api/login'
|
import { login, getInfo, logout } from "@/api/login";
|
||||||
import { getToken, setToken, removeToken } from '@/utils/auth'
|
import { getToken, setToken, removeToken } from "@/utils/auth";
|
||||||
|
|
||||||
const user = {
|
const user = {
|
||||||
state: {
|
state: {
|
||||||
@@ -13,91 +13,97 @@ const user = {
|
|||||||
mutations: {
|
mutations: {
|
||||||
// 是否为手动退出登录
|
// 是否为手动退出登录
|
||||||
SD_LOGOUT: (state, f) => {
|
SD_LOGOUT: (state, f) => {
|
||||||
state.sdLogout = f
|
state.sdLogout = f;
|
||||||
},
|
},
|
||||||
SET_TOKEN: (state, token) => {
|
SET_TOKEN: (state, token) => {
|
||||||
state.token = token
|
state.token = token;
|
||||||
},
|
},
|
||||||
SET_USER: (state, user) => {
|
SET_USER: (state, user) => {
|
||||||
state.user = user
|
state.user = user;
|
||||||
},
|
},
|
||||||
SET_ROLES: (state, roles) => {
|
SET_ROLES: (state, roles) => {
|
||||||
state.roles = roles
|
state.roles = roles;
|
||||||
},
|
},
|
||||||
SET_LOAD_MENUS: (state, loadMenus) => {
|
SET_LOAD_MENUS: (state, loadMenus) => {
|
||||||
state.loadMenus = loadMenus
|
state.loadMenus = loadMenus;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
// 登录
|
// 登录
|
||||||
Login({ commit }, userInfo) {
|
Login({ commit }, userInfo) {
|
||||||
const rememberMe = userInfo.rememberMe
|
const rememberMe = userInfo.rememberMe;
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
login(userInfo.username, userInfo.password, userInfo.code, userInfo.uuid).then(res => {
|
login(userInfo)
|
||||||
// console.log('登录成功后返回===', res)
|
.then(res => {
|
||||||
localStorage.setItem('logoutHandle', false)
|
// console.log('登录成功后返回===', res)
|
||||||
localStorage.setItem('shopId', res.shopId)
|
localStorage.setItem("logoutHandle", false);
|
||||||
localStorage.setItem('shopName', res.shopName)
|
localStorage.setItem("shopId", res.shopId);
|
||||||
localStorage.setItem('logo', res.logo)
|
localStorage.setItem("shopName", res.shopName);
|
||||||
setToken(res.token, rememberMe)
|
localStorage.setItem("logo", res.logo);
|
||||||
commit('SET_TOKEN', res.token)
|
setToken(res.token, rememberMe);
|
||||||
setUserInfo(res.user, commit)
|
commit("SET_TOKEN", res.token);
|
||||||
// 第一次加载菜单时用到, 具体见 src 目录下的 permission.js
|
setUserInfo(res.user, commit);
|
||||||
commit('SET_LOAD_MENUS', true)
|
// 第一次加载菜单时用到, 具体见 src 目录下的 permission.js
|
||||||
resolve()
|
commit("SET_LOAD_MENUS", true);
|
||||||
}).catch(error => {
|
resolve();
|
||||||
reject(error)
|
})
|
||||||
})
|
.catch(error => {
|
||||||
})
|
reject(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// 获取用户信息
|
// 获取用户信息
|
||||||
GetInfo({ commit }) {
|
GetInfo({ commit }) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
getInfo().then(res => {
|
getInfo()
|
||||||
setUserInfo(res, commit)
|
.then(res => {
|
||||||
resolve(res)
|
setUserInfo(res, commit);
|
||||||
}).catch(error => {
|
resolve(res);
|
||||||
reject(error)
|
})
|
||||||
})
|
.catch(error => {
|
||||||
})
|
reject(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 登出
|
// 登出
|
||||||
LogOut({ commit }) {
|
LogOut({ commit }) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
logout().then(res => {
|
logout()
|
||||||
logOut(commit)
|
.then(res => {
|
||||||
resolve()
|
logOut(commit);
|
||||||
}).catch(error => {
|
resolve();
|
||||||
logOut(commit)
|
})
|
||||||
reject(error)
|
.catch(error => {
|
||||||
})
|
logOut(commit);
|
||||||
})
|
reject(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
updateLoadMenus({ commit }) {
|
updateLoadMenus({ commit }) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
commit('SET_LOAD_MENUS', false)
|
commit("SET_LOAD_MENUS", false);
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
export const logOut = (commit) => {
|
export const logOut = commit => {
|
||||||
commit('SET_TOKEN', '')
|
commit("SET_TOKEN", "");
|
||||||
commit('SET_ROLES', [])
|
commit("SET_ROLES", []);
|
||||||
removeToken()
|
removeToken();
|
||||||
}
|
};
|
||||||
|
|
||||||
export const setUserInfo = (res, commit) => {
|
export const setUserInfo = (res, commit) => {
|
||||||
// 如果没有任何权限,则赋予一个默认的权限,避免请求死循环
|
// 如果没有任何权限,则赋予一个默认的权限,避免请求死循环
|
||||||
if (res.roles.length === 0) {
|
if (res.roles.length === 0) {
|
||||||
commit('SET_ROLES', ['ROLE_SYSTEM_DEFAULT'])
|
commit("SET_ROLES", ["ROLE_SYSTEM_DEFAULT"]);
|
||||||
} else {
|
} else {
|
||||||
commit('SET_ROLES', res.roles)
|
commit("SET_ROLES", res.roles);
|
||||||
}
|
}
|
||||||
commit('SET_USER', res.user)
|
commit("SET_USER", res.user);
|
||||||
}
|
};
|
||||||
|
|
||||||
export default user
|
export default user;
|
||||||
|
|||||||
340
src/views/home/data_record.vue
Normal file
340
src/views/home/data_record.vue
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<div class="head-container">
|
||||||
|
<el-form :model="query" inline label-position="left">
|
||||||
|
<el-radio-group v-model="timeValue" @change="timeChange">
|
||||||
|
<el-radio-button label="">全部</el-radio-button>
|
||||||
|
<el-radio-button label="0">今天</el-radio-button>
|
||||||
|
<el-radio-button label="-1">昨天</el-radio-button>
|
||||||
|
<el-radio-button label="-7">最近7天</el-radio-button>
|
||||||
|
<el-radio-button label="-30">最近30天</el-radio-button>
|
||||||
|
<el-radio-button label="week">本周</el-radio-button>
|
||||||
|
<el-radio-button label="month">本月</el-radio-button>
|
||||||
|
<el-radio-button label="custom">自定义</el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
<el-date-picker v-model="query.createdAt" type="daterange" range-separator="至" start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" value-format="yyyyMMdd">
|
||||||
|
</el-date-picker>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="getTableData">查询</el-button>
|
||||||
|
<el-button @click="resetHandle">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<div class="head-container">
|
||||||
|
<el-table :data="tableData.data" v-loading="tableData.loading" v-if="orderType == 1">
|
||||||
|
|
||||||
|
<el-table-column type="index" width="50">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="商户名称" prop="merchantName"> </el-table-column>
|
||||||
|
<el-table-column label="打印机编号" prop="printNo"></el-table-column>
|
||||||
|
<el-table-column label="职员名称" prop="staffName"></el-table-column>
|
||||||
|
<el-table-column label="订单数量" prop="orderNum"></el-table-column>
|
||||||
|
<el-table-column label="应交金额" prop="payable"></el-table-column>
|
||||||
|
<el-table-column label="上交金额" prop="handIn"></el-table-column>
|
||||||
|
<el-table-column label="快捷收款金额" prop="quickAmount"></el-table-column>
|
||||||
|
<el-table-column label="退款金额" prop="returnAmount"></el-table-column>
|
||||||
|
<el-table-column label="总收入" prop="totalAmount"></el-table-column>
|
||||||
|
<el-table-column label="备用金" prop="imprest"></el-table-column>
|
||||||
|
<el-table-column label="开始时间" prop="createTime">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<div>
|
||||||
|
{{ scope.row.createTime }}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="交班时间" prop="endTime">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<div>
|
||||||
|
{{ scope.row.createTime }}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div class="head-container">
|
||||||
|
<el-pagination :total="tableData.total" :current-page="tableData.page + 1" :page-size="tableData.size"
|
||||||
|
@current-change="paginationChange" @size-change="sizeChange"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"></el-pagination>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { tbHandoverGet } from '@/api/homes/record.js'
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
timeValue: "",
|
||||||
|
resetQuery: null,
|
||||||
|
orderType: "1",
|
||||||
|
categorys: [],
|
||||||
|
query: {
|
||||||
|
createdAt: [],
|
||||||
|
proName: '',
|
||||||
|
cateId: ''
|
||||||
|
},
|
||||||
|
tableData: {
|
||||||
|
data: [],
|
||||||
|
page: 0,
|
||||||
|
size: 10,
|
||||||
|
loading: false,
|
||||||
|
total: 0
|
||||||
|
},
|
||||||
|
payCountList: "",
|
||||||
|
payCountTotal: 0
|
||||||
|
};
|
||||||
|
},
|
||||||
|
filters: {
|
||||||
|
timeFilter(s) {
|
||||||
|
return dayjs(s).format("YYYY-MM-DD");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.resetQuery = { ...this.query };
|
||||||
|
this.getTableData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//携带table id跳转到订单列表页面
|
||||||
|
toTableOrderList(data) {
|
||||||
|
console.log(data)
|
||||||
|
this.$router.push({
|
||||||
|
path: '/order_manage/order_list',
|
||||||
|
query: {
|
||||||
|
tableName: data.tableName
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 重置查询
|
||||||
|
resetHandle() {
|
||||||
|
this.timeValue = "";
|
||||||
|
this.query = { ...this.resetQuery };
|
||||||
|
this.page = 0;
|
||||||
|
this.getTableData();
|
||||||
|
},
|
||||||
|
// 分页大小改变
|
||||||
|
sizeChange(e) {
|
||||||
|
this.tableData.size = e;
|
||||||
|
this.getTableData();
|
||||||
|
},
|
||||||
|
// 分页回调
|
||||||
|
paginationChange(e) {
|
||||||
|
this.tableData.page = e - 1;
|
||||||
|
this.getTableData();
|
||||||
|
},
|
||||||
|
async getTableData() {
|
||||||
|
this.tableData.loading = true;
|
||||||
|
|
||||||
|
try {
|
||||||
|
let urlData = null
|
||||||
|
if (this.query.createdAt.length == 0) { // 为什么这么写 因为后端让我有时候传key值有时候不传 为啥不按照框架走后端处理起来太麻烦 前端处理 -- 魏文政 2024.7.30 15:50
|
||||||
|
urlData = `/api/tbHandover?page=${this.tableData.page + 1}&size=${this.tableData.size}&shopId=${localStorage.getItem("shopId")}`
|
||||||
|
} else {
|
||||||
|
urlData = `/api/tbHandover?page=${this.tableData.page + 1}&size=${this.tableData.size}&shopId=${localStorage.getItem("shopId")}&tradeDay=${this.query.createdAt[0] ? this.query.createdAt[0] : ''}&tradeDay=${this.query.createdAt[1] ? this.query.createdAt[1] : ''}`
|
||||||
|
}
|
||||||
|
const res = await tbHandoverGet(urlData);
|
||||||
|
this.tableData.loading = false;
|
||||||
|
this.tableData.data = res.content;
|
||||||
|
this.tableData.total = res.totalElements;
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 切换时间
|
||||||
|
timeChange(e) {
|
||||||
|
// const format = ["YYYY-MM-DD 00:00:00", "YYYY-MM-DD 23:59:59"];
|
||||||
|
const format = ["YYYYMMDD", "YYYYMMDD"];
|
||||||
|
switch (e) {
|
||||||
|
case "":
|
||||||
|
// 全部
|
||||||
|
this.query.createdAt = [];
|
||||||
|
break;
|
||||||
|
case "0":
|
||||||
|
// 今天
|
||||||
|
this.query.createdAt = [
|
||||||
|
dayjs().format(format[0]),
|
||||||
|
dayjs().format(format[1])
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
case "-1":
|
||||||
|
// 昨天
|
||||||
|
this.query.createdAt = [
|
||||||
|
dayjs()
|
||||||
|
.add(-1, "d")
|
||||||
|
.format(format[0]),
|
||||||
|
dayjs()
|
||||||
|
.add(-1, "d")
|
||||||
|
.format(format[1])
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
case "-7":
|
||||||
|
// 最近7天
|
||||||
|
this.query.createdAt = [
|
||||||
|
dayjs()
|
||||||
|
.add(-7, "d")
|
||||||
|
.format(format[0]),
|
||||||
|
dayjs().format(format[1])
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
case "-30":
|
||||||
|
// 最近7天
|
||||||
|
this.query.createdAt = [
|
||||||
|
dayjs()
|
||||||
|
.add(-30, "d")
|
||||||
|
.format(format[0]),
|
||||||
|
dayjs().format(format[1])
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
case "week":
|
||||||
|
// 本周
|
||||||
|
this.query.createdAt = [
|
||||||
|
dayjs()
|
||||||
|
.startOf("week")
|
||||||
|
.format(format[0]),
|
||||||
|
dayjs()
|
||||||
|
.endOf("week")
|
||||||
|
.format(format[1])
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
case "month":
|
||||||
|
// 本周
|
||||||
|
this.query.createdAt = [
|
||||||
|
dayjs()
|
||||||
|
.startOf("month")
|
||||||
|
.format(format[0]),
|
||||||
|
dayjs()
|
||||||
|
.endOf("month")
|
||||||
|
.format(format[1])
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
case "custom":
|
||||||
|
// 自定义
|
||||||
|
this.query.createdAt = [];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.cursor-pointer {
|
||||||
|
cursor: pointer;
|
||||||
|
color: #1890ff;
|
||||||
|
transition: all 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cursor-pointer:hover {
|
||||||
|
opacity: .7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collect_wrap {
|
||||||
|
display: flex;
|
||||||
|
gap: 14px;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
padding: 20px;
|
||||||
|
|
||||||
|
.icon_wrap {
|
||||||
|
$size: 34px;
|
||||||
|
$border: 6px;
|
||||||
|
width: $size;
|
||||||
|
height: $size;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background-color: var(--bg-color);
|
||||||
|
border-radius: 50%;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
width: $size + $border;
|
||||||
|
height: $size + $border;
|
||||||
|
border-radius: 50%;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
background-color: var(--bg-color);
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding-left: 10px;
|
||||||
|
|
||||||
|
.m {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.t {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #999;
|
||||||
|
padding-top: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.refund {
|
||||||
|
color: #ff9731;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table_order_info {
|
||||||
|
.order_no {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.type {
|
||||||
|
color: #e6a23c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.goods_info {
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
&:not(:first-child) {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cover {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding-left: 10px;
|
||||||
|
|
||||||
|
.sku {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -24,6 +24,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<el-table :data="tableData.list" v-loading="tableData.loading">
|
<el-table :data="tableData.list" v-loading="tableData.loading">
|
||||||
|
<el-table-column label="规格名称" prop="specSnap" v-if="goods.specSnap">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<span v-if="scope.row.specSnap"> {{ scope.row.specSnap }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="类型">
|
<el-table-column label="类型">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-tag type="info">{{ scope.row.type }}</el-tag>
|
<el-tag type="info">{{ scope.row.type }}</el-tag>
|
||||||
@@ -134,6 +139,7 @@ export default {
|
|||||||
async show(obj) {
|
async show(obj) {
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
this.goods = obj
|
this.goods = obj
|
||||||
|
console.log(obj)
|
||||||
this.tbProductStockDetailSum()
|
this.tbProductStockDetailSum()
|
||||||
await this.getTableData()
|
await this.getTableData()
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
|
import { formatDecimal } from '@/utils/index.js'
|
||||||
import { tbProductStockOperateDetail } from '@/api/invoicing'
|
import { tbProductStockOperateDetail } from '@/api/invoicing'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
@@ -54,12 +55,11 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
//返回现有库存数量
|
//返回现有库存数量
|
||||||
returnNowHasNumbr(row) {
|
returnNowHasNumbr(row) {
|
||||||
const subType=this.tableData.detail.subType||1
|
const subType = this.tableData.detail.subType || 1
|
||||||
console.log(row)
|
if (!row.hasOwnProperty('number')) {
|
||||||
if(!row.hasOwnProperty('number')){
|
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
return row.stockNumber * 1 + row.number * subType + row.unitName
|
return formatDecimal(parseFloat(row.stockNumber * 1 + row.number * subType + row.unitName), 2, true)
|
||||||
},
|
},
|
||||||
show(row) {
|
show(row) {
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
@@ -72,7 +72,7 @@ export default {
|
|||||||
const res = await tbProductStockOperateDetail(id)
|
const res = await tbProductStockOperateDetail(id)
|
||||||
this.tableData.loading = false
|
this.tableData.loading = false
|
||||||
this.tableData.detail = res
|
this.tableData.detail = res
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -304,7 +304,6 @@ export default {
|
|||||||
this.inTabValue = value
|
this.inTabValue = value
|
||||||
this.shopTypesActive = 0
|
this.shopTypesActive = 0
|
||||||
this.resetHandle()
|
this.resetHandle()
|
||||||
this.queryForm.type = type
|
|
||||||
},
|
},
|
||||||
// 计算耗材总价
|
// 计算耗材总价
|
||||||
consCountTotal(cvalue, row, key1, key2 = undefined) {
|
consCountTotal(cvalue, row, key1, key2 = undefined) {
|
||||||
@@ -415,6 +414,11 @@ export default {
|
|||||||
resetHandle() {
|
resetHandle() {
|
||||||
this.showResult = false
|
this.showResult = false
|
||||||
this.queryForm = { ...this.resetForm }
|
this.queryForm = { ...this.resetForm }
|
||||||
|
if (this.inTabValue == 'goods') {
|
||||||
|
this.queryForm.type = this.shopTypes[this.shopTypesActive].value
|
||||||
|
} else {
|
||||||
|
this.queryForm.type = this.inTabs.find(item => item.value == this.inTabValue).type
|
||||||
|
}
|
||||||
this.tableData.list = []
|
this.tableData.list = []
|
||||||
this.$refs.queryForm.resetFields()
|
this.$refs.queryForm.resetFields()
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -409,6 +409,11 @@ export default {
|
|||||||
resetHandle() {
|
resetHandle() {
|
||||||
this.showResult = false
|
this.showResult = false
|
||||||
this.queryForm = { ...this.resetForm }
|
this.queryForm = { ...this.resetForm }
|
||||||
|
if (this.inTabValue == 'goods') {
|
||||||
|
this.queryForm.type = this.shopTypes[this.shopTypesActive].value
|
||||||
|
} else {
|
||||||
|
this.queryForm.type = this.inTabs.find(item => item.value == this.inTabValue).type
|
||||||
|
}
|
||||||
this.tableData.list = []
|
this.tableData.list = []
|
||||||
this.$refs.queryForm.resetFields()
|
this.$refs.queryForm.resetFields()
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,6 +5,17 @@
|
|||||||
<h3 class="title">
|
<h3 class="title">
|
||||||
银收客后台管理
|
银收客后台管理
|
||||||
</h3>
|
</h3>
|
||||||
|
<el-form-item>
|
||||||
|
<el-radio-group v-model="loginForm.loginType">
|
||||||
|
<el-radio-button label="merchant">商户</el-radio-button>
|
||||||
|
<el-radio-button label="staff">员工</el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item prop="merchantName" v-if="loginForm.loginType == 'staff'">
|
||||||
|
<el-input v-model="loginForm.merchantName" type="text" auto-complete="off" placeholder="商户号">
|
||||||
|
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item prop="username">
|
<el-form-item prop="username">
|
||||||
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
|
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
|
||||||
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||||
@@ -27,9 +38,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-checkbox v-model="loginForm.rememberMe" style="margin:0 0 25px 0;">
|
<!-- <el-form-item>
|
||||||
记住我
|
<el-checkbox v-model="loginForm.rememberMe">
|
||||||
</el-checkbox>
|
记住我
|
||||||
|
</el-checkbox>
|
||||||
|
</el-form-item> -->
|
||||||
<el-form-item style="width:100%;">
|
<el-form-item style="width:100%;">
|
||||||
<el-button :loading="loading" size="medium" type="primary" style="width:100%;"
|
<el-button :loading="loading" size="medium" type="primary" style="width:100%;"
|
||||||
@click.native.prevent="handleLogin">
|
@click.native.prevent="handleLogin">
|
||||||
@@ -66,12 +79,15 @@ export default {
|
|||||||
password: '',
|
password: '',
|
||||||
rememberMe: false,
|
rememberMe: false,
|
||||||
code: '',
|
code: '',
|
||||||
uuid: ''
|
uuid: '',
|
||||||
|
merchantName: '',
|
||||||
|
loginType: 'merchant'
|
||||||
},
|
},
|
||||||
loginRules: {
|
loginRules: {
|
||||||
username: [{ required: true, trigger: 'blur', message: '用户名不能为空' }],
|
username: [{ required: true, trigger: 'blur', message: '用户名不能为空' }],
|
||||||
password: [{ required: true, trigger: 'blur', message: '密码不能为空' }],
|
password: [{ required: true, trigger: 'blur', message: '密码不能为空' }],
|
||||||
code: [{ required: true, trigger: 'change', message: '验证码不能为空' }]
|
code: [{ required: true, trigger: 'change', message: '验证码不能为空' }],
|
||||||
|
merchantName: [{ required: true, trigger: 'change', message: '商户号不能为空' }]
|
||||||
},
|
},
|
||||||
loading: false,
|
loading: false,
|
||||||
redirect: undefined
|
redirect: undefined
|
||||||
@@ -95,10 +111,10 @@ export default {
|
|||||||
created() {
|
created() {
|
||||||
// 获取验证码
|
// 获取验证码
|
||||||
this.getCode()
|
this.getCode()
|
||||||
// 获取用户名密码等Cookie
|
// // 获取用户名密码等Cookie
|
||||||
this.getCookie()
|
// this.getCookie()
|
||||||
// token 过期提示
|
// // token 过期提示
|
||||||
this.point()
|
// this.point()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getCode() {
|
getCode() {
|
||||||
@@ -119,32 +135,39 @@ export default {
|
|||||||
username: username === undefined ? this.loginForm.username : username,
|
username: username === undefined ? this.loginForm.username : username,
|
||||||
password: password,
|
password: password,
|
||||||
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
|
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
|
||||||
code: ''
|
code: '',
|
||||||
|
merchantName: '',
|
||||||
|
loginType: 'merchant'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleLogin() {
|
handleLogin() {
|
||||||
this.$refs.loginForm.validate(valid => {
|
this.$refs.loginForm.validate(valid => {
|
||||||
const user = {
|
// const user = {
|
||||||
username: this.loginForm.username,
|
// username: this.loginForm.username,
|
||||||
password: this.loginForm.password,
|
// password: this.loginForm.password,
|
||||||
rememberMe: this.loginForm.rememberMe,
|
// rememberMe: this.loginForm.rememberMe,
|
||||||
code: this.loginForm.code,
|
// code: this.loginForm.code,
|
||||||
uuid: this.loginForm.uuid
|
// uuid: this.loginForm.uuid,
|
||||||
}
|
// merchantName: this.loginForm.merchantName,
|
||||||
if (user.password !== this.cookiePass) {
|
// loginType: this.loginForm.loginType
|
||||||
user.password = encrypt(user.password)
|
// }
|
||||||
}
|
// if (user.password !== this.cookiePass) {
|
||||||
|
// user.password = encrypt(user.password)
|
||||||
|
// }
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
if (user.rememberMe) {
|
// if (user.rememberMe) {
|
||||||
Cookies.set('username', user.username, { expires: Config.passCookieExpires })
|
// Cookies.set('username', user.username, { expires: Config.passCookieExpires })
|
||||||
Cookies.set('password', user.password, { expires: Config.passCookieExpires })
|
// Cookies.set('password', user.password, { expires: Config.passCookieExpires })
|
||||||
Cookies.set('rememberMe', user.rememberMe, { expires: Config.passCookieExpires })
|
// Cookies.set('rememberMe', user.rememberMe, { expires: Config.passCookieExpires })
|
||||||
} else {
|
// } else {
|
||||||
Cookies.remove('username')
|
// Cookies.remove('username')
|
||||||
Cookies.remove('password')
|
// Cookies.remove('password')
|
||||||
Cookies.remove('rememberMe')
|
// Cookies.remove('rememberMe')
|
||||||
}
|
// }
|
||||||
|
// console.log(user);
|
||||||
|
const user = { ...this.loginForm }
|
||||||
|
user.password = encrypt(user.password)
|
||||||
this.$store.dispatch('Login', user).then(() => {
|
this.$store.dispatch('Login', user).then(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.$router.push({ path: this.redirect || '/' })
|
this.$router.push({ path: this.redirect || '/' })
|
||||||
@@ -217,10 +240,12 @@ export default {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
color: #bfbfbf;
|
color: #bfbfbf;
|
||||||
}
|
}
|
||||||
|
|
||||||
.code_wrap {
|
.code_wrap {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-code {
|
.login-code {
|
||||||
width: 33%;
|
width: 33%;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|||||||
@@ -16,6 +16,9 @@
|
|||||||
<el-form-item label="商品名称" prop="name">
|
<el-form-item label="商品名称" prop="name">
|
||||||
<el-input v-model="form.name" placeholder="请输入商品名称" style="width: 500px;"></el-input>
|
<el-input v-model="form.name" placeholder="请输入商品名称" style="width: 500px;"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="商品介绍" prop="shortTitle">
|
||||||
|
<el-input v-model="form.shortTitle" type="textarea" placeholder="请输入商品介绍" style="width: 500px;"></el-input>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="单位" prop="unitId">
|
<el-form-item label="单位" prop="unitId">
|
||||||
<el-select v-model="form.unitId" placeholder="请选择单位" style="width: 500px;" @change="selectUnitt">
|
<el-select v-model="form.unitId" placeholder="请选择单位" style="width: 500px;" @change="selectUnitt">
|
||||||
<el-option :label="item.name" :value="item.id" v-for="item in units" :key="item.id"></el-option>
|
<el-option :label="item.name" :value="item.id" v-for="item in units" :key="item.id"></el-option>
|
||||||
@@ -89,38 +92,48 @@
|
|||||||
<el-table :data="form.skuList" border>
|
<el-table :data="form.skuList" border>
|
||||||
<el-table-column label="售价" prop="salePrice">
|
<el-table-column label="售价" prop="salePrice">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'salePrice')" @blur="priceFormat(scope.row,'salePrice')" v-model="scope.row.salePrice" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'salePrice')" @blur="priceFormat(scope.row, 'salePrice')"
|
||||||
|
v-model="scope.row.salePrice" controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="会员价" prop="memberPrice">
|
<el-table-column label="会员价" prop="memberPrice">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'memberPrice')" @blur="priceFormat(scope.row,'memberPrice')" v-model="scope.row.memberPrice" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'memberPrice')"
|
||||||
|
@blur="priceFormat(scope.row, 'memberPrice')" v-model="scope.row.memberPrice"
|
||||||
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="成本价" prop="costPrice">
|
<el-table-column label="成本价" prop="costPrice">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'costPrice')" @blur="priceFormat(scope.row,'costPrice')" v-model="scope.row.costPrice" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'costPrice')" @blur="priceFormat(scope.row, 'costPrice')"
|
||||||
|
v-model="scope.row.costPrice" controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="原价" prop="originPrice">
|
<el-table-column label="原价" prop="originPrice">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'originPrice')" @blur="priceFormat(scope.row,'originPrice')" v-model="scope.row.originPrice" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'originPrice')"
|
||||||
|
@blur="priceFormat(scope.row, 'originPrice')" v-model="scope.row.originPrice"
|
||||||
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="起售数量" prop="suit">
|
<el-table-column label="起售数量" prop="suit">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'suit')" @blur="priceFormat(scope.row,'suit')" v-model="scope.row.suit" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'suit')" @blur="priceFormat(scope.row, 'suit')"
|
||||||
|
v-model="scope.row.suit" controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="库存数量" prop="stockNumber">
|
<el-table-column label="库存数量" prop="stockNumber">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'stockNumber')" @blur="priceFormat(scope.row,'stockNumber')" v-model="scope.row.stockNumber" :disabled="!!form.id"
|
<el-input-number @change="priceFormat(scope.row, 'stockNumber')"
|
||||||
|
@blur="priceFormat(scope.row, 'stockNumber')" v-model="scope.row.stockNumber" :disabled="!!form.id"
|
||||||
controls-position="right"></el-input-number>
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="分销金额" prop="firstShared">
|
<el-table-column label="分销金额" prop="firstShared">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'firstShared')" @blur="priceFormat(scope.row,'firstShared')" v-model="scope.row.firstShared" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'firstShared')"
|
||||||
|
@blur="priceFormat(scope.row, 'firstShared')" v-model="scope.row.firstShared"
|
||||||
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="商品条码">
|
<el-table-column label="商品条码">
|
||||||
@@ -201,7 +214,8 @@
|
|||||||
<i class="icon el-icon-edit" @click="batchNumber('salePrice')"></i>
|
<i class="icon el-icon-edit" @click="batchNumber('salePrice')"></i>
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'salePrice')" @blur="priceFormat(scope.row,'salePrice')" v-model="scope.row.salePrice" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'salePrice')" @blur="priceFormat(scope.row, 'salePrice')"
|
||||||
|
v-model="scope.row.salePrice" controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="会员价" prop="memberPrice">
|
<el-table-column label="会员价" prop="memberPrice">
|
||||||
@@ -210,7 +224,9 @@
|
|||||||
<i class="icon el-icon-edit" @click="batchNumber('memberPrice')"></i>
|
<i class="icon el-icon-edit" @click="batchNumber('memberPrice')"></i>
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'memberPrice')" @blur="priceFormat(scope.row,'memberPrice')" v-model="scope.row.memberPrice" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'memberPrice')"
|
||||||
|
@blur="priceFormat(scope.row, 'memberPrice')" v-model="scope.row.memberPrice"
|
||||||
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="成本价" prop="costPrice">
|
<el-table-column label="成本价" prop="costPrice">
|
||||||
@@ -219,7 +235,8 @@
|
|||||||
<i class="icon el-icon-edit" @click="batchNumber('costPrice')"></i>
|
<i class="icon el-icon-edit" @click="batchNumber('costPrice')"></i>
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'costPrice')" @blur="priceFormat(scope.row,'costPrice')" v-model="scope.row.costPrice" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'costPrice')" @blur="priceFormat(scope.row, 'costPrice')"
|
||||||
|
v-model="scope.row.costPrice" controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="原价" prop="originPrice">
|
<el-table-column label="原价" prop="originPrice">
|
||||||
@@ -228,7 +245,9 @@
|
|||||||
<i class="icon el-icon-edit" @click="batchNumber('originPrice')"></i>
|
<i class="icon el-icon-edit" @click="batchNumber('originPrice')"></i>
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'originPrice')" @blur="priceFormat(scope.row,'originPrice')" v-model="scope.row.originPrice" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'originPrice')"
|
||||||
|
@blur="priceFormat(scope.row, 'originPrice')" v-model="scope.row.originPrice"
|
||||||
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="起售数量" prop="suit">
|
<el-table-column label="起售数量" prop="suit">
|
||||||
@@ -237,7 +256,8 @@
|
|||||||
<i class="icon el-icon-edit" @click="batchNumber('suit')"></i>
|
<i class="icon el-icon-edit" @click="batchNumber('suit')"></i>
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'originsuitrice')" @blur="priceFormat(scope.row,'suit')" v-model="scope.row.suit" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'originsuitrice')" @blur="priceFormat(scope.row, 'suit')"
|
||||||
|
v-model="scope.row.suit" controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="库存数量" prop="stockNumber">
|
<el-table-column label="库存数量" prop="stockNumber">
|
||||||
@@ -246,7 +266,8 @@
|
|||||||
<i class="icon el-icon-edit" @click="batchNumber('stockNumber')" v-if="!form.id"></i>
|
<i class="icon el-icon-edit" @click="batchNumber('stockNumber')" v-if="!form.id"></i>
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'stockNumber')" @blur="priceFormat(scope.row,'stockNumber')" v-model="scope.row.stockNumber" :disabled="!!scope.row.id"
|
<el-input-number @change="priceFormat(scope.row, 'stockNumber')"
|
||||||
|
@blur="priceFormat(scope.row, 'stockNumber')" v-model="scope.row.stockNumber" :disabled="!!scope.row.id"
|
||||||
controls-position="right"></el-input-number>
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -256,7 +277,9 @@
|
|||||||
<i class="icon el-icon-edit" @click="batchNumber('firstShared')"></i>
|
<i class="icon el-icon-edit" @click="batchNumber('firstShared')"></i>
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input-number @change="priceFormat(scope.row,'firstShared')" @blur="priceFormat(scope.row,'firstShared')" v-model="scope.row.firstShared" controls-position="right"></el-input-number>
|
<el-input-number @change="priceFormat(scope.row, 'firstShared')"
|
||||||
|
@blur="priceFormat(scope.row, 'firstShared')" v-model="scope.row.firstShared"
|
||||||
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="商品条码">
|
<el-table-column label="商品条码">
|
||||||
@@ -304,13 +327,15 @@
|
|||||||
<div class="tips">开启后: 收银完成后会自动打印对应数量的标签数</div>
|
<div class="tips">开启后: 收银完成后会自动打印对应数量的标签数</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="打包费">
|
<el-form-item label="打包费">
|
||||||
<el-input-number @change="priceFormat(form,'packFee')" @blur="priceFormat(form,'packFee')" v-model="form.packFee" controls-position="right" ></el-input-number>
|
<el-input-number @change="priceFormat(form, 'packFee')" @blur="priceFormat(form, 'packFee')"
|
||||||
|
v-model="form.packFee" controls-position="right"></el-input-number>
|
||||||
<div class="tips">
|
<div class="tips">
|
||||||
单份商品打包费。注:店铺开启外卖模式下该数据才生效
|
单份商品打包费。注:店铺开启外卖模式下该数据才生效
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="虚拟销量">
|
<el-form-item label="虚拟销量">
|
||||||
<el-input-number @change="priceFormat(form,'baseSalesNumber')" @blur="priceFormat(form,'baseSalesNumber')" v-model="form.baseSalesNumber" controls-position="right" ></el-input-number>
|
<el-input-number @change="priceFormat(form, 'baseSalesNumber')" @blur="priceFormat(form, 'baseSalesNumber')"
|
||||||
|
v-model="form.baseSalesNumber" controls-position="right"></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
<el-form-item label="排序" v-if="form.id">
|
<el-form-item label="排序" v-if="form.id">
|
||||||
@@ -324,8 +349,9 @@
|
|||||||
<el-dialog title="批量修改" width="400px" :visible.sync="showBatchModal">
|
<el-dialog title="批量修改" width="400px" :visible.sync="showBatchModal">
|
||||||
<el-form :model="batchNumberForm">
|
<el-form :model="batchNumberForm">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input-number v-model="batchNumberForm.batchNumber" :min="0" controls-position="right"
|
<el-input-number @change="priceFormat(batchNumberForm, 'batchNumber')"
|
||||||
style="width: 100%;"></el-input-number>
|
@blur="priceFormat(batchNumberForm, 'batchNumber')" v-model="batchNumberForm.batchNumber"
|
||||||
|
controls-position="right" style="width: 100%;"></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
@@ -396,6 +422,9 @@ export default {
|
|||||||
stockNumber: 0,
|
stockNumber: 0,
|
||||||
firstShared: 0,
|
firstShared: 0,
|
||||||
barCode: `${localStorage.getItem("shopId")}${dayjs().valueOf()}`,
|
barCode: `${localStorage.getItem("shopId")}${dayjs().valueOf()}`,
|
||||||
|
isGrounding: 1,
|
||||||
|
productId: this.$route.query.goods_id,
|
||||||
|
shopId: localStorage.getItem("shopId")
|
||||||
// suit: 1
|
// suit: 1
|
||||||
},
|
},
|
||||||
tableAddShopIndex: null,
|
tableAddShopIndex: null,
|
||||||
@@ -406,6 +435,7 @@ export default {
|
|||||||
id: "",
|
id: "",
|
||||||
typeEnum: "normal",
|
typeEnum: "normal",
|
||||||
name: "",
|
name: "",
|
||||||
|
shortTitle: "",//商品介绍
|
||||||
unitId: "",
|
unitId: "",
|
||||||
unitName: "",
|
unitName: "",
|
||||||
categoryId: "", // 商品分类id
|
categoryId: "", // 商品分类id
|
||||||
@@ -535,15 +565,15 @@ export default {
|
|||||||
const max=100000000;
|
const max=100000000;
|
||||||
const newval=formatPrice(item[key],min,max,true)
|
const newval=formatPrice(item[key],min,max,true)
|
||||||
console.log(newval)
|
console.log(newval)
|
||||||
if(typeof newval!=='number'){
|
if (typeof newval !== 'number') {
|
||||||
item[key]=newval.value
|
item[key] = newval.value
|
||||||
this.$message({
|
this.$message({
|
||||||
offset,
|
offset,
|
||||||
message: `请输入${min}到${max}范围内的数字`,
|
message: `请输入${min}到${max}范围内的数字`,
|
||||||
type: "error"
|
type: "error"
|
||||||
});
|
});
|
||||||
}else{
|
} else {
|
||||||
item[key]=newval
|
item[key] = newval
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -572,8 +602,14 @@ export default {
|
|||||||
},
|
},
|
||||||
// 确认批量修改规格
|
// 确认批量修改规格
|
||||||
batchNumberFormConfirm() {
|
batchNumberFormConfirm() {
|
||||||
this.form.skuList.map(item => {
|
console.log(this.form.skuList)
|
||||||
item[this.batchNumberKey] = this.batchNumberForm.batchNumber;
|
this.form.skuList.map((item, index) => {
|
||||||
|
//解决vue2列表数据更新视图未变化问题
|
||||||
|
let newitem = { ...item }
|
||||||
|
newitem[this.batchNumberKey] = this.batchNumberForm.batchNumber;
|
||||||
|
|
||||||
|
this.$set(this.form.skuList, index, { ...newitem })
|
||||||
|
// item[this.batchNumberKey] = this.batchNumberForm.batchNumber;
|
||||||
});
|
});
|
||||||
this.showBatchModal = false;
|
this.showBatchModal = false;
|
||||||
this.batchNumberForm.batchNumber = 0;
|
this.batchNumberForm.batchNumber = 0;
|
||||||
@@ -605,11 +641,12 @@ export default {
|
|||||||
this.form.skuList = skuList.map((item, index) => {
|
this.form.skuList = skuList.map((item, index) => {
|
||||||
specInfo[index].id = item.id;
|
specInfo[index].id = item.id;
|
||||||
specInfo[index].productId = item.productId;
|
specInfo[index].productId = item.productId;
|
||||||
specInfo[index].realSalesNumber = item.productId;
|
specInfo[index].realSalesNumber = item.realSalesNumber;
|
||||||
specInfo[index].shopId = item.shopId;
|
specInfo[index].shopId = item.shopId;
|
||||||
specInfo[index].warnLine = item.warnLine;
|
specInfo[index].warnLine = item.warnLine;
|
||||||
specInfo[index].suit = item.suit;
|
specInfo[index].suit = item.suit;
|
||||||
specInfo[index].stockNumber = item.stockNumber;
|
specInfo[index].stockNumber = item.stockNumber;
|
||||||
|
specInfo[index].isGrounding = item.isGrounding;
|
||||||
return specInfo[index];
|
return specInfo[index];
|
||||||
});
|
});
|
||||||
console.log(this.form.skuList);
|
console.log(this.form.skuList);
|
||||||
|
|||||||
180
src/views/shop/components/addStaff.vue
Normal file
180
src/views/shop/components/addStaff.vue
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog :title="title" :visible.sync="dialogVisible" @open="reset">
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="140px" label-position="left">
|
||||||
|
<el-form-item label="员工姓名" prop="name">
|
||||||
|
<el-input v-model="form.name" placeholder="请输入员工姓名" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="员工编号" prop="code">
|
||||||
|
<el-input v-model="form.code" placeholder="请输入员工编号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="手机号" prop="phone">
|
||||||
|
<el-input v-model="form.phone" placeholder="请输入手机号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="员工账号" prop="account">
|
||||||
|
<el-input v-model="form.account" placeholder="请输入员工账号,建议使用手机号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="登录密码">
|
||||||
|
<el-input type="password" v-model="form.password" placeholder="请输入登录密码,不填默认123456" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="最大优惠金额">
|
||||||
|
<el-input-number v-model="form.maxDiscountAmount" controls-position="right" :min="0"
|
||||||
|
:max="100000"></el-input-number>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="角色" prop="roleId">
|
||||||
|
<el-select v-model="form.roleId" placeholder="请选择角色">
|
||||||
|
<el-option :label="item.name" :value="item.id" v-for="item in roles" :key="item.id"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="允许登录PC桌面端">
|
||||||
|
<el-switch v-model="form.isPc" :active-value="1" :inactive-value="0"></el-switch>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="允许登录管理端">
|
||||||
|
<el-switch v-model="form.isManage" :active-value="1" :inactive-value="0"></el-switch>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="是否启用">
|
||||||
|
<el-switch v-model="form.status" :active-value="1" :inactive-value="0"></el-switch>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" :loading="loading" @click="onSubmitHandle">确 定</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { tbPlussShopStaff, rolesGet, tbPlussShopStaffDetail } from '@/api/shop.js'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogVisible: false,
|
||||||
|
loading: false,
|
||||||
|
form: {
|
||||||
|
id: '',
|
||||||
|
name: '',
|
||||||
|
code: '',
|
||||||
|
account: '',
|
||||||
|
maxDiscountAmount: '',
|
||||||
|
status: 1,
|
||||||
|
isPc: 1,
|
||||||
|
isManage: 1,
|
||||||
|
roleId: '',
|
||||||
|
phone: '',
|
||||||
|
password: ''
|
||||||
|
},
|
||||||
|
resetForm: '',
|
||||||
|
rules: {
|
||||||
|
name: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: ' ',
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
code: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: ' ',
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
account: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: ' ',
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
maxDiscountAmount: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: ' ',
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
roleId: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: ' ',
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
phone: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: ' ',
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
roles: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
title() {
|
||||||
|
return this.form.id ? '编辑员工' : '添加员工'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.resetForm = { ...this.form }
|
||||||
|
this.rolesGet()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 添加或编辑员工
|
||||||
|
onSubmitHandle() {
|
||||||
|
this.$refs.form.validate(async valid => {
|
||||||
|
if (valid) {
|
||||||
|
try {
|
||||||
|
this.loading = true
|
||||||
|
await tbPlussShopStaff(this.form)
|
||||||
|
this.loading = false
|
||||||
|
this.$emit('success')
|
||||||
|
this.close()
|
||||||
|
this.$notify({
|
||||||
|
title: '成功',
|
||||||
|
message: `${this.title}成功`,
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
this.loading = false
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 获取角色列表
|
||||||
|
async rolesGet() {
|
||||||
|
try {
|
||||||
|
const { content } = await rolesGet()
|
||||||
|
this.roles = content
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
reset() {
|
||||||
|
this.form = { ...this.resetForm }
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.dialogVisible = false
|
||||||
|
},
|
||||||
|
show(row) {
|
||||||
|
this.dialogVisible = true
|
||||||
|
if (row && row.id) {
|
||||||
|
// this.form = { ...row }
|
||||||
|
this.tbPlussShopStaffDetail(row.id)
|
||||||
|
} else {
|
||||||
|
this.reset()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 通过id获取员工信息
|
||||||
|
async tbPlussShopStaffDetail(id) {
|
||||||
|
try {
|
||||||
|
const res = await tbPlussShopStaffDetail(id)
|
||||||
|
this.form = res
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
123
src/views/shop/staff_list.vue
Normal file
123
src/views/shop/staff_list.vue
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<div class="head-container">
|
||||||
|
<el-button type="primary" icon="el-icon-plus" @click="$refs.addStaff.show()">
|
||||||
|
添加员工
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="head-container">
|
||||||
|
<el-table :data="tableData.list" v-loading="tableData.loading">
|
||||||
|
<el-table-column label="员工名称" prop="name"></el-table-column>
|
||||||
|
<el-table-column label="员工编号" prop="code"></el-table-column>
|
||||||
|
<el-table-column label="员工账号" prop="account"></el-table-column>
|
||||||
|
<el-table-column label="是否启用" prop="status">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-switch v-model="scope.row.status" :active-value="1" :inactive-value="0"
|
||||||
|
@change="statusChange($event, scope.row)"></el-switch>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" fixed="right" width="120">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<div class="btn_rows" style="display: flex;gap: 10px;">
|
||||||
|
<el-button type="text" icon="el-icon-edit"
|
||||||
|
@click="$refs.addStaff.show(scope.row)">编辑</el-button>
|
||||||
|
<el-popconfirm title="确定删除吗?" @confirm="delTableHandle([scope.row.id])">
|
||||||
|
<el-button type="text" icon="el-icon-delete" slot="reference">删除</el-button>
|
||||||
|
</el-popconfirm>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div class="head-container">
|
||||||
|
<el-pagination @size-change="paginationSizeChange" :total="tableData.total"
|
||||||
|
:current-page="tableData.page + 1" :page-size="tableData.size" @current-change="paginationChange"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"></el-pagination>
|
||||||
|
</div>
|
||||||
|
<addStaff ref="addStaff" @success="resetHandle" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import addStaff from './components/addStaff.vue'
|
||||||
|
import { tbPlussShopStaffGet, updateStatus, shopStaffDelete } from '@/api/shop.js'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
addStaff
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
query: {},
|
||||||
|
tableData: {
|
||||||
|
page: 0,
|
||||||
|
size: 30,
|
||||||
|
total: 0,
|
||||||
|
loading: false,
|
||||||
|
list: []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getTableData()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 删除
|
||||||
|
async delTableHandle(ids) {
|
||||||
|
try {
|
||||||
|
const res = await shopStaffDelete(ids)
|
||||||
|
this.$notify({
|
||||||
|
title: '成功',
|
||||||
|
message: `已删除`,
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
this.getTableData()
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 修改员工状态
|
||||||
|
async statusChange(e, row) {
|
||||||
|
try {
|
||||||
|
const res = await updateStatus({
|
||||||
|
id: row.id,
|
||||||
|
status: e
|
||||||
|
})
|
||||||
|
this.getTableData()
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 重置查询
|
||||||
|
resetHandle() {
|
||||||
|
this.tableData.page = 0
|
||||||
|
this.getTableData()
|
||||||
|
},
|
||||||
|
// 每页条数改变是回调
|
||||||
|
paginationSizeChange(e) {
|
||||||
|
this.tableData.size = e
|
||||||
|
this.tableData.page = 0
|
||||||
|
this.getTableData()
|
||||||
|
},
|
||||||
|
// 分页回调
|
||||||
|
paginationChange(e) {
|
||||||
|
this.tableData.page = e - 1
|
||||||
|
this.getTableData()
|
||||||
|
},
|
||||||
|
// 获取员工列表
|
||||||
|
async getTableData() {
|
||||||
|
try {
|
||||||
|
this.tableData.loading = true
|
||||||
|
const res = await tbPlussShopStaffGet({
|
||||||
|
page: this.tableData.page,
|
||||||
|
size: this.tableData.size
|
||||||
|
})
|
||||||
|
this.tableData.loading = false
|
||||||
|
this.tableData.list = res.content
|
||||||
|
this.tableData.total = res.totalElements
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user