|
|
|
|
@ -6,17 +6,17 @@
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="knowledgeFlag">
|
|
|
|
|
<p>
|
|
|
|
|
帕累托分析法源于经典的二八法则。意大利经济学家维尔弗雷多·帕累托于1906年提出了著名的关于意大利社会财务分配的研究结论:20%的人口掌握了80%的社会财富。这个结论对大多数国家的社会财富分配情况都成立。因此帕累托法则又被称为80/20法则。<br /><br>
|
|
|
|
|
帕累托分析的核心观点是:在许多情况下,大部分的问题、效益或成本都来自于少数的要素。换句话说,少数关键要素占据了绝大多数的结果。这一规律在许多领域都具有普适性,例如:<br /><br>
|
|
|
|
|
帕累托分析法源于经典的二八法则。意大利经济学家维尔弗雷多·帕累托于1906年提出了著名的关于意大利社会财务分配的研究结论:20%的人口掌握了80%的社会财富。这个结论对大多数国家的社会财富分配情况都成立。因此帕累托法则又被称为80/20法则。<br /><br />
|
|
|
|
|
帕累托分析的核心观点是:在许多情况下,大部分的问题、效益或成本都来自于少数的要素。换句话说,少数关键要素占据了绝大多数的结果。这一规律在许多领域都具有普适性,例如:<br /><br />
|
|
|
|
|
在企业中,80%的利润可能来自于20%的产品或客户。<br />
|
|
|
|
|
在销售中,80%的销售额可能来自于20%的销售员或产品。<br />
|
|
|
|
|
在质量控制中,80%的缺陷可能来自于20%的原因或工序。<br /><br>
|
|
|
|
|
在质量控制中,80%的缺陷可能来自于20%的原因或工序。<br /><br />
|
|
|
|
|
ABC 分类法全称应为 ABC 分类库存控制法。
|
|
|
|
|
又称帕累托分析法或巴雷托分析法、柏拉图分析、主次因分析法
|
|
|
|
|
、ABC分析法、ABC 管理法,平常也称之为「80 对 20」规则。
|
|
|
|
|
</p>
|
|
|
|
|
<img src="@/assets/images/u3323.png" alt=""><br>
|
|
|
|
|
<img src="@/assets/images/u3324.png" alt="">
|
|
|
|
|
<img src="@/assets/images/u3323.png" alt="" /><br />
|
|
|
|
|
<img src="@/assets/images/u3324.png" alt="" />
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="!knowledgeFlag">
|
|
|
|
|
<div class="caseBack">
|
|
|
|
|
@ -81,7 +81,7 @@
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
<div class="submit">提交</div>
|
|
|
|
|
<div class="submit" @click="step1Submit">提交</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="line"></div>
|
|
|
|
|
@ -133,7 +133,7 @@
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
<div class="submit">提交</div>
|
|
|
|
|
<div class="submit" @click="step2Submit">提交</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="line"></div>
|
|
|
|
|
@ -145,7 +145,7 @@
|
|
|
|
|
<span style="line-height: 25px; font-size: 14px">
|
|
|
|
|
计算各个商品的销售额占比,并以此通过累加计算累计销售额占比。
|
|
|
|
|
</span>
|
|
|
|
|
<div style="margin-top: 10px; display: flex">
|
|
|
|
|
<div style="margin-top: 10px; display: flex" v-if="step2AnswerFlag">
|
|
|
|
|
<el-table
|
|
|
|
|
:data="step3Data"
|
|
|
|
|
style="width: 650px"
|
|
|
|
|
@ -191,7 +191,7 @@
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
<div class="submit">提交</div>
|
|
|
|
|
<div class="submit" @click="step3Submit">提交</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="line"></div>
|
|
|
|
|
@ -224,7 +224,7 @@
|
|
|
|
|
<el-table-column label="用户名称" align="center" prop="data2">
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
<div style="margin-top: 10px; display: flex">
|
|
|
|
|
<div style="margin-top: 10px; display: flex" v-if="step3AnswerFlag">
|
|
|
|
|
<el-table
|
|
|
|
|
:data="step4Data"
|
|
|
|
|
style="width: 680px"
|
|
|
|
|
@ -259,7 +259,7 @@
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
<div class="submit">提交</div>
|
|
|
|
|
<div class="submit" @click="step4Submit">提交</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="line"></div>
|
|
|
|
|
@ -350,7 +350,15 @@
|
|
|
|
|
<script setup>
|
|
|
|
|
import * as portraitModel from "@/api/portraitModel";
|
|
|
|
|
import { downBlobFile } from "@/utils/index.js";
|
|
|
|
|
const { proxy } = getCurrentInstance();
|
|
|
|
|
const knowledgeFlag = ref(false);
|
|
|
|
|
const errorNum = ref(0);
|
|
|
|
|
const step1Error = ref(0);
|
|
|
|
|
const step2Error = ref(0);
|
|
|
|
|
const step3Error = ref(0);
|
|
|
|
|
const step1AnswerFlag = ref(false);
|
|
|
|
|
const step2AnswerFlag = ref(false);
|
|
|
|
|
const step3AnswerFlag = ref(false);
|
|
|
|
|
const step1Data = ref([
|
|
|
|
|
{
|
|
|
|
|
name: "男士配饰",
|
|
|
|
|
@ -424,11 +432,11 @@ const fileTable1 = ref([
|
|
|
|
|
const step2Data = ref([
|
|
|
|
|
{
|
|
|
|
|
name: "男士配饰",
|
|
|
|
|
amount: "5900",
|
|
|
|
|
amount: "",
|
|
|
|
|
},
|
|
|
|
|
{ name: "儿童服装", amount: "600" },
|
|
|
|
|
{ name: "婴儿用品", amount: "1100" },
|
|
|
|
|
{ name: "床上用品", amount: "2400" },
|
|
|
|
|
{ name: "儿童服装", amount: "" },
|
|
|
|
|
{ name: "婴儿用品", amount: "" },
|
|
|
|
|
{ name: "床上用品", amount: "" },
|
|
|
|
|
]);
|
|
|
|
|
const step3Data = ref([
|
|
|
|
|
{
|
|
|
|
|
@ -590,15 +598,110 @@ const moveDown = (index, row) => {
|
|
|
|
|
const downloadData = () => {
|
|
|
|
|
// console.log(666);
|
|
|
|
|
portraitModel
|
|
|
|
|
.downloadDataByABC({
|
|
|
|
|
})
|
|
|
|
|
.downloadDataByABC({})
|
|
|
|
|
.then((res) => {
|
|
|
|
|
// console.log(res,'--');
|
|
|
|
|
const blob = new Blob([res], { type: "application/vnd.ms-excel" });
|
|
|
|
|
downBlobFile(`案例数据-帕累托分析`, blob);
|
|
|
|
|
})
|
|
|
|
|
.catch((error) => {});
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
const step1Submit = () => {
|
|
|
|
|
step1Error.value = 0;
|
|
|
|
|
for (let i in step1Data.value) {
|
|
|
|
|
// console.log(fileTable1.value[i]);
|
|
|
|
|
if (!step1Data.value[i].params) {
|
|
|
|
|
proxy.$modal.msgError("请先完成所有填空");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (step1Data.value[0].params && step1Data.value[0].params !== "5900") {
|
|
|
|
|
step1Error.value++;
|
|
|
|
|
}
|
|
|
|
|
if (step1Data.value[1].params && step1Data.value[1].params !== "600") {
|
|
|
|
|
step1Error.value++;
|
|
|
|
|
}
|
|
|
|
|
if (step1Data.value[2].params && step1Data.value[2].params !== "1100") {
|
|
|
|
|
step1Error.value++;
|
|
|
|
|
}
|
|
|
|
|
if (step1Data.value[3].params && step1Data.value[3].params !== "2400") {
|
|
|
|
|
step1Error.value++;
|
|
|
|
|
}
|
|
|
|
|
console.log(step1Error.value, "错误数");
|
|
|
|
|
proxy.$modal.msgSuccess("提交成功");
|
|
|
|
|
//将所填值同步到第二步表格
|
|
|
|
|
step2Data.value[0].amount = step1Data.value[0].params;
|
|
|
|
|
step2Data.value[1].amount = step1Data.value[1].params;
|
|
|
|
|
step2Data.value[2].amount = step1Data.value[2].params;
|
|
|
|
|
step2Data.value[3].amount = step1Data.value[3].params;
|
|
|
|
|
};
|
|
|
|
|
const step2Submit = () => {
|
|
|
|
|
step2Error.value = 0;
|
|
|
|
|
if (
|
|
|
|
|
Number(step2Data.value[0].amount) > Number(step2Data.value[1].amount) &&
|
|
|
|
|
Number(step2Data.value[1].amount) > Number(step2Data.value[2].amount) &&
|
|
|
|
|
Number(step2Data.value[2].amount) > Number(step2Data.value[3].amount)
|
|
|
|
|
) {
|
|
|
|
|
step2Error.value = 0;
|
|
|
|
|
} else {
|
|
|
|
|
step2Error.value = 1;
|
|
|
|
|
}
|
|
|
|
|
console.log("错误数", step2Error.value);
|
|
|
|
|
proxy.$modal.msgSuccess("提交成功");
|
|
|
|
|
step3Data.value[0].data2 = step2Data.value[0].amount;
|
|
|
|
|
step3Data.value[1].data2 = step2Data.value[1].amount;
|
|
|
|
|
step3Data.value[2].data2 = step2Data.value[2].amount;
|
|
|
|
|
step3Data.value[3].data2 = step2Data.value[3].amount;
|
|
|
|
|
step2AnswerFlag.value = true;
|
|
|
|
|
};
|
|
|
|
|
const step3Submit = () => {
|
|
|
|
|
step3Error.value = 0;
|
|
|
|
|
for (let i in step3Data.value) {
|
|
|
|
|
// console.log(fileTable1.value[i]);
|
|
|
|
|
if (!step3Data.value[i].params1 || !step3Data.value[i].params2) {
|
|
|
|
|
proxy.$modal.msgError("请先完成所有填空");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (step3Data.value[0].params1 && step3Data.value[0].params1 !== "59") {
|
|
|
|
|
step3Error.value++;
|
|
|
|
|
}
|
|
|
|
|
if (step3Data.value[0].params2 && step3Data.value[0].params2 !== "59") {
|
|
|
|
|
step3Error.value++;
|
|
|
|
|
}
|
|
|
|
|
if (step3Data.value[1].params1 && step3Data.value[1].params1 !== "24") {
|
|
|
|
|
step3Error.value++;
|
|
|
|
|
}
|
|
|
|
|
if (step3Data.value[1].params2 && step3Data.value[1].params2 !== "83") {
|
|
|
|
|
step3Error.value++;
|
|
|
|
|
}
|
|
|
|
|
if (step3Data.value[2].params1 && step3Data.value[2].params1 !== "11") {
|
|
|
|
|
step3Error.value++;
|
|
|
|
|
}
|
|
|
|
|
if (step3Data.value[2].params2 && step3Data.value[2].params2 !== "94") {
|
|
|
|
|
step3Error.value++;
|
|
|
|
|
}
|
|
|
|
|
if (step3Data.value[3].params1 && step3Data.value[3].params1 !== "6") {
|
|
|
|
|
step3Error.value++;
|
|
|
|
|
}
|
|
|
|
|
if (step3Data.value[3].params2 && step3Data.value[3].params2 !== "100") {
|
|
|
|
|
step3Error.value++;
|
|
|
|
|
}
|
|
|
|
|
console.log("错误数", step3Error.value);
|
|
|
|
|
proxy.$modal.msgSuccess("提交成功");
|
|
|
|
|
step4Data.value[0].data2 = step3Data.value[0].data2;
|
|
|
|
|
step4Data.value[1].data2 = step3Data.value[1].data2;
|
|
|
|
|
step4Data.value[2].data2 = step3Data.value[2].data2;
|
|
|
|
|
step4Data.value[3].data2 = step3Data.value[3].data2;
|
|
|
|
|
step4Data.value[0].data3 = step3Data.value[0].params2;
|
|
|
|
|
step4Data.value[1].data3 = step3Data.value[1].params2;
|
|
|
|
|
step4Data.value[2].data3 = step3Data.value[2].params2;
|
|
|
|
|
step4Data.value[3].data3 = step3Data.value[3].params2;
|
|
|
|
|
step3AnswerFlag.value = true;
|
|
|
|
|
};
|
|
|
|
|
const step4Submit = () => {
|
|
|
|
|
console.log('asd');
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
|