|
@@ -1,10 +1,21 @@
|
|
|
#set(title="样机变更报表")
|
|
|
#@header()
|
|
|
+<style>
|
|
|
+ .bg{padding: 0px 15px 15px 15px;background-color: white;}
|
|
|
+ .items{padding: 8px;border-bottom: 1px solid #e9ebed;color: #545555}
|
|
|
+ .s1{padding-right: 10px}
|
|
|
+ .bh{color: #2D93CA;padding-left: 15px}
|
|
|
+</style>
|
|
|
<body>
|
|
|
<div id="app" v-cloak>
|
|
|
<el-form :inline="true" label-width="auto">
|
|
|
- <el-form-item label="实验名称">
|
|
|
- <el-input placeholder="请输入实验名称" v-model="param.item_test_name" clearable />
|
|
|
+ <el-form-item label="产品线选择">
|
|
|
+ <el-select placeholder="请选择" v-model="param.item_pro">
|
|
|
+ <el-option v-for="(item,index) in prouname" :key="index" :value="item.ITEM_DIC_PROUNAME" :label="item.ITEM_DIC_PROUNAME"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="样机选择" style="cursor: pointer">
|
|
|
+ <el-select placeholder="请选择" v-model="param.item_name" @click.native="show()" readonly></el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="时间范围">
|
|
|
<el-date-picker
|
|
@@ -23,18 +34,46 @@
|
|
|
<div style="float:right;">耗时: {{param.time}}</div>
|
|
|
</el-form>
|
|
|
<div id="echart" class="bar"></div>
|
|
|
- <el-dialog title="数据查询与统计" width="87%" :visible.sync="dialogVisible" top="2%" append-to-body>
|
|
|
- <el-table :data="tableData" style="width: 100%;">
|
|
|
- <el-table-column prop="ITEM_WT_NUM" label="委托单号"></el-table-column>
|
|
|
- <el-table-column prop="ITEM_TEST_NAME" align="center" label="试验名称"></el-table-column>
|
|
|
- <el-table-column prop="ITEM_PRO_NUM" align="center" label="样机型号"></el-table-column>
|
|
|
- <el-table-column prop="ITEM_PRO_TYPE" align="center" label="产品线"></el-table-column>
|
|
|
- <el-table-column prop="ITEM_SJ_VALUE" align="center" label="设计参数"></el-table-column>
|
|
|
- <el-table-column prop="ITEM_VALUE" align="center" label="结果值"></el-table-column>
|
|
|
- <el-table-column prop="ITEM_REMARKS" align="center" label="备注"></el-table-column>
|
|
|
- <el-table-column prop="CREATED" align="center" label="创建时间"></el-table-column>
|
|
|
+ <!--样机选择-->
|
|
|
+ <el-dialog title="样机选择" width="87%" :visible.sync="dialogVisible2" top="2%" append-to-body>
|
|
|
+ <el-form :inline="true" label-width="auto" style="margin-top: -20px">
|
|
|
+ <el-form-item label="实验名称">
|
|
|
+ <el-input placeholder="请输入实验名称" v-model="param.item_test_name" clearable/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="实验名称">
|
|
|
+ <el-input placeholder="请输入实验名称" v-model="param.item_test_name" clearable/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="实验名称">
|
|
|
+ <el-input placeholder="请输入实验名称" v-model="param.item_test_name" clearable/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" icon="el-icon-search" @click="search()">搜索</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <el-table :data="tableData" style="width: 100%;" @row-click="select">
|
|
|
+ <el-table-column prop="ITEM_NAME" label="样机名称"></el-table-column>
|
|
|
+ <el-table-column prop="ITEM_XL_NUM" align="center" label="序列号"></el-table-column>
|
|
|
+ <el-table-column prop="ITEM_VERSION" align="center" label="版本号"></el-table-column>
|
|
|
</el-table>
|
|
|
</el-dialog>
|
|
|
+ <!--查看记录-->
|
|
|
+ <el-dialog :title="param.title" width="87%" :visible.sync="dialogVisible" top="2%" append-to-body>
|
|
|
+ <el-divider>变更记录</el-divider>
|
|
|
+ <div class="bg">
|
|
|
+ <div v-for="(item, index) in change_list" :key="index" class="items">
|
|
|
+ <div>
|
|
|
+ <span>{{item.ITEM_VERSION}}:</span>
|
|
|
+ <span class="s1">{{item.NAME}}</span>
|
|
|
+ <span class="s1">{{item.ITEM_PKY}}</span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <span>{{item.ITEM_VERSION}}:</span>
|
|
|
+ <span class="s1">{{item.NAME}}</span>
|
|
|
+ {{item.ITEM_PKY}}:{{item.ITEM_NAME}} <span class="s1 bh">变更值</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</body>
|
|
|
<script src="#(path)/static/js/jquery.min.js"></script>
|
|
@@ -45,51 +84,98 @@
|
|
|
<script src="#(path)/static/js/element-ui.js"></script>
|
|
|
<script>
|
|
|
let myChart = null;
|
|
|
+ let data = [];
|
|
|
let vm = new Vue({
|
|
|
el: "#app",
|
|
|
data: {
|
|
|
dialogVisible: false,
|
|
|
- tableData: [],
|
|
|
+ dialogVisible2: false,
|
|
|
+ change_list: [],
|
|
|
param: {
|
|
|
DOMAINID: '#(DOMAINID)',
|
|
|
ID: '#(ID)',
|
|
|
value: ['#(value)'],
|
|
|
begin: '#(begin)',
|
|
|
end: '#(end)',
|
|
|
- created: ['#(begin)', '#(end)'],
|
|
|
- }
|
|
|
+ created: []
|
|
|
+ },
|
|
|
+ tableData: [],
|
|
|
+ prouname: #(prouname),
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.getData();
|
|
|
+ // this.getData();
|
|
|
myChart = echarts.init(document.getElementById('echart'));
|
|
|
myChart.on('click', function (params) {
|
|
|
+ vm.change_list = data.filter(item => item.day == params.name)[0].list;
|
|
|
vm.dialogVisible = true;
|
|
|
+ vm.param.title = params.name;
|
|
|
+ console.log("asd:" + vm.change_list.length);
|
|
|
+ })
|
|
|
+ sendAjax("#(path)/report/prou", this.param, res => {
|
|
|
+ cancelLoding();
|
|
|
+ vm.tableData = res.data;
|
|
|
})
|
|
|
},
|
|
|
methods: {
|
|
|
handleChange(value) {
|
|
|
this.param.ID = value[value.length - 1]
|
|
|
},
|
|
|
+ show() {
|
|
|
+ vm.dialogVisible2 = true;
|
|
|
+ },
|
|
|
+ select(row){
|
|
|
+ vm.param.item_name=row.ITEM_NAME;
|
|
|
+ vm.dialogVisible2=false;
|
|
|
+ console.log(JSON.stringify(row));
|
|
|
+ },
|
|
|
search() {
|
|
|
- this.param.begin = this.param.created[0];
|
|
|
- this.param.end = this.param.created[1];
|
|
|
this.getData();
|
|
|
},
|
|
|
getData() {
|
|
|
- sendAjax("#(path)/report/data", this.param, res => {
|
|
|
+ sendAjax("#(path)/report/change", this.param, res => {
|
|
|
cancelLoding();
|
|
|
- vm.tableData = res.data;
|
|
|
- vm.initEcharts(res.data);
|
|
|
+ let list = [];
|
|
|
+ data = [];
|
|
|
vm.param.time = res.time;
|
|
|
- vm.tableData = res.data;
|
|
|
+ let day = new Set();
|
|
|
+ res.data.forEach(item => {
|
|
|
+ item.ITEM_TLOG = JSON.parse(item.ITEM_TLOG);
|
|
|
+ item.ITEM_TLOG.forEach(it => {
|
|
|
+ if (it.DAY != '原记录') {
|
|
|
+ list.push({
|
|
|
+ ITEM_VERSION: item.ITEM_VERSION,
|
|
|
+ NAME: item.NAME,
|
|
|
+ ITEM_PKY: item.ITEM_PKY,
|
|
|
+ DAY: it.DAY.substring(0, 10),
|
|
|
+ ITEM_NAME: it.ITEM_NAME
|
|
|
+ });
|
|
|
+ day.add(it.DAY.substring(0, 10));
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ Array.from(day).forEach(item => {
|
|
|
+ data.push({day: item, list: list.filter(i => i.DAY == item)});
|
|
|
+ })
|
|
|
+ //按日期排序
|
|
|
+ data.sort((a, b) => new Date(a.day).getTime() - new Date(b.day).getTime());
|
|
|
+ //时间范围
|
|
|
+ if (this.param.created[0]) {
|
|
|
+ this.param.begin = this.param.created[0];
|
|
|
+ this.param.end = this.param.created[1];
|
|
|
+ data = data.filter(item => {
|
|
|
+ return Date.parse(vm.param.created[0]) <= Date.parse(item.day) && Date.parse(item.day) <= Date.parse(vm.param.created[1]);
|
|
|
+ });
|
|
|
+ this.$forceUpdate();
|
|
|
+ }
|
|
|
+ vm.initEcharts();
|
|
|
})
|
|
|
},
|
|
|
- initEcharts(data) {
|
|
|
+ initEcharts() {
|
|
|
let legend = [];
|
|
|
let series = [];
|
|
|
data.forEach(item => {
|
|
|
- legend.push(item.ITEM_TEST_NAME);
|
|
|
- series.push(item.ITEM_VALUE);
|
|
|
+ legend.push(item.day);
|
|
|
+ series.push(item.list.length);
|
|
|
});
|
|
|
let option = {
|
|
|
title: {
|