feat: 基础完成

This commit is contained in:
赵世界 2024-03-15 18:45:10 +08:00
parent 40bf72a4b6
commit 1d693cef96
5 changed files with 36 additions and 20 deletions

View File

@ -483,9 +483,6 @@ class GoodsSkusController extends Controller
$this->log->message = $request->get('reason'); $this->log->message = $request->get('reason');
$this->setBeforeUpdateForLog($record->loss_num); $this->setBeforeUpdateForLog($record->loss_num);
$record->loss_num += $request->loss_num; $record->loss_num += $request->loss_num;
if ('补发' === $request->get('reason')) {
$record->reissue_num += $request->loss_num;
}
$record->save(); $record->save();
$this->setAfterUpdateForLog($record->loss_num); $this->setAfterUpdateForLog($record->loss_num);
$sku->stock -= $request->loss_num; $sku->stock -= $request->loss_num;

View File

@ -14,5 +14,6 @@ class DailySalesReport extends Model
public $fieldSearchable = [ public $fieldSearchable = [
'date', 'date',
'name' => 'like', 'name' => 'like',
'sales_num' => '>',
]; ];
} }

View File

@ -25,7 +25,7 @@ class CreateDailySalesReportsTable extends Migration
$table->string('external_sku_id', 64); $table->string('external_sku_id', 64);
$table->integer('inventory')->default(0)->comment('盘点数量'); $table->integer('inventory')->default(0)->comment('盘点数量');
$table->integer('arrived_today_num')->default(0)->comment('今日到货'); $table->integer('arrived_today_num')->default(0)->comment('今日到货');
$table->integer('sales_num')->default(0)->comment('销量'); $table->integer('sales_num')->default(0)->comment('销量');
$table->integer('already_cancel_number')->default(0)->comment('已取消数量'); $table->integer('already_cancel_number')->default(0)->comment('已取消数量');
$table->unsignedInteger('loss_num')->default(0)->comment('损耗'); $table->unsignedInteger('loss_num')->default(0)->comment('损耗');
$table->decimal('goal_rate', 8, 4)->default(0)->comment('目标去化率'); $table->decimal('goal_rate', 8, 4)->default(0)->comment('目标去化率');

View File

