yyw提交

This commit is contained in:
DESKTOP-8FGKA8Q\chunfen 2024-08-08 19:56:28 +08:00
parent cfc9870314
commit 887573a81f
10 changed files with 254 additions and 192 deletions

View File

@ -251,8 +251,12 @@ export default {
return
}
import('@/util/Export2Excel').then(excel => {
const tHeader = ['商品名称', 'sku规格', '规格编码', '销量', '销售额']
const filterVal = ['name', 'title', 'external_sku_id', 'goods_total', 'goods_total_amount']
const tHeader = ['商品名称', 'sku规格', '规格编码', '销量', '销售额', '库存', '可售库存', '状态']
const filterVal = ['name', 'title', 'external_sku_id', 'goods_total', 'goods_total_amount', 'stock', 'sale_stock', 'status']
if(this.time_type == 'day') {
tHeader.splice(5, 0, '昨日销量', '3日内销量', '7日内销量', '已发货数', '未发货数')
filterVal.splice(5, 0, 'yesterday_avg_num', 'three_day_avg_num', 'seven_day_avg_num', 'shipping_num', 'unshipping_num')
}
const list = res.data.data.data
const data = this.formatJson(filterVal, list)
let date = this.startTime == this.endTime ? this.startTime : this.startTime + '-' + this.endTime

View File

@ -61,8 +61,6 @@
<el-table-column label="类型名称" prop="type_name"></el-table-column>
<el-table-column label="库存" prop="stock"></el-table-column>
<el-table-column label="可售库存" prop="sale_stock"></el-table-column>
<el-table-column label="销量" prop="goods_total"></el-table-column>
<el-table-column label="销售额" prop="goods_total_amount"></el-table-column>
<el-table-column label="已发货数" prop="shipping_num" v-if="time_type == 'day'"></el-table-column>
<el-table-column label="未发货数" prop="unshipping_num" v-if="time_type == 'day'"></el-table-column>
@ -208,8 +206,13 @@ export default {
}
this.downloadLoading = true
import('@/util/Export2Excel').then(excel => {
const tHeader = ['类型名称', '库存', '可售库存', '未发货数', '未发货数', '总销量', '总销售金额']
const filterVal = ['type_name', 'stock', 'sale_stock', 'shipping_num', 'unshipping_num', 'goods_total', 'goods_total_amount']
const tHeader = ['类型名称', '库存', '可售库存', '总销量', '总销售金额']
const filterVal = ['type_name', 'stock', 'sale_stock', 'goods_total', 'goods_total_amount']
if(this.time_type == 'day') {
tHeader.splice(3, 0, '已发货数', '未发货数')
filterVal.splice(3, 0, 'shipping_num', 'unshipping_num')
}
const list = this.saleList
let date = this.startTime == this.endTime ? this.startTime : this.startTime + '-' + this.endTime
const data = this.formatJson(filterVal, list)

View File

@ -15,13 +15,13 @@
style="width: 220px;"
v-model="form.type_id" />
</div>
<div class="row">
<!-- <div class="row">
<span>商品品牌</span>
<el-select v-model="form.brand_id" placeholder="商品品牌" clearable>
<el-option v-for="item in brand" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</div>
</div> -->
<div class="row">
<span>商品编码</span>
<el-input v-model="form.external_sku_id" placeholder="商品编码" clearable></el-input>
@ -101,11 +101,11 @@
</template>
</el-table-column>
<el-table-column label="规格" prop="title"></el-table-column>
<el-table-column label="品牌">
<!-- <el-table-column label="品牌">
<template slot-scope="scope">
<div>{{ scope.row.goods && scope.row.goods.brand && scope.row.goods.brand.name || '' }}</div>
</template>
</el-table-column>
</el-table-column> -->
<!-- <el-table-column prop="yesterday_num" sortable label="1T"></el-table-column>
<el-table-column sortable label="0T">
@ -187,7 +187,7 @@
</template>
</el-table-column>
<el-table-column sortable label="损耗">
<!-- <el-table-column sortable label="损耗">
<template slot-scope="scope">
<div v-if="scope.row.daily" class="flex">
<div v-if="scope.row.id === editLossId">
@ -218,7 +218,7 @@
</el-popover>
</div>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column prop="stock" sortable label="库存"></el-table-column>
<el-table-column prop="sale_stock" label="在售库存"></el-table-column>

View File

@ -43,7 +43,7 @@
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="query(1)">查询</el-button>
<el-button type="primary" icon="el-icon-search" @click="query(1)">查询</el-button>
</el-form-item>
</el-form>
</el-card>
@ -85,15 +85,14 @@
</template>
</el-table-column>
</el-table>
</el-card>
<!-- 分页功能 -->
<div class="block">
<div class="page-pagination">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="current_page" :page-sizes="[15, 50, 100]" :page-size="per_page"
layout="total, sizes, prev, pager, next, jumper" :total="Paginationdata.total">
</el-pagination>
</div>
</el-card>
</div>
</template>
@ -361,11 +360,5 @@ export default {
</script>
<style lang="scss" scoped>
.block {
margin-top: 20px;
}
::v-deep .el-card__body {
padding: 0;
}
</style>

View File

@ -36,7 +36,7 @@
<el-table-column prop="id" label="ID" width="80" align="center" />
<el-table-column prop="goods_sku.name" label="商品标题" />
<el-table-column prop="goods_sku.external_sku_id" label="规格编码" />
<el-table-column prop="sku_id" label="skuID" />
<!-- <el-table-column prop="sku_id" label="skuID" /> -->
<el-table-column prop="day" label="日期" />
<el-table-column prop="inventory" label="盘点库存" />
<el-table-column prop="inventory_time" label="盘点时间" />

View File

@ -36,7 +36,7 @@
<el-table-column prop="id" label="ID" width="80" align="center" />
<el-table-column prop="goods_sku.name" label="商品标题" />
<el-table-column prop="external_sku_id" label="规格编码" />
<el-table-column prop="sku_id" label="skuID" />
<!-- <el-table-column prop="sku_id" label="skuID" /> -->
<el-table-column prop="num" label="数量" />
<el-table-column prop="cost" label="成本" />
<el-table-column prop="buyer_name" label="采购人姓名" />
@ -73,7 +73,10 @@
<el-input v-model="curInfo.cost" clearable></el-input>
</el-form-item>
<el-form-item label="采购人">
<el-input v-model="curInfo.buyer_name" clearable></el-input>
<el-select v-model="curInfo.buyer_user_id" clearable filterable ref="userRef">
<el-option v-for="item in usersList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="报损原因">
<el-input v-model="curInfo.reason" clearable></el-input>
@ -105,6 +108,7 @@
<script>
import { getLossLog, addLossLog, updateLossLog } from "@/api/supplyChain"
import axios from "axios"
import { userList } from "@/api/user"
export default {
data() {
@ -123,7 +127,8 @@ export default {
},
addTime: [],
showImport: false,
fileList: []
fileList: [],
usersList: []
}
},
methods: {
@ -168,8 +173,15 @@ export default {
},
commitSupplier() {
this.commitloading = true
let params = {
...this.curInfo
}
params.buyer_name = ''
if(params.buyer_user_id) {
params.buyer_name = this.$refs.userRef.selectedLabel
}
if(this.curInfo.id) {
updateLossLog(this.curInfo.id, this.curInfo).then((res) => {
updateLossLog(this.curInfo.id, params).then((res) => {
this.fetchList()
this.$message({ type: "success", message: "更新成功!" })
this.dialogVisible = false
@ -178,7 +190,7 @@ export default {
this.commitloading = false
})
} else {
addLossLog(this.curInfo).then((res) => {
addLossLog(params).then((res) => {
this.page = 1
this.fetchList()
this.$message({ type: "success", message: "新增成功!" })
@ -226,10 +238,20 @@ export default {
} else {
this.$message.error("请先上传文件");
}
},
getUserList() {
let params = {
page: 1,
per_page: 9999
}
userList(params).then((res) => {
this.usersList = res.data.data
})
}
},
mounted() {
this.fetchList()
this.getUserList()
}
}
</script>

View File

@ -78,10 +78,16 @@
<el-input v-model="curInfo.cost" clearable></el-input>
</el-form-item>
<el-form-item label="采购人">
<el-input v-model="curInfo.buyer_name" clearable></el-input>
<el-select v-model="curInfo.buyer_user_id" clearable filterable ref="userRef">
<el-option v-for="item in usersList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="供应商">
<el-input v-model="curInfo.supplier_name" clearable></el-input>
<el-select v-model="curInfo.supplier_id" clearable filterable ref="supplierRef">
<el-option v-for="item in supplierList" :key="item.id" :label="item.supplier_name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="过期时间">
<el-date-picker
@ -118,8 +124,9 @@
</template>
<script>
import { getPurchaseLog, addPurchaseLog, updatePurchaseLog } from "@/api/supplyChain"
import { getPurchaseLog, addPurchaseLog, updatePurchaseLog, getSupplier } from "@/api/supplyChain"
import axios from "axios"
import { userList } from "@/api/user"
export default {
data() {
@ -138,7 +145,9 @@ export default {
dialogVisible: false,
curInfo: {},
showImport: false,
fileList: []
fileList: [],
usersList: [],
supplierList: []
}
},
methods: {
@ -183,8 +192,19 @@ export default {
},
commitSupplier() {
this.commitloading = true
let params = {
...this.curInfo
}
params.buyer_name = ''
params.supplier_name = ''
if(params.buyer_user_id) {
params.buyer_name = this.$refs.userRef.selectedLabel
}
if(params.supplier_id) {
params.supplier_name = this.$refs.supplierRef.selectedLabel
}
if(this.curInfo.id) {
updatePurchaseLog(this.curInfo.id, this.curInfo).then((res) => {
updatePurchaseLog(this.curInfo.id, params).then((res) => {
this.fetchList()
this.$message({ type: "success", message: "更新成功!" })
this.dialogVisible = false
@ -193,7 +213,7 @@ export default {
this.commitloading = false
})
} else {
addPurchaseLog(this.curInfo).then((res) => {
addPurchaseLog(params).then((res) => {
this.page = 1
this.fetchList()
this.$message({ type: "success", message: "新增成功!" })
@ -241,10 +261,30 @@ export default {
} else {
this.$message.error("请先上传文件");
}
},
getUserList() {
let params = {
page: 1,
per_page: 9999
}
userList(params).then((res) => {
this.usersList = res.data.data
})
},
getSupplierList() {
let params = {
page: 1,
per_page: 9999
}
getSupplier(params).then((res) => {
this.supplierList = res.data.data
})
}
},
mounted() {
this.fetchList()
this.getSupplierList()
this.getUserList()
}
}
</script>

View File

@ -7,7 +7,7 @@
<el-table v-loading="loading" :data="supplierList" style="width: 100%" border>
<el-table-column prop="id" label="供应商ID" width="80" align="center" />
<el-table-column prop="supplier_name" label="供应商名称" />
<el-table-column prop="company_name" label="供应商ID" />
<el-table-column prop="company_name" label="公司名称" />
<el-table-column prop="address" label="地址" />
<el-table-column prop="link_tel" label="联系方式" align="center" />
<el-table-column prop="supply_type" label="供应品类" />
@ -55,8 +55,11 @@
<el-form-item label="支付方式">
<el-input v-model="gysInfo.payment_account" clearable></el-input>
</el-form-item>
<el-form-item label="代理人名称">
<el-input v-model="gysInfo.agent_name"></el-input>
<el-form-item label="开发维护人">
<el-select v-model="gysInfo.agent_id" clearable filterable ref="labelRef">
<el-option v-for="item in usersList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@ -69,6 +72,8 @@
<script>
import { getSupplier, removeSupplier, addSupplier, updateSupplier } from "@/api/supplyChain"
import { userList } from "@/api/user"
export default {
data() {
return {
@ -80,6 +85,7 @@ export default {
dialogVisible: false,
gysInfo: {},
commitloading: false,
usersList: []
}
},
methods: {
@ -117,8 +123,15 @@ export default {
},
commitSupplier() {
this.commitloading = true
let params = {
...this.gysInfo
}
params.agent_name = ''
if(params.agent_id) {
params.agent_name = this.$refs.labelRef.selectedLabel
}
if(this.gysInfo.id) {
updateSupplier(this.gysInfo.id, this.gysInfo).then((res) => {
updateSupplier(this.gysInfo.id, params).then((res) => {
this.fetchList()
this.$message({ type: "success", message: "更新成功!" })
this.dialogVisible = false
@ -127,7 +140,7 @@ export default {
this.commitloading = false
})
} else {
addSupplier(this.gysInfo).then((res) => {
addSupplier(params).then((res) => {
this.page = 1
this.fetchList()
this.$message({ type: "success", message: "新增成功!" })
@ -150,10 +163,20 @@ export default {
this.dialogVisible = false
})
})
},
getUserList() {
let params = {
page: 1,
per_page: 9999
}
userList(params).then((res) => {
this.usersList = res.data.data
})
}
},
mounted() {
this.fetchList()
this.getUserList()
}
}
</script>

View File

@ -1,28 +1,10 @@
<template>
<div class="conent">
<!-- 点击新增弹出表单 -->
<div class="from">
<el-dialog title="新增角色" :visible.sync="dialogVisible2" width="30%" :close-on-click-modal="false">
<div>
<el-form label-width="80px">
<el-form-item label="角色名称">
<el-input v-model="newrole"></el-input>
</el-form-item>
<div class="from-btn">
<el-button type="danger" @click="dialogVisible2 = false">取消</el-button>
<el-button @click="onSubmit">确认</el-button>
<div class="pageBox">
<el-card>
<div class="opaBox">
<el-button type="primary" icon="el-icon-plus" @click="dialogVisible2 = true">新增</el-button>
</div>
</el-form>
</div>
</el-dialog>
</div>
<!-- 新增按钮 -->
<el-button type="primary" @click="dialogVisible2 = true">新增</el-button>
<!-- 角色列表 -->
<div class="table" style="margin-top: 10px">
<el-table v-loading="loading" :data="tableList" style="width: 100%">
<el-table v-loading="loading" :data="tableList" style="width: 100%" border>
<el-table-column prop="id" label="ID"> </el-table-column>
<el-table-column prop="name" label="角色名称"> </el-table-column>
<el-table-column label="权限内容">
@ -32,11 +14,11 @@
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button @click="onEdit(scope.row)">编辑</el-button>
<el-button type="primary" @click="onEdit(scope.row)" icon="el-icon-edit">编辑权限</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
<!-- 点击编辑弹出权限框 -->
<el-dialog title="编辑权限" :visible.sync="dialogVisible" width="30%" :close-on-click-modal="false">
@ -49,16 +31,27 @@
<el-button type="primary" @click="getCheckedKeys()"> </el-button>
</span>
</el-dialog>
<el-dialog title="新增角色" :visible.sync="dialogVisible2" width="30%" :close-on-click-modal="false">
<div>
<el-form label-width="80px">
<el-form-item label="角色名称">
<el-input v-model="newrole"></el-input>
</el-form-item>
<div class="from-btn">
<el-button @click="dialogVisible2 = false">取消</el-button>
<el-button type="primary" @click="onSubmit">确认</el-button>
</div>
</el-form>
</div>
</el-dialog>
</div>
</template>
<script>
import {
roleList,
roleAdd,
jurisdiction,
jurisdictionEdit,
} from "../../api/role.js";
import { roleList, roleAdd, jurisdiction, jurisdictionEdit } from "@/api/role.js"
export default {
data() {
return {
@ -158,5 +151,7 @@ export default {
</script>
<style lang="scss" scoped>
.opaBox{
margin-bottom: 15px;
}
</style>

View File

@ -1,10 +1,70 @@
<template>
<div class="conent">
<div class="pageBox">
<el-card>
<div class="opaBox">
<el-button type="primary" icon="el-icon-plus" @click="dialogVisible = true">新增</el-button>
</div>
<!-- 点击新增弹出表单 -->
<div class="from">
<el-dialog title="新增用户" :visible.sync="dialogVisible" width="30%" :close-on-click-modal="false">
<div>
<el-table v-loading="loading" :data="tableList" style="width: 100%" border>
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column label="角色">
<template slot-scope="scope">{{ scope.row.roles[0].name }}</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary" @click="openEdit(scope.row)" icon="el-icon-edit">编辑</el-button>
<!-- <el-button type="danger">删除</el-button> -->
</template>
</el-table-column>
</el-table>
<div class="page-pagination">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="current_page"
:page-sizes="[15, 50, 100]"
:page-size="per_page"
layout="total, sizes, prev, pager, next, jumper"
:total="Paginationdata.total">
</el-pagination>
</div>
</el-card>
<el-dialog title="编辑" :visible.sync="editVisible" width="500px" :close-on-click-modal="false">
<el-form label-width="80px">
<el-form-item label="ID">
<el-input v-model="edit_from.id"></el-input>
</el-form-item>
<el-form-item label="姓名">
<el-input v-model="edit_from.name"></el-input>
</el-form-item>
<el-form-item label="邮箱">
<el-input v-model="edit_from.email"></el-input>
</el-form-item>
<el-form-item label="角色">
<el-select v-model="edit_from.role_name" placeholder="请选择">
<el-option v-for="item in roleOptions" :key="item.value" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="密码">
<el-input v-model="edit_from.password"></el-input>
</el-form-item>
<el-form-item label="密码确认">
<el-input v-model="edit_from.password_confirmation"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editVisible = false">取消</el-button>
<el-button type="primary" @click="onEdit()">确认</el-button>
</span>
</el-dialog>
<!-- 分页功能 -->
<el-dialog title="新增用户" :visible.sync="dialogVisible" width="500px" :close-on-click-modal="false">
<el-form label-width="80px">
<el-form-item label="姓名">
<el-input v-model="from.name"></el-input>
@ -17,102 +77,25 @@
</el-form-item>
<el-form-item label="角色">
<template>
<el-select v-model="value" placeholder="请选择">
<el-select v-model="from.role_name" placeholder="请选择">
<el-option v-for="item in roleOptions" :key="item.value" :label="item.name"
:value="item.name">
</el-option>
</el-select>
</template>
</el-form-item>
<div class="from-btn">
<el-button type="danger" @click="dialogVisible = false">取消</el-button>
<el-button @click="onSubmit">确认</el-button>
</div>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="onSubmit()">确认</el-button>
</span>
</el-dialog>
</div>
<!-- 点击编辑弹出表单信息 -->
<div class="edit_from">
<el-dialog title="编辑" :visible.sync="editVisible" width="30%" :close-on-click-modal="false">
<div>
<el-form label-width="80px">
<el-form-item label="ID">
<el-input v-model="edit_from.id"></el-input>
</el-form-item>
<el-form-item label="姓名">
<el-input v-model="edit_from.name"></el-input>
</el-form-item>
<el-form-item label="邮箱">
<el-input v-model="edit_from.email"></el-input>
</el-form-item>
<el-form-item label="角色">
<template>
<el-select v-model="edit_from.role_name" placeholder="请选择">
<el-option v-for="item in roleOptions" :key="item.value" :label="item.name"
:value="item.name">
</el-option>
</el-select>
</template>
</el-form-item>
<el-form-item label="密码">
<el-input v-model="edit_from.password"></el-input>
</el-form-item>
<el-form-item label="密码确认">
<el-input v-model="edit_from.password_confirmation"></el-input>
</el-form-item>
<div class="from-btn">
<el-button type="danger" @click="editVisible = false">取消</el-button>
<el-button @click="onEdit()">确认</el-button>
</div>
</el-form>
</div>
</el-dialog>
</div>
<!-- 新增按钮 -->
<el-button type="primary" @click="dialogVisible = true">新增</el-button>
<!-- 用户列表 -->
<div class="table" style="margin-top: 10px">
<template>
<el-table v-loading="loading" :data="tableList" style="width: 100%">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column label="角色">
<template slot-scope="scope">{{
scope.row.roles[0].name
}}</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button @click="openEdit(scope.row)">编辑</el-button>
<!-- <el-button type="danger">删除</el-button> -->
</template>
</el-table-column>
</el-table>
</template>
</div>
<!-- 分页功能 -->
<div class="block">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="current_page" :page-sizes="[15, 50, 100]" :page-size="per_page"
layout="total, sizes, prev, pager, next, jumper" :total="Paginationdata.total">
</el-pagination>
</div>
</div>
</template>
<script>
import {
userList,
userAdd,
userEdit,
userConfirm,
roleList,
} from "../../api/user";
import { userList, userAdd, userEdit, userConfirm, roleList } from "@/api/user"
export default {
data() {
return {
@ -143,7 +126,6 @@ export default {
current_page: 1, //
per_page: 15, //
roleOptions: [], //
value: "", //
};
},
@ -174,7 +156,6 @@ export default {
//
onSubmit() {
this.from.role_name = this.value;
let from = this.from;
userAdd(from).then((res) => {
this.tableList = [...this.tableList, res.data.data];
@ -190,13 +171,14 @@ export default {
//
openEdit(e) {
this.editVisible = true;
let id = e.id;
this.id = e.id;
let id = e.id
this.id = e.id
// id
userEdit(id).then((res) => {
this.edit_from = res.data.data;
});
this.edit_from = res.data.data
this.edit_from.role_name = res.data.data.roles ? res.data.data.roles[0].name : ''
this.editVisible = true
})
},
//
@ -229,7 +211,7 @@ export default {
</script>
<style lang="scss" scoped>
.block {
margin-top: 20px;
.opaBox{
margin-bottom: 15px;
}
</style>