Merge branch 'bigPic'

This commit is contained in:
熊丽君
2022-01-24 14:50:54 +08:00
15 changed files with 1731 additions and 1468 deletions

View File

@ -4,7 +4,7 @@
<vue-seamless-scroll <vue-seamless-scroll
ref="seamlessScroll" ref="seamlessScroll"
:data="listData" :data="listData"
class="warp" class="warp-scroll"
:class-option="{ :class-option="{
openWatch: true, openWatch: true,
singleHeight: 35, singleHeight: 35,
@ -185,7 +185,7 @@ export default {
} }
} }
.warp { .warp-scroll {
height: 280px; height: 280px;
width: 440px; width: 440px;
margin: 0 auto; margin: 0 auto;

View File

@ -1,62 +1,82 @@
<template> <template>
<div> <div>
<container4 title="今日动态"> <container4 title="今日动态">
<vue-seamless-scroll :data="listData" class="warp" :class-option="{ <vue-seamless-scroll
singleHeight: 35 :data="listData"
}"> class="warp-scroll"
:class-option="{
singleHeight: 35,
}"
>
<ul class="item"> <ul class="item">
<li> <li>
<el-row> <el-row>
<el-col :span="10"><img src="./img/center2/1.png">今日收入</el-col> <el-col :span="10"
><img src="./img/center2/1.png" />今日收入</el-col
>
<el-col :span="5">1234</el-col> <el-col :span="5">1234</el-col>
<el-col :span="7"></el-col> <el-col :span="7"></el-col>
</el-row> </el-row>
</li> </li>
<li> <li>
<el-row> <el-row>
<el-col :span="10"><img src="./img/center2/2.png">今日支出</el-col> <el-col :span="10"
><img src="./img/center2/2.png" />今日支出</el-col
>
<el-col :span="5">1234</el-col> <el-col :span="5">1234</el-col>
<el-col :span="7"></el-col> <el-col :span="7"></el-col>
</el-row> </el-row>
</li> </li>
<li> <li>
<el-row> <el-row>
<el-col :span="10"><img src="./img/center2/3.png">今日新签合同</el-col> <el-col :span="10"
><img src="./img/center2/3.png" />今日新签合同</el-col
>
<el-col :span="5">1234</el-col> <el-col :span="5">1234</el-col>
<el-col :span="7"></el-col> <el-col :span="7"></el-col>
</el-row> </el-row>
</li> </li>
<li> <li>
<el-row> <el-row>
<el-col :span="10"><img src="./img/center2/4.png">今日安全问题</el-col> <el-col :span="10"
><img src="./img/center2/4.png" />今日安全问题</el-col
>
<el-col :span="5">1234</el-col> <el-col :span="5">1234</el-col>
<el-col :span="7"></el-col> <el-col :span="7"></el-col>
</el-row> </el-row>
</li> </li>
<li> <li>
<el-row> <el-row>
<el-col :span="10"><img src="./img/center2/5.png">今日质量问题</el-col> <el-col :span="10"
><img src="./img/center2/5.png" />今日质量问题</el-col
>
<el-col :span="5">1234</el-col> <el-col :span="5">1234</el-col>
<el-col :span="7"></el-col> <el-col :span="7"></el-col>
</el-row> </el-row>
</li> </li>
<li> <li>
<el-row> <el-row>
<el-col :span="10"><img src="./img/center2/6.png">今日设备数</el-col> <el-col :span="10"
><img src="./img/center2/6.png" />今日设备数</el-col
>
<el-col :span="5">123</el-col> <el-col :span="5">123</el-col>
<el-col :span="7">运行率88%</el-col> <el-col :span="7">运行率88%</el-col>
</el-row> </el-row>
</li> </li>
<li> <li>
<el-row> <el-row>
<el-col :span="10"><img src="./img/center2/7.png">今日职工数</el-col> <el-col :span="10"
><img src="./img/center2/7.png" />今日职工数</el-col
>
<el-col :span="5">890</el-col> <el-col :span="5">890</el-col>
<el-col :span="7">出勤率73%</el-col> <el-col :span="7">出勤率73%</el-col>
</el-row> </el-row>
</li> </li>
<li> <li>
<el-row> <el-row>
<el-col :span="10"><img src="./img/center2/8.png">今日生产任务</el-col> <el-col :span="10"
><img src="./img/center2/8.png" />今日生产任务</el-col
>
<el-col :span="5">890</el-col> <el-col :span="5">890</el-col>
<el-col :span="7">完成率66%</el-col> <el-col :span="7">完成率66%</el-col>
</el-row> </el-row>
@ -65,39 +85,32 @@
</vue-seamless-scroll> </vue-seamless-scroll>
</container4> </container4>
</div> </div>
</template> </template>
<script> <script>
import container4 from "./components/container4/index.vue"; import container4 from "./components/container4/index.vue";
import rocketTit from "../components/rocketTit/index.vue"; import rocketTit from "../components/rocketTit/index.vue";
import vueSeamlessScroll from 'vue-seamless-scroll' import vueSeamlessScroll from "vue-seamless-scroll";
import echarts from 'echarts' import echarts from "echarts";
require('echarts/theme/macarons') // echarts theme require("echarts/theme/macarons"); // echarts theme
import resize from '../../dashboard/mixins/resize' import resize from "../../dashboard/mixins/resize";
export default { export default {
mixins: [resize], mixins: [resize],
name: 'left1', name: "left1",
components: { components: {
container4, container4,
rocketTit, rocketTit,
vueSeamlessScroll vueSeamlessScroll,
}, },
data() { data() {
return { return {
listData: [1, 2, 3, 4, 5, 6, 7, 8], listData: [1, 2, 3, 4, 5, 6, 7, 8],
} };
}, },
mounted () { mounted() {},
beforeDestroy() {},
}, methods: {},
beforeDestroy () { };
},
methods: {
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -133,7 +146,7 @@ export default {
} }
} }
.warp { .warp-scroll {
height: 280px; height: 280px;
width: 440px; width: 440px;
margin: 0 auto; margin: 0 auto;

View File

@ -50,11 +50,10 @@
<div class="data-item"> <div class="data-item">
<div><span style="font-weight: bold">产品错漏检率</span></div> <div><span style="font-weight: bold">产品错漏检率</span></div>
<div class="box"> <div class="box">
<span <span>
>{{ dataInfo.realErrorCheckRate }}%/{{ {{ dataInfo.realErrorCheckRate }}%
dataInfo.targetErrorCheckRate <!-- /{{dataInfo.targetErrorCheckRate}}% -->
}}%</span </span>
>
</div> </div>
</div> </div>
<div class="data-item"> <div class="data-item">
@ -110,6 +109,8 @@ export default {
commonlyProblemTotal: 0, commonlyProblemTotal: 0,
lowProblemTotal: 0, lowProblemTotal: 0,
smallProductCate: 0, smallProductCate: 0,
realErrorCheckRate: 0,
targetErrorCheckRate: 0,
errorCheckRate: 0, errorCheckRate: 0,
leakCheckRate: 0, leakCheckRate: 0,
planCompleteRate: 0, planCompleteRate: 0,

View File

@ -113,7 +113,7 @@ export default {
yAxis: { yAxis: {
type: "value", type: "value",
name: "", name: "",
min: 0, min: resData.spc.lowerLimit - 50,
// max: 250, // max: 250,
// interval: 50, // interval: 50,
axisLabel: { axisLabel: {

View File

@ -53,7 +53,7 @@
step: 0.5, step: 0.5,
direction: 2, direction: 2,
}" }"
class="warp" class="warp-scroll"
> >
<ul class="ul-item"> <ul class="ul-item">
<li <li
@ -246,7 +246,7 @@ export default {
float: right; float: right;
} }
} }
.warp { .warp-scroll {
// height: 100px; // height: 100px;
margin: 0 auto; margin: 0 auto;
margin-top: 25px; margin-top: 25px;

View File

@ -10,7 +10,9 @@
<div class="trends-item-content"> <div class="trends-item-content">
<div class="tit">作业工房/总数</div> <div class="tit">作业工房/总数</div>
<div class="value"> <div class="value">
{{ dataInfo.workingWorkshopTotal }}/<span class="small">{{ dataInfo.workshopTotal }}</span> {{ dataInfo.workingWorkshopTotal }}/<span class="small">{{
dataInfo.workshopTotal
}}</span>
</div> </div>
<div class="progressBar"> <div class="progressBar">
<progressBar :percentage="percentage" v-if="percentage" /> <progressBar :percentage="percentage" v-if="percentage" />
@ -26,7 +28,9 @@
<div class="trends-item-content"> <div class="trends-item-content">
<div class="tit">人员数量/出勤率</div> <div class="tit">人员数量/出勤率</div>
<div class="value"> <div class="value">
{{ dataInfo.realAttendance }}/<span class="small">{{ (dataInfo.attendanceRate - 0).toFixed(0) }}%</span> {{ dataInfo.realAttendance }}/<span class="small"
>{{ (dataInfo.attendanceRate - 0).toFixed(0) }}%</span
>
</div> </div>
<div class="progressBar"> <div class="progressBar">
<progressBar :percentage="dataInfo.attendanceRate" /> <progressBar :percentage="dataInfo.attendanceRate" />
@ -46,7 +50,9 @@
<div class="trends-item-content"> <div class="trends-item-content">
<div class="tit">设备运行数量/运行率</div> <div class="tit">设备运行数量/运行率</div>
<div class="value"> <div class="value">
{{ dataInfo.equipmentRunTotal }}/<span class="small">{{ dataInfo.equipmentRunRate }}%</span> {{ dataInfo.equipmentRunTotal }}/<span class="small"
>{{ dataInfo.equipmentRunRate }}%</span
>
</div> </div>
<div class="progressBar"> <div class="progressBar">
<progressBar :percentage="dataInfo.equipmentRunRate" /> <progressBar :percentage="dataInfo.equipmentRunRate" />
@ -76,17 +82,22 @@
<div class="right">{{ carTotal.useTotal }}<span>辆</span></div> <div class="right">{{ carTotal.useTotal }}<span>辆</span></div>
</div> </div>
<div style="margin: 5px 0 10px 0"> <div style="margin: 5px 0 10px 0">
<progressBar :percentage="carTotal.useTotal / carTotal.total || 0" :strokeWidth="12" /> <progressBar
:percentage="carTotal.useTotal / carTotal.total || 0"
:strokeWidth="12"
/>
</div> </div>
<div class="describe"> <div class="describe">
<div class="left">总车辆数:{{ carTotal.total }}</div> <div class="left">总车辆数:{{ carTotal.total }}</div>
<div class="right">使用率:{{ carTotal.useTotal / carTotal.total || 0 }}%</div> <div class="right">
使用率:{{ carTotal.useTotal / carTotal.total || 0 }}%
</div>
</div> </div>
</div> </div>
<vue-seamless-scroll <vue-seamless-scroll
ref="seamlessScroll" ref="seamlessScroll"
:data="listData" :data="listData"
class="warp" class="warp-scroll"
:class-option="{ :class-option="{
singleHeight: 48, singleHeight: 48,
}" }"
@ -94,13 +105,23 @@
<ul class="item"> <ul class="item">
<li v-for="item in listData" :key="item.id"> <li v-for="item in listData" :key="item.id">
<el-row> <el-row>
<el-col :span="10"><img src="./img/1.png" />{{ item.carName }}</el-col> <el-col :span="10"
><img src="./img/1.png" />{{ item.carName }}</el-col
>
<el-col :span="6"> <el-col :span="6">
<div class="state success" v-if="item.carStatus == '使用中'">{{ item.carStatus }}</div> <div class="state success" v-if="item.carStatus == '使用中'">
<div class="state info" v-if="item.carStatus == '闲置'">{{ item.carStatus }}</div> {{ item.carStatus }}
<div class="state fault" v-if="item.carStatus == '故障'">{{ item.carStatus }}</div> </div>
<div class="state info" v-if="item.carStatus == '闲置'">
{{ item.carStatus }}
</div>
<div class="state fault" v-if="item.carStatus == '故障'">
{{ item.carStatus }}
</div>
</el-col> </el-col>
<el-col :span="8" style="text-align: right"><img src="./img/2.png" />{{ item.nowAddress }}</el-col> <el-col :span="8" style="text-align: right"
><img src="./img/2.png" />{{ item.nowAddress }}</el-col
>
</el-row> </el-row>
</li> </li>
</ul> </ul>
@ -110,9 +131,9 @@
</template> </template>
<script> <script>
import container1 from './components/container1/index.vue' import container1 from "./components/container1/index.vue";
import progressBar from '@/views/bigScreen/components/progress/index.vue' import progressBar from "@/views/bigScreen/components/progress/index.vue";
import vueSeamlessScroll from 'vue-seamless-scroll' import vueSeamlessScroll from "vue-seamless-scroll";
export default { export default {
components: { components: {
container1, //#endregion, container1, //#endregion,
@ -133,39 +154,41 @@ export default {
}, },
carTotal: { carTotal: {
total: 0, total: 0,
useTotal:0 useTotal: 0,
}, },
} };
}, },
computed: { computed: {
percentage() { percentage() {
return (this.dataInfo.workingWorkshopTotal / this.dataInfo.workshopTotal) * 100 return (
(this.dataInfo.workingWorkshopTotal / this.dataInfo.workshopTotal) * 100
);
}, },
}, },
methods: { methods: {
getList() { getList() {
this.request({ this.request({
url: '/hx/scientificProduction/getHxFactoryResourcesPic', url: "/hx/scientificProduction/getHxFactoryResourcesPic",
}).then(({ data }) => { }).then(({ data }) => {
this.dataInfo = data this.dataInfo = data;
}) });
this.request({ this.request({
url: '/hx/scientificProduction/getHxCarUsePic1', url: "/hx/scientificProduction/getHxCarUsePic1",
}).then(({ data }) => { }).then(({ data }) => {
this.carTotal = data this.carTotal = data;
}) });
this.request({ this.request({
url: '/hx/scientificProduction/getHxCarUsePic2', url: "/hx/scientificProduction/getHxCarUsePic2",
}).then(({ data }) => { }).then(({ data }) => {
this.listData = data this.listData = data;
this.$refs.seamlessScroll.reset() this.$refs.seamlessScroll.reset();
}) });
}, },
}, },
created() { created() {
this.getList() this.getList();
}, },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -261,7 +284,7 @@ export default {
} }
} }
.warp { .warp-scroll {
height: 128px; height: 128px;
width: 100%; width: 100%;
margin: 10px auto 0 auto; margin: 10px auto 0 auto;
@ -294,7 +317,7 @@ export default {
.state { .state {
position: relative; position: relative;
&::before { &::before {
content: ''; content: "";
display: block; display: block;
position: absolute; position: absolute;
left: -16px; left: -16px;

View File

@ -2,32 +2,52 @@
<container3 title="全厂作业明细" :width="535" :height="975"> <container3 title="全厂作业明细" :width="535" :height="975">
<vue-seamless-scroll <vue-seamless-scroll
:data="listData" :data="listData"
class="warp" class="warp-scroll"
:class-option="{ :class-option="{
singleHeight: 84, singleHeight: 84,
}" }"
> >
<ul> <ul>
<li class="item" :class="item.dangerLevel == '一级' ? 'active' : ''" v-for="item in listData" :key="item.id"> <li
class="item"
:class="item.dangerLevel == '一级' ? 'active' : ''"
v-for="item in listData"
:key="item.id"
>
<div class="item-tit">{{ item.workHome }}</div> <div class="item-tit">{{ item.workHome }}</div>
<div class="item-content"> <div class="item-content">
<el-row> <el-row>
<el-col :span="12" <el-col :span="12"
><span class="text-tit">车间:</span><span class="text-val">{{ item.workshop }}</span></el-col ><span class="text-tit">车间:</span
><span class="text-val">{{ item.workshop }}</span></el-col
> >
<el-col :span="12" <el-col :span="12"
><span class="text-tit">产品:</span><span class="text-val">{{ item.product }}</span></el-col ><span class="text-tit">产品:</span
><span class="text-val">{{ item.product }}</span></el-col
> >
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12" <el-col :span="12"
><span class="text-tit">工序:</span><span class="text-val">{{ item.procedure }}</span></el-col ><span class="text-tit">工序:</span
><span class="text-val">{{ item.procedure }}</span></el-col
> >
<el-col :span="12"> <el-col :span="12">
<span class="text-tit">危险级别:</span> <span class="text-tit">危险级别:</span>
<span class="text-val level1" v-if="item.dangerLevel == '一级'">{{ item.dangerLevel }}</span> <span
<span class="text-val level2" v-if="item.dangerLevel == '二级'">{{ item.dangerLevel }}</span> class="text-val level1"
<span class="text-val level3" v-if="item.dangerLevel == '级'">{{ item.dangerLevel }}</span> v-if="item.dangerLevel == '级'"
>{{ item.dangerLevel }}</span
>
<span
class="text-val level2"
v-if="item.dangerLevel == '二级'"
>{{ item.dangerLevel }}</span
>
<span
class="text-val level3"
v-if="item.dangerLevel == '三级'"
>{{ item.dangerLevel }}</span
>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -36,7 +56,9 @@
</vue-seamless-scroll> </vue-seamless-scroll>
<div class="sub"> <div class="sub">
<div class="sub-left"> <div class="sub-left">
<div class="sub-tit"><img src="./img/sub/sub1.png" alt="" />装药当前作业内容</div> <div class="sub-tit">
<img src="./img/sub/sub1.png" alt="" />装药当前作业内容
</div>
<div class="sub-content"> <div class="sub-content">
<div class="sub-item"> <div class="sub-item">
<div class="sub-item-tit"> </div> <div class="sub-item-tit"> </div>
@ -65,7 +87,9 @@
</div> </div>
</div> </div>
<div class="sub-right"> <div class="sub-right">
<div class="sub-tit"><img src="./img/sub/sub2.png" alt="" />酯生产量</div> <div class="sub-tit">
<img src="./img/sub/sub2.png" alt="" />硝酸酯生产量
</div>
<div class="sub-content"> <div class="sub-content">
<div class="sub-item"> <div class="sub-item">
<div class="sub-item-tit">{{ twoData.jobContent }}</div> <div class="sub-item-tit">{{ twoData.jobContent }}</div>
@ -79,7 +103,7 @@
<div class="sub-item-val">{{ twoData.forecastEndDate }}</div> <div class="sub-item-val">{{ twoData.forecastEndDate }}</div>
</div> </div>
<div class="sub-item"> <div class="sub-item">
<div class="sub-item-tit">酯生产量</div> <div class="sub-item-tit">硝酸酯生产量</div>
<div class="sub-item-val">{{ twoData.esterProduction }}</div> <div class="sub-item-val">{{ twoData.esterProduction }}</div>
</div> </div>
<div class="sub-item"> <div class="sub-item">
@ -92,8 +116,8 @@
</container3> </container3>
</template> </template>
<script> <script>
import container3 from './components/container3/index.vue' import container3 from "./components/container3/index.vue";
import vueSeamlessScroll from 'vue-seamless-scroll' import vueSeamlessScroll from "vue-seamless-scroll";
export default { export default {
components: { components: {
container3, //#endregion, container3, //#endregion,
@ -104,41 +128,41 @@ export default {
listData: [], listData: [],
oneData: {}, oneData: {},
twoData: {}, twoData: {},
} };
}, },
methods: { methods: {
getList() { getList() {
// 全厂作业明细 // 全厂作业明细
this.request({ this.request({
url: '/hx/scientificProduction/getHxJobDetailsPic', url: "/hx/scientificProduction/getHxJobDetailsPic",
}).then(({ data }) => { }).then(({ data }) => {
this.listData = data this.listData = data;
}) });
// 装药当前作业内容 // 装药当前作业内容
this.request({ this.request({
url: '/hx/scientificProduction/getChargeJobContentPic', url: "/hx/scientificProduction/getChargeJobContentPic",
}).then(({ data }) => { }).then(({ data }) => {
this.oneData = data this.oneData = data;
}) });
}, },
getTwoList() { getTwoList() {
// 酯生产 // 硝酸酯量
this.request({ this.request({
url: '/hx/scientificProduction/getHxEsterProductionPic', url: "/hx/scientificProduction/getHxEsterProductionPic",
}).then(({ data }) => { }).then(({ data }) => {
this.twoData = data this.twoData = data;
}) });
}, },
}, },
created() { created() {
this.getList() this.getList();
this.getTwoList() this.getTwoList();
}, },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.warp { .warp-scroll {
height: 416px; height: 416px;
width: 100%; width: 100%;
margin: 10px auto 0 auto; margin: 10px auto 0 auto;

View File

@ -3,29 +3,54 @@
<container1 title="物资计划"> <container1 title="物资计划">
<div class="left3-content"> <div class="left3-content">
<el-col :span="24" style="margin-bottom: 1px"> <el-col :span="24" style="margin-bottom: 1px">
<el-row style="height: 42px; line-height: 42px; background: rgba(0, 255, 255, 0.3)"> <el-row
style="
height: 42px;
line-height: 42px;
background: rgba(0, 255, 255, 0.3);
"
>
<el-col style="text-align: center" :span="4">序号</el-col> <el-col style="text-align: center" :span="4">序号</el-col>
<el-col style="text-align: center" :span="4">物资名称</el-col> <el-col style="text-align: center" :span="4">物资名称</el-col>
<el-col style="text-align: center" :span="3">现有库存</el-col> <el-col style="text-align: center" :span="3">现有库存</el-col>
<el-col style="text-align: center" :span="6">是否开始备货采购</el-col> <el-col style="text-align: center" :span="6"
>是否开始备货采购</el-col
>
<el-col style="text-align: center" :span="3">采购数量</el-col> <el-col style="text-align: center" :span="3">采购数量</el-col>
<el-col style="text-align: center" :span="4">入库时间</el-col> <el-col style="text-align: center" :span="4">入库时间</el-col>
</el-row> </el-row>
</el-col> </el-col>
<vue-seamless-scroll ref="seamlessScroll" :data="listData" class="warp" :class-option="{singleHeight: 42,}"> <vue-seamless-scroll
ref="seamlessScroll"
:data="listData"
class="warp-scroll"
:class-option="{ singleHeight: 42 }"
>
<ul class="item"> <ul class="item">
<li v-for="item in scrollList" :key="item.id"> <li v-for="item in scrollList" :key="item.id">
<el-row> <el-row>
<el-col style="text-align: center" :span="4">{{item.id}}</el-col> <el-col style="text-align: center" :span="4">{{
<el-col style="text-align: center" :title="item.materialName" :span="4">{{item.materialName}}</el-col> item.id
<el-col style="text-align: center" :span="3">{{item.stock}}</el-col> }}</el-col>
<el-col
style="text-align: center"
:title="item.materialName"
:span="4"
>{{ item.materialName }}</el-col
>
<el-col style="text-align: center" :span="3">{{
item.stock
}}</el-col>
<el-col style="text-align: center" :span="6"> <el-col style="text-align: center" :span="6">
{{ item.startPurchase }} {{ item.startPurchase }}
</el-col> </el-col>
<el-col style="text-align: center" :span="3">{{item.purchaseNumber}}</el-col> <el-col style="text-align: center" :span="3">{{
<el-col style="text-align: center" :span="4">{{item.createTime}}</el-col> item.purchaseNumber
}}</el-col>
<el-col style="text-align: center" :span="4">{{
item.createTime
}}</el-col>
</el-row> </el-row>
</li> </li>
</ul> </ul>
@ -33,19 +58,18 @@
</div> </div>
</container1> </container1>
</div> </div>
</template> </template>
<script> <script>
import container1 from "./components/container1/index.vue"; import container1 from "./components/container1/index.vue";
import echarts from 'echarts' import echarts from "echarts";
require('echarts/theme/macarons') // echarts theme require("echarts/theme/macarons"); // echarts theme
import resize from '../../../dashboard/mixins/resize' import resize from "../../../dashboard/mixins/resize";
import vueSeamlessScroll from 'vue-seamless-scroll' import vueSeamlessScroll from "vue-seamless-scroll";
export default { export default {
mixins: [resize], mixins: [resize],
name: 'left2', name: "left2",
components: { components: {
container1, container1,
vueSeamlessScroll, vueSeamlessScroll,
@ -54,28 +78,28 @@ export default {
return { return {
listData: [1, 2, 3, 4, 5, 6, 7, 8], listData: [1, 2, 3, 4, 5, 6, 7, 8],
scrollList: [], scrollList: [],
} };
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.getData() this.getData();
}) });
}, },
methods: { methods: {
getData() { getData() {
this.request({ this.request({
url: '/hx/scientificProduction/getMaterialPlanPic', url: "/hx/scientificProduction/getMaterialPlanPic",
method: 'get', method: "get",
}).then(res => { }).then((res) => {
if (200 == res.code) { if (200 == res.code) {
this.scrollList = res.data; this.scrollList = res.data;
this.listData = Array(this.scrollList.length).fill(0); this.listData = Array(this.scrollList.length).fill(0);
this.$refs.seamlessScroll.reset(); this.$refs.seamlessScroll.reset();
} }
}) });
}, },
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -84,7 +108,7 @@ export default {
font-size: 14px; font-size: 14px;
} }
.warp { .warp-scroll {
height: 168px; height: 168px;
width: 100%; width: 100%;
margin: 10px auto 0 auto; margin: 10px auto 0 auto;

View File

@ -1,12 +1,30 @@
<template> <template>
<div> <div>
<container1 title="里程牌及瓶颈短线工作计划"> <container1 title="里程牌及瓶颈短线工作计划">
<el-select clearable slot="datePicker" v-model="value" size="mini" placeholder="请选择"> <el-select
<el-option v-for="item in selectData" :key="item" :label="item" :value="item"> </el-option> clearable
slot="datePicker"
v-model="value"
size="mini"
placeholder="请选择"
>
<el-option
v-for="item in selectData"
:key="item"
:label="item"
:value="item"
>
</el-option>
</el-select> </el-select>
<div class="left3-content"> <div class="left3-content">
<el-col :span="24" style="margin-bottom: 1px"> <el-col :span="24" style="margin-bottom: 1px">
<el-row style="height: 42px; line-height: 42px; background: rgba(0, 255, 255, 0.3)"> <el-row
style="
height: 42px;
line-height: 42px;
background: rgba(0, 255, 255, 0.3);
"
>
<el-col style="text-align: center" :span="3">项目</el-col> <el-col style="text-align: center" :span="3">项目</el-col>
<el-col style="text-align: center" :span="5">工作内容</el-col> <el-col style="text-align: center" :span="5">工作内容</el-col>
<el-col style="text-align: center" :span="5">进展情况</el-col> <el-col style="text-align: center" :span="5">进展情况</el-col>
@ -14,26 +32,47 @@
<el-col style="text-align: center" :span="4">目标完成时间</el-col> <el-col style="text-align: center" :span="4">目标完成时间</el-col>
</el-row> </el-row>
</el-col> </el-col>
<vue-seamless-scroll ref="seamlessScroll" :data="listData" class="warp" :class-option="{singleHeight: 42,}"> <vue-seamless-scroll
ref="seamlessScroll"
:data="listData"
class="warp-scroll"
:class-option="{ singleHeight: 42 }"
>
<ul class="item"> <ul class="item">
<li v-for="item in scrollList" :key="item.id"> <li v-for="item in scrollList" :key="item.id">
<el-row> <el-row>
<el-col style="text-align: center" :title="item.projectName" :span="3">{{ item.projectName }}</el-col> <el-col
<el-col style="text-align: center" :title="item.jobContent" :span="5">{{ item.jobContent }}</el-col> style="text-align: center"
:title="item.projectName"
:span="3"
>{{ item.projectName }}</el-col
>
<el-col
style="text-align: center"
:title="item.jobContent"
:span="5"
>{{ item.jobContent }}</el-col
>
<el-col style="text-align: center" :span="5"> <el-col style="text-align: center" :span="5">
<span class="state" :class="{success: item.progress == '已完成', <span
class="state"
:class="{
success: item.progress == '已完成',
fault: item.progress == '未完成', fault: item.progress == '未完成',
progress: item.progress == '未开始', progress: item.progress == '未开始',
}"> }"
>
<section v-if="item.progress == 1">已完成</section> <section v-if="item.progress == 1">已完成</section>
<section v-else-if="item.progress == 3">未完成</section> <section v-else-if="item.progress == 3">未完成</section>
<section v-else>未开始</section> <section v-else>未开始</section>
</span> </span>
</el-col> </el-col>
<el-col style="text-align: center" :span="7">{{item.forecastCompleteTime}}</el-col> <el-col style="text-align: center" :span="7">{{
<el-col style="text-align: center" :span="4">{{item.targetCompleteTime}}</el-col> item.forecastCompleteTime
}}</el-col>
<el-col style="text-align: center" :span="4">{{
item.targetCompleteTime
}}</el-col>
</el-row> </el-row>
</li> </li>
</ul> </ul>
@ -41,19 +80,18 @@
</div> </div>
</container1> </container1>
</div> </div>
</template> </template>
<script> <script>
import container1 from "./components/container1/index.vue"; import container1 from "./components/container1/index.vue";
import echarts from 'echarts' import echarts from "echarts";
require('echarts/theme/macarons') // echarts theme require("echarts/theme/macarons"); // echarts theme
import resize from '../../../dashboard/mixins/resize' import resize from "../../../dashboard/mixins/resize";
import vueSeamlessScroll from 'vue-seamless-scroll' import vueSeamlessScroll from "vue-seamless-scroll";
export default { export default {
mixins: [resize], mixins: [resize],
name: 'left2', name: "left2",
components: { components: {
container1, container1,
vueSeamlessScroll, vueSeamlessScroll,
@ -61,32 +99,32 @@ export default {
data() { data() {
return { return {
selectData: [], selectData: [],
value: '', value: "",
listData: [1, 2, 3, 4, 5, 6, 7, 8], listData: [1, 2, 3, 4, 5, 6, 7, 8],
scrollList: [], scrollList: [],
} };
}, },
watch: { watch: {
value(newVal, oldVal) { value(newVal, oldVal) {
this.getData(newVal) this.getData(newVal);
}, },
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.getData() this.getData();
}) });
}, },
methods: { methods: {
getData(projectName) { getData(projectName) {
let params = {}; let params = {};
if (projectName) { if (projectName) {
params['projectName'] = projectName params["projectName"] = projectName;
} }
this.request({ this.request({
url: '/hx/scientificProduction/getMilepostAndBottleneckPic', url: "/hx/scientificProduction/getMilepostAndBottleneckPic",
method: 'get', method: "get",
params, params,
}).then(res => { }).then((res) => {
if (200 == res.code) { if (200 == res.code) {
this.scrollList = res.data.list; this.scrollList = res.data.list;
this.listData = Array(this.scrollList.length).fill(0); this.listData = Array(this.scrollList.length).fill(0);
@ -95,10 +133,10 @@ export default {
this.selectData = res.data.allProject; this.selectData = res.data.allProject;
} }
} }
}) });
}, },
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -107,7 +145,7 @@ export default {
font-size: 14px; font-size: 14px;
} }
.warp { .warp-scroll {
height: 168px; height: 168px;
width: 100%; width: 100%;
margin: 10px auto 0 auto; margin: 10px auto 0 auto;

View File

@ -3,7 +3,13 @@
<container1 title="调度会"> <container1 title="调度会">
<div class="left3-content"> <div class="left3-content">
<el-col :span="24" style="margin-bottom: 1px"> <el-col :span="24" style="margin-bottom: 1px">
<el-row style="height: 42px; line-height: 42px; background: rgba(0, 255, 255, 0.3)"> <el-row
style="
height: 42px;
line-height: 42px;
background: rgba(0, 255, 255, 0.3);
"
>
<el-col style="text-align: center" :span="4">工作内容</el-col> <el-col style="text-align: center" :span="4">工作内容</el-col>
<el-col style="text-align: center" :span="5">会议名称</el-col> <el-col style="text-align: center" :span="5">会议名称</el-col>
<el-col style="text-align: center" :span="5">督办领导</el-col> <el-col style="text-align: center" :span="5">督办领导</el-col>
@ -11,22 +17,50 @@
<el-col style="text-align: center" :span="3">工作进展</el-col> <el-col style="text-align: center" :span="3">工作进展</el-col>
</el-row> </el-row>
</el-col> </el-col>
<vue-seamless-scroll ref="seamlessScroll" :data="listData" class="warp" :class-option="{singleHeight: 42,}"> <vue-seamless-scroll
ref="seamlessScroll"
:data="listData"
class="warp-scroll"
:class-option="{ singleHeight: 42 }"
>
<ul class="item"> <ul class="item">
<li v-for="item in scrollList" :key="item.id"> <li v-for="item in scrollList" :key="item.id">
<el-row> <el-row>
<el-col style="text-align: center" :title="item.jobContent" :span="4">{{item.jobContent}}</el-col> <el-col
<el-col style="text-align: center" :title="item.meetingName" :span="5">{{item.meetingName}}</el-col> style="text-align: center"
<el-col style="text-align: center" :title="item.checkLeader" :span="5"> :title="item.jobContent"
:span="4"
>{{ item.jobContent }}</el-col
>
<el-col
style="text-align: center"
:title="item.meetingName"
:span="5"
>{{ item.meetingName }}</el-col
>
<el-col
style="text-align: center"
:title="item.checkLeader"
:span="5"
>
{{ item.checkLeader }} {{ item.checkLeader }}
</el-col> </el-col>
<el-col style="text-align: center" :title="item.responsibleUnit" :span="7">{{item.responsibleUnit}}</el-col> <el-col
style="text-align: center"
:title="item.responsibleUnit"
:span="7"
>{{ item.responsibleUnit }}</el-col
>
<el-col style="text-align: center" :span="3"> <el-col style="text-align: center" :span="3">
<span class="state" :class="{success: item.workProgress == '已完成', <span
class="state"
:class="{
success: item.workProgress == '已完成',
fault: item.workProgress == '未完成', fault: item.workProgress == '未完成',
progress: item.workProgress == '未开始', progress: item.workProgress == '未开始',
}"> }"
<section>{{item.workProgress|| '未开始'}}</section> >
<section>{{ item.workProgress || "未开始" }}</section>
</span> </span>
</el-col> </el-col>
</el-row> </el-row>
@ -36,19 +70,18 @@
</div> </div>
</container1> </container1>
</div> </div>
</template> </template>
<script> <script>
import container1 from "./components/container1/index.vue"; import container1 from "./components/container1/index.vue";
import echarts from 'echarts' import echarts from "echarts";
require('echarts/theme/macarons') // echarts theme require("echarts/theme/macarons"); // echarts theme
import resize from '../../../dashboard/mixins/resize' import resize from "../../../dashboard/mixins/resize";
import vueSeamlessScroll from 'vue-seamless-scroll' import vueSeamlessScroll from "vue-seamless-scroll";
export default { export default {
mixins: [resize], mixins: [resize],
name: 'left2', name: "left2",
components: { components: {
container1, container1,
vueSeamlessScroll, vueSeamlessScroll,
@ -56,30 +89,29 @@ export default {
data() { data() {
return { return {
listData: [1, 2, 3, 4, 5, 6, 7, 8], listData: [1, 2, 3, 4, 5, 6, 7, 8],
scrollList: [ scrollList: [],
], };
}
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.getData() this.getData();
}) });
}, },
methods: { methods: {
getData() { getData() {
this.request({ this.request({
url: '/hx/scientificProduction/getDispatchMeetingPic', url: "/hx/scientificProduction/getDispatchMeetingPic",
method: 'get', method: "get",
}).then(res => { }).then((res) => {
if (200 == res.code) { if (200 == res.code) {
this.scrollList = res.data; this.scrollList = res.data;
this.listData = Array(this.scrollList.length).fill(0); this.listData = Array(this.scrollList.length).fill(0);
this.$refs.seamlessScroll.reset(); this.$refs.seamlessScroll.reset();
} }
}) });
}, },
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -88,7 +120,7 @@ export default {
font-size: 14px; font-size: 14px;
} }
.warp { .warp-scroll {
height: 168px; height: 168px;
width: 100%; width: 100%;
margin: 10px auto 0 auto; margin: 10px auto 0 auto;

View File

@ -3,7 +3,13 @@
<container1 title="人员管理"> <container1 title="人员管理">
<div class="left3-content"> <div class="left3-content">
<el-col :span="24" style="margin-bottom: 1px"> <el-col :span="24" style="margin-bottom: 1px">
<el-row style="height: 42px; line-height: 42px; background: rgba(0, 255, 255, 0.3)"> <el-row
style="
height: 42px;
line-height: 42px;
background: rgba(0, 255, 255, 0.3);
"
>
<el-col style="text-align: center" :span="4">班组名称</el-col> <el-col style="text-align: center" :span="4">班组名称</el-col>
<el-col style="text-align: center" :span="4">人员数量</el-col> <el-col style="text-align: center" :span="4">人员数量</el-col>
<el-col style="text-align: center" :span="4">班次数</el-col> <el-col style="text-align: center" :span="4">班次数</el-col>
@ -11,16 +17,33 @@
<el-col style="text-align: center" :span="8">到岗人员</el-col> <el-col style="text-align: center" :span="8">到岗人员</el-col>
</el-row> </el-row>
</el-col> </el-col>
<vue-seamless-scroll ref="seamlessScroll" :data="listData" class="warp" :class-option="{singleHeight: 42,}"> <vue-seamless-scroll
ref="seamlessScroll"
:data="listData"
class="warp-scroll"
:class-option="{ singleHeight: 42 }"
>
<ul class="item"> <ul class="item">
<li v-for="item in scrollList" :key="item.id"> <li v-for="item in scrollList" :key="item.id">
<el-row> <el-row>
<el-col style="text-align: center" :span="4">{{item.teamName}}</el-col> <el-col style="text-align: center" :span="4">{{
<el-col style="text-align: center" :span="4">{{item.peopleTotal}}人</el-col> item.teamName
<el-col style="text-align: center" :span="4">{{item.shift}} }}</el-col>
<el-col style="text-align: center" :span="4"
>{{ item.peopleTotal }}</el-col
>
<el-col style="text-align: center" :span="4"
>{{ item.shift }}
</el-col> </el-col>
<el-col style="text-align: center" :span="4">{{item.realWorkerTotal}}</el-col> <el-col style="text-align: center" :span="4"
<el-col style="text-align: center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;" :span="8" :title="item.peopleList">{{item.peopleList}}</el-col> >{{ item.realWorkerTotal }}</el-col
>
<el-col
style="text-align: center"
:span="8"
:title="item.peopleList"
>{{ item.peopleList }}</el-col
>
</el-row> </el-row>
</li> </li>
</ul> </ul>
@ -28,19 +51,18 @@
</div> </div>
</container1> </container1>
</div> </div>
</template> </template>
<script> <script>
import container1 from "./components/container1/index.vue"; import container1 from "./components/container1/index.vue";
import echarts from 'echarts' import echarts from "echarts";
require('echarts/theme/macarons') // echarts theme require("echarts/theme/macarons"); // echarts theme
import resize from '../../../dashboard/mixins/resize' import resize from "../../../dashboard/mixins/resize";
import vueSeamlessScroll from 'vue-seamless-scroll' import vueSeamlessScroll from "vue-seamless-scroll";
export default { export default {
mixins: [resize], mixins: [resize],
name: 'left2', name: "left2",
components: { components: {
container1, container1,
vueSeamlessScroll, vueSeamlessScroll,
@ -49,28 +71,28 @@ export default {
return { return {
listData: [1, 2, 3, 4, 5, 6, 7, 8], listData: [1, 2, 3, 4, 5, 6, 7, 8],
scrollList: [], scrollList: [],
} };
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.getData() this.getData();
}) });
}, },
methods: { methods: {
getData() { getData() {
this.request({ this.request({
url: '/hx/scientificProduction/getTeamAttendancePic', url: "/hx/scientificProduction/getTeamAttendancePic",
method: 'get', method: "get",
}).then(res => { }).then((res) => {
if (200 == res.code) { if (200 == res.code) {
this.scrollList = res.data; this.scrollList = res.data;
this.listData = Array(this.scrollList.length).fill(0); this.listData = Array(this.scrollList.length).fill(0);
this.$refs.seamlessScroll.reset(); this.$refs.seamlessScroll.reset();
} }
}) });
}, },
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -79,7 +101,7 @@ export default {
font-size: 14px; font-size: 14px;
} }
.warp { .warp-scroll {
height: 168px; height: 168px;
width: 100%; width: 100%;
margin: 10px auto 0 auto; margin: 10px auto 0 auto;

View File

@ -1,7 +1,11 @@
<template> <template>
<div style="display: flex"> <div style="display: flex">
<container2 title="型号原材料及配套件"> <container2 title="型号原材料及配套件">
<bigScreenTabs slot="datePicker" v-model="index" :titleArr="['原材料', '配套件']"></bigScreenTabs> <bigScreenTabs
slot="datePicker"
v-model="index"
:titleArr="['原材料', '配套件']"
></bigScreenTabs>
<el-select <el-select
style="position: absolute; z-index: 1; left: 30px" style="position: absolute; z-index: 1; left: 30px"
v-model="value" v-model="value"
@ -9,7 +13,13 @@
placeholder="请选择" placeholder="请选择"
@change="getLeftChartData" @change="getLeftChartData"
> >
<el-option v-for="item in selectData" :key="item" :label="item" :value="item"> </el-option> <el-option
v-for="item in selectData"
:key="item"
:label="item"
:value="item"
>
</el-option>
</el-select> </el-select>
<div class="tit_box"> <div class="tit_box">
<div style="border: 1px solid #f6d97e"> <div style="border: 1px solid #f6d97e">
@ -31,7 +41,13 @@
</div> </div>
<div style="height: 100%; width: 60%; padding-right: 15px"> <div style="height: 100%; width: 60%; padding-right: 15px">
<div style="margin-bottom: 1px"> <div style="margin-bottom: 1px">
<el-row style="height: 42px; line-height: 42px; background: rgba(0, 255, 255, 0.3)"> <el-row
style="
height: 42px;
line-height: 42px;
background: rgba(0, 255, 255, 0.3);
"
>
<el-col style="text-align: center" :span="4">项目</el-col> <el-col style="text-align: center" :span="4">项目</el-col>
<el-col style="text-align: center" :span="7">关键原材料</el-col> <el-col style="text-align: center" :span="7">关键原材料</el-col>
<el-col style="text-align: center" :span="5">数量</el-col> <el-col style="text-align: center" :span="5">数量</el-col>
@ -49,11 +65,21 @@
<ul class="item"> <ul class="item">
<li v-for="(item, index) in scrollData" :key="index"> <li v-for="(item, index) in scrollData" :key="index">
<el-row> <el-row>
<el-col style="text-align: center" :span="4">{{ item.projectName }}</el-col> <el-col style="text-align: center" :span="4">{{
<el-col style="text-align: center" :span="7">{{ item.category }}</el-col> item.projectName
<el-col style="text-align: center" :span="5">{{ item.total }}</el-col> }}</el-col>
<el-col style="text-align: center" :span="5">{{ item.arrivalTotal }}</el-col> <el-col style="text-align: center" :span="7">{{
<el-col style="text-align: center" :span="3">{{ item.usedTotal }}</el-col> item.category
}}</el-col>
<el-col style="text-align: center" :span="5">{{
item.total
}}</el-col>
<el-col style="text-align: center" :span="5">{{
item.arrivalTotal
}}</el-col>
<el-col style="text-align: center" :span="3">{{
item.usedTotal
}}</el-col>
</el-row> </el-row>
</li> </li>
</ul> </ul>
@ -62,7 +88,11 @@
</div> </div>
</container2> </container2>
<container1 style="margin-left: 14px" title="型号工位"> <container1 style="margin-left: 14px" title="型号工位">
<bigScreenTabs slot="datePicker" v-model="index2" :titleArr="['工位', '明细']"></bigScreenTabs> <bigScreenTabs
slot="datePicker"
v-model="index2"
:titleArr="['工位', '明细']"
></bigScreenTabs>
<div class="trends"> <div class="trends">
<div style="height: 100%; width: 100%" ref="chart2"></div> <div style="height: 100%; width: 100%" ref="chart2"></div>
</div> </div>
@ -70,7 +100,13 @@
<container1 style="margin-left: 14px" title="库房信息"> <container1 style="margin-left: 14px" title="库房信息">
<div class="trends"> <div class="trends">
<div style="margin-bottom: 1px"> <div style="margin-bottom: 1px">
<el-row style="height: 42px; line-height: 42px; background: rgba(0, 255, 255, 0.3)"> <el-row
style="
height: 42px;
line-height: 42px;
background: rgba(0, 255, 255, 0.3);
"
>
<el-col style="text-align: center" :span="5">名称</el-col> <el-col style="text-align: center" :span="5">名称</el-col>
<el-col style="text-align: center" :span="5">库位编号</el-col> <el-col style="text-align: center" :span="5">库位编号</el-col>
<el-col style="text-align: center" :span="7">库位类型</el-col> <el-col style="text-align: center" :span="7">库位类型</el-col>
@ -87,15 +123,25 @@
<ul class="item"> <ul class="item">
<li v-for="(item, index) in scrollList" :key="index"> <li v-for="(item, index) in scrollList" :key="index">
<el-row> <el-row>
<el-col style="text-align: center" :span="5">{{ item.name }}</el-col> <el-col style="text-align: center" :span="5">{{
<el-col style="text-align: center" :span="5">{{ item.numberNo }}</el-col> item.name
<el-col style="text-align: center" :span="7">{{ item.category }}</el-col> }}</el-col>
<el-col style="text-align: center" :span="5">{{
item.numberNo
}}</el-col>
<el-col style="text-align: center" :span="7">{{
item.category
}}</el-col>
<el-col style="text-align: center" :span="7"> <el-col style="text-align: center" :span="7">
<section class="box"> <section class="box">
<span v-if="item.status == '使用中'" style="color: #6fd1b4; font-size: 25px; margin-right: 3px" <span
v-if="item.status == '使用中'"
style="color: #6fd1b4; font-size: 25px; margin-right: 3px"
>·</span
>
<span v-else style="font-size: 25px; margin-right: 3px"
>·</span >·</span
> >
<span v-else style="font-size: 25px; margin-right: 3px">·</span>
<span v-if="item.status == '使用中'">使用中</span> <span v-if="item.status == '使用中'">使用中</span>
<span v-else>未启用</span> <span v-else>未启用</span>
</section> </section>
@ -109,12 +155,12 @@
</div> </div>
</template> </template>
<script> <script>
import container1 from './components/container1/index.vue' import container1 from "./components/container1/index.vue";
import container2 from './components/container2/index.vue' import container2 from "./components/container2/index.vue";
import bigScreenTabs from '../../components/bigScreenTabs/index.vue' import bigScreenTabs from "../../components/bigScreenTabs/index.vue";
import vueSeamlessScroll from 'vue-seamless-scroll' import vueSeamlessScroll from "vue-seamless-scroll";
import colorList from '@/utils/colorPalette' import colorList from "@/utils/colorPalette";
import echarts from 'echarts' import echarts from "echarts";
export default { export default {
components: { components: {
container1, container1,
@ -127,105 +173,105 @@ export default {
index: 0, index: 0,
index2: 0, index2: 0,
chart: null, chart: null,
titVal: '原材料', titVal: "原材料",
selectData: [], selectData: [],
value: '', value: "",
scrollData: [], scrollData: [],
scrollList: [], scrollList: [],
dataList: [], dataList: [],
pic1List: [], pic1List: [],
} };
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.initChart() this.initChart();
this.initChart2() this.initChart2();
}) });
}, },
watch: { watch: {
index(newVal, oldVal) { index(newVal, oldVal) {
if (newVal == 0) { if (newVal == 0) {
this.titVal = '原材料' this.titVal = "原材料";
} else { } else {
this.titVal = '配套件' this.titVal = "配套件";
} }
this.initChart() this.initChart();
}, },
}, },
methods: { methods: {
getData() { getData() {
this.request({ this.request({
url: '/hx/scientificProduction/getStorehousePic', url: "/hx/scientificProduction/getStorehousePic",
}).then(({ data }) => { }).then(({ data }) => {
this.scrollList = data this.scrollList = data;
}) });
}, },
getLeftChartData(e) { getLeftChartData(e) {
for (let i = 0; i < this.pic1List.length; i++) { for (let i = 0; i < this.pic1List.length; i++) {
const item = this.pic1List[i] const item = this.pic1List[i];
if (e == item.model) { if (e == item.model) {
// lack // 缺少 // lack // 缺少
// used // 已用 // used // 已用
// arrival // 到货 // arrival // 到货
// existing // 现有 // existing // 现有
if (item.lack) { if (item.lack) {
this.dataList[0] = item.lack this.dataList[0] = item.lack;
} }
if (item.used) { if (item.used) {
this.dataList[1] = item.used this.dataList[1] = item.used;
} }
if (item.arrival) { if (item.arrival) {
this.dataList[2] = item.arrival this.dataList[2] = item.arrival;
} }
if (item.existing) { if (item.existing) {
this.dataList[3] = item.existing this.dataList[3] = item.existing;
} }
this.setOptions() this.setOptions();
} }
} }
}, },
initChart() { initChart() {
this.request({ this.request({
url: '/hx/scientificProduction/getMaterialsAccessoriesPic', url: "/hx/scientificProduction/getMaterialsAccessoriesPic",
params: { params: {
type: this.titVal, type: this.titVal,
}, },
}).then(({ data }) => { }).then(({ data }) => {
this.selectData = data.modelList this.selectData = data.modelList;
this.value = data.modelList[0] this.value = data.modelList[0];
this.pic1List = data.pic1 this.pic1List = data.pic1;
this.scrollData = data.pic2 this.scrollData = data.pic2;
for (let i = 0; i < data.pic1.length; i++) { for (let i = 0; i < data.pic1.length; i++) {
const item = data.pic1[i] const item = data.pic1[i];
if (this.value == item.model) { if (this.value == item.model) {
// lack // 缺少 // lack // 缺少
// used // 已用 // used // 已用
// arrival // 到货 // arrival // 到货
// existing // 现有 // existing // 现有
if (item.lack) { if (item.lack) {
this.dataList[0] = item.lack this.dataList[0] = item.lack;
} }
if (item.used) { if (item.used) {
this.dataList[1] = item.used this.dataList[1] = item.used;
} }
if (item.arrival) { if (item.arrival) {
this.dataList[2] = item.arrival this.dataList[2] = item.arrival;
} }
if (item.existing) { if (item.existing) {
this.dataList[3] = item.existing this.dataList[3] = item.existing;
} }
this.chart = echarts.init(this.$refs.chart) this.chart = echarts.init(this.$refs.chart);
this.setOptions() this.setOptions();
} }
} }
}) });
}, },
setOptions() { setOptions() {
this.chart.setOption({ this.chart.setOption({
polar: { polar: {
radius: [100, '80%'], radius: [100, "80%"],
}, },
angleAxis: { angleAxis: {
max: Math.max(...this.dataList) + 100, max: Math.max(...this.dataList) + 100,
@ -238,12 +284,12 @@ export default {
}, },
radiusAxis: { radiusAxis: {
show: false, show: false,
type: 'category', type: "category",
data: ['缺少', '已用', '到货', '现有'], data: ["缺少", "已用", "到货", "现有"],
z: 3, z: 3,
axisLabel: { axisLabel: {
show: false, show: false,
color: '#f00', color: "#f00",
}, },
}, },
// tooltip: { // tooltip: {
@ -273,78 +319,78 @@ export default {
// }, // },
// }, // },
series: { series: {
type: 'bar', type: "bar",
barWidth: 20, barWidth: 20,
data: this.dataList, data: this.dataList,
coordinateSystem: 'polar', coordinateSystem: "polar",
label: { label: {
show: false, show: false,
position: 'middle', position: "middle",
formatter: '{b}: {c}', formatter: "{b}: {c}",
}, },
roundCap: true, roundCap: true,
itemStyle: { itemStyle: {
borderColor: 'green', borderColor: "green",
opacity: 0.8, opacity: 0.8,
borderWidth: 1, borderWidth: 1,
normal: { normal: {
//每个柱子的颜色即为colorList数组里的每一项如果柱子数目多于colorList的长度则柱子颜色循环使用该数组 //每个柱子的颜色即为colorList数组里的每一项如果柱子数目多于colorList的长度则柱子颜色循环使用该数组
color: function (params) { color: function (params) {
var colorList = ['#fa8c16', '#8bb1ed', '#55c5a2', '#f6d97e'] var colorList = ["#fa8c16", "#8bb1ed", "#55c5a2", "#f6d97e"];
return colorList[params.dataIndex] return colorList[params.dataIndex];
}, },
}, },
}, },
}, },
}) });
}, },
initChart2() { initChart2() {
this.request({ this.request({
url: '/hx/scientificProduction/getModelStationPic', url: "/hx/scientificProduction/getModelStationPic",
}).then(({ data }) => { }).then(({ data }) => {
this.chart2 = echarts.init(this.$refs.chart2) this.chart2 = echarts.init(this.$refs.chart2);
this.setOptions2(data) this.setOptions2(data);
}) });
}, },
setOptions2(resData) { setOptions2(resData) {
let titList = [] let titList = [];
let newData = [] let newData = [];
// coolingNumber // 降温数 // coolingNumber // 降温数
// freeNumber // 空闲数 // freeNumber // 空闲数
// riseNumber // 升温数 // riseNumber // 升温数
// warmNumber // 保温数 // warmNumber // 保温数
for (const key in resData) { for (const key in resData) {
if (Object.hasOwnProperty.call(resData, key)) { if (Object.hasOwnProperty.call(resData, key)) {
const item = resData[key] const item = resData[key];
titList.push({ titList.push({
name: key, name: key,
value: item.total, value: item.total,
}) });
for (const k in item) { for (const k in item) {
if (Object.hasOwnProperty.call(item, k)) { if (Object.hasOwnProperty.call(item, k)) {
let name = '' let name = "";
if (k == 'coolingNumber') name = '降温数' if (k == "coolingNumber") name = "降温数";
else if (k == 'freeNumber') name = '空闲数' else if (k == "freeNumber") name = "空闲数";
else if (k == 'riseNumber') name = '升温数' else if (k == "riseNumber") name = "升温数";
else if (k == 'warmNumber') name = '保温数' else if (k == "warmNumber") name = "保温数";
if (name != '') { if (name != "") {
newData.push({ newData.push({
name, name,
value: value:
name == '降温数' name == "降温数"
? item['coolingNumber'] ? item["coolingNumber"]
: name == '空闲数' : name == "空闲数"
? item['freeNumber'] ? item["freeNumber"]
: name == '升温数' : name == "升温数"
? item['riseNumber'] ? item["riseNumber"]
: name == '保温数' : name == "保温数"
? item['warmNumber'] ? item["warmNumber"]
: '', : "",
itemStyle: { itemStyle: {
color: item.stationName == '硫化' ? '#5B8FF9' : '#5AD8A6', color: item.stationName == "硫化" ? "#5B8FF9" : "#5AD8A6",
borderColor: '#fff', borderColor: "#fff",
}, },
}) });
} }
} }
} }
@ -353,27 +399,27 @@ export default {
this.chart2.setOption({ this.chart2.setOption({
tooltip: { tooltip: {
trigger: 'item', trigger: "item",
formatter: '{b}: {c}', formatter: "{b}: {c}",
position: 'inner', position: "inner",
}, },
series: [ series: [
{ {
name: '详情', name: "详情",
type: 'pie', type: "pie",
center: ['45%', '50%'], center: ["45%", "50%"],
radius: ['60%', '80%'], radius: ["60%", "80%"],
avoidLabelOverlap: false, avoidLabelOverlap: false,
hoverAnimation: false, // hover 效果 hoverAnimation: false, // hover 效果
label: { label: {
show: false, show: false,
position: 'center', position: "center",
}, },
emphasis: { emphasis: {
label: { label: {
show: false, show: false,
fontSize: '40', fontSize: "40",
fontWeight: 'bold', fontWeight: "bold",
}, },
}, },
labelLine: { labelLine: {
@ -388,8 +434,8 @@ export default {
normal: { normal: {
label: { label: {
show: true, show: true,
formatter: '{b}', formatter: "{b}",
position: 'inner', position: "inner",
}, },
labelLine: { labelLine: {
show: true, show: true,
@ -398,21 +444,21 @@ export default {
}, },
}, },
{ {
name: '详情', name: "详情",
type: 'pie', type: "pie",
radius: ['35%', '55%'], radius: ["35%", "55%"],
center: ['45%', '50%'], center: ["45%", "50%"],
avoidLabelOverlap: false, avoidLabelOverlap: false,
hoverAnimation: false, // hover 效果 hoverAnimation: false, // hover 效果
label: { label: {
show: false, show: false,
position: 'center', position: "center",
}, },
emphasis: { emphasis: {
label: { label: {
show: false, show: false,
fontSize: '40', fontSize: "40",
fontWeight: 'bold', fontWeight: "bold",
}, },
}, },
labelLine: { labelLine: {
@ -428,24 +474,24 @@ export default {
normal: { normal: {
label: { label: {
show: true, show: true,
formatter: '{b}', formatter: "{b}",
position: 'inner', position: "inner",
}, },
labelLine: { labelLine: {
show: true, show: true,
}, },
}, },
}, },
color: ['#5B8FF9', '#5AD8A6'], color: ["#5B8FF9", "#5AD8A6"],
}, },
], ],
}) });
}, },
}, },
created() { created() {
this.getData() this.getData();
}, },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.tit_box { .tit_box {

View File

@ -1,32 +1,48 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-divider content-position="left"><span class="text-bold-18">全厂资源动态</span></el-divider> <el-divider content-position="left"
><span class="text-bold-18">全厂资源动态</span></el-divider
>
<left1 /> <left1 />
<el-divider content-position="left"><span class="text-bold-18">车辆管理</span></el-divider> <el-divider content-position="left"
><span class="text-bold-18">车辆管理</span></el-divider
>
<left2 /> <left2 />
<el-divider content-position="left"><span class="text-bold-18">本周计划</span></el-divider> <el-divider content-position="left"
><span class="text-bold-18">本周计划</span></el-divider
>
<left3 /> <left3 />
<el-divider content-position="left"><span class="text-bold-18">全厂工房作业信息</span></el-divider> <el-divider content-position="left"
><span class="text-bold-18">全厂工房作业信息</span></el-divider
>
<center1 /> <center1 />
<el-divider content-position="left"><span class="text-bold-18">危险点工房图片管理</span></el-divider> <el-divider content-position="left"
><span class="text-bold-18">危险点工房图片管理</span></el-divider
>
<center2 /> <center2 />
<el-divider content-position="left"><span class="text-bold-18">全厂作业明细</span></el-divider> <el-divider content-position="left"
><span class="text-bold-18">全厂作业明细</span></el-divider
>
<right1 /> <right1 />
<el-divider content-position="left"><span class="text-bold-18">装药当前作业内容</span></el-divider> <el-divider content-position="left"
><span class="text-bold-18">装药当前作业内容</span></el-divider
>
<right2 /> <right2 />
<el-divider content-position="left"><span class="text-bold-18">酯生产量</span></el-divider> <el-divider content-position="left"
><span class="text-bold-18">硝酸酯生产量</span></el-divider
>
<right3 /> <right3 />
</div> </div>
</template> </template>
<script> <script>
import left1 from './left1.vue' import left1 from "./left1.vue";
import left2 from './left2.vue' import left2 from "./left2.vue";
import left3 from './left3.vue' import left3 from "./left3.vue";
import center1 from './center1.vue' import center1 from "./center1.vue";
import center2 from './center2.vue' import center2 from "./center2.vue";
import right1 from './right1.vue' import right1 from "./right1.vue";
import right2 from './right2.vue' import right2 from "./right2.vue";
import right3 from './right3.vue' import right3 from "./right3.vue";
export default { export default {
components: { components: {
left1, left1,
@ -38,7 +54,7 @@ export default {
right2, right2,
right3, right3,
}, },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.app-container { .app-container {

View File

@ -4,7 +4,14 @@
<el-col :span="24" :xs="24"> <el-col :span="24" :xs="24">
<el-row :gutter="10" class="mb8 fr"> <el-row :gutter="10" class="mb8 fr">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入</el-button> <el-button
type="info"
plain
icon="el-icon-upload2"
size="mini"
@click="handleImport"
>导入</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -23,9 +30,21 @@
<el-table-column label="序号" align="center" prop="id" width="80" /> <el-table-column label="序号" align="center" prop="id" width="80" />
<el-table-column label="酯工作内容" align="center" prop="jobContent" /> <el-table-column label="酯工作内容" align="center" prop="jobContent" />
<el-table-column label="开车时间" align="center" prop="driveDate" /> <el-table-column label="开车时间" align="center" prop="driveDate" />
<el-table-column label="预计结束时间" align="center" prop="forecastEndDate" /> <el-table-column
<el-table-column label="酯生产量" align="center" prop="esterProduction" /> label="预计结束时间"
<el-table-column label="粘合剂干燥情况" align="center" prop="cleanStatus" /> align="center"
prop="forecastEndDate"
/>
<el-table-column
label="硝酸酯生产量"
align="center"
prop="esterProduction"
/>
<el-table-column
label="粘合剂干燥情况"
align="center"
prop="cleanStatus"
/>
</el-table> </el-table>
<pagination <pagination
@ -39,7 +58,12 @@
/> />
</el-col> </el-col>
<!-- 用户导入对话框 --> <!-- 用户导入对话框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body> <el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-upload <el-upload
ref="upload" ref="upload"
:limit="1" :limit="1"
@ -66,8 +90,8 @@
</el-row> </el-row>
</template> </template>
<script> <script>
import { rightThreeList, rightThreeImportTemplate } from './indexApi' import { rightThreeList, rightThreeImportTemplate } from "./indexApi";
import { getToken } from '@/utils/auth' import { getToken } from "@/utils/auth";
export default { export default {
data() { data() {
return { return {
@ -89,27 +113,27 @@ export default {
// 是否显示弹出层(用户导入) // 是否显示弹出层(用户导入)
open: false, open: false,
// 弹出层标题(用户导入) // 弹出层标题(用户导入)
title: '', title: "",
// 是否禁用上传 // 是否禁用上传
isUploading: false, isUploading: false,
// 是否更新已经存在的用户数据 // 是否更新已经存在的用户数据
updateSupport: 0, updateSupport: 0,
// 设置上传的请求头部 // 设置上传的请求头部
headers: { Authorization: 'Bearer ' + getToken() }, headers: { Authorization: "Bearer " + getToken() },
// 上传的地址 // 上传的地址
url: process.env.VUE_APP_BASE_API + '/hx/esterProduction/importData', url: process.env.VUE_APP_BASE_API + "/hx/esterProduction/importData",
}, },
} };
}, },
methods: { methods: {
/** 查询用户列表 */ /** 查询用户列表 */
getList() { getList() {
this.loading = true this.loading = true;
rightThreeList(this.queryParams).then(res => { rightThreeList(this.queryParams).then((res) => {
this.userList = res.rows this.userList = res.rows;
this.total = res.total this.total = res.total;
this.loading = false this.loading = false;
}) });
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
// handleDelete(row) { // handleDelete(row) {
@ -126,49 +150,49 @@ export default {
// }, // },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
const queryParams = this.queryParams const queryParams = this.queryParams;
this.$modal this.$modal
.confirm('是否确认导出所有数据项?') .confirm("是否确认导出所有数据项?")
.then(() => { .then(() => {
this.exportLoading = true this.exportLoading = true;
return exportUser(queryParams) return exportUser(queryParams);
}) })
.then(response => { .then((response) => {
this.$download.name(response.msg) this.$download.name(response.msg);
this.exportLoading = false this.exportLoading = false;
}) })
.catch(() => {}) .catch(() => {});
}, },
/** 导入按钮操作 */ /** 导入按钮操作 */
handleImport() { handleImport() {
this.upload.title = '数据导入' this.upload.title = "数据导入";
this.upload.open = true this.upload.open = true;
}, },
/** 下载模板操作 */ /** 下载模板操作 */
importTemplate() { importTemplate() {
rightThreeImportTemplate().then(response => { rightThreeImportTemplate().then((response) => {
this.$download.name(response.msg) this.$download.name(response.msg);
}) });
}, },
// 文件上传中处理 // 文件上传中处理
handleFileUploadProgress(event, file, fileList) { handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true this.upload.isUploading = true;
}, },
// 文件上传成功处理 // 文件上传成功处理
handleFileSuccess(response, file, fileList) { handleFileSuccess(response, file, fileList) {
this.upload.open = false this.upload.open = false;
this.upload.isUploading = false this.upload.isUploading = false;
this.$refs.upload.clearFiles() this.$refs.upload.clearFiles();
this.$alert(response.msg, '导入结果', { dangerouslyUseHTMLString: true }) this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
this.getList() this.getList();
}, },
// 提交上传文件 // 提交上传文件
submitFileForm() { submitFileForm() {
this.$refs.upload.submit() this.$refs.upload.submit();
}, },
}, },
created() { created() {
this.getList() this.getList();
}, },
} };
</script> </script>

View File

@ -35,7 +35,7 @@ module.exports = {
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
// target: `http://localhost:1818`, // target: `http://localhost:1818`,
// target: `http://120.26.107.74:1818`, // target: `http://120.26.107.74:1818`,
target: `http://192.168.0.115:1818`, target: `http://192.168.0.154:1818`,
// target: `http://124.70.138.50:1818`, // target: `http://124.70.138.50:1818`,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {