gaoluyang
2025-12-11 3791cb8c977f753dfabd0d48a161dd8bff11b4b4
1.安佑-BI大屏展示数据修改
2.安佑-规格型号修改
已修改3个文件
242 ■■■■ 文件已修改
src/api/viewIndex.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/product/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/dataDashboard/index.vue 227 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/viewIndex.js
@@ -45,3 +45,11 @@
        method: 'get'
    })
}
// 产品合格率接口
export const qualityProductQualifiedRate = () => {
  return request({
    url: '/home/qualityProductQualifiedRate',
    method: 'get'
  })
}
src/views/basicData/product/index.vue
@@ -146,7 +146,7 @@
            <el-form-item label="规格型号:" prop="model">
              <el-input
                v-model="modelForm.model"
                placeholder="请输入规格型号(g*袋数)"
                placeholder="请输入规格型号"
                clearable
                @keydown.enter.prevent
              />
@@ -273,11 +273,6 @@
  modelRules: {
    model: [
      { required: true, message: "请输入", trigger: "blur" },
      {
        pattern: /^[0-9*]*$/,
        message: "只能输入数字和*号",
        trigger: "blur"
      }
    ],
    unit: [{ required: true, message: "请输入", trigger: "blur" }],
    speculativeTradingName: [{ required: true, message: "请选择绑定机器", trigger: "change" }],
src/views/reportAnalysis/dataDashboard/index.vue
@@ -53,8 +53,49 @@
        </div>
        <!-- 质量统计 -->
<!--                <div class="panel-header">-->
<!--                    <span class="panel-title">近4个月质量统计</span>-->
<!--                </div>-->
<!--                <div class="main-panel">-->
<!--                    <div class="panel-item-customers">-->
<!--                        <div class="quality-cards">-->
<!--                            <div class="quality-cardSec">-->
<!--                                <div class="quality-card one"></div>-->
<!--                                <div class="quality-cardTitle">-->
<!--                                    <div>原材料已检测数</div>-->
<!--                                    <div>{{qualityStatisticsObject.supplierNum}}件</div>-->
<!--                                </div>-->
<!--                            </div>-->
<!--                            <div class="quality-cardSec">-->
<!--                                <div class="quality-card two"></div>-->
<!--                                <div class="quality-cardTitle">-->
<!--                                    <div>过程检验数量</div>-->
<!--                                    <div>{{qualityStatisticsObject.processNum}}件</div>-->
<!--                                </div>-->
<!--                            </div>-->
<!--                            <div class="quality-cardSec">-->
<!--                                <div class="quality-card three"></div>-->
<!--                                <div class="quality-cardTitle">-->
<!--                                    <div>出厂已检数量</div>-->
<!--                                    <div>{{qualityStatisticsObject.factoryNum}}件</div>-->
<!--                                </div>-->
<!--                            </div>-->
<!--                        </div>-->
<!--                        <Echarts ref="chart"-->
<!--                                         :chartStyle="chartStyle"-->
<!--                                         :grid="grid"-->
<!--                                         :legend="barLegend"-->
<!--                                         :series="barSeries1"-->
<!--                                         :tooltip="tooltip"-->
<!--                                         :xAxis="xAxis1"-->
<!--                                         :yAxis="yAxis1"-->
<!--                                         :options="{backgroundColor: 'transparent', textStyle: {color: '#B8C8E0'}}"-->
<!--                                         style="height: 260px"></Echarts>-->
<!--                    </div>-->
<!--                </div>-->
<!--            </div>-->
                <div class="panel-header">
                    <span class="panel-title">质量统计</span>
                    <span class="panel-title">近4个月仓库统计</span>
                </div>
                <div class="main-panel">
                    <div class="panel-item-customers">
@@ -62,24 +103,24 @@
                            <div class="quality-cardSec">
                                <div class="quality-card one"></div>
                                <div class="quality-cardTitle">
                                    <div>原材料已检测数</div>
                                    <div>入库数量</div>
                                    <div>{{qualityStatisticsObject.supplierNum}}件</div>
                                </div>
                            </div>
                            <div class="quality-cardSec">
                                <div class="quality-card two"></div>
                                <div class="quality-cardTitle">
                                    <div>过程检验数量</div>
                                    <div>出库数量</div>
                                    <div>{{qualityStatisticsObject.processNum}}件</div>
                                </div>
                            </div>
                            <div class="quality-cardSec">
                                <div class="quality-card three"></div>
                                <div class="quality-cardTitle">
                                    <div>出厂已检数量</div>
                                    <div>{{qualityStatisticsObject.factoryNum}}件</div>
                                </div>
                            </div>
<!--                            <div class="quality-cardSec">-->
<!--                                <div class="quality-card three"></div>-->
<!--                                <div class="quality-cardTitle">-->
<!--                                    <div>出厂已检数量</div>-->
<!--                                    <div>{{qualityStatisticsObject.factoryNum}}件</div>-->
<!--                                </div>-->
<!--                            </div>-->
                        </div>
                        <Echarts ref="chart"
                                         :chartStyle="chartStyle"
@@ -126,52 +167,77 @@
        <div class="equipment-stats">
          <div class="equipment-header">
                        <img src="@/assets/BI/shujutongjiicon@2x.png" alt="图标" class="equipment-icon" />
            <span class="equipment-title">设备统计</span>
                        <span class="equipment-title">生产统计</span>
          </div>
          <div class="equipment-items">
            <div class="equipment-item">
              <span class="equipment-value">{{equipmentNum}}</span>
              <span class="equipment-label">设备总数</span>
                            <span class="equipment-value">{{noWorkListLength}}</span>
                            <span class="equipment-label">待排产</span>
            </div>
            <div class="equipment-item">
              <span class="equipment-value">{{equipmentRepair}}</span>
              <span class="equipment-label">待维修设备</span>
                            <span class="equipment-value">{{workListLength}}</span>
                            <span class="equipment-label">已排产</span>
            </div>
            <div class="equipment-item">
              <span class="equipment-value">{{equipmentMaintain}}</span>
              <span class="equipment-label">待保养设备</span>
                            <span class="equipment-value">{{noListPageProcessLength}}</span>
                            <span class="equipment-label">待报工</span>
            </div>
            <div class="equipment-item">
              <span class="equipment-value">{{totalMeasuring}}</span>
              <span class="equipment-label">计量器具总数</span>
                            <span class="equipment-value">{{listPageProcessLength}}</span>
                            <span class="equipment-label">已报工</span>
                        </div>
                    </div>
                </div>
                <!-- 合格率 -->
                <div class="equipment-stats">
                    <div class="equipment-header">
                        <img src="@/assets/BI/shujutongjiicon@2x.png" alt="图标" class="equipment-icon" />
                        <span class="equipment-title">质检统计</span>
                    </div>
                    <div class="equipment-items">
                        <div class="equipment-item">
                            <span class="equipment-value">{{rawMaterialQualifiedRate}}%</span>
                            <span class="equipment-label">原材料合格率</span>
                        </div>
                        <div class="equipment-item">
                            <span class="equipment-value">{{processQualifiedRate}}%</span>
                            <span class="equipment-label">过程合格率</span>
                        </div>
                        <div class="equipment-item">
                            <span class="equipment-value">{{factoryQualifiedRate}}%</span>
                            <span class="equipment-label">出厂合格率</span>
                        </div>
                        <div class="equipment-item">
                            <span class="equipment-value">{{inventoryTurnoverRate}}%</span>
                            <span class="equipment-label">库存周转率</span>
            </div>
          </div>
        </div>
        <!-- 事件名称 -->
        <div class="event-info">
          <div class="event-header">
                        <img src="@/assets/BI/shijianmingxiicon@2x.png" alt="图标" class="event-icon" />
            <span class="event-title">事件名称</span>
          </div>
          <div class="event-content">
                        <ul class="todo-list" v-if="todoList.length > 0" ref="refTodoList">
   <li v-for="item in todoList" :key="item.id">
    <div style="display: flex;flex-direction: column;justify-content: space-between;width: 100%;gap: 20px">
     <div style="display: flex;justify-content: space-between;align-items: center;">
      <div class="todo-title">待办编号:{{item.approveId}}</div>
      <div class="todo-division">部门:{{item.approveDeptName}}</div>
      <div class="todo-time">{{item.approveTime}}</div>
     </div>
     <div class="todo-division">待办事由:{{item.approveReason}}</div>
    </div>
   </li>
 </ul>
                        <div v-else style="text-align: center">
                            暂无数据
                        </div>
          </div>
        </div>
                <!--        <div class="event-info">-->
                <!--          <div class="event-header">-->
                <!--                        <img src="@/assets/BI/shijianmingxiicon@2x.png" alt="图标" class="event-icon" />-->
                <!--            <span class="event-title">事件名称</span>-->
                <!--          </div>-->
                <!--          <div class="event-content">-->
                <!--                        <ul class="todo-list" v-if="todoList.length > 0" ref="refTodoList"> -->
                <!--   <li v-for="item in todoList" :key="item.id"> -->
                <!--    <div style="display: flex;flex-direction: column;justify-content: space-between;width: 100%;gap: 20px"> -->
                <!--     <div style="display: flex;justify-content: space-between;align-items: center;"> -->
                <!--      <div class="todo-title">待办编号:{{item.approveId}}</div> -->
                <!--      <div class="todo-division">部门:{{item.approveDeptName}}</div> -->
                <!--      <div class="todo-time">{{item.approveTime}}</div> -->
                <!--     </div> -->
                <!--     <div class="todo-division">待办事由:{{item.approveReason}}</div> -->
                <!--    </div> -->
                <!--   </li> -->
                <!-- </ul>-->
                <!--                        <div v-else style="text-align: center">-->
                <!--                            暂无数据-->
                <!--                        </div>-->
                <!--          </div>-->
                <!--        </div>-->
                
                <div class="financial-header">
                    <span class="financial-title">财务分析</span>
@@ -191,7 +257,7 @@
                                         :xAxis="xAxis3"
                                         :yAxis="yAxis3"
                                         :options="{backgroundColor: 'transparent', textStyle: {color: '#B8C8E0'}}"
                                         style="height: 300px"></Echarts>
                                         style="height: 280px"></Echarts>
                    </div>
                </div>
      </div>
@@ -205,11 +271,11 @@
                <div class="panel-item-customers">
                    <div style="display: flex;justify-content: space-between;margin-bottom: 20px;">
                        <div class="section-title">应收应付统计</div>
                        <el-radio-group v-model="radio1" size="large" @change="statisticsReceivable" class="custom-radio-group">
                            <el-radio-button label="按周" :value="1" />
                            <el-radio-button label="按月" :value="2" />
                            <el-radio-button label="按季度" :value="3" />
                        </el-radio-group>
                        <!--                        <el-radio-group v-model="radio1" size="large" @change="statisticsReceivable" class="custom-radio-group">-->
                        <!--                            <el-radio-button label="按周" :value="1" />-->
                        <!--                            <el-radio-button label="按月" :value="2" />-->
                        <!--                            <el-radio-button label="按季度" :value="3" />-->
                        <!--                        </el-radio-group>-->
                    </div>
                    <Echarts ref="chart"
                                     :color="barColors2"
@@ -245,7 +311,7 @@
import useUserStore from '@/store/modules/user'
import {
    analysisCustomerContractAmounts, getAmountHalfYear,
    homeTodos,
    homeTodos, qualityProductQualifiedRate,
    qualityStatistics,
    statisticsReceivablePayable
} from "@/api/viewIndex.js";
@@ -257,6 +323,8 @@
import {getUpkeepPage} from "@/api/equipmentManagement/upkeep.js";
import {measuringInstrumentListPage} from "@/api/equipmentManagement/measurementEquipment.js";
import {listPageAnalysis} from "@/api/financialManagement/expenseManagement.js";
import {workListPage} from "@/api/productionManagement/productionReporting.js";
import {listPageProcess} from "@/api/productionManagement/operationScheduling.js";
// 全屏相关状态
const isFullscreen = ref(false);
@@ -312,6 +380,14 @@
const equipmentRepair = ref(0)
const equipmentMaintain = ref(0)
const totalMeasuring = ref(0)
const rawMaterialQualifiedRate = ref(0)
const processQualifiedRate = ref(0)
const factoryQualifiedRate = ref(0)
const inventoryTurnoverRate = ref(0)
const noWorkListLength = ref(0)
const workListLength = ref(0)
const noListPageProcessLength = ref(0)
const listPageProcessLength = ref(0)
const pieTooltip = reactive({
    trigger: 'item',
    formatter: function (params) {
@@ -412,7 +488,7 @@
const barLegend = {
    show: true,
    textStyle: { color: '#B8C8E0' },
    data: ['原材料不合格数', '过程不合格数', '出厂不合格数']
    data: ['原材料合格数', '过程合格数', '出厂合格数']
}
const barLegend1 = {
    show: true,
@@ -487,7 +563,7 @@
])
const barSeries1 = ref([
    {
        name: '原材料不合格数',
        name: '原材料合格数',
        type: 'bar',
        barGap: 0,
        emphasis: {
@@ -509,7 +585,7 @@
        data: []
    },
    {
        name: '过程不合格数',
        name: '过程合格数',
        type: 'bar',
        emphasis: {
            focus: 'series'
@@ -530,7 +606,7 @@
        data: []
    },
    {
        name: '出厂不合格数',
        name: '出厂合格数',
        type: 'bar',
        emphasis: {
            focus: 'series'
@@ -640,6 +716,15 @@
        qualityStatisticsObject.value.factoryNum = res.data.factoryNum
    })
}
// 产品合格率
const qualityProductQualifiedRateInfo = () => {
    qualityProductQualifiedRate().then((res) => {
        rawMaterialQualifiedRate.value = res.data.rawMaterialQualifiedRate
        processQualifiedRate.value = res.data.processQualifiedRate
        factoryQualifiedRate.value = res.data.factoryQualifiedRate
        inventoryTurnoverRate.value = res.data.inventoryTurnoverRate
    })
}
// 财务统计
const accountStatisticsInfo = () => {
    listPageAnalysis().then((res) => {
@@ -649,6 +734,36 @@
        barSeries11.value[2].data = res.data.netIncome
    })
}
// 生产数据
const workListPageInfo = () => {
    const params = {
        current: -1,
        size: -1,
        status: 3
    }
    const params1 = {
        current: -1,
        size: -1,
        status: 1
    }
    // 已报工查询
    workListPage(params).then(res => {
        workListLength.value = res.data.records.length
    })
    // 已排产查询
    listPageProcess(params).then(res => {
        listPageProcessLength.value = res.data.records.length
    })
    // 待报工查询
    workListPage(params1).then(res => {
        noWorkListLength.value = res.data.records.length
    })
    // 待排产查询
    listPageProcess(params1).then(res => {
        noListPageProcessLength.value = res.data.records.length
    })
}
const getNum = () => {
    const params = {
        pageNum: -1,
@@ -669,7 +784,7 @@
        pageNum: -1,
        pageSize: -1,
    }
    getLedgerPage(params).then((res) => {
    getLedgerPage({}).then((res) => {
        equipmentNum.value = res.data.total
    });
    getRepairPage(params).then((res) => {
@@ -982,7 +1097,9 @@
  window.addEventListener('resize', handleResize)
  analysisCustomer()
  qualityStatisticsInfo()
    qualityProductQualifiedRateInfo()
    accountStatisticsInfo()
    workListPageInfo()
  getNum()
  getLedgerNum()
  todoInfoS()
@@ -1164,7 +1281,7 @@
    border: 1px solid #1A58B0;
    padding: 18px;
    width: 100%;
    height: 540px;
    height: 520px;
}
.panel-title-second {
    height: 60px;