bug fixed

This commit is contained in:
cxc
2023-02-03 10:26:11 +08:00
parent 53e6ace735
commit 3cbf5a779e
18 changed files with 1169 additions and 895 deletions

View File

@ -106,11 +106,12 @@ export default {
start() {
// 每隔一段时间,页码+1判断是否到最后一页是则将页码重设为1
this.time = setInterval(() => {
this.currentPage1 = this.currentPage1 + 1;
this.handleCurrentChange(this.currentPage1);
if (this.currentPage1 >= this.total / this.pageSize) {
this.currentPage1 = 0;
this.currentPage1 = 1;
} else {
this.currentPage1 = this.currentPage1 + 1;
}
this.handleCurrentChange(this.currentPage1);
}, 5000);
},
end() {
@ -130,15 +131,70 @@ export default {
url: "/hx/cockpitOverview/businessResponsibility",
method: "get",
}).then((res) => {
// this.res = {
// list: [
// {
// targetTasks: 2,
// cate: 100,
// completedTasks: 2,
// indicator_name: "类别1",
// },
// {
// targetTasks: 2,
// cate: 50,
// completedTasks: 1,
// indicator_name: "类别2",
// },
// {
// targetTasks: 2,
// cate: 50,
// completedTasks: 1,
// indicator_name: "类别3",
// },
// {
// targetTasks: 2,
// cate: 50,
// completedTasks: 1,
// indicator_name: "类别4",
// },
// {
// targetTasks: 2,
// cate: 50,
// completedTasks: 1,
// indicator_name: "类别5",
// },
// {
// targetTasks: 2,
// cate: 50,
// completedTasks: 1,
// indicator_name: "类别6",
// },
// {
// targetTasks: 2,
// cate: 50,
// completedTasks: 1,
// indicator_name: "类别7",
// },
// {
// targetTasks: 2,
// cate: 50,
// completedTasks: 1,
// indicator_name: "类别8",
// },
// ],
// map: null,
// };
this.res = res.data;
// console.log(res.data);
// TODO: 分页
this.total = this.res.list.length;
for (let i = 0; i < this.res.list.length; i++) {
const item = this.res.list[i];
this.titData.push(item.indicator_name);
this.valData.push({
value: item.cate,
// TODO:
// value: item.rate,
value: item.completedTasks,
name: item.indicator_name,
tooltip: {
trigger: "item",

View File

@ -94,7 +94,8 @@ export default {
this.chart.setOption({
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b}: {c} ({d}%)",
// formatter: "{a} <br/>{b}: {c} ({d}%)",
formatter: "{a} <br/>{b}: {c}",
},
color: this.colorList,
legend: {

View File

@ -25,10 +25,11 @@
background: rgba(0, 255, 255, 0.3);
"
>
<!-- <el-col style="text-align: center" :span="3">序号</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="7">完成情况</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="6">责任令</el-col>
<el-col style="text-align: center" :span="6">部门</el-col>
<el-col style="text-align: center" :span="5">完成情况</el-col>
</el-row>
</el-col>
<vue-seamless-scroll
@ -37,27 +38,31 @@
class="warp-scroll"
:class-option="{
singleHeight: 43,
limitMoveNum: 4,
}"
>
<ul class="item">
<li v-for="item in dataList" :key="item.id">
<li v-for="(item, index) in dataList" :key="item.id">
<el-row>
<!-- <el-col style="text-align: center" :span="3">{{
item.id
}}</el-col> -->
<el-col style="text-align: center" :span="3">{{
index + 1
}}</el-col>
<el-col style="text-align: center" :span="4">{{
item.month
}}</el-col>
<el-col
style="text-align: center"
:span="7"
:span="6"
:title="item.responsibilityContent"
>{{ item.responsibilityContent }}</el-col
>
<el-col
style="text-align: center"
:span="7"
:span="6"
:title="item.deptName"
>{{ item.deptName }}</el-col
>
<el-col style="text-align: center" :span="7">
<el-col style="text-align: center" :span="5">
<section class="box">
<span
v-if="item.completionStatus == '已完成'"
@ -124,7 +129,7 @@
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="7">项目名称</el-col>
<el-col style="text-align: center" :span="7">计划名称</el-col>
<!-- <el-col style="text-align: center" :span="7">部门</el-col> -->
@ -141,11 +146,11 @@
style="height: 168px"
>
<ul class="item">
<li v-for="item in listData" :key="item.id">
<li v-for="(item, idx) in listData" :key="item.id">
<el-row>
<!-- <el-col style="text-align: center" :span="3">{{
item.id
}}</el-col> -->
<el-col style="text-align: center" :span="3">{{
idx + 1
}}</el-col>
<el-col
style="text-align: center"
:title="item.projectName"

View File

@ -35,7 +35,7 @@
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="7">时间</el-col>
@ -50,11 +50,11 @@
}"
>
<ul class="item">
<li v-for="item in listData" :key="item.id">
<li v-for="(item, idx) in listData" :key="item.id">
<el-row>
<!-- <el-col style="text-align: center" :span="3">{{
item.id
}}</el-col> -->
<el-col style="text-align: center" :span="3">{{
idx + 1
}}</el-col>
<el-col
style="text-align: center"
:title="item.planName"

View File

@ -67,7 +67,7 @@
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="7">时间</el-col>
@ -84,11 +84,11 @@
style="height: 168px"
>
<ul class="item">
<li v-for="item in scrollList" :key="item.id">
<li v-for="(item, idx) in scrollList" :key="item.id">
<el-row>
<!-- <el-col style="text-align: center" :span="3">{{
item.id
}}</el-col> -->
<el-col style="text-align: center" :span="3">{{
idx + 1
}}</el-col>
<el-col
style="text-align: center"
:title="item.projectName"

View File

@ -68,7 +68,7 @@
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="3">数量</el-col>
<el-col style="text-align: center" :span="5">金额</el-col>
@ -83,11 +83,11 @@
}"
>
<ul class="item">
<li v-for="item in scrollList" :key="item.id">
<li v-for="(item, idx) in scrollList" :key="item.id">
<el-row>
<!-- <el-col style="text-align: center" :span="3">{{
item.id
}}</el-col> -->
<el-col style="text-align: center" :span="3">{{
idx + 1
}}</el-col>
<el-col
style="text-align: center"
:title="item.contractName"

View File

@ -49,8 +49,8 @@
</div>
</div>
<div style="display: flex; height: 100%" v-else>
<div style="height: 100%; width: 75%" ref="chart2"></div>
<div
<div style="height: 100%; width: 100%" ref="chart2"></div>
<!-- <div
style="
height: 100%;
width: 25%;
@ -66,7 +66,7 @@
</div>
<progressBar :percentage="80" style="margin: 10px 0 20px" />
<i class="num">80%</i>
</div>
</div> -->
</div>
</container2>
<container2 title="信息公示" style="margin-top: 10px">
@ -87,7 +87,7 @@
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="7">团队</el-col>
@ -104,11 +104,11 @@
style="height: 168px"
>
<ul class="item">
<li v-for="item in scrollList1" :key="item.id">
<li v-for="(item, idx) in scrollList1" :key="item.id">
<el-row>
<!-- <el-col style="text-align: center" :span="3">{{
item.id
}}</el-col> -->
<el-col style="text-align: center" :span="3">{{
idx + 1
}}</el-col>
<el-col
style="text-align: center"
:title="item.projectName"
@ -158,7 +158,7 @@
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="7">部门</el-col>
<el-col style="text-align: center" :span="7">公示内容</el-col>
<el-col style="text-align: center" :span="7">时间</el-col>
@ -174,11 +174,11 @@
style="height: 168px"
>
<ul class="item">
<li v-for="item in scrollList2" :key="item.id">
<li v-for="(item, idx) in scrollList2" :key="item.id">
<el-row>
<!-- <el-col style="text-align: center" :span="3">{{
item.id
}}</el-col> -->
<el-col style="text-align: center" :span="3">{{
idx + 1
}}</el-col>
<el-col style="text-align: center" :span="7">{{
item.deptName
}}</el-col>
@ -308,6 +308,11 @@ export default {
let { rate, list } = res.data;
if (rate) {
this.rate = rate;
} else {
this.rate = {
comprehensiveRate: 0,
performanceRate: 0,
};
}
this.chart = echarts.init(this.$refs.chart);
this.chart.setOption({
@ -461,7 +466,21 @@ export default {
this.chart2 = echarts.init(this.$refs.chart2);
this.setOptions2();
},
setOptions2() {
async setOptions2() {
let params = { type: 1 };
// if (month) {
// params["month"] = month;
// }
const res = await this.request({
url: "/hx/operating/getComprehensivePlanPic",
method: "get",
params: params,
});
if (200 == res.code) {
let { rate, list } = res.data;
// if (rate) {
// this.rate = rate;
// }
this.chart2.setOption({
tooltip: {
trigger: "axis",
@ -490,15 +509,7 @@ export default {
xAxis: [
{
type: "category",
data: [
"部门5",
"部门二",
"部门三",
"部门四",
"部门五",
"部门六",
"部门七",
],
data: list.map((e) => e.deptName),
axisLine: {
lineStyle: {
color: "rgb(255, 255, 255)",
@ -509,6 +520,7 @@ export default {
yAxis: [
{
name: "个",
max: "dataMax",
splitLine: {
show: true,
// 改变轴线颜色
@ -559,7 +571,7 @@ export default {
color: "#F64F58",
},
barWidth: 30,
data: [150, 232, 201, 154, 190, 330, 410],
data: list.map((el) => el.performancePlanCompleted),
},
{
name: "综合",
@ -572,19 +584,45 @@ export default {
color: "#F6D97E",
},
barWidth: 30,
data: [150, 232, 201, 154, 190, 330, 410],
data: list.map((el) => el.comprehensivePlanCompleted),
},
{
name: "完成率",
type: "scatter",
name: "综合完成率",
// type: "scatter",
type: "line",
symbol: "rect",
symbolSize: [30, 4],
symbolOffset: [0, 0],
position: [0, 0],
itemStyle: {
color: "#7EA7FC",
color: "#F6D97E",
},
data: [600, 650, 700, 750, 800, 750, 700],
yAxisIndex: "1",
data: list.map((el) =>
(
(el.comprehensivePlanCompleted / el.comprehensivePlanTotal) *
100
).toFixed(2)
),
},
{
name: "绩效完成率",
// type: "scatter",
type: "line",
yAxisIndex: "1",
symbol: "rect",
symbolSize: [30, 4],
symbolOffset: [0, 0],
position: [0, 0],
itemStyle: {
color: "#F64F58",
},
data: list.map((el) =>
(
(el.performancePlanCompleted / el.performancePlanTotal) *
100
).toFixed(2)
),
},
// {
// name: '',
@ -608,6 +646,7 @@ export default {
// },
],
});
}
},
},
};

View File

@ -42,7 +42,7 @@
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="8">部门</el-col>
<el-col style="text-align: center" :span="12">案例名称</el-col>
</el-row>
@ -56,11 +56,11 @@
}"
>
<ul class="item">
<li v-for="item in scrollList" :key="item.id">
<li v-for="(item, idx) in scrollList" :key="item.id">
<el-row style="font-size: 14px">
<!-- <el-col style="text-align: center" :span="4">{{
item.id
}}</el-col> -->
<el-col style="text-align: center" :span="4">{{
idx + 1
}}</el-col>
<el-col style="text-align: center" :span="8">{{
item.className
}}</el-col>

View File

@ -93,102 +93,103 @@
</div>
</div>
<el-button type="text" style="padding: 0" slot="reference">
<img style="width: 100%; height: 100%" src="./icon.png" alt="" />
<img style="width: 100%; height: 100%" src="./icon1.png" alt="" width="40" height="45"/>
</el-button>
</el-popover>
</container3>
</template>
<script>
import flvjs from "flv.js";
import flvjs from 'flv.js'
import container3 from './components/container3/index.vue'
import vueSeamlessScroll from 'vue-seamless-scroll'
import echarts from 'echarts'
import container3 from "./components/container3/index.vue";
import vueSeamlessScroll from "vue-seamless-scroll";
import echarts from "echarts";
export default {
components: {
container3, //#endregion,
vueSeamlessScroll,
vueSeamlessScroll
},
data() {
return {
pic: "",
pic: '',
listData: [],
listData2: [],
flvPlayer: null,
};
flvPlayer: null
}
},
methods: {
getList() {
this.request({
url: "/hx/scientificProduction/getHxWorkHomePic",
url: '/hx/scientificProduction/getHxWorkHomePic'
}).then(({ data }) => {
// data.map((item) => {
// item.avAddress =
// "http://192.168.0.151:81/stream/live/classic_cases_video.flv";
// });
this.listData = data;
});
this.listData = data
})
},
handleShow(index) {
this.hadleHide();
this.listData2 = this.listData[index]["userList"];
this.hadleHide()
this.listData2 = this.listData[index]['userList']
setTimeout(() => {
if (flvjs.isSupported()) {
this.flvPlayer = flvjs.createPlayer(
{
type: "flv", // 媒体类型 flv 或 mp4
type: 'flv', // 媒体类型 flv 或 mp4
isLive: true, // 是否为直播流
fluid: true,
// hasAudio: true, // 是否开启声音
stashInitialSize: 128, // 减少首桢显示等待时长
url: this.listData[index]["avAddress"],
url: this.listData[index]['avAddress']
},
{
enableStashBuffer: false,
fixAudioTimestampGap: false,
isLive: true,
isLive: true
}
);
let all = document.querySelectorAll("#videoElement");
let videoElement = all[all.length - 1];
this.flvPlayer.attachMediaElement(videoElement);
this.flvPlayer.load();
this.flvPlayer.play();
)
let all = document.querySelectorAll('#videoElement')
let videoElement = all[all.length - 1]
this.flvPlayer.attachMediaElement(videoElement)
this.flvPlayer.load()
this.flvPlayer.play()
}
}, 0);
}, 0)
},
hadleHide() {
if (this.flvPlayer) {
this.flvPlayer.pause();
this.flvPlayer.unload();
this.flvPlayer.detachMediaElement();
this.flvPlayer.destroy();
this.flvPlayer = null;
this.flvPlayer.pause()
this.flvPlayer.unload()
this.flvPlayer.detachMediaElement()
this.flvPlayer.destroy()
this.flvPlayer = null
}
}
},
},
beforeDestroy() {
if (this.flvPlayer) {
this.flvPlayer.pause();
this.flvPlayer.unload();
this.flvPlayer.detachMediaElement();
this.flvPlayer.destroy();
this.flvPlayer = null;
this.flvPlayer.pause()
this.flvPlayer.unload()
this.flvPlayer.detachMediaElement()
this.flvPlayer.destroy()
this.flvPlayer = null
}
},
created() {
this.getList();
this.getList()
this.request({
url: "/hx/bigPic/getByType",
method: "get",
params: { type: 2 },
url: '/hx/bigPic/getByType',
method: 'get',
params: { type: 2 }
}).then((res) => {
if (200 == res.code) {
this.pic = res.data.pic;
this.pic = res.data.pic
}
})
}
}
});
},
};
</script>
<style>
.el-popover {
@ -200,6 +201,7 @@ export default {
.icon_img {
position: absolute;
}
.el-popover {
.box {
width: 177px;
@ -207,11 +209,13 @@ export default {
border-width: 0px 20px 30px 0px;
border-style: none solid solid;
border-color: transparent transparent rgba(10, 90, 132, 1);
.tit {
height: 30px;
padding-left: 16px;
display: flex;
align-items: center;
span {
margin-left: 8px;
color: #fff;
@ -219,13 +223,16 @@ export default {
}
}
}
.cont {
background-color: #0d1049;
padding: 8px 13px 11px 16px;
video {
width: 100%;
height: 143px;
}
.user_box {
color: #fff;
font-size: 16px;
@ -239,24 +246,30 @@ export default {
rgba(6, 116, 151, 0.91) 60%,
#00ffff 146%
);
span:nth-child(1) {
float: left;
}
span:nth-child(2) {
float: right;
}
}
.warp-scroll {
// height: 100px;
margin: 0 auto;
margin-top: 25px;
overflow: hidden;
ul {
list-style: none;
padding: 0;
margin: 0 auto;
&.ul-item {
display: flex;
.li-item {
width: 42px;
// height: 120px;
@ -265,6 +278,7 @@ export default {
// background-color: #999;
color: #fff;
text-align: center;
.one_hidden {
word-break: keep-all;
white-space: nowrap;

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -10,7 +10,7 @@
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="3">现有库存</el-col>
<el-col style="text-align: center" :span="6"
@ -27,11 +27,11 @@
:class-option="{ singleHeight: 42 }"
>
<ul class="item">
<li v-for="item in scrollList" :key="item.id">
<li v-for="(item, idx) in scrollList" :key="item.id">
<el-row>
<!-- <el-col style="text-align: center" :span="4">{{
item.id
}}</el-col> -->
<el-col style="text-align: center" :span="4">{{
idx + 1
}}</el-col>
<el-col
style="text-align: center"
:title="item.materialName"

View File

@ -41,34 +41,34 @@
</container1>
<container1 style="margin-right: 14px" title="单台产品信息">
<div class="trends" style="text-align: center">
<img :src="dataInfo.pic" alt="" width="100%" />
<img :src="dataInfo.pic" alt="" width="100%" height="100%" :style="{objectFit:'contain'}"/>
</div>
</container1>
</div>
</template>
<script>
import container1 from "./components/container1/index.vue";
import progressBar from "@/views/bigScreen/components/progress/index.vue";
import bigScreenTabs from "../../components/bigScreenTabs/index.vue";
import vueSeamlessScroll from "vue-seamless-scroll";
import colorList from "@/utils/colorPalette";
import container1 from './components/container1/index.vue'
import progressBar from '@/views/bigScreen/components/progress/index.vue'
import bigScreenTabs from '../../components/bigScreenTabs/index.vue'
import vueSeamlessScroll from 'vue-seamless-scroll'
import colorList from '@/utils/colorPalette'
import {
blueColorList,
greenColorList,
yelloColorList,
redColorList,
} from "@/utils/gradualColor";
redColorList
} from '@/utils/gradualColor'
import echarts from "echarts";
import echarts from 'echarts'
require("echarts/theme/macarons"); // echarts theme
require('echarts/theme/macarons') // echarts theme
export default {
components: {
container1, //#endregion,
progressBar,
bigScreenTabs,
vueSeamlessScroll,
vueSeamlessScroll
},
data() {
return {
@ -80,211 +80,212 @@ export default {
chart3: null,
listData: [1, 2, 3, 4, 5, 6, 7, 8],
customColor: colorList,
prodMonthlyPlan: "", //
};
prodMonthlyPlan: '' //
}
},
mounted() {
this.$nextTick(() => {
this.initChart();
this.initChart2(this.prodMonthlyPlan);
this.initChart3();
});
this.initChart()
this.initChart2(this.prodMonthlyPlan)
this.initChart3()
})
},
beforeDestroy() {
},
beforeDestroy() {},
methods: {
getData() {
this.request({
url: "/hx/scientificProduction/getProductPic",
url: '/hx/scientificProduction/getProductPic'
}).then(({ data }) => {
this.dataInfo = data;
});
this.dataInfo = data
})
},
initChart() {
this.request({
url: "/hx/scientificProduction/getModelYearPlanPic",
url: '/hx/scientificProduction/getModelYearPlanPic'
}).then(({ data }) => {
this.chart = echarts.init(this.$refs.chart);
this.setOptions(data);
});
this.chart = echarts.init(this.$refs.chart)
this.setOptions(data)
})
},
setOptions(resData) {
let titList = [];
let realCharge = []; // 实际装药量
let realDeliver = []; // 实际支付
let chargeRate = []; // 装药量率
let deliverRate = []; // 支付率
let titList = []
let realCharge = [] // 实际装药量
let realDeliver = [] // 实际支付
let chargeRate = [] // 装药量率
let deliverRate = [] // 支付率
for (let i = 0; i < resData.length; i++) {
const item = resData[i];
titList.push(item.productModel);
realCharge.push(item.realCharge);
realDeliver.push(item.realDeliver);
chargeRate.push(item.chargeRate);
deliverRate.push(item.deliverRate);
const item = resData[i]
titList.push(item.productModel)
realCharge.push(item.realCharge)
realDeliver.push(item.realDeliver)
chargeRate.push(item.chargeRate)
deliverRate.push(item.deliverRate)
}
this.chart.setOption({
tooltip: {
trigger: "axis",
trigger: 'axis',
axisPointer: {
type: "shadow",
type: 'shadow'
},
formatter: "{b0}<br /> {a0}:{c0}%<br />{a1}: {c1}%",
formatter: '{b0}<br /> {a0}:{c0}%<br />{a1}: {c1}%'
},
legend: {
textStyle: {
color: "#fff", //legend字体颜色
},
color: '#fff' //legend字体颜色
}
},
grid: {
top: 30,
left: "3%",
right: "4%",
left: '3%',
right: '4%',
bottom: 20,
containLabel: true,
containLabel: true
},
xAxis: {
show: false,
show: false
// type: 'value',
// splitLine: {
// show: false, //不显示网格线
// },
},
yAxis: {
type: "category",
type: 'category',
boundaryGap: true,
splitLine: {
show: false, // 不显示网格线
show: false // 不显示网格线
},
axisTick: {
show: false, // y轴刻度线
show: false // y轴刻度线
},
axisLine: {
show: false,
lineStyle: {
color: "rgb(255, 255, 255)",
color: 'rgb(255, 255, 255)'
}
},
data: titList
},
data: titList,
},
color: ["#55C5A2", "#55C5A2"],
color: ['#55C5A2', '#55C5A2'],
series: [
{
roundCap: true, // 没效果
showBackground: true,
backgroundStyle: {
color: "rgba(180, 180, 180, 0.2)",
color: 'rgba(180, 180, 180, 0.2)'
},
name: "装药",
type: "bar",
stack: "total",
name: '装药',
type: 'bar',
stack: 'total',
// label: {
// show: true,
// },
emphasis: {
focus: "series",
focus: 'series'
},
barWidth: 12,
data: chargeRate,
color: "#F6D97E",
color: '#F6D97E'
},
{
showBackground: true,
backgroundStyle: {
color: "rgba(180, 180, 180, 0.2)",
color: 'rgba(180, 180, 180, 0.2)'
},
name: "交付",
type: "bar",
stack: "total",
name: '交付',
type: 'bar',
stack: 'total',
// label: {
// show: true,
// },
emphasis: {
focus: "series",
focus: 'series'
},
barWidth: 12,
data: deliverRate,
color: "#55C5A2",
},
],
});
color: '#55C5A2'
}
]
})
},
initChart2(month) {
this.request({
url: "/hx/scientificProduction/getProductionPlanPic?month=" + month,
url: '/hx/scientificProduction/getProductionPlanPic?month=' + month
}).then(({ data }) => {
this.chart2 = echarts.init(this.$refs.chart2);
this.setOptions2(data);
});
this.chart2 = echarts.init(this.$refs.chart2)
this.setOptions2(data)
})
// 测试数据
const data2 = {
allMonth: ["2021-01", "2021-02"],
allMonth: ['2021-01', '2021-02'],
list: [
{
"2021-01": [
'2021-01': [
{
id: 1,
month: "2021-01",
productModel: "型号1",
adiabat: "10",
charge: "11",
assembly: "12",
deliver: "13",
month: '2021-01',
productModel: '型号1',
adiabat: '10',
charge: '11',
assembly: '12',
deliver: '13'
},
{
id: 2,
month: "2021-01",
productModel: "型号2",
adiabat: "16",
charge: "17",
assembly: "18",
deliver: "19",
},
],
month: '2021-01',
productModel: '型号2',
adiabat: '16',
charge: '17',
assembly: '18',
deliver: '19'
}
]
},
{
"2021-02": [
'2021-02': [
{
id: 10,
month: "2021-02",
productModel: "型号1",
adiabat: "20",
charge: "21",
assembly: "22",
deliver: "23",
month: '2021-02',
productModel: '型号1',
adiabat: '20',
charge: '21',
assembly: '22',
deliver: '23'
},
{
id: 11,
month: "2021-02",
productModel: "型号2",
adiabat: "26",
charge: "27",
assembly: "28",
deliver: "29",
},
month: '2021-02',
productModel: '型号2',
adiabat: '26',
charge: '27',
assembly: '28',
deliver: '29'
}
]
}
],
},
],
allModel: ["型号1", "型号2"],
};
allModel: ['型号1', '型号2']
}
},
setOptions2(resData) {
const xAixsList = resData.map((el) => el.productModel); // 横坐标列表
const xAixsList = resData.map((el) => el.productModel) // 横坐标列表
const adiabatList = []; // 绝热
adiabatList.push(resData.map((el) => el.realAdiabat)); // 实际
adiabatList.push(resData.map((el) => el.forecastAdiabat)); // 预测
const adiabatList = [] // 绝热
adiabatList.push(resData.map((el) => el.realAdiabat)) // 实际
adiabatList.push(resData.map((el) => el.forecastAdiabat)) // 预测
const deliverList = [];
deliverList.push(resData.map((el) => el.realDeliver)); // 交付数量列表
deliverList.push(resData.map((el) => el.forecastDeliver)); // 交付数量列表
const deliverList = []
deliverList.push(resData.map((el) => el.realDeliver)) // 交付数量列表
deliverList.push(resData.map((el) => el.forecastDeliver)) // 交付数量列表
const chargeList = [];
chargeList.push(resData.map((el) => el.realCharge)); //装药数量列表
chargeList.push(resData.map((el) => el.forecastCharge)); //装药数量列表
const assemblyList = [];
assemblyList.push(resData.map((el) => el.realAssembly)); // 总装数列表
assemblyList.push(resData.map((el) => el.forecastAssembly)); // 总装数列表
const chargeList = []
chargeList.push(resData.map((el) => el.realCharge)) //装药数量列表
chargeList.push(resData.map((el) => el.forecastCharge)) //装药数量列表
const assemblyList = []
assemblyList.push(resData.map((el) => el.realAssembly)) // 总装数列表
assemblyList.push(resData.map((el) => el.forecastAssembly)) // 总装数列表
// // console.log(adiabatList);
// // return;
// let adiabat = []; // 绝热数量
@ -335,38 +336,38 @@ export default {
this.chart2.setOption({
tooltip: {
formatter: (params, ticket, callback) => {
const type = ["实际", "预测"];
const type = ['实际', '预测']
// // console.log(type[params.dataIndex]);
// console.log(params.seriesIndex % 2);
let seriesName = params.seriesName;
let newSeriesName = seriesName.split(",");
let name = params.name;
let num = params.value;
let seriesName = params.seriesName
let newSeriesName = seriesName.split(',')
let name = params.name
let num = params.value
return `
<div>
<div>${name}</div>
<div>${type[params.seriesIndex % 2]} ${num}</div>
</div>
`;
},
`
}
// <div><span style="display:inline-block;margin-right:5px;width:10px;height:10px;background-color:${
// params.color
// };"></span> ${newSeriesName[0]} ${num}</div>
},
legend: {
data: ["绝热", "装药", "总装", "交付"],
data: ['绝热', '装药', '总装', '交付'],
textStyle: {
color: "#fff", //legend字体颜色
},
color: '#fff' //legend字体颜色
}
},
grid: {
left: 0,
right: 10,
top: 10,
bottom: 50,
containLabel: true,
containLabel: true
},
// dataZoom: {
// type: 'slider',
@ -391,96 +392,96 @@ export default {
// ],
xAxis: [
{
type: "category",
type: 'category',
data: xAixsList,
axisLine: {
lineStyle: {
color: "rgb(255, 255, 255)",
},
},
},
color: 'rgb(255, 255, 255)'
}
}
}
],
yAxis: [
{
name: "",
name: '',
splitLine: {
show: true,
// 改变轴线颜色
lineStyle: {
// 使用深浅的间隔色
color: ["rgba(255, 255, 255,.5)"],
},
color: ['rgba(255, 255, 255,.5)']
}
},
axisLabel: {
formatter: "{value}",
formatter: '{value}'
},
axisLine: {
lineStyle: {
color: "rgb(255, 255, 255)",
},
},
color: 'rgb(255, 255, 255)'
}
}
},
{
type: "value",
},
type: 'value'
}
],
series: [
...adiabatList.map((el, index) => {
return {
name: "绝热",
type: "bar",
stack: "adiabat",
name: '绝热',
type: 'bar',
stack: 'adiabat',
data: el,
emphasis: {
focus: "series",
focus: 'series'
},
itemStyle: {
color: blueColorList[index],
},
};
color: blueColorList[index]
}
}
}),
...chargeList.map((el, index) => {
return {
name: "装药",
type: "bar",
name: '装药',
type: 'bar',
data: el,
stack: "charge",
stack: 'charge',
emphasis: {
focus: "series",
focus: 'series'
},
itemStyle: {
color: yelloColorList[index],
},
};
color: yelloColorList[index]
}
}
}),
...assemblyList.map((el, index) => {
return {
name: "总装",
type: "bar",
name: '总装',
type: 'bar',
data: el,
stack: "assembly",
stack: 'assembly',
emphasis: {
focus: "series",
focus: 'series'
},
itemStyle: {
color: redColorList[index],
},
};
color: redColorList[index]
}
}
}),
...deliverList.map((el, index) => {
return {
name: "交付",
type: "bar",
name: '交付',
type: 'bar',
data: el,
stack: "deliver",
stack: 'deliver',
emphasis: {
focus: "series",
focus: 'series'
},
itemStyle: {
color: greenColorList[index],
},
};
}),
color: greenColorList[index]
}
}
})
// {
// name: "装药",
// type: "bar",
@ -670,129 +671,129 @@ export default {
// color: blueColorList[3],
// },
// },
],
});
]
})
},
initChart3() {
this.request({
url: "/hx/scientificProduction/getModelProductionStatisticPic",
url: '/hx/scientificProduction/getModelProductionStatisticPic'
}).then(({ data }) => {
this.chart3 = echarts.init(this.$refs.chart3);
this.setOptions3(data);
});
this.chart3 = echarts.init(this.$refs.chart3)
this.setOptions3(data)
})
},
setOptions3(resData) {
// // console.log(resData)
let models = [];
let adiabat = [];
let charge = [];
let deliver = [];
let assembly = [];
let review = [];
let settlement = [];
let productionNumber = [];
let models = []
let adiabat = []
let charge = []
let deliver = []
let assembly = []
let review = []
let settlement = []
let productionNumber = []
for (let i = 0; i < resData.length; i++) {
const item = resData[i];
models.push(item.model);
adiabat.push(item.realAdiabat);
charge.push(item.realCharge);
deliver.push(item.realDeliver);
assembly.push(item.realAssembly);
review.push(item.review);
settlement.push(item.settlement);
productionNumber.push(item.productionNumber);
const item = resData[i]
models.push(item.model)
adiabat.push(item.realAdiabat)
charge.push(item.realCharge)
deliver.push(item.realDeliver)
assembly.push(item.realAssembly)
review.push(item.review)
settlement.push(item.settlement)
productionNumber.push(item.productionNumber)
}
this.chart3.setOption({
tooltip: {
trigger: "axis",
trigger: 'axis',
axisPointer: {
type: "shadow",
},
type: 'shadow'
}
},
legend: {
textStyle: {
color: "#fff", //legend字体颜色
},
color: '#fff' //legend字体颜色
}
},
grid: {
left: "3%",
right: "4%",
bottom: "3%",
containLabel: true,
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: "value",
type: 'value',
boundaryGap: [0, 0.01],
axisLine: {
lineStyle: {
color: "rgb(255, 255, 255)",
},
},
color: 'rgb(255, 255, 255)'
}
}
},
yAxis: {
type: "category",
type: 'category',
data: models,
axisLine: {
lineStyle: {
color: "rgb(255, 255, 255)",
},
},
color: 'rgb(255, 255, 255)'
}
}
},
color: colorList,
series: [
{
name: "绝热数",
type: "bar",
data: adiabat,
name: '绝热数',
type: 'bar',
data: adiabat
},
{
name: "装药数",
type: "bar",
data: charge,
name: '装药数',
type: 'bar',
data: charge
},
{
name: "总装数",
type: "bar",
data: assembly,
name: '总装数',
type: 'bar',
data: assembly
},
{
name: "交付数(地试数)",
type: "bar",
data: deliver,
name: '交付数(地试数)',
type: 'bar',
data: deliver
},
{
name: "评审数",
type: "bar",
data: review,
name: '评审数',
type: 'bar',
data: review
},
{
name: "结算数",
type: "bar",
data: settlement,
name: '结算数',
type: 'bar',
data: settlement
},
{
name: "生产数",
type: "bar",
data: productionNumber,
},
],
});
},
name: '生产数',
type: 'bar',
data: productionNumber
}
]
})
}
},
created() {
const month = new Date().getMonth() + 1;
const month = new Date().getMonth() + 1
if (month < 10) {
this.prodMonthlyPlan = `${new Date().getFullYear()}-0${month}`;
this.prodMonthlyPlan = `${new Date().getFullYear()}-0${month}`
} else {
this.prodMonthlyPlan = `${new Date().getFullYear()}-${month}`;
this.prodMonthlyPlan = `${new Date().getFullYear()}-${month}`
}
this.getData()
}
}
this.getData();
},
};
</script>
<style lang="scss" scoped>
@ -808,10 +809,12 @@ export default {
vertical-align: middle;
color: #fff;
background-color: transparent;
.el-range-input,
.el-range-separator {
color: #fff;
}
.el-range-editor.is-active {
border-color: #fff !important;
}

View File

@ -20,11 +20,13 @@
class="con_right"
:style="{ top: v.ordinate + '%', left: v.abscissa + '%' }"
>
<div class="con_title con_title_bg1">
<div class="con_title con_title_bg1" v-show="index == activedPointIndex">
<img src="./img/left1/icon.png" alt=""/>
<span style="margin-left: 2px">Ⅰ级{{ v.pointName }}</span>
</div>
<div class="com_img" @click="handleItem(v)">
<div class="com_img" @click="handleItem(v)" @mouseover.stop="activedPointIndex=index"
@mouseleave="activedPointIndex=-1"
>
<img src="./img/left1/icon1.png" alt=""/>
</div>
</div>
@ -33,11 +35,13 @@
class="con_right con_two"
:style="{ top: v.ordinate + '%', left: v.abscissa + '%' }"
>
<div class="con_title con_title_bg2">
<div class="con_title con_title_bg2" v-show="index == activedPointIndex">
<img src="./img/left1/icon.png" alt=""/>
<span style="margin-left: 2px">Ⅱ级{{ v.pointName }}</span>
</div>
<div class="com_img" @click="handleItem(v)">
<div class="com_img" @click="handleItem(v)" @mouseover.stop="activedPointIndex=index"
@mouseleave="activedPointIndex=-1"
>
<img src="./img/left1/icon2.png" alt=""/>
</div>
</div>
@ -46,11 +50,13 @@
class="con_right con_three"
:style="{ top: v.ordinate + '%', left: v.abscissa + '%' }"
>
<div class="con_title con_title_bg3">
<div class="con_title con_title_bg3" v-show="index == activedPointIndex">
<img src="./img/left1/icon.png" alt=""/>
<span style="margin-left: 2px">Ⅲ级{{ v.pointName }}</span>
</div>
<div class="com_img" @click="handleItem(v)">
<div class="com_img" @click="handleItem(v)" @mouseover.stop="activedPointIndex=index"
@mouseleave="activedPointIndex=-1"
>
<img src="./img/left1/icon3.png" alt=""/>
</div>
</div>
@ -84,8 +90,8 @@
</div>
<div class="box">
<i
>{{ getItem(pointLevelCount, "Ⅰ级").COUNTNUMBER }}/{{
getItem(sourceLevelCount, "一级").COUNTNUMBER
>{{ getItem(pointLevelCount, 'Ⅰ级').COUNTNUMBER }}/{{
getItem(sourceLevelCount, '一级').COUNTNUMBER
}}</i
><span class="num2"></span>
</div>
@ -96,8 +102,8 @@
</div>
<div class="box">
<i
>{{ getItem(pointLevelCount, "Ⅱ级").COUNTNUMBER }}/{{
getItem(sourceLevelCount, "二级").COUNTNUMBER
>{{ getItem(pointLevelCount, 'Ⅱ级').COUNTNUMBER }}/{{
getItem(sourceLevelCount, '二级').COUNTNUMBER
}}</i
><span class="num2"></span>
</div>
@ -108,8 +114,8 @@
</div>
<div class="box">
<i
>{{ getItem(pointLevelCount, "Ⅲ级").COUNTNUMBER }}/{{
getItem(sourceLevelCount, "三级").COUNTNUMBER
>{{ getItem(pointLevelCount, 'Ⅲ级').COUNTNUMBER }}/{{
getItem(sourceLevelCount, '三级').COUNTNUMBER
}}</i
><span class="num2"></span>
</div>
@ -117,7 +123,7 @@
<div class="data-item">
<div><span style="font-weight: bold">四级重大危险源</span></div>
<div class="box">
<i>{{ getItem(sourceLevelCount, "四级").COUNTNUMBER }}</i
<i>{{ getItem(sourceLevelCount, '四级').COUNTNUMBER }}</i
><span class="num2"></span>
</div>
</div>
@ -127,73 +133,76 @@
</template>
<script>
import container100 from "../components/container3/index.vue";
import rocketTit from "../components/rocketTit/index.vue";
import progressBar from "./../components/progress/index.vue";
import container100 from '../components/container3/index.vue'
import rocketTit from '../components/rocketTit/index.vue'
import progressBar from './../components/progress/index.vue'
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from '../../dashboard/mixins/resize'
import echarts from "echarts";
require("echarts/theme/macarons"); // echarts theme
import resize from "../../dashboard/mixins/resize";
export default {
mixins: [resize],
name: "left1",
name: 'left1',
components: {
container100,
rocketTit,
progressBar,
progressBar
},
data() {
return {
pic: "",
pic: '',
activedPointIndex: -1,
pointLevelCount: [
{
name: "Ⅰ级",
COUNTNUMBER: 0,
name: 'Ⅰ级',
COUNTNUMBER: 0
},
{
name: "Ⅱ级",
COUNTNUMBER: 0,
name: 'Ⅱ级',
COUNTNUMBER: 0
},
{
name: "Ⅲ级",
COUNTNUMBER: 0,
},
name: 'Ⅲ级',
COUNTNUMBER: 0
}
],
sourceLevelCount: [
{
name: "二级",
COUNTNUMBER: 0,
name: '二级',
COUNTNUMBER: 0
},
{
name: "三级",
COUNTNUMBER: 0,
name: '三级',
COUNTNUMBER: 0
},
{
name: "四级",
COUNTNUMBER: 0,
name: '四级',
COUNTNUMBER: 0
},
{
name: "一级",
COUNTNUMBER: 0,
},
name: '一级',
COUNTNUMBER: 0
}
],
points: [],
};
points: []
}
},
mounted() {
this.$nextTick(() => {
this.getData();
this.getData()
// this.initChart3()
});
})
},
methods: {
handleItem(item) {
this.$bus.emit("getTarget", item);
this.$bus.emit('getTarget', item)
},
getItem(list, name) {
return list.find((item) => {
return item.name === name;
});
return item.name === name
})
// for (let index = 0; index < list.length; index++) {
// const item = list[index];
// console.log(item.name + "---" + name + "---" + (name == item.name));
@ -205,51 +214,53 @@ export default {
},
getData() {
this.request({
url: "/hx/securityManagement/dangerousMap",
method: "get",
url: '/hx/securityManagement/dangerousMap',
method: 'get'
}).then((res) => {
if (200 == res.code) {
// console.log(res.data);
if (res.data.pointLevelCount) {
this.pointLevelCount = res.data.pointLevelCount;
this.pointLevelCount = res.data.pointLevelCount
}
if (res.data.sourceLevelCount) {
this.sourceLevelCount = res.data.sourceLevelCount;
this.sourceLevelCount = res.data.sourceLevelCount
}
if (res.data.points) {
this.points = res.data.points;
this.points = res.data.points
}
}
});
})
this.request({
url: "/hx/bigPic/getByType",
method: "get",
params: { type: 1 },
url: '/hx/bigPic/getByType',
method: 'get',
params: { type: 1 }
}).then((res) => {
if (200 == res.code) {
this.pic = res.data.pic;
this.pic = res.data.pic
}
})
}
});
},
},
beforeDestroy() {
//销毁监听事件
this.$bus.off("getTarget");
},
};
this.$bus.off('getTarget')
}
}
</script>
<style lang="scss" scoped>
.tit {
padding: 16px 24px;
}
.img {
position: absolute;
top: 0;
left: 0;
z-index: -1;
}
.data {
display: flex;
justify-content: flex-end;
@ -257,6 +268,7 @@ export default {
background: rgba(2, 18, 63, 0.33);
color: #ffffff;
font-size: 18px;
.data-item {
// flex: 1;
margin-left: 15px;
@ -264,10 +276,12 @@ export default {
display: flex;
flex-direction: column;
align-items: flex-start;
> div {
margin: 5px 0;
text-align: center;
font-size: 16px;
img {
// width: 10px;
// height: 10px;
@ -275,15 +289,18 @@ export default {
margin-right: 5px;
}
}
.box {
font-size: 26px;
font-family: Roboto-BlackItalic, Roboto;
font-weight: 600;
color: #55c5a2;
}
.num {
font-size: 14px;
}
.num2 {
font-size: 16px;
margin-left: 5px;
@ -294,10 +311,12 @@ export default {
.container3 {
position: relative;
.con_right {
&:hover {
z-index: 10;
}
width: 138px;
position: absolute;
top: 41%;
@ -308,41 +327,53 @@ export default {
justify-content: center;
align-items: center;
cursor: pointer;
.con_title {
width: 100%;
height: 42px;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: -100%;
z-index: 99999;
img {
width: 18px;
height: 18px;
margin-right: 3px;
}
}
.con_title_bg1 {
background: url("./img/left1/1.png") no-repeat;
}
.con_title_bg2 {
background: url("./img/left1/2.png") no-repeat;
}
.con_title_bg3 {
background: url("./img/left1/3.png") no-repeat;
}
.com_img {
margin-top: 5px;
width: 40px;
height: 40px;
img {
width: 100%;
height: 100%;
}
}
}
.con_two {
top: 37%;
left: 13%;
}
.con_three {
top: 70%;
right: 16%;

View File

@ -17,7 +17,7 @@
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="8">部门</el-col>
<el-col style="text-align: center" :span="12"
>作业内容(周危险)</el-col
@ -35,7 +35,9 @@
<ul class="item">
<li v-for="(item, index) in scrollList1" :key="index">
<el-row style="font-size: 14px">
<!-- <el-col style="text-align: center" :span="4">{{ item.id }}</el-col> -->
<el-col style="text-align: center" :span="4">{{
index + 1
}}</el-col>
<el-col
style="text-align: center"
:title="item.deptName"
@ -63,7 +65,7 @@
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="8">部门</el-col>
<el-col style="text-align: center" :span="12"
>作业内容(月重点)</el-col
@ -81,9 +83,9 @@
<ul class="item">
<li v-for="(item, index) in scrollList2" :key="index">
<el-row style="font-size: 14px">
<!-- <el-col style="text-align: center" :span="4">{{
item.id
}}</el-col> -->
<el-col style="text-align: center" :span="4">{{
index + 1
}}</el-col>
<el-col
style="text-align: center"
:title="item.deptName"

View File

@ -66,7 +66,7 @@
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="7">危险点</el-col>
<el-col style="text-align: center" :span="7">危险级别</el-col>
<el-col style="text-align: center" :span="7">运行状态</el-col>
@ -83,9 +83,9 @@
<ul class="item">
<li v-for="(item, index) in points" :key="index">
<el-row>
<!-- <el-col style="text-align: center" :span="3">{{
item.id
}}</el-col> -->
<el-col style="text-align: center" :span="3">{{
index + 1
}}</el-col>
<el-col
style="text-align: center"
:title="item.pointName"

View File

@ -3,29 +3,93 @@
<el-row :gutter="20">
<!--用户数据-->
<el-col :span="24" :xs="24">
<!-- <el-row :gutter="10" class="mb8">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
</el-row> -->
</el-row>
<el-table v-loading="loading" :data="userList">
<el-table-column label="序号" align="center" type="index" width="80"/>
<el-table-column label="图片" align="center" prop="bigPic" width="100">
<el-table-column
label="序号"
align="center"
type="index"
width="80"
/>
<el-table-column
label="图片"
align="center"
prop="bigPic"
width="100"
>
<template slot-scope="scope">
<el-image style="width: 100px; height: 100px" :src="scope.row.bigPic" fit="cover"></el-image>
<el-image
style="width: 100px; height: 100px"
:src="scope.row.bigPic"
fit="cover"
></el-image>
</template>
</el-table-column>
<el-table-column label="年份" align="center" prop="year" width="100" />
<el-table-column label="收入(万)" align="center" prop="completedIncome" width="100" />
<el-table-column label="目标收入(万)" align="center" prop="targetIncome" />
<el-table-column label="利润(万)" align="center" prop="completedProfit" />
<el-table-column label="目标利润(万)" align="center" prop="targetProfit" />
<el-table-column label="装药量(万件)" align="center" prop="completedChargeQuantity" />
<el-table-column label="目标装药量(万件)" align="center" prop="targetChargeQuantity" />
<el-table-column label="交付数量(万" align="center" prop="completedDeliveryQuantity" />
<el-table-column label="目标交付数量(万件)" align="center" prop="targetDeliveryQuantity" />
<el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
<el-table-column
label="年份"
align="center"
prop="year"
width="100"
/>
<el-table-column
label="收入(万)"
align="center"
prop="completedIncome"
width="100"
/>
<el-table-column
label="目标收入(万)"
align="center"
prop="targetIncome"
/>
<el-table-column
label="利润(万)"
align="center"
prop="completedProfit"
/>
<el-table-column
label="目标利润(万)"
align="center"
prop="targetProfit"
/>
<el-table-column
label="装药量(万件)"
align="center"
prop="completedChargeQuantity"
/>
<el-table-column
label="目标装药量(万件)"
align="center"
prop="targetChargeQuantity"
/>
<el-table-column
label="交付数量(万件)"
align="center"
prop="completedDeliveryQuantity"
/>
<el-table-column
label="目标交付数量(万件)"
align="center"
prop="targetDeliveryQuantity"
/>
<el-table-column
label="操作"
align="center"
width="160"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
@ -59,19 +123,26 @@
</el-row>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="40%" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="60%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="收入" prop="completedIncome">
<el-input v-model="form.completedIncome" placeholder="请输入收入" maxlength="30">
<el-input
v-model="form.completedIncome"
placeholder="请输入收入"
maxlength="30"
>
<template slot="append">万</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="目标收入" prop="targetIncome">
<el-input v-model="form.targetIncome" placeholder="请输入目标收入">
<el-input
v-model="form.targetIncome"
placeholder="请输入目标收入"
>
<template slot="append">万</template>
</el-input>
</el-form-item>
@ -87,7 +158,10 @@
</el-col>
<el-col :span="12">
<el-form-item label="目标利润" prop="targetProfit">
<el-input v-model="form.targetProfit" placeholder="请输入目标利润">
<el-input
v-model="form.targetProfit"
placeholder="请输入目标利润"
>
<template slot="append">万</template>
</el-input>
</el-form-item>
@ -96,14 +170,20 @@
<el-row>
<el-col :span="12">
<el-form-item label="装药量" prop="completedChargeQuantity">
<el-input v-model="form.completedChargeQuantity" placeholder="请输入装药量">
<el-input
v-model="form.completedChargeQuantity"
placeholder="请输入装药量"
>
<template slot="append">万件</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="目标装药量" prop="targetChargeQuantity">
<el-input v-model="form.targetChargeQuantity" placeholder="请输入目标装药量">
<el-input
v-model="form.targetChargeQuantity"
placeholder="请输入目标装药量"
>
<template slot="append">万件</template>
</el-input>
</el-form-item>
@ -112,14 +192,20 @@
<el-row>
<el-col :span="12">
<el-form-item label="交付数量" prop="completedDeliveryQuantity">
<el-input v-model="form.completedDeliveryQuantity" placeholder="请输入交付数量">
<el-input
v-model="form.completedDeliveryQuantity"
placeholder="请输入交付数量"
>
<template slot="append">万件</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="目标交付数量" prop="targetDeliveryQuantity">
<el-input v-model="form.targetDeliveryQuantity" placeholder="请输入目标交付数量">
<el-input
v-model="form.targetDeliveryQuantity"
placeholder="请输入目标交付数量"
>
<template slot="append">万件</template>
</el-input>
</el-form-item>
@ -128,13 +214,22 @@
<el-row>
<el-col :span="12">
<el-form-item label="目标年份" prop="year">
<el-date-picker v-model="form.year" type="year" value-format="yyyy" placeholder="选择年">
<el-date-picker
v-model="form.year"
type="year"
value-format="yyyy"
placeholder="选择年"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="图片" prop="bigPic">
<ImageUpload v-model="form.bigPic" :isShowTip="false" :limit="1" />
<ImageUpload
v-model="form.bigPic"
:isShowTip="false"
:limit="1"
/>
</el-form-item>
</el-col>
</el-row>
@ -148,8 +243,8 @@
</template>
<script>
import { centerOneList, updateAnnualTarget } from './indexApi'
import { getToken } from '@/utils/auth'
import { addAnnualTarget, centerOneList, updateAnnualTarget } from "./indexApi";
import { getToken } from "@/utils/auth";
export default {
data() {
@ -161,7 +256,7 @@ export default {
// 用户表格数据
userList: null,
// 弹出层标题
title: '',
title: "",
// 是否显示弹出层
open: false,
// 表单参数
@ -173,36 +268,54 @@ export default {
},
// 表单校验
rules: {
completedIncome: [{ required: true, message: '收入不能为空', trigger: 'blur' }],
targetIncome: [{ required: true, message: '目标收入不能为空', trigger: 'blur' }],
completedProfit: [{ required: true, message: '利润不能为空', trigger: 'blur' }],
targetProfit: [{ required: true, message: '目标利润不能为空', trigger: 'blur' }],
completedChargeQuantity: [{ required: true, message: '装药量不能为空', trigger: 'blur' }],
targetChargeQuantity: [{ required: true, message: '目标装药量不能为空', trigger: 'blur' }],
completedDeliveryQuantity: [{ required: true, message: '交付数量不能为空', trigger: 'blur' }],
targetDeliveryQuantity: [{ required: true, message: '目标交付数量不能为空', trigger: 'blur' }],
year: [{ required: true, message: '请选择目标年份', trigger: 'change' }],
bigPic: [{ required: true, message: '请上传', trigger: 'change' }],
completedIncome: [
{ required: true, message: "收入不能为空", trigger: "blur" },
],
targetIncome: [
{ required: true, message: "目标收入不能为空", trigger: "blur" },
],
completedProfit: [
{ required: true, message: "利润不能为空", trigger: "blur" },
],
targetProfit: [
{ required: true, message: "目标利润不能为空", trigger: "blur" },
],
completedChargeQuantity: [
{ required: true, message: "装药量不能为空", trigger: "blur" },
],
targetChargeQuantity: [
{ required: true, message: "目标装药量不能为空", trigger: "blur" },
],
completedDeliveryQuantity: [
{ required: true, message: "交付数量不能为空", trigger: "blur" },
],
targetDeliveryQuantity: [
{ required: true, message: "目标交付数量不能为空", trigger: "blur" },
],
year: [
{ required: true, message: "请选择目标年份", trigger: "change" },
],
bigPic: [{ required: true, message: "请上传", trigger: "change" }],
},
}
};
},
created() {
this.getList()
this.getList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true
centerOneList(this.queryParams).then(response => {
this.userList = response.rows
this.total = response.total
this.loading = false
})
this.loading = true;
centerOneList(this.queryParams).then((response) => {
this.userList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false
this.reset()
this.open = false;
this.reset();
},
// 表单重置
reset() {
@ -218,56 +331,56 @@ export default {
completedDeliveryQuantity: undefined,
targetDeliveryQuantity: undefined,
year: undefined,
}
this.resetForm('form')
};
this.resetForm("form");
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = '添加'
this.reset();
this.open = true;
this.title = "添加";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
this.form = Object.assign({}, row)
this.open = true
this.title = '修改全年目标'
this.reset();
this.form = Object.assign({}, row);
this.open = true;
this.title = "修改全年目标";
},
/** 提交按钮 */
submitForm: function () {
this.$refs['form'].validate(valid => {
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != undefined) {
updateAnnualTarget(this.form).then(response => {
this.$modal.msgSuccess('修改成功')
this.open = false
this.getList()
})
updateAnnualTarget(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addUser(this.form).then(response => {
this.$modal.msgSuccess('新增成功')
this.open = false
this.getList()
})
addAnnualTarget(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
})
});
},
/** 删除按钮操作 */
handleDelete(row) {
const userIds = row.userId || this.ids
const userIds = row.userId || this.ids;
this.$modal
.confirm('是否确认删除编号为"' + userIds + '"的数据项?')
.then(function () {
return delUser(userIds)
return delUser(userIds);
})
.then(() => {
this.getList()
this.$modal.msgSuccess('删除成功')
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {})
.catch(() => {});
},
},
}
};
</script>

View File

@ -1,134 +1,143 @@
import request from '@/utils/request'
import request from "@/utils/request";
/** --------------- left1 --------------- */
// 经营责任书列表
export function leftOneList(params) {
return request({
url: '/hx/businessResponsibility/list',
url: "/hx/businessResponsibility/list",
params,
})
});
}
// 导出模板
export function importTemplate() {
return request({
url: '/hx/businessResponsibility/importTemplate',
})
url: "/hx/businessResponsibility/importTemplate",
});
}
/** --------------- left2 --------------- */
// 收入和利润列表
export function leftTwoList(params) {
return request({
url: '/hx/revenueProfit/list',
url: "/hx/revenueProfit/list",
params,
})
});
}
// 导出模板
export function leftTwoImportTemplate() {
return request({
url: '/hx/revenueProfit/importTemplate',
})
url: "/hx/revenueProfit/importTemplate",
});
}
/** --------------- center1 --------------- */
// 全年目标和大图列表
export function centerOneList(params) {
return request({
url: '/hx/annualTarget/list',
url: "/hx/annualTarget/list",
params,
})
});
}
// 修改全年目标和大图
export function updateAnnualTarget(data) {
return request({
url: '/hx/annualTarget',
method: 'put',
url: "/hx/annualTarget",
method: "put",
data,
})
});
}
// 新增全年目标和大图
export function addAnnualTarget(data) {
return request({
url: "/hx/annualTarget",
method: "post",
data,
});
}
/** --------------- center2 --------------- */
// 今日动态列表
export function centerTwoList(params) {
return request({
url: '/hx/todayDynamic/list',
url: "/hx/todayDynamic/list",
params,
})
});
}
// 导出模板
export function centerTwoImportTemplate() {
return request({
url: '/hx/todayDynamic/importTemplate',
})
url: "/hx/todayDynamic/importTemplate",
});
}
/** --------------- center3 --------------- */
// 本月动态列表
export function centerThreeList(params) {
return request({
url: '/business/hxMonthDynamic/list',
url: "/business/hxMonthDynamic/list",
params,
})
});
}
// 导出模板
export function centerThreeImportTemplate() {
return request({
url: '/business/hxMonthDynamic/importTemplate',
})
url: "/business/hxMonthDynamic/importTemplate",
});
}
/** --------------- right1 --------------- */
// 生产责任令
export function rightOneList(params) {
return request({
url: '/hx/productionResponsibility/list',
url: "/hx/productionResponsibility/list",
params,
})
});
}
// 导出模板
export function rightOneImportTemplate() {
return request({
url: '/hx/productionResponsibility/importTemplate',
})
url: "/hx/productionResponsibility/importTemplate",
});
}
/** --------------- right2 --------------- */
// 交付产品完成概况
export function rightTwoList(params) {
return request({
url: '/hx/productCompletion/list',
url: "/hx/productCompletion/list",
params,
})
});
}
// 导出模板
export function rightTwoImportTemplate() {
return request({
url: '/hx/productCompletion/importTemplate',
})
url: "/hx/productCompletion/importTemplate",
});
}
// 删除交付产品完成概况
export function rightTwoDel(params) {
return request({
url: '/hx/productCompletion',
method: 'delete',
url: "/hx/productCompletion",
method: "delete",
params,
})
});
}
/** --------------- right3 --------------- */
// 装药量列表
export function rightThreeList(params) {
return request({
url: '/hx/chargeQuantity/list',
url: "/hx/chargeQuantity/list",
params,
})
});
}
// 新增装药量
export function rightThreeAdd(data) {
return request({
url: '/hx/chargeQuantity',
method: 'post',
url: "/hx/chargeQuantity",
method: "post",
data,
})
});
}
// 修改装药量
export function rightThreeUpdate(data) {
return request({
url: '/hx/chargeQuantity',
method: 'put',
url: "/hx/chargeQuantity",
method: "put",
data,
})
});
}

View File

@ -118,6 +118,7 @@ export default {
},
/** 删除按钮操作 */
handleDelete(row) {
console.log(row);
this.$modal
.confirm('是否确认删除编号为"' + row.id + '"的数据项?')
.then(function () {