@ -3,13 +3,18 @@
<el-card :body-style="{ padding: '20px 20px 0 20px' }"> <el-card :body-style="{ padding: '20px 20px 0 20px' }">
<el-form ref="form" :inline="true" :model="form"> <el-form ref="form" :inline="true" :model="form">
<el-form-item label="日期:"> <el-form-item label="日期:">
<el-date-picker v-model="form.date" type="date" placeholder="日期" format="yyyy-MM-DD" value-format="yyyy-MM-DD"></el-date-picker> <el-date-picker v-model="form.date" type="date" placeholder="日期" format="yyyy-MM-DD"
value-format="yyyy-MM-DD"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="商品名称:"> <el-form-item label="商品名称:">
<el-input v-model="form.name" placeholder="商品名称"></el-input> <el-input v-model="form.name" placeholder="商品名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="总销量大于:">
<el-input v-model="form.sales_num" placeholder="总销量"></el-input>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleChoose">筛选</el-button> <el-button type="primary" @click="handleChoose">筛选</el-button>
<el-button plain @click="handleReChoose">重置筛选</el-button> <el-button plain @click="handleReChoose">重置筛选</el-button>
@ -18,53 +23,54 @@
</el-card> </el-card>
<el-card style="margin-top: 10px"> <el-card style="margin-top: 10px">
<el-table v-loading="loading" ref="multipleTable" :data="tableData" style="width: 100%" <el-table v-loading="loading" ref="multipleTable" :data="tableData" style="width: 100%" height="900"
@sort-change="sortChange" :default-sort="{ prop: 'sales_num', order: 'descending' }"> :cell-style="tableCellClassName" @sort-change="sortChange"
:default-sort="{ prop: 'sales_num', order: 'descending' }">
<el-table-column label="商品名称" prop="name" width="250"></el-table-column> <el-table-column label="商品名称" prop="name" width="250"></el-table-column>
<el-table-column label="完整编码" prop="external_sku_id"></el-table-column> <el-table-column label="完整编码" prop="external_sku_id"></el-table-column>
<el-table-column label="入库数量" prop="stock"></el-table-column> <el-table-column label="入库数量" prop="stock"></el-table-column>
<el-table-column label="销量" prop="sales_num" sortable="custom"></el-table-column> <el-table-column label="销量" prop="sales_num" sortable="custom"></el-table-column>
<el-table-column label="损耗" prop="loss_num"></el-table-column> <el-table-column label="损耗" prop="loss_num"></el-table-column>
<el-table-column label="目标去化率" prop="goal_rate"></el-table-column> <el-table-column label="目标去化率" prop="goal_rate"></el-table-column>
<el-table-column label="S1(11:00-12:00)"> <el-table-column label="S1(11:00-12:00)">
<el-table-column prop="S1" label="销量"> <el-table-column prop="S1" label="销量" sortable="custom">
</el-table-column> </el-table-column>
<el-table-column prop="S1_rate" label="去化率" sortable="custom"> <el-table-column prop="S1_rate" label="去化率" sortable="custom">
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column label="S2(11:00-13:30)"> <el-table-column label="S2(11:00-13:30)">
<el-table-column prop="S2" label="销量"> <el-table-column prop="S2" label="销量" sortable="custom">
</el-table-column> </el-table-column>
<el-table-column prop="S2_rate" label="去化率" sortable="custom"> <el-table-column prop="S2_rate" label="去化率" sortable="custom">
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column label="S3(11:00-15:00)"> <el-table-column label="S3(11:00-15:00)">
<el-table-column prop="S3" label="销量"> <el-table-column prop="S3" label="销量" sortable="custom">
</el-table-column> </el-table-column>
<el-table-column prop="S3_rate" label="去化率" sortable="custom"> <el-table-column prop="S3_rate" label="去化率" sortable="custom">
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column label="S4(15:00-16:00)"> <el-table-column label="S4(15:00-16:00)">
<el-table-column prop="S4" label="销量"> <el-table-column prop="S4" label="销量" sortable="custom">
</el-table-column> </el-table-column>
<el-table-column prop="S4_rate" label="去化率" sortable="custom"> <el-table-column prop="S4_rate" label="去化率" sortable="custom">
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column label="S5(11:00-17:30)"> <el-table-column label="S5(11:00-17:30)">
<el-table-column prop="S5" label="销量"> <el-table-column prop="S5" label="销量" sortable="custom">
</el-table-column> </el-table-column>
<el-table-column prop="S5_rate" label="去化率" sortable="custom"> <el-table-column prop="S5_rate" label="去化率" sortable="custom">
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column label="S6(11:00-20:00)"> <el-table-column label="S6(11:00-20:00)">
<el-table-column prop="S6" label="销量"> <el-table-column prop="S6" label="销量" sortable="custom">
</el-table-column> </el-table-column>
<el-table-column prop="S6_rate" label="去化率" sortable="custom"> <el-table-column prop="S6_rate" label="去化率" sortable="custom">
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column label="S7(11:00-09:00)"> <el-table-column label="S7(11:00-09:00)">
<el-table-column prop="S7" label="销量"> <el-table-column prop="S7" label="销量" sortable="custom">
</el-table-column> </el-table-column>
<el-table-column prop="S7_rate" label="去化率" sortable="custom"> <el-table-column prop="S7_rate" label="去化率" sortable="custom">
</el-table-column> </el-table-column>
@ -92,12 +98,13 @@ export default {
name: "", name: "",
sort: "sales_num", sort: "sales_num",
sortOrder: "DESC", sortOrder: "DESC",
sales_num: 0,
}, },
loading: true, loading: true,
tableData: [], tableData: [],
Paginationdata: {}, // Paginationdata: {}, //
current_page: 1, // current_page: 1, //
per_page: 50, // per_page: 100, //
}; };
}, },
mounted() { mounted() {
@ -149,6 +156,15 @@ export default {
this.form.sort = line.prop; this.form.sort = line.prop;
this.form.sortOrder = ('ascending' === line.order) ? 'ASC' : 'DESC'; this.form.sortOrder = ('ascending' === line.order) ? 'ASC' : 'DESC';
this.salseReportData(this.form); this.salseReportData(this.form);
},
tableCellClassName({ row, column, rowIndex, columnIndex }) {
if (column.property == 'S2' || column.property == 'S4' || column.property == 'S6' || column.property == 'S2_rate' || column.property == 'S4_rate' || column.property == 'S6_rate') {
return {
"background-color": "beige"
};
} else {
return '';
}
} }
}, },
}; };

View File

@ -217,7 +217,7 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="onLoss(scope.row.id)">保存</el-button> <el-button type="primary" @click="onLoss(scope.row)">保存</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -264,7 +264,7 @@
<!-- 分页功能 --> <!-- 分页功能 -->
<div class="page"> <div class="page">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="current_page" :page-sizes="[15, 50, 100, 150, 200]" :page-size="per_page" :current-page="current_page" :page-sizes="[100, 150, 200]" :page-size="per_page"
layout="total, sizes, prev, pager, next, jumper" :total="Paginationdata.total"> layout="total, sizes, prev, pager, next, jumper" :total="Paginationdata.total">
</el-pagination> </el-pagination>
</div> </div>
@ -465,7 +465,7 @@ export default {
}, },
Paginationdata: {}, // Paginationdata: {}, //
current_page: 1, // current_page: 1, //
per_page: 10, // per_page: 100, //
multipleSelection: [], //id multipleSelection: [], //id
updateType: "", //newest-, inventory-, stock- updateType: "", //newest-, inventory-, stock-
stock: false, // stock: false, //
@ -980,8 +980,10 @@ export default {
message: "损耗添加成功!", message: "损耗添加成功!",
type: "success", type: "success",
}); });
this.getList(); this.handleChoose();
}); });
this.updateField = "";
this.editLossId = "";
}, },
// //