diff --git a/src/api/quality/qcTable.js b/src/api/quality/qcTable.js index f9d8c6d..5e99d05 100644 --- a/src/api/quality/qcTable.js +++ b/src/api/quality/qcTable.js @@ -207,4 +207,93 @@ export function getTableCPKList(query) { method: 'get', params: query }); -} \ No newline at end of file +} + +//白坯质量报表头部 +export function getMonthOfDateTitle(query) { + return request({ + url: '/quality/staticTable/getMonthOfDateTitle', + method: 'get', + params: query + }); +} + +export function getMonthOfData(query) { + return request({ + url: '/quality/staticTable/getMonthOfData', + method: 'get', + params: query + }); +} + +export function getMonthOfLine(query) { + return request({ + url: '/quality/staticTable/getMonthOfLine', + method: 'get', + params: query + }); +} + +export function getMonthOfDataRework(query) { + return request({ + url: '/quality/staticTable/getMonthOfDataRework', + method: 'get', + params: query + }); +} + +export function getMonthOfLineRework(query) { + return request({ + url: '/quality/staticTable/getMonthOfLineRework', + method: 'get', + params: query + }); +} + +export function getMonthOfDataDefect(query) { + return request({ + url: '/quality/staticTable/getMonthOfDataDefect', + method: 'get', + params: query + }); +} + +export function getDefectItemTitle(query) { + return request({ + url: '/quality/staticTable/getDefectItemTitle', + method: 'get', + params: query + }); +} + +export function getDefectItemData(query) { + return request({ + url: '/quality/staticTable/getDefectItemData', + method: 'get', + params: query + }); +} + +export function getDefectItemLine(query) { + return request({ + url: '/quality/staticTable/getDefectItemLine', + method: 'get', + params: query + }); +} + +export function getDefectItemDataPC(query) { + return request({ + url: '/quality/staticTable/getDefectItemDataPC', + method: 'get', + params: query + }); +} + +export function getDefectItemLinePC(query) { + return request({ + url: '/quality/staticTable/getDefectItemLinePC', + method: 'get', + params: query + }); +} diff --git a/src/views/kanban/quality/kanban1.vue b/src/views/kanban/quality/kanban1.vue index ebf2b2d..3437a80 100644 --- a/src/views/kanban/quality/kanban1.vue +++ b/src/views/kanban/quality/kanban1.vue @@ -144,12 +144,13 @@ top: 28px; font-size: 5px; " - v-model="ymdArray" + v-model="ymdArray1" type="daterange" range-separator="至" start-placeholder="开始日期" value-format="yyyy-MM-dd" end-placeholder="结束日期" + @change="noOkTimeChange" > @@ -173,7 +174,7 @@ {{ n.projectName }}
- {{ n.checkManName }} {{ n.checkTime }} + {{ n.checkManName }} {{ n.checkTime }}|{{ n.className }}|{{ n.defectSubclass }}
@@ -193,12 +194,13 @@ top: 28px; font-size: 5px; " - v-model="ymdArray" + v-model="ymdArray2" type="daterange" range-separator="至" start-placeholder="开始日期" value-format="yyyy-MM-dd" end-placeholder="结束日期" + @change="noOkRadioTimeChange" > @@ -220,7 +222,7 @@
-
本年各日产品异常趋势
+
本月每日线体异常趋势
产品不合格率同期对比
-
@@ -311,9 +312,12 @@ export default { yearShow: false, monthShow: true, dateShow: false, - ymdArray: [], - ymdStart: null, - ymdEnd: null, + ymdArray1: [], + ymdStart1: null, + ymdEnd1: null, + ymdArray2: [], + ymdStart2: null, + ymdEnd2: null, }; }, created() { @@ -333,17 +337,17 @@ export default { getDate() { let start = this.Fungetdate(0); let end = this.Fungetdate(0); - this.ymdArray.push(start, end); + this.ymdArray1.push(start, end); + this.ymdArray2.push(start, end); this.optionDatalist1 = []; this.optionDatalist2 = []; this.optionDatalist3 = []; this.optionDatalist4 = []; - this.ymdStart = moment(this.ymdArray[0]).format("YYYY-MM-DD"); - this.ymdEnd = moment(this.ymdArray[1]).format("YYYY-MM-DD"); - this.getdatalist( - moment(this.ymdArray[0]).format("YYYY-MM-DD"), - moment(this.ymdArray[1]).format("YYYY-MM-DD") - ); + this.ymdStart1 = moment(this.ymdArray1[0]).format("YYYY-MM-DD"); + this.ymdEnd1 = moment(this.ymdArray1[1]).format("YYYY-MM-DD"); + this.ymdStart2 = moment(this.ymdArray2[0]).format("YYYY-MM-DD"); + this.ymdEnd2 = moment(this.ymdArray2[1]).format("YYYY-MM-DD"); + this.getdatalist(); this.initChart1(); }, @@ -381,11 +385,12 @@ export default { getDeviceRefreshTime() { const _this = this; getDeviceRefreshTime().then((response) => { + if (response.data) { // console.log(response.data) this.RefreshTime = response.data; this.time1 = setInterval(() => { - _this.getdatalist(_this.ymdStart, _this.ymdEnd); + _this.getdatalist(); _this.initChart1(); }, 1000 * 60 * this.RefreshTime); } @@ -409,6 +414,45 @@ export default { // } // }); // }, + noOkTimeChange(){ + this.ymdStart1 = moment(this.ymdArray1[0]).format("YYYY-MM-DD"); + this.ymdEnd1 = moment(this.ymdArray1[1]).format("YYYY-MM-DD"); + //质量异常信息 + getProduceNoOkList({ + typeCode: "produce", + ymdType: this.selectxtclasses, + productDateStart: this.ymdStart1, + productDateEnd: this.ymdEnd1, + factoryCode: "ds_" + this.selectxt, + }).then((response) => { + if (response) { + this.Qualitylist = response; + } + }); + }, + noOkRadioTimeChange(){ + this.ymdStart2 = moment(this.ymdArray2[0]).format("YYYY-MM-DD"); + this.ymdEnd2 = moment(this.ymdArray2[1]).format("YYYY-MM-DD"); + //不良类型占比 + getCheckProjectsPie({ + typeCode: "produce", + ymdType: this.selectxtclasses, + productDateStart: this.ymdStart2, + productDateEnd: this.ymdEnd2, + factoryCode: "ds_" + this.selectxt, + }).then((response) => { + if (response) { + this.optionDatalist2 = []; + response.forEach((item) => { + let a = {}; + a.name = item.projectName; + a.value = item.quality; + this.optionDatalist2.push(a); + }); + this.initChart3(); + } + }); + }, getdatalist() { const _this = this; @@ -428,8 +472,8 @@ export default { getProduceNoOkList({ typeCode: "produce", ymdType: _this.selectxtclasses, - productDateStart: this.ymdStart, - productDateEnd: this.ymdEnd, + productDateStart: this.ymdStart1, + productDateEnd: this.ymdEnd1, factoryCode: "ds_" + _this.selectxt, }).then((response) => { if (response) { @@ -440,8 +484,8 @@ export default { getCheckProjectsPie({ typeCode: "produce", ymdType: _this.selectxtclasses, - productDateStart: this.ymdStart, - productDateEnd: this.ymdEnd, + productDateStart: this.ymdStart2, + productDateEnd: this.ymdEnd2, factoryCode: "ds_" + _this.selectxt, }).then((response) => { if (response) { @@ -549,7 +593,7 @@ export default { position: "right", distance: 10, // show: true, - }, + } }, data: [], // value鍊� tooltip: { @@ -662,6 +706,10 @@ export default { tooltip: { show: true, trigger: "item", + formatter: function(params) { + const value = parseInt(params.value) || params.value; + return `${params.seriesName}
${params.name}: ${value} PC`; + } }, legend: { show: true, @@ -802,7 +850,7 @@ export default { crossStyle: { color: "#999", }, - }, + } }, legend: { show: true, @@ -906,9 +954,9 @@ export default { ], series: [ { - name: "不合格比例", + name: "去年不合格率(%)", type: "line", - stack: "总量", + stack: "无", symbol: "circle", symbolSize: 8, yAxisIndex: 1, @@ -921,17 +969,17 @@ export default { }, }, }, - label: { - show: true, // 开启显示 - position: "top", // 显示位置,可以是'top', 'bottom', 'left', 'right'等 - formatter: "{c}", // {c} 表示系列中的当前数据值 - }, + //label: { + // show: true, // 开启显示 + // position: "top", // 显示位置,可以是'top', 'bottom', 'left', 'right'等 + // formatter: "{c}", // {c} 表示系列中的当前数据值 + //}, data: [], }, { - name: "本年", + name: "本年不合格率(%)", type: "line", - stack: "总量", + stack: "无", symbol: "circle", symbolSize: 8, yAxisIndex: 1, @@ -944,12 +992,25 @@ export default { }, }, }, + //label: { + // show: true, // 开启显示 + // position: "bottom", // 显示位置,可以是'top', 'bottom', 'left', 'right'等 + // formatter: "{c}", // {c} 表示系列中的当前数据值 + //}, data: [], }, { - name: "上年", + name: "去年不合格数量(PC)", data: [], type: "bar", + label: { // 在柱顶显示数值 + show: true, + position: 'top', // 位置在柱顶 + formatter: function(params) {// 显示数据值 + const value = parseInt(params.value) || params.value; + return `${value} PC`; + } + }, showBackground: true, backgroundStyle: { color: "rgba(180, 180, 180, 0.2)", @@ -965,9 +1026,17 @@ export default { }, }, { - name: "不合格数量", + name: "本年不合格数量(PC)", data: [], type: "bar", + label: { // 在柱顶显示数值 + show: true, + position: 'top', // 位置在柱顶 + formatter: function(params) {// 显示数据值 + const value = parseInt(params.value) || params.value; + return `${value} PC`; + } + }, showBackground: true, backgroundStyle: { color: "rgba(180, 180, 180, 0.2)", @@ -1001,8 +1070,10 @@ export default { let max4 = Math.max(...seriesdata4) + 5; let legenddata = []; - legenddata.push("上年"); - legenddata.push("本年"); + legenddata.push("去年不合格数量(PC)"); + legenddata.push("本年不合格数量(PC)"); + legenddata.push("去年不合格率(%)"); + legenddata.push("本年不合格率(%)"); let yAxismax1 = 0; let yAxismax2 = 0; if (max1 > max2) { @@ -1508,6 +1579,7 @@ export default { //提示框组件。开发实际中去掉了指针,提示框可以不用设置。 tooltip: { trigger: "item", + formatter: "{a}
{b} : {c}PC" }, grid: { top: "60", @@ -1520,7 +1592,7 @@ export default { rich: { a: { color: "#FFFFFF", - width: 30, + width: 70, fontSize: 13, }, b: { @@ -1542,7 +1614,7 @@ export default { var index; for (var i = 0, l = data.length; i < l; i++) { if (data[i].name == name) { - target = data[i].value; + target = data[i].value+"PC"; title = data[i].label; index = i < 6 ? i : 5; } @@ -1633,16 +1705,19 @@ export default { radius: ["44%", "63%"], center: ["50%", "40%"], roseType: "radius", - // itemStyle: { - // normal: { - // color: function (params) { - // return colorList[params.dataIndex] - // } - // } - // }, + //label: { + // formatter: function(params) { + // // params 包含数据项信息 + // return `${params.name}: ${params.value}PC (${params.percent}%)`; + // } + //}, label: { show: false, }, + tooltip: { + trigger: 'item', // 触发类型,饼图使用'item' + formatter: '{b}: {c}PC ({d}%)' // 默认格式 + }, emphasis: { label: { show: false, diff --git a/src/views/quality/report/bpDefect/index.vue b/src/views/quality/report/bpDefect/index.vue new file mode 100644 index 0000000..48d6ef4 --- /dev/null +++ b/src/views/quality/report/bpDefect/index.vue @@ -0,0 +1,211 @@ + + + diff --git a/src/views/quality/report/bpDefectItem/index.vue b/src/views/quality/report/bpDefectItem/index.vue new file mode 100644 index 0000000..abf5451 --- /dev/null +++ b/src/views/quality/report/bpDefectItem/index.vue @@ -0,0 +1,342 @@ + + + + \ No newline at end of file diff --git a/src/views/quality/report/bpDefectItemPC/index.vue b/src/views/quality/report/bpDefectItemPC/index.vue new file mode 100644 index 0000000..a256178 --- /dev/null +++ b/src/views/quality/report/bpDefectItemPC/index.vue @@ -0,0 +1,342 @@ + + + + \ No newline at end of file diff --git a/src/views/quality/report/bpNookRate/index.vue b/src/views/quality/report/bpNookRate/index.vue new file mode 100644 index 0000000..2c1f9b6 --- /dev/null +++ b/src/views/quality/report/bpNookRate/index.vue @@ -0,0 +1,358 @@ + + + diff --git a/src/views/quality/report/bpReworkRate/index.vue b/src/views/quality/report/bpReworkRate/index.vue new file mode 100644 index 0000000..e6df143 --- /dev/null +++ b/src/views/quality/report/bpReworkRate/index.vue @@ -0,0 +1,358 @@ + + +