|
@@ -11,24 +11,26 @@
|
|
|
</el-row>
|
|
|
<el-row :span="24" class="bg1-1-2">
|
|
|
<div class="box-custom-number">
|
|
|
- <div class="custom-number">客户数:{{analytics.clients}}</div>
|
|
|
+ <div class="custom-number">客户数:{{ analytics.clients }}</div>
|
|
|
</div>
|
|
|
</el-row>
|
|
|
<el-row :span="24" class="bg1-1-1">
|
|
|
<div class="box-contract-number">
|
|
|
- <div class="contract-number">合同数:{{analytics.num}}</div>
|
|
|
+ <div class="contract-number">合同数:{{ analytics.num }}</div>
|
|
|
</div>
|
|
|
</el-row>
|
|
|
<el-row :span="24" class="bg1-1-2">
|
|
|
<div class="box-contract-amount">
|
|
|
- <div class="contract-amount">合同总金额:{{analytics.totalAmount}}</div>
|
|
|
+ <div class="contract-amount">
|
|
|
+ 合同总金额:{{ analytics.totalAmount }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-row>
|
|
|
</el-col>
|
|
|
<el-col :span="12" class="bg1-2">
|
|
|
<el-row :span="24" class="bg1-2-1">
|
|
|
- <div class="box-notice-title">
|
|
|
- <div class="notice-title">通知:热烈欢迎领导莅临考察</div>
|
|
|
+ <div class="box-notice-title" @dblclick="doubleClick">
|
|
|
+ <div class="notice-title">{{ noticeContent }}</div>
|
|
|
</div>
|
|
|
</el-row>
|
|
|
<el-row :span="24" class="bg1-2-2">
|
|
@@ -36,19 +38,19 @@
|
|
|
<div class="stat-number">
|
|
|
<div class="item">
|
|
|
<div class="title">在制产品总数</div>
|
|
|
- <div class="number">100</div>
|
|
|
+ <div class="number">{{ produceCensus.produceNum }}</div>
|
|
|
</div>
|
|
|
- <div class="item">
|
|
|
+ <div class="item">
|
|
|
<div class="title">已完成数量</div>
|
|
|
- <div class="number">1000</div>
|
|
|
+ <div class="number">{{ produceCensus.completeNum }}</div>
|
|
|
</div>
|
|
|
- <div class="item">
|
|
|
+ <div class="item">
|
|
|
<div class="title">损坏数量</div>
|
|
|
- <div class="number">19</div>
|
|
|
+ <div class="number">{{ produceCensus.damageNum }}</div>
|
|
|
</div>
|
|
|
- <div class="item">
|
|
|
+ <div class="item">
|
|
|
<div class="title">生产总值</div>
|
|
|
- <div class="number">9988221</div>
|
|
|
+ <div class="number">{{ produceCensus.totalOutputValue }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -56,19 +58,45 @@
|
|
|
<el-row :span="24" class="bg1-2-3">
|
|
|
<div class="box-contract-table">
|
|
|
<div class="contract-table table">
|
|
|
- <el-table ref="contractProdTable" :data="contractProdList" height="100%" row-class-name="custom-ranking-table-row" style="width:100%;">
|
|
|
+ <el-table
|
|
|
+ ref="contractProdTable"
|
|
|
+ :data="contractProdList"
|
|
|
+ height="100%"
|
|
|
+ row-class-name="custom-ranking-table-row"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
<el-table-column type="index" label="序号"></el-table-column>
|
|
|
- <el-table-column prop="orderCode" label="合同号"></el-table-column>
|
|
|
- <el-table-column prop="productName" label="产品名称"></el-table-column>
|
|
|
- <el-table-column prop="prodCode" label="产品编号"></el-table-column>
|
|
|
- <el-table-column prop="batchNo" label="批次号"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="orderCode"
|
|
|
+ label="合同号"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="productName"
|
|
|
+ label="产品名称"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="prodCode"
|
|
|
+ label="产品编号"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="batchNo"
|
|
|
+ label="批次号"
|
|
|
+ ></el-table-column>
|
|
|
<el-table-column label="生产进度" width="180">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-progress :percentage="parseInt(scope.row.progressBar)"></el-progress>
|
|
|
+ <el-progress
|
|
|
+ :percentage="parseInt(scope.row.progressBar)"
|
|
|
+ ></el-progress>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="customerName" label="客户名称"></el-table-column>
|
|
|
- <el-table-column prop="curOperator" label="当前操作人"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="customerName"
|
|
|
+ label="客户名称"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="curOperator"
|
|
|
+ label="当前操作人"
|
|
|
+ ></el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -84,13 +112,27 @@
|
|
|
<div class="box-custom-ranking">
|
|
|
<div class="custom-ranking">
|
|
|
<div class="table">
|
|
|
- <el-table ref="customerRankTable" :data="customerRankList" height="100%" row-class-name="custom-ranking-table-row" style="width:100%;">
|
|
|
- <el-table-column prop="customerName" label="客户名称"></el-table-column>
|
|
|
- <el-table-column label="合同金额占比">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-progress :text-inside="true" :stroke-width="16" :percentage="scope.row.percentage * 100" status="success"></el-progress>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table
|
|
|
+ ref="customerRankTable"
|
|
|
+ :data="customerRankList"
|
|
|
+ height="100%"
|
|
|
+ row-class-name="custom-ranking-table-row"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ prop="customerName"
|
|
|
+ label="客户名称"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column label="合同金额占比">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-progress
|
|
|
+ :text-inside="true"
|
|
|
+ :stroke-width="16"
|
|
|
+ :percentage="scope.row.percentage * 100"
|
|
|
+ status="success"
|
|
|
+ ></el-progress>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -100,7 +142,7 @@
|
|
|
</el-row>
|
|
|
<el-row :span="24" class="sample-bg1">
|
|
|
<el-col :span="6" class="bg2-1">
|
|
|
- <el-row :span="24" class="bg2-3-1">
|
|
|
+ <el-row :span="24" class="bg2-3-1">
|
|
|
<div class="box-contract-alert">
|
|
|
<div class="contract-alert">合同预警</div>
|
|
|
</div>
|
|
@@ -109,14 +151,33 @@
|
|
|
<div class="box-contract-alert">
|
|
|
<div class="contract-alert">
|
|
|
<div class="table">
|
|
|
- <el-table ref="contractAlarmTable" :data="contractAlarmList" height="100%" row-class-name="custom-ranking-table-row" style="width:100%;">
|
|
|
- <el-table-column type="index" label="序号"></el-table-column>
|
|
|
- <el-table-column prop="contractNumber" label="合同号"></el-table-column>
|
|
|
- <!-- <el-table-column prop="orderCode" label="订单号"></el-table-column> -->
|
|
|
- <el-table-column prop="remainTime" label="剩余时间" width="70"></el-table-column>
|
|
|
- <el-table-column prop="deliveryTime" label="交付日期"></el-table-column>
|
|
|
- <el-table-column prop="customerName" label="客户名称"></el-table-column>
|
|
|
- <!-- <el-table-column prop="salesmenName" label="业务员"></el-table-column> -->
|
|
|
+ <el-table
|
|
|
+ ref="contractAlarmTable"
|
|
|
+ :data="contractAlarmList"
|
|
|
+ height="100%"
|
|
|
+ row-class-name="custom-ranking-table-row"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-table-column type="index" label="序号"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="contractNumber"
|
|
|
+ label="合同号"
|
|
|
+ ></el-table-column>
|
|
|
+ <!-- <el-table-column prop="orderCode" label="订单号"></el-table-column> -->
|
|
|
+ <el-table-column
|
|
|
+ prop="remainTime"
|
|
|
+ label="剩余时间"
|
|
|
+ width="70"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="deliveryTime"
|
|
|
+ label="交付日期"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="customerName"
|
|
|
+ label="客户名称"
|
|
|
+ ></el-table-column>
|
|
|
+ <!-- <el-table-column prop="salesmenName" label="业务员"></el-table-column> -->
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -133,13 +194,32 @@
|
|
|
<div class="box-contract-alert">
|
|
|
<div class="contract-alert">
|
|
|
<div class="table">
|
|
|
- <el-table ref="damageTable" :data="damageList" height="100%" row-class-name="custom-ranking-table-row" style="width:100%;">
|
|
|
- <el-table-column type="index" label="序号"></el-table-column>
|
|
|
- <el-table-column prop="productName" label="产品"></el-table-column>
|
|
|
- <el-table-column prop="prodCode" label="编号"></el-table-column>
|
|
|
- <!-- <el-table-column prop="damageReason" label="原因"></el-table-column> -->
|
|
|
- <el-table-column prop="liableUserName" label="报损人" width="80"></el-table-column>
|
|
|
- <el-table-column prop="createTime" label="报损时间"></el-table-column>
|
|
|
+ <el-table
|
|
|
+ ref="damageTable"
|
|
|
+ :data="damageList"
|
|
|
+ height="100%"
|
|
|
+ row-class-name="custom-ranking-table-row"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-table-column type="index" label="序号"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="productName"
|
|
|
+ label="产品"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="prodCode"
|
|
|
+ label="编号"
|
|
|
+ ></el-table-column>
|
|
|
+ <!-- <el-table-column prop="damageReason" label="原因"></el-table-column> -->
|
|
|
+ <el-table-column
|
|
|
+ prop="liableUserName"
|
|
|
+ label="报损人"
|
|
|
+ width="80"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="createTime"
|
|
|
+ label="报损时间"
|
|
|
+ ></el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -156,12 +236,31 @@
|
|
|
<div class="box-contract-alert">
|
|
|
<div class="contract-alert">
|
|
|
<div class="table">
|
|
|
- <el-table ref="submittedRecordTable" :data="submittedRecordList" height="100%" row-class-name="custom-ranking-table-row" style="width:100%;">
|
|
|
- <el-table-column type="index" label="序号"></el-table-column>
|
|
|
- <el-table-column prop="nodeName" label="工序" width="70"></el-table-column>
|
|
|
- <el-table-column prop="taskName" label="产品名字"></el-table-column>
|
|
|
- <el-table-column prop="endTime" label="完成时间"></el-table-column>
|
|
|
- <el-table-column prop="operatorName" label="操作人名字"></el-table-column>
|
|
|
+ <el-table
|
|
|
+ ref="submittedRecordTable"
|
|
|
+ :data="submittedRecordList"
|
|
|
+ height="100%"
|
|
|
+ row-class-name="custom-ranking-table-row"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-table-column type="index" label="序号"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="nodeName"
|
|
|
+ label="工序"
|
|
|
+ width="70"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="taskName"
|
|
|
+ label="产品名字"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="endTime"
|
|
|
+ label="完成时间"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="operatorName"
|
|
|
+ label="操作人名字"
|
|
|
+ ></el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -178,12 +277,31 @@
|
|
|
<div class="box-contract-alert">
|
|
|
<div class="contract-alert">
|
|
|
<div class="table">
|
|
|
- <el-table ref="outboundRecordTable" :data="outboundRecordList" height="100%" row-class-name="custom-ranking-table-row" style="width:100%;">
|
|
|
- <el-table-column type="index" label="序号"></el-table-column>
|
|
|
- <el-table-column prop="materialName" label="物品"></el-table-column>
|
|
|
- <el-table-column prop="cnt" label="数量" width="50"></el-table-column>
|
|
|
- <el-table-column prop="createTime" label="时间"></el-table-column>
|
|
|
- <el-table-column prop="applicant" label="申请人"></el-table-column>
|
|
|
+ <el-table
|
|
|
+ ref="outboundRecordTable"
|
|
|
+ :data="outboundRecordList"
|
|
|
+ height="100%"
|
|
|
+ row-class-name="custom-ranking-table-row"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-table-column type="index" label="序号"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="materialName"
|
|
|
+ label="物品"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="cnt"
|
|
|
+ label="数量"
|
|
|
+ width="50"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="createTime"
|
|
|
+ label="时间"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="applicant"
|
|
|
+ label="申请人"
|
|
|
+ ></el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -191,236 +309,335 @@
|
|
|
</el-row>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
+
|
|
|
+ <el-dialog title="设置通知内容" :visible.sync="dialogFormVisible">
|
|
|
+ <el-form :model="noticeForm">
|
|
|
+ <el-form-item label="通知内容">
|
|
|
+ <el-input v-model="noticeForm.content" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="dialogFormVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="dialogSubmit">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import { getAnalytics, getContractAlarmList, getCustomerRankList, getDamageList, getOutboundRecordList, getContractProdList, getSubmittedRecordList } from '@/api/home'
|
|
|
- export default {
|
|
|
- name: 'home',
|
|
|
- components: {
|
|
|
- },
|
|
|
- data () {
|
|
|
- return {
|
|
|
- analytics: {
|
|
|
- clients: '', // 客户数
|
|
|
- num: '', // 合同数
|
|
|
- totalAmount: ''// 合同总金额
|
|
|
- },
|
|
|
- analyticsTimer: null,
|
|
|
+import {
|
|
|
+ getAnalytics,
|
|
|
+ getContractAlarmList,
|
|
|
+ getCustomerRankList,
|
|
|
+ getDamageList,
|
|
|
+ getOutboundRecordList,
|
|
|
+ getContractProdList,
|
|
|
+ getSubmittedRecordList,
|
|
|
+ getProduceCensus,
|
|
|
+} from "@/api/home";
|
|
|
+export default {
|
|
|
+ name: "home",
|
|
|
+ components: {},
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ analytics: {
|
|
|
+ clients: "", // 客户数
|
|
|
+ num: "", // 合同数
|
|
|
+ totalAmount: "", // 合同总金额
|
|
|
+ },
|
|
|
+ analyticsTimer: null,
|
|
|
// 合同预警列表
|
|
|
- contractAlarmList: [],
|
|
|
- contractAlarmListTimer: null,
|
|
|
+ contractAlarmList: [],
|
|
|
+ contractAlarmListTimer: null,
|
|
|
// 客户排名列表
|
|
|
- customerRankList: [],
|
|
|
- customerRankListTimer: null,
|
|
|
+ customerRankList: [],
|
|
|
+ customerRankListTimer: null,
|
|
|
// 报损记录列表
|
|
|
- damageList: [],
|
|
|
- damageListTimer: null,
|
|
|
+ damageList: [],
|
|
|
+ damageListTimer: null,
|
|
|
// 出库记录列表
|
|
|
- outboundRecordList: [],
|
|
|
- outboundRecordListTimer: null,
|
|
|
+ outboundRecordList: [],
|
|
|
+ outboundRecordListTimer: null,
|
|
|
// 合同生产记录列表
|
|
|
- contractProdList: [],
|
|
|
- contractProdListTimer: null,
|
|
|
+ contractProdList: [],
|
|
|
+ contractProdListTimer: null,
|
|
|
// 报工列表
|
|
|
- submittedRecordList: [],
|
|
|
- submittedRecordListTimer: null
|
|
|
- }
|
|
|
- },
|
|
|
- created () {
|
|
|
- this.getAnalytics()
|
|
|
- this.analyticsTimer = setInterval(this.getAnalytics, 1000 * 3600) // 1小时刷新
|
|
|
-
|
|
|
- this.getContractAlarmList()
|
|
|
- this.contractAlarmListTimer = setInterval(this.getContractAlarmList, 1000 * 60 * 10) // 10分钟刷新
|
|
|
-
|
|
|
- this.getCustomerRankList()
|
|
|
- this.damageListTimer = setInterval(this.getCustomerRankList, 1000 * 60 * 10) // 10分钟刷新
|
|
|
-
|
|
|
- this.getDamageList()
|
|
|
- this.customerRankListTimer = setInterval(this.getDamageList, 1000 * 60 * 10) // 10分钟刷新
|
|
|
-
|
|
|
- this.getOutboundRecordList()
|
|
|
- this.outboundRecordListTimer = setInterval(this.getOutboundRecordList, 1000 * 60 * 5) // 5分钟刷新
|
|
|
-
|
|
|
- this.getContractProdList()
|
|
|
- this.contractProdListTimer = setInterval(this.getContractProdList, 1000 * 60 * 10) // 10分钟刷新
|
|
|
-
|
|
|
- this.getSubmittedRecordList()
|
|
|
- this.submittedRecordListTimer = setInterval(this.getSubmittedRecordList, 1000 * 60 * 5) // 5分钟刷新
|
|
|
- },
|
|
|
- mounted () {
|
|
|
- this.contractProdTableScroll()
|
|
|
- this.customerRankTableScroll()
|
|
|
- this.contractAlarmTableScroll()
|
|
|
- this.outboundRecordTableScroll()
|
|
|
- this.submittedRecordTableScroll()
|
|
|
- this.damageTableScroll()
|
|
|
- },
|
|
|
- beforeDestroy () {
|
|
|
- clearInterval(this.analyticsTimer)
|
|
|
- clearInterval(this.contractAlarmListTimer)
|
|
|
- clearInterval(this.damageListTimer)
|
|
|
- clearInterval(this.customerRankListTimer)
|
|
|
- clearInterval(this.outboundRecordListTimer)
|
|
|
- clearInterval(this.contractProdListTimer)
|
|
|
- clearInterval(this.submittedRecordListTimer)
|
|
|
- },
|
|
|
- methods: {
|
|
|
+ submittedRecordList: [],
|
|
|
+ submittedRecordListTimer: null,
|
|
|
+ //生产统计
|
|
|
+ produceCensus: {
|
|
|
+ produceNum: 0, // 在制产品总数
|
|
|
+ completeNum: 0, // 已完成数量
|
|
|
+ damageNum: 0, // 损坏数量
|
|
|
+ totalOutputValue: 0, // 生产总值
|
|
|
+ },
|
|
|
+ produceCensusTimer: null,
|
|
|
+ dialogFormVisible: false,
|
|
|
+ noticeForm: {
|
|
|
+ content: "",
|
|
|
+ },
|
|
|
+ noticeContent: "",
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getAnalytics();
|
|
|
+ this.analyticsTimer = setInterval(this.getAnalytics, 1000 * 3600); // 1小时刷新
|
|
|
+
|
|
|
+ this.getContractAlarmList();
|
|
|
+ this.contractAlarmListTimer = setInterval(
|
|
|
+ this.getContractAlarmList,
|
|
|
+ 1000 * 60 * 10
|
|
|
+ ); // 10分钟刷新
|
|
|
+
|
|
|
+ this.getCustomerRankList();
|
|
|
+ this.damageListTimer = setInterval(
|
|
|
+ this.getCustomerRankList,
|
|
|
+ 1000 * 60 * 10
|
|
|
+ ); // 10分钟刷新
|
|
|
+
|
|
|
+ this.getDamageList();
|
|
|
+ this.customerRankListTimer = setInterval(
|
|
|
+ this.getDamageList,
|
|
|
+ 1000 * 60 * 10
|
|
|
+ ); // 10分钟刷新
|
|
|
+
|
|
|
+ this.getOutboundRecordList();
|
|
|
+ this.outboundRecordListTimer = setInterval(
|
|
|
+ this.getOutboundRecordList,
|
|
|
+ 1000 * 60 * 5
|
|
|
+ ); // 5分钟刷新
|
|
|
+
|
|
|
+ this.getContractProdList();
|
|
|
+ this.contractProdListTimer = setInterval(
|
|
|
+ this.getContractProdList,
|
|
|
+ 1000 * 60 * 10
|
|
|
+ ); // 10分钟刷新
|
|
|
+
|
|
|
+ this.getSubmittedRecordList();
|
|
|
+ this.submittedRecordListTimer = setInterval(
|
|
|
+ this.getSubmittedRecordList,
|
|
|
+ 1000 * 60 * 5
|
|
|
+ ); // 5分钟刷新
|
|
|
+
|
|
|
+ this.getProduceCensus();
|
|
|
+ this.produceCensusTimer = setInterval(this.getProduceCensus, 1000 * 60 * 5); // 5分钟刷新
|
|
|
+
|
|
|
+ this.getNoticeContent();
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.contractProdTableScroll();
|
|
|
+ this.customerRankTableScroll();
|
|
|
+ this.contractAlarmTableScroll();
|
|
|
+ this.outboundRecordTableScroll();
|
|
|
+ this.submittedRecordTableScroll();
|
|
|
+ this.damageTableScroll();
|
|
|
+ },
|
|
|
+ beforeDestroy() {
|
|
|
+ clearInterval(this.analyticsTimer);
|
|
|
+ clearInterval(this.contractAlarmListTimer);
|
|
|
+ clearInterval(this.damageListTimer);
|
|
|
+ clearInterval(this.customerRankListTimer);
|
|
|
+ clearInterval(this.outboundRecordListTimer);
|
|
|
+ clearInterval(this.contractProdListTimer);
|
|
|
+ clearInterval(this.submittedRecordListTimer);
|
|
|
+ clearInterval(this.produceCensusTimer);
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getNoticeContent() {
|
|
|
+ let content = sessionStorage.getItem("noticeContent");
|
|
|
+ if(content == null || content == ''){
|
|
|
+ content = '双击此处修改通知内容';
|
|
|
+ }
|
|
|
+
|
|
|
+ this.noticeContent = content;
|
|
|
+ },
|
|
|
+ doubleClick() {
|
|
|
+ this.dialogFormVisible = true;
|
|
|
+ },
|
|
|
+ dialogSubmit() {
|
|
|
+ this.noticeContent = this.noticeForm.content;
|
|
|
+ this.dialogFormVisible = false;
|
|
|
+ sessionStorage.setItem("noticeContent", this.noticeContent);
|
|
|
+ },
|
|
|
// 合同统计
|
|
|
- getAnalytics () {
|
|
|
- getAnalytics({}).then(({data}) => {
|
|
|
- if (data && data.code === '200') {
|
|
|
- this.analytics = {...data.data}
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
+ getAnalytics() {
|
|
|
+ getAnalytics({}).then(({ data }) => {
|
|
|
+ if (data && data.code === "200") {
|
|
|
+ this.analytics = { ...data.data };
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
// 合同预警列表
|
|
|
- getContractAlarmList () {
|
|
|
- let params = {
|
|
|
- 'current': 1,
|
|
|
- 'size': 20
|
|
|
- }
|
|
|
- getContractAlarmList(params).then(({data}) => {
|
|
|
- if (data && data.code === '200') {
|
|
|
- this.contractAlarmList = data.data.records
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
+ getContractAlarmList() {
|
|
|
+ let params = {
|
|
|
+ current: 1,
|
|
|
+ size: 20,
|
|
|
+ };
|
|
|
+ getContractAlarmList(params).then(({ data }) => {
|
|
|
+ if (data && data.code === "200") {
|
|
|
+ this.contractAlarmList = data.data.records;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
// 客户排名列表
|
|
|
- getCustomerRankList () {
|
|
|
- let params = {
|
|
|
- 'current': 1,
|
|
|
- 'size': 20
|
|
|
- }
|
|
|
- getCustomerRankList(params).then(({data}) => {
|
|
|
- if (data && data.code === '200') {
|
|
|
- this.customerRankList = data.data
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
+ getCustomerRankList() {
|
|
|
+ let params = {
|
|
|
+ current: 1,
|
|
|
+ size: 20,
|
|
|
+ };
|
|
|
+ getCustomerRankList(params).then(({ data }) => {
|
|
|
+ if (data && data.code === "200") {
|
|
|
+ this.customerRankList = data.data;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
// 报损记录列表
|
|
|
- getDamageList () {
|
|
|
- let params = {
|
|
|
- 'current': 1,
|
|
|
- 'size': 20
|
|
|
- }
|
|
|
- getDamageList(params).then(({data}) => {
|
|
|
- if (data && data.code === '200') {
|
|
|
- this.damageList = data.data.records
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
+ getDamageList() {
|
|
|
+ let params = {
|
|
|
+ current: 1,
|
|
|
+ size: 20,
|
|
|
+ };
|
|
|
+ getDamageList(params).then(({ data }) => {
|
|
|
+ if (data && data.code === "200") {
|
|
|
+ this.damageList = data.data.records;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
// 出库记录列表
|
|
|
- getOutboundRecordList () {
|
|
|
- let params = {
|
|
|
- 'current': 1,
|
|
|
- 'size': 20
|
|
|
- }
|
|
|
- getOutboundRecordList(params).then(({data}) => {
|
|
|
- if (data && data.code === '200') {
|
|
|
- this.outboundRecordList = data.data.records
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
+ getOutboundRecordList() {
|
|
|
+ let params = {
|
|
|
+ current: 1,
|
|
|
+ size: 20,
|
|
|
+ };
|
|
|
+ getOutboundRecordList(params).then(({ data }) => {
|
|
|
+ if (data && data.code === "200") {
|
|
|
+ this.outboundRecordList = data.data.records;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
// 合同生产记录列表
|
|
|
- getContractProdList () {
|
|
|
- let params = {
|
|
|
- 'current': 1,
|
|
|
- 'size': 20
|
|
|
- }
|
|
|
- getContractProdList(params).then(({data}) => {
|
|
|
- if (data && data.code === '200') {
|
|
|
- this.contractProdList = data.data.records
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
+ getContractProdList() {
|
|
|
+ let params = {
|
|
|
+ current: 1,
|
|
|
+ size: 20,
|
|
|
+ };
|
|
|
+ getContractProdList(params).then(({ data }) => {
|
|
|
+ if (data && data.code === "200") {
|
|
|
+ this.contractProdList = data.data.records;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
// 报工列表
|
|
|
- getSubmittedRecordList () {
|
|
|
- let params = {
|
|
|
- 'current': 1,
|
|
|
- 'size': 20
|
|
|
- }
|
|
|
- getSubmittedRecordList(params).then(({data}) => {
|
|
|
- if (data && data.code === '200') {
|
|
|
- this.submittedRecordList = data.data.records
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- contractProdTableScroll () {
|
|
|
- this.$nextTick(() => {
|
|
|
- const divData = this.$refs.contractProdTable.bodyWrapper
|
|
|
- setInterval(() => {
|
|
|
- divData.scrollTop += 1
|
|
|
- if (divData.clientHeight + divData.scrollTop + 1 > divData.scrollHeight) {
|
|
|
- divData.scrollTop = 0
|
|
|
- }
|
|
|
- }, 50)
|
|
|
- })
|
|
|
- },
|
|
|
- customerRankTableScroll () {
|
|
|
- this.$nextTick(() => {
|
|
|
- const divData = this.$refs.customerRankTable.bodyWrapper
|
|
|
- setInterval(() => {
|
|
|
- divData.scrollTop += 1
|
|
|
- if (divData.clientHeight + divData.scrollTop + 1 > divData.scrollHeight) {
|
|
|
- divData.scrollTop = 0
|
|
|
- }
|
|
|
- }, 50)
|
|
|
- })
|
|
|
- },
|
|
|
- contractAlarmTableScroll () {
|
|
|
- this.$nextTick(() => {
|
|
|
- const divData = this.$refs.contractAlarmTable.bodyWrapper
|
|
|
- setInterval(() => {
|
|
|
- divData.scrollTop += 1
|
|
|
- if (divData.clientHeight + divData.scrollTop + 1 > divData.scrollHeight) {
|
|
|
- divData.scrollTop = 0
|
|
|
- }
|
|
|
- }, 50)
|
|
|
- })
|
|
|
- },
|
|
|
- outboundRecordTableScroll () {
|
|
|
- this.$nextTick(() => {
|
|
|
- const divData = this.$refs.outboundRecordTable.bodyWrapper
|
|
|
- setInterval(() => {
|
|
|
- divData.scrollTop += 1
|
|
|
- if (divData.clientHeight + divData.scrollTop + 1 > divData.scrollHeight) {
|
|
|
- divData.scrollTop = 0
|
|
|
- }
|
|
|
- }, 50)
|
|
|
- })
|
|
|
- },
|
|
|
- submittedRecordTableScroll () {
|
|
|
- this.$nextTick(() => {
|
|
|
- const divData = this.$refs.submittedRecordTable.bodyWrapper
|
|
|
- setInterval(() => {
|
|
|
- divData.scrollTop += 1
|
|
|
- if (divData.clientHeight + divData.scrollTop + 1 > divData.scrollHeight) {
|
|
|
- divData.scrollTop = 0
|
|
|
- }
|
|
|
- }, 50)
|
|
|
- })
|
|
|
- },
|
|
|
- damageTableScroll () {
|
|
|
- this.$nextTick(() => {
|
|
|
- const divData = this.$refs.damageTable.bodyWrapper
|
|
|
- setInterval(() => {
|
|
|
- divData.scrollTop += 1
|
|
|
- if (divData.clientHeight + divData.scrollTop + 1 > divData.scrollHeight) {
|
|
|
- divData.scrollTop = 0
|
|
|
- }
|
|
|
- }, 50)
|
|
|
- })
|
|
|
- },
|
|
|
+ getSubmittedRecordList() {
|
|
|
+ let params = {
|
|
|
+ current: 1,
|
|
|
+ size: 20,
|
|
|
+ };
|
|
|
+ getSubmittedRecordList(params).then(({ data }) => {
|
|
|
+ if (data && data.code === "200") {
|
|
|
+ this.submittedRecordList = data.data.records;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //生产统计
|
|
|
+ getProduceCensus() {
|
|
|
+ getProduceCensus({}).then(({ data }) => {
|
|
|
+ if (data && data.code === "200") {
|
|
|
+ this.produceCensus = data.data;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ contractProdTableScroll() {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ const divData = this.$refs.contractProdTable.bodyWrapper;
|
|
|
+ setInterval(() => {
|
|
|
+ divData.scrollTop += 1;
|
|
|
+ if (
|
|
|
+ divData.clientHeight + divData.scrollTop + 1 >
|
|
|
+ divData.scrollHeight
|
|
|
+ ) {
|
|
|
+ divData.scrollTop = 0;
|
|
|
+ }
|
|
|
+ }, 50);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ customerRankTableScroll() {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ const divData = this.$refs.customerRankTable.bodyWrapper;
|
|
|
+ setInterval(() => {
|
|
|
+ divData.scrollTop += 1;
|
|
|
+ if (
|
|
|
+ divData.clientHeight + divData.scrollTop + 1 >
|
|
|
+ divData.scrollHeight
|
|
|
+ ) {
|
|
|
+ divData.scrollTop = 0;
|
|
|
+ }
|
|
|
+ }, 50);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ contractAlarmTableScroll() {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ const divData = this.$refs.contractAlarmTable.bodyWrapper;
|
|
|
+ setInterval(() => {
|
|
|
+ divData.scrollTop += 1;
|
|
|
+ if (
|
|
|
+ divData.clientHeight + divData.scrollTop + 1 >
|
|
|
+ divData.scrollHeight
|
|
|
+ ) {
|
|
|
+ divData.scrollTop = 0;
|
|
|
+ }
|
|
|
+ }, 50);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ outboundRecordTableScroll() {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ const divData = this.$refs.outboundRecordTable.bodyWrapper;
|
|
|
+ setInterval(() => {
|
|
|
+ divData.scrollTop += 1;
|
|
|
+ if (
|
|
|
+ divData.clientHeight + divData.scrollTop + 1 >
|
|
|
+ divData.scrollHeight
|
|
|
+ ) {
|
|
|
+ divData.scrollTop = 0;
|
|
|
+ }
|
|
|
+ }, 50);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ submittedRecordTableScroll() {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ const divData = this.$refs.submittedRecordTable.bodyWrapper;
|
|
|
+ setInterval(() => {
|
|
|
+ divData.scrollTop += 1;
|
|
|
+ if (
|
|
|
+ divData.clientHeight + divData.scrollTop + 1 >
|
|
|
+ divData.scrollHeight
|
|
|
+ ) {
|
|
|
+ divData.scrollTop = 0;
|
|
|
+ }
|
|
|
+ }, 50);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ damageTableScroll() {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ const divData = this.$refs.damageTable.bodyWrapper;
|
|
|
+ setInterval(() => {
|
|
|
+ divData.scrollTop += 1;
|
|
|
+ if (
|
|
|
+ divData.clientHeight + divData.scrollTop + 1 >
|
|
|
+ divData.scrollHeight
|
|
|
+ ) {
|
|
|
+ divData.scrollTop = 0;
|
|
|
+ }
|
|
|
+ }, 50);
|
|
|
+ });
|
|
|
+ },
|
|
|
// 全屏显示
|
|
|
- fullScreen () {
|
|
|
- const element = document.getElementById('content')
|
|
|
- element.requestFullscreen()
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+ fullScreen() {
|
|
|
+ const element = document.getElementById("content");
|
|
|
+ element.requestFullscreen();
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style>
|
|
@@ -510,7 +727,7 @@ body,
|
|
|
}
|
|
|
|
|
|
.box-custom-number {
|
|
|
- background-color: #D65246;
|
|
|
+ background-color: #d65246;
|
|
|
display: flex;
|
|
|
height: 100%;
|
|
|
}
|
|
@@ -524,7 +741,7 @@ body,
|
|
|
}
|
|
|
|
|
|
.box-contract-number {
|
|
|
- background-color: #11D2B7;
|
|
|
+ background-color: #11d2b7;
|
|
|
display: flex;
|
|
|
height: 100%;
|
|
|
}
|
|
@@ -538,7 +755,7 @@ body,
|
|
|
}
|
|
|
|
|
|
.box-contract-amount {
|
|
|
- background-color: #F6A647;
|
|
|
+ background-color: #f6a647;
|
|
|
display: flex;
|
|
|
height: 100%;
|
|
|
}
|
|
@@ -572,7 +789,7 @@ body,
|
|
|
}
|
|
|
|
|
|
.box-notice-title {
|
|
|
- background-color: #2FB5F2;
|
|
|
+ background-color: #2fb5f2;
|
|
|
display: flex;
|
|
|
height: 100%;
|
|
|
}
|
|
@@ -608,8 +825,8 @@ body,
|
|
|
justify-content: space-around;
|
|
|
}
|
|
|
|
|
|
-.stat-number > .item > .title{
|
|
|
- color:darkturquoise;
|
|
|
+.stat-number > .item > .title {
|
|
|
+ color: darkturquoise;
|
|
|
}
|
|
|
|
|
|
.stat-number > .item > .number {
|
|
@@ -657,15 +874,15 @@ body,
|
|
|
color: aliceblue;
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
- align-items:center;
|
|
|
- justify-content:center;
|
|
|
- text-align:justify;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ text-align: justify;
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
|
|
|
.custom-ranking > .table {
|
|
|
- background-color:darkturquoise;
|
|
|
+ background-color: darkturquoise;
|
|
|
height: 100%;
|
|
|
width: 100%;
|
|
|
}
|
|
@@ -686,7 +903,6 @@ body,
|
|
|
/* border: 1px solid black; */
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/*合同预警*/
|
|
|
.box-contract-alert {
|
|
|
background-color: #415065;
|
|
@@ -698,9 +914,9 @@ body,
|
|
|
color: aliceblue;
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
- align-items:center;
|
|
|
- justify-content:center;
|
|
|
- text-align:justify;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ text-align: justify;
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
@@ -708,14 +924,14 @@ body,
|
|
|
.contract-alert > .title > div {
|
|
|
background-color: #415065;
|
|
|
width: 100%;
|
|
|
- display:flex;
|
|
|
- align-items:center;
|
|
|
- justify-content:center;
|
|
|
- text-align:justify;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ text-align: justify;
|
|
|
}
|
|
|
|
|
|
.contract-alert > .table {
|
|
|
- background-color:darkturquoise;
|
|
|
+ background-color: darkturquoise;
|
|
|
height: 100%;
|
|
|
width: 100%;
|
|
|
}
|
|
@@ -733,37 +949,29 @@ body,
|
|
|
/* 设置滚动条的样式 */
|
|
|
|
|
|
::-webkit-scrollbar {
|
|
|
-
|
|
|
-width:6px;
|
|
|
-height: 6px;
|
|
|
+ width: 6px;
|
|
|
+ height: 6px;
|
|
|
}
|
|
|
|
|
|
/* 滚动槽 */
|
|
|
|
|
|
::-webkit-scrollbar-track {
|
|
|
+ -webkit-box-shadow: inset006pxrgba(0, 0, 0, 0.3);
|
|
|
|
|
|
--webkit-box-shadow:inset006pxrgba(0,0,0,0.3);
|
|
|
-
|
|
|
-border-radius:10px;
|
|
|
-
|
|
|
+ border-radius: 10px;
|
|
|
}
|
|
|
|
|
|
/* 滚动条滑块 */
|
|
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
|
+ border-radius: 10px;
|
|
|
|
|
|
-border-radius:10px;
|
|
|
-
|
|
|
-background:rgba(0,0,0,0.1);
|
|
|
-
|
|
|
--webkit-box-shadow:inset006pxrgba(0,0,0,0.5);
|
|
|
+ background: rgba(0, 0, 0, 0.1);
|
|
|
|
|
|
+ -webkit-box-shadow: inset006pxrgba(0, 0, 0, 0.5);
|
|
|
}
|
|
|
|
|
|
::-webkit-scrollbar-thumb:window-inactive {
|
|
|
-
|
|
|
-background:rgba(161, 156, 156, 0.2);
|
|
|
-
|
|
|
+ background: rgba(161, 156, 156, 0.2);
|
|
|
}
|
|
|
</style>
|
|
|
-
|