From 7264eb37b4332ae414ed1bb7a2bad22a5e27ddb2 Mon Sep 17 00:00:00 2001 From: XiaoRuby <3114200645@qq.com> Date: 星期六, 26 八月 2023 16:11:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/api/inspection/commisioninspection.js | 2 src/views/experiment/reportAuditing/index.vue | 26 + src/views/chart/work/index.vue | 82 +++-- src/views/experiment/inspectionApplication/index.vue | 185 +++++++++---- src/views/standardLibrary/index.vue | 70 ++++ src/api/standardLibrary.js | 18 + src/components/experiment/checkTheReport/index.vue | 126 +++++++++ src/layout/components/Navbar.vue | 2 src/router/index.js | 1 src/views/inspectionManagement/commissionInspection/addCommision.vue | 31 + src/utils/request.js | 1 .env.development | 2 src/main.js | 1 package.json | 1 src/views/experiment/checkTheReport/index.vue | 50 +++ src/views/experiment/inspectionApplication/Viewdetails/index.vue | 177 ++---------- src/api/experiment/planAssignments.js | 26 + src/views/inspectionManagement/commissionInspection/index.vue | 2 18 files changed, 545 insertions(+), 258 deletions(-) diff --git a/.env.development b/.env.development index ab9be2d..d00c942 100644 --- a/.env.development +++ b/.env.development @@ -2,4 +2,4 @@ ENV = 'development' # base api -VUE_APP_BASE_API = 'http://localhost:1234/' +VUE_APP_BASE_API = 'http://192.168.110.107:1234/' diff --git a/package.json b/package.json index 048f7b0..0b19172 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "nprogress": "0.2.0", "path-to-regexp": "2.4.0", "postcss-pxtorem": "^5.1.1", + "print-js": "^1.6.0", "vue": "2.6.10", "vue-clipboard2": "^0.3.3", "vue-router": "3.0.6", diff --git a/src/api/experiment/planAssignments.js b/src/api/experiment/planAssignments.js index bd94754..e2bae08 100644 --- a/src/api/experiment/planAssignments.js +++ b/src/api/experiment/planAssignments.js @@ -30,4 +30,28 @@ method: 'post', data }) -} \ No newline at end of file +} +//妫�楠屽崟璇︽儏 +export function selectInspectsListById(params){ + return request({ + url: '/inspection/selectInspectsListById', + method: 'get', + params + }) +} +//閫夋嫨璐d换椤圭洰妫�楠屼汉 +export function selectUser(params){ + return request({ + url: '/inspection/selectUser', + method: 'get', + params + }) +} +// 濮旀墭妫�楠屽垪琛� +export function getCommisionList(params) { + return request({ + url: '/link-basic-table/page', + method: 'get', + params + }) +} diff --git a/src/api/inspection/commisioninspection.js b/src/api/inspection/commisioninspection.js index 982a2f0..275a65b 100644 --- a/src/api/inspection/commisioninspection.js +++ b/src/api/inspection/commisioninspection.js @@ -25,7 +25,7 @@ }) } - +//瑙勬牸鍨嬪彿 export function getModelSpecification(params){ return request({ url: '/link-basic/specification', diff --git a/src/api/standardLibrary.js b/src/api/standardLibrary.js index 09b57f9..2eb0e96 100644 --- a/src/api/standardLibrary.js +++ b/src/api/standardLibrary.js @@ -7,6 +7,24 @@ }) } +//鑾峰彇鎵�鏈夌増鏈� +export function getVersion(params){ + return request({ + url: '/product/chooseVersion', + method: 'get', + params + }) +} + +//娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰 +export function addVersion(params){ + return request({ + url: '/product/addVersion', + method: 'post', + params + }) +} + // 鑾峰彇鎵�鏈夐」鐩� export function getProductList(params) { return request({ diff --git a/src/components/experiment/checkTheReport/index.vue b/src/components/experiment/checkTheReport/index.vue new file mode 100644 index 0000000..72f4c28 --- /dev/null +++ b/src/components/experiment/checkTheReport/index.vue @@ -0,0 +1,126 @@ +<template> + <div class="preview-main"> + <div class="logo"> + <img :src="logoSrc" /> + </div> + <div class="center"> + <h1>鍘熸潗鏂欐娴嬫姤鍛�</h1> + <table> + <tr> + <td>鏉愭枡鍚嶇О</td> + <td colspan="5"></td> + </tr> + <tr> + <td>瑙勬牸鍨嬪彿</td> + <td colspan="2"></td> + <td>鏉愭枡鍘傚</td> + <td colspan="2"></td> + </tr> + <tr> + <td>鏉愭枡鎵瑰彿</td> + <td colspan="2"></td> + <td>妫�娴嬬紪鍙�</td> + <td colspan="2"></td> + </tr> + <tr> + <td>妫�娴嬩緷鎹�</td> + <td colspan="2"></td> + <td>妫�娴嬬被鍒�</td> + <td colspan="2"></td> + </tr> + <tr> + <td>搴忓彿</td> + <td>妫�楠岄」鐩�</td> + <td>鍗曚綅</td> + <td>鏍囧噯瑕佹眰</td> + <td>妫�娴嬬粨鏋�</td> + <td>鍗曢」鍒ゆ柇</td> + </tr> + <tr v-for="item in 15" :key="item"> + <td>{{item}}</td> + <td></td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td colspan="6">妫�楠岀粨璁猴細</td> + </tr> + <tr> + <td colspan="6"> + 娉細鈥溾垰鈥濊〃绀鸿椤圭洰鍚堟牸锛屸�溍椻�濊〃绀鸿椤圭洰涓嶅悎鏍尖�溾�斺�濊〃绀鸿椤圭洰涓嶈姹傛娴嬨�� + </td> + </tr> + </table> + <el-row class="date-group" :gutter="20"> + <el-col :span="8">妫�娴嬨�佹棩鏈燂細<span>2023-08-25</span></el-col> + <el-col :span="8">瀹℃牳銆佹棩鏈燂細<span>2023-08-25</span></el-col> + <el-col :span="8">鎵瑰噯銆佹棩鏈燂細<span>2023-08-25</span></el-col> + </el-row> + <p class="footer"> + <span>缂栧彿:</span><span>ZTT/ICSRCP18-003</span> + <span> 鍙戣鏃ユ湡:</span><span>2023-08-25</span> + <span> 鍙戣閮ㄩ棬:</span><span>璐ㄩ噺閮�</span> + <span> 淇濆瓨鏈熼檺:</span><span>闀挎湡</span> + </p> + </div> + </div> +</template> +<script> +export default({ + data() { + return { + logoSrc : require("@/assets/404_images/logo.png"), + } + } +}) +</script> +<style scoped lang="scss"> + .preview-main{ + margin: 0; + padding: 0; + width:90%; + margin-left: 5%; + .logo{ + img{ + width: 150px; + height: 60px; + } + } + .center{ + width: 100%; + h1{ + width:100%; + font-family: "寰蒋闆呴粦" !important; + text-align: center; + } + table{ + width:100%; + height:100vh; + border-collapse: collapse; + font-size: 18px; + } + table,tr,th,td{ + border: 2px solid black; + } + tr,td,th{ + padding: 15px 20px; + } + .date-group .el-col{ + text-align: center; + padding: 50px 0px; + font-size: 18px; + } + .footer{ + margin: 0; + padding: 0; + width:90%; + margin-left: 5%; + color: gray; + text-align: center; + margin-top: 250px; + } + } + } +</style> diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 3876bf3..dd146bb 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -24,7 +24,7 @@ </el-dropdown-item> </el-dropdown-menu> </el-dropdown> - <el-dialog title="淇敼瀵嗙爜" :visible.sync="dialogFormVisible" :append-to-body="true"> + <el-dialog title="淇敼瀵嗙爜" :visible.sync="dialogFormVisible" :append-to-body="true" width="40%"> <el-form :model="form"> <el-form-item label="鏃у瘑鐮�" :label-width="formLabelWidth"> <el-input v-model="form.oldPwd" autocomplete="off"></el-input> diff --git a/src/main.js b/src/main.js index 1eda87c..d578a57 100644 --- a/src/main.js +++ b/src/main.js @@ -20,6 +20,7 @@ import echarts from 'echarts' Vue.prototype.$echarts = echarts +import print from 'print-js' import '@/icons' // icon import '@/permission' // permission control diff --git a/src/router/index.js b/src/router/index.js index 25cd92c..6e2fc1e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -437,7 +437,6 @@ { path: 'message', name: 'Message', - // hidden: true, component: () => import('@/views/message/message/index'), // meta: { title: '鎴戠殑娑堟伅', icon: 'table' } }, diff --git a/src/utils/request.js b/src/utils/request.js index 2b822e9..13d605c 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -48,7 +48,6 @@ // if the custom code is not 20000, it is judged as an error. if (res.code !== 200) { - console.log(res.message || 'Error') // Message({ // message: res.message || 'Error', // type: 'error', diff --git a/src/views/chart/work/index.vue b/src/views/chart/work/index.vue index e04f144..46e1da2 100644 --- a/src/views/chart/work/index.vue +++ b/src/views/chart/work/index.vue @@ -90,12 +90,7 @@ }, } }, - mounted(){ - // this.initLeaderStatiChart(""); - this.initLeaderTimelyChart("leaderTimely"); - this.initTesterStatiChart("testerStati"); - this.initTesterTimelyChart("testerTimely"); - }, + mounted(){}, methods: { async queryData(){ let date = this.formInline.date; @@ -182,7 +177,7 @@ series: [ { name: '宸插畬鎴�', - barWidth: '20%', + barWidth: '30%', type: 'bar', stack: 'one', emphasis: emphasisStyle, @@ -207,22 +202,25 @@ option && myChart.setOption(option); }, initTesterStatiChart(id,executeMater){ - console.log("qqq----",executeMater); var chartDom = document.getElementById(id); var myChart = echarts.init(chartDom); window.addEventListener('resize', function() { myChart.resize(); }); var option; - + let max = 0; let xAxisData = []; let data1 = []; let data2 = []; - // for(let i=0;i<executeMater.length;i++){ - // xAxisData.push(executeMater[i].name); - // data1.push(executeMater[i].finsh); - // data2.push(executeMater[i].unfinsh); - // } + for(let i=0;i<executeMater.length;i++){ + xAxisData.push(executeMater[i].name); + data1.push(executeMater[i].finsh); + data2.push(executeMater[i].unfinsh); + let sum = executeMater[i].finsh + executeMater[i].unfinsh; + if(sum > max){ + max = sum; + } + } var emphasisStyle = { itemStyle: { shadowBlur: 10, @@ -244,8 +242,8 @@ }, yAxis: { min: 0, - max: 60, - interval: 10, + max: max, + interval: 1, }, grid: { bottom: 100 @@ -255,6 +253,7 @@ name: '鏁版嵁1', type: 'bar', stack: 'one', + barWidth: '30%', emphasis: emphasisStyle, data: data1, itemStyle:{ @@ -265,6 +264,7 @@ name: '鏁版嵁2', type: 'bar', stack: 'one', + barWidth: '30%', emphasis: emphasisStyle, data: data2, itemStyle:{ @@ -282,6 +282,18 @@ myChart.resize(); }); var option; + let xAxisData = []; + let data1 = []; + let data2 = []; + let yAxisData1 = 0; + for(let i=0;i<dutyTimely.length;i++){ + xAxisData.push(dutyTimely[i].name); + data1.push(dutyTimely[i].total); + data2.push(dutyTimely[i].timely); + if(dutyTimely[i].total > yAxisData1){ + yAxisData1 = dutyTimely[i].total; + } + } option = { tooltip: { trigger: 'axis', @@ -299,13 +311,10 @@ { name: '濮撳悕', type: 'category', - data: ['娌愮',], + data: xAxisData, axisPointer: { type: 'shadow' }, - itemStyle: { - top: '20px' - } } ], yAxis: [ @@ -313,7 +322,7 @@ type: 'value', name: '鏁伴噺', min: 0, - max: 10, + max: yAxisData1, interval: 1, axisLabel: { formatter: '{value}' @@ -334,13 +343,13 @@ { name: '鏍峰搧鏁�', type: 'bar', - barWidth: '20%', + barWidth: '30%', tooltip: { valueFormatter: function (value) { return value; } }, - data: [4.0], + data: data1, itemStyle: { color: '#9fceff' } @@ -348,19 +357,19 @@ { name: '瀹屾垚鍙婃椂鐜�', type: 'line', + yAxisIndex: 1, tooltip: { valueFormatter: function (value) { return value + ' %'; } }, - data: [7.5], + data: [{value:20},{value:40}], itemStyle: { color: '#d2eec5' } }, ] }; - option && myChart.setOption(option); }, initTesterTimelyChart(id,executeTimely){ @@ -370,6 +379,18 @@ myChart.resize(); }); var option; + let xAxisData = []; + let data1 = []; + let data2 = []; + let yAxisData1 = 0; + for(let i=0;i<executeTimely.length;i++){ + xAxisData.push(executeTimely[i].name); + data1.push(executeTimely[i].total); + data2.push(executeTimely[i].timely); + if(executeTimely[i].total > yAxisData1){ + yAxisData1 = executeTimely[i].total; + } + } option = { tooltip: { trigger: 'axis', @@ -387,7 +408,7 @@ xAxis: [ { type: 'category', - data: ["","",""], + data: xAxisData, axisPointer: { type: 'shadow' } @@ -398,8 +419,8 @@ type: 'value', name: '', min: 0, - max: 50, - interval: 5, + max: yAxisData1, + interval: 1, axisLabel: { formatter: '{value}' } @@ -419,12 +440,13 @@ { name: '椤圭洰鏁�', type: 'bar', + barWidth: '30%', tooltip: { valueFormatter: function (value) { return value ; } }, - data: [2.0, 4.9, 7.0], + data: data1, itemStyle: { color: '#5087ec' } @@ -438,7 +460,7 @@ return value + ' %'; } }, - data: [2.0, 2.2, 3.3], + data: data2, itemStyle: { color: '#68bbc4' } diff --git a/src/views/experiment/checkTheReport/index.vue b/src/views/experiment/checkTheReport/index.vue index a127c10..171ca9d 100644 --- a/src/views/experiment/checkTheReport/index.vue +++ b/src/views/experiment/checkTheReport/index.vue @@ -51,6 +51,18 @@ > </div> </div> + <el-dialog + top="10vh" + title="鎶ュ憡棰勮" + :visible.sync="dialogVisible" + width="60%"> + <span slot="footer" class="dialog-footer"> + <el-button type="primary" size="small" @click="printFun()">鎵撳嵃</el-button> + </span> + <div class="printStyle"> + <preview id="printDiv"></preview> + </div> + </el-dialog> <div class="table-box"> <el-table ref="reportTable" @@ -143,10 +155,9 @@ <el-button type="text" size="small" - @click="handleClick(scope.row)" - >棰勮</el-button + @click="previewFun(scope.row)" + >鏌ョ湅鎶ュ憡</el-button > - <el-button type="text" size="small">鎵撳嵃</el-button> </template> </el-table-column> </el-table> @@ -169,6 +180,8 @@ <script> import { selectAllReport } from "@/api/experiment/checkTheReport"; +import Preview from "@/components/experiment/checkTheReport/index.vue"; +import PrintJS from 'print-js' export default { data() { return { @@ -183,12 +196,33 @@ total: 0, pageSize: 10, checked: true, + dialogVisible: false, }; }, created() { this.getData(); }, + mounted(){ + // this.dialogVisible = true; + }, + components:{ + Preview + }, methods: { + //棰勮鎸夐挳 + previewFun(){ + this.dialogVisible = true; + }, + //鎵撳嵃鎸夐挳 + printFun(){ + PrintJS({ + printable: "printDiv", + type: "html", + // header: "鍘熸潗鏂欐娴嬫姤鍛�", + targetStyles: ["*"], + ignoreElements: ["no-ignore"], + }); + }, // 鐘舵�佹寜閽� handleRadioChange() { this.getData(); @@ -227,6 +261,7 @@ }; const { data } = await selectAllReport(params); this.reportTable = data.row; + console.log(data.row); this.total = data.total; }, }, @@ -280,5 +315,14 @@ margin: 10px 0; } } + .printStyle{ + overflow: scroll; + height:600px; + .el-button{ + position: absolute; + top: 10vh; + left: 90%; + } + } } </style> diff --git a/src/views/experiment/inspectionApplication/Viewdetails/index.vue b/src/views/experiment/inspectionApplication/Viewdetails/index.vue index dd8a167..e61c489 100644 --- a/src/views/experiment/inspectionApplication/Viewdetails/index.vue +++ b/src/views/experiment/inspectionApplication/Viewdetails/index.vue @@ -12,7 +12,7 @@ <el-form ref="form" :model="searchData" label-width="80px"> <el-col :span="6"> <el-form-item label="鏉ユ枡鏃ユ湡:" > - <el-input :disabled="true" v-model="searchData.from_time"></el-input> + <el-input :disabled="true" v-model="searchData.formTime"></el-input> </el-form-item> </el-col> @@ -23,7 +23,7 @@ </el-col> <el-col :span="6"> <el-form-item label="浜у搧缂栧彿:"> - <el-input :disabled="true" v-model="searchData.mcode"></el-input> + <el-input :disabled="true" v-model="searchData.code"></el-input> </el-form-item> </el-col> </el-form> @@ -60,7 +60,7 @@ <el-col :span="6"> <el-form-item label="鐧昏鏃ユ湡:"> - <el-input :disabled="true" v-model="searchData.end_time"></el-input> + <el-input :disabled="true" v-model="searchData.endTime"></el-input> </el-form-item> </el-col> @@ -86,7 +86,7 @@ <div> <el-card style="margin: 10px;"> <el-table - :data="tableData" + :data="insProducts" border style="width: 100%"> <el-table-column @@ -95,52 +95,37 @@ width="50"> </el-table-column> <el-table-column - prop="date" + prop="name" label="椤圭洰" width="180"> </el-table-column> <el-table-column - prop="name" + prop="unit" label="鍗曚綅" width="180"> </el-table-column> <el-table-column - prop="kk" + prop="internal" label="鏍囧噯鍊�"> </el-table-column> <el-table-column - prop="zz" + prop="required" label="鍐呮帶鍊�"> </el-table-column> - <el-table-column - prop="oo" - wight="200" - label="缁忛獙浜�"> - <template> - <el-select v-model="value" placeholder="榛勬檽鏄�"> - <el-option - v-for="item in cities" - :key="item.value" - :label="item.label" - :value="item.value"> - <span style="float: left">{{ item.label }}</span> - <span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span> - </el-option> + <el-table-column prop="userName" label="缁忛獙浜�"> + <template slot-scope="scope"> + <el-select v-model="value" size="small" slot="append" style="width: 220px;"> + <el-option v-for="item in ZERENren" :key="item.id" :label="item.name" :value="item.name"></el-option> </el-select> </template> </el-table-column> <el-table-column - prop="pp" + prop="inspectionMaterialId" label="瀹為獙璁惧"> <template> - <el-select v-model="value" placeholder="鎷夊姏鏈�"> - <el-option - v-for="item in cities" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> + <!-- <el-select v-model="scope.row.checker" size="small" slot="append" style="width: 260px;"> + <el-option v-for="item in checkeroptions" :key="item.value" :label="item.label">{{ item.label }}</el-option> + </el-select> --> </template> </el-table-column> </el-table> @@ -151,126 +136,38 @@ </div> </template> <script> - import { selectInspectsList, selectAll, addInspect} from '@/api/experiment/planAssignments' + import { selectInspectsListById,selectUser} from '@/api/experiment/planAssignments' export default { data(){ return { - searchData:{ - from_time:'', - supplier:'', - mcode:'', - name:'', - specifications:'', - unit:'', - num:'', - userName:'', - end_time:'', - - }, - value:{}, - cities:[{ - value: 'Beijing', - label: '榛勫皬鏄�' - }, { - value: 'Shanghai', - label: '榛勫皬鏄�' - }, { - }], - tableData:[{ - date: '瀵肩嚎', - name: 'mm', - kk:'30.0', - zz:'30.0', - oo:'榛勬檽鏄�', - pp:'鎷夊姏鏈�', - },{ - date: '瀵肩嚎', - name: 'mm', - kk:'30.0', - zz:'30.0', - oo:'榛勬檽鏄�', - pp:'鎷夊姏鏈�', - },{ - date: '瀵肩嚎', - name: 'mm', - kk:'30.0', - zz:'30.0', - oo:'榛勬檽鏄�', - pp:'鎷夊姏鏈�', - },{ - date: '瀵肩嚎', - name: 'mm', - kk:'30.0', - zz:'30.0', - oo:'榛勬檽鏄�', - pp:'鎷夊姏鏈�', - },{ - date: '瀵肩嚎', - name: 'mm', - kk:'30.0', - zz:'30.0', - oo:'榛勬檽鏄�', - pp:'鎷夊姏鏈�', - }], - currentPage:1, - pageSize:8, - id:'' + searchData:{ }, + insProducts:[], + uu:'', + value:'' } }, created(){ - console.log(this.$route.query.icode); - this.id = this.$route.query.icode; - this.selectInspectsList() + this.uu = this.$route.query.id; + this.selectInspectsListById() + this.selectUser() }, methods: { - async goback(){ - + //杩斿洖 + async goback(){ this.$router.push({name:'inspectionApplication'}) }, - async selectInspectsList() { - - // 鑾峰彇鍒嗛〉鍒楄〃 - const res = await selectInspectsList({ countSize: this.pageSize, pageSize: this.currentPage ,message:this.id}) - // this.inspectionTable = data - console.log(res) - - // res.data.forEach((item) => { - // var formTime = item["DATE_FORMAT(`form_time`,'%Y-%m-%d')"] - // var startTime = item["DATE_FORMAT(i"]["`start_time`,'%Y-%m-%d')"] - // var endTime = item["DATE_FORMAT(i"]["`end_time`,'%Y-%m-%d')"] - // var checkdate = startTime + '~' + endTime - // var createTime = item["DATE_FORMAT(i"]["`create_time`,'%Y-%m-%d')"] - // item['formTime'] = formTime // 鏉ユ枡鏃ユ湡 - // item['checkdate'] = checkdate // 妫�楠屾棩鏈� - // item['createTime'] = createTime // 鐧昏鏃ユ湡 - // }) - this.searchData.mcode = res.data.row[0].mcode - this.searchData.supplier = res.data.row[0].supplier - this.searchData.from_time = res.data.row[0]["DATE_FORMAT(`form_time`,'%Y-%m-%d')"] - this.searchData.name = res.data.row[0].name - this.searchData.specifications = res.data.row[0].specifications - this.searchData.unit = res.data.row[0].unit - this.searchData.num = res.data.row[0].num - this.searchData.end_time = res.data.row[0]["DATE_FORMAT(i"]["`end_time`,'%Y-%m-%d')"] - this.searchData.userName = res.data.row[0].userName - - - - - const data = res.data.row - data.forEach((item) => { - var formTime = item["DATE_FORMAT(`form_time`,'%Y-%m-%d')"] - var startTime = item["DATE_FORMAT(i"]["`start_time`,'%Y-%m-%d')"] - var endTime = item["DATE_FORMAT(i"]["`end_time`,'%Y-%m-%d')"] - var checkdate = startTime + '~' + endTime - var createTime = item["DATE_FORMAT(i"]["`create_time`,'%Y-%m-%d')"] - item['formTime'] = formTime // 鏉ユ枡鏃ユ湡 - item['checkdate'] = checkdate // 妫�楠屾棩鏈� - item['createTime'] = createTime // 鐧昏鏃ユ湡 - }) - this.inspectionTable = data - this.total = res.data.total + //妫�楠屽崟璐d换浜� + async selectUser(){ + const res = await selectUser() + this.ZERENren = res.data + // console.log(this.ZERENren); }, + //妫�楠屽崟琛� + async selectInspectsListById() { + const res = await selectInspectsListById({id:this.uu}) + this.searchData = res.data + this.insProducts = res.data.insProducts + } } } </script> diff --git a/src/views/experiment/inspectionApplication/index.vue b/src/views/experiment/inspectionApplication/index.vue index a378d03..e53dd3a 100644 --- a/src/views/experiment/inspectionApplication/index.vue +++ b/src/views/experiment/inspectionApplication/index.vue @@ -82,7 +82,7 @@ label="妫�楠岀被鍨�" min-width="80px"> <template slot-scope="scope"> - <div v-if="scope.row.type === 0" ><span>鍘熸潗鏂欐楠�</span></div> + <div v-if="scope.row.type === 0" ><span >鍘熸潗鏂欐楠�</span></div> <div v-if="scope.row.type === 1" ><span>濮旀墭妫�楠�</span></div> <div v-if="scope.row.type === 2" ><span>鎴愬搧妫�楠�</span></div> </template> @@ -180,16 +180,17 @@ title="鏂板妫�楠屽崟" :visible.sync="checkTypeVisible" width="50%" + top="10vh" > <div class="check-box"> - <el-radio-group v-model="type" @change="handleRadioChange"> - <el-radio :label="0" border >鍘熸潗鏂欐楠�</el-radio> - <el-radio :label="1" border>濮旀墭妫�楠�</el-radio> - <el-radio :label="2" border>鎴愬搧妫�楠�</el-radio> + <el-radio-group v-model="type" @click.native="handleRadioChange"> + <el-radio :style="`background-color: ${type==0?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" :label="0" border>鍘熸潗鏂欐楠�</el-radio> + <el-radio :style="`background-color: ${type==1?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" :label="1" border>濮旀墭妫�楠�</el-radio> + <el-radio :style="`background-color: ${type==2?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" :label="2" border>鎴愬搧妫�楠�</el-radio> </el-radio-group> </div> - <div v-if="type === 0 || type === ''"> - <el-form :model="infoForm" ref="infoForm" class="checkTypeForm" label-position="top" label-width="200px" size="mini"> + <div v-if="type === 0"> + <el-form :model="infoForm" ref="infoForm" class="checkTypeForm" label-position="top" label-width="200px" size="medium"> <el-row :gutter="100"> <el-col :span="10"> <el-form-item label="鏉ユ枡鏃ユ湡锛�"> @@ -367,11 +368,86 @@ </div> <span slot="footer" class="dialog-footer"> <el-button @click="checkTypeVisible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="addInspection">纭� 瀹�</el-button> + <!-- <el-button type="primary" @click="addInspection">纭� 瀹�</el-button> --> + <el-button type="primary" @click="QUEding">纭� 瀹�</el-button> </span> </el-dialog> </div> </div> + + <!-- 纭畾璺宠浆鍩烘湰搴撳脊绐� --> + <el-dialog + title="鏍囧噯搴�" + :visible.sync="Standardframe" + width="48%" + + > + <!-- <el-form :model="form"> + <el-form-item label="璇烽�夋嫨瀹℃牳缁撴灉:" :label-width="formLabelWidth"> + </el-form-item> + </el-form> --> + + <!-- <div slot="footer" class="dialog-footer"> --> + <el-table + :data="tableData" + style="width: 100%; margin-bottom: 20px" + row-key="name" + border + height="calc(100vh - 250px)" + default-expand-all + ref="multipleTable" + :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" + > + <el-table-column type="selection" label="搴忓彿"> </el-table-column> + <el-table-column + type="index" + width="50px" + label="搴忓彿" + ></el-table-column> + <el-table-column label="椤圭洰鍚嶇О" sortable> + <template scope="scope"> + <el-tag + ><div + class="firstDiv" + :style="`color: ${ + scope.row.code == '[1]' ? '#16a7ff' : '#58c173' + }`" + > + {{ scope.row.code == "[1]" ? "01" : "02" }} + </div> + <span style="color: black">{{ scope.row.name }}</span></el-tag + > + </template> + </el-table-column> + <el-table-column + prop="unit" + label="鍗曚綅" + sortable + ></el-table-column> + <el-table-column label="鏍囧噯鍊�" sortable> + <template scope="scope"> + <el-input + v-if="scope.row.edit === true || scope.row.code === '[2]'" + @blur="requiredOnfocus(scope)" + v-model="scope.row.required" + placeholder="璇疯緭鍏ユ爣鍑嗗��" + ></el-input> + </template> + </el-table-column> + <el-table-column prop="internal" label="鍐呮帶鍊�" sortable> + <template scope="scope"> + <el-input + v-if="scope.row.edit === true || scope.row.code === '[2]'" + @blur="requiredOnfocus(scope)" + v-model="scope.row.internal" + placeholder="璇疯緭鍏ュ唴鎺у��" + ></el-input> + </template> + </el-table-column> + </el-table> + <!-- </div> --> + </el-dialog> + <!-- 鍘熸潗鏂欐楠屾ā鎬佹 --> <el-dialog title="鍘熸潗鏂欐楠�" @@ -491,7 +567,7 @@ /> <el-table-column prop="formTime" - label="鏉ユ枡鏃ユ湡" + label="濮旀墭bian'ha" min-width="10%" /> <el-table-column @@ -534,13 +610,12 @@ </template> <template v-else> <router-view /> - </template> </div> </template> <script> - import { selectInspectsList, selectAll, addInspect} from '@/api/experiment/planAssignments' + import { selectInspectsList, selectAll, addInspect,getCommisionList} from '@/api/experiment/planAssignments' export default { data() { return { @@ -588,7 +663,7 @@ amount: '', checkdate: [] }, - infoForm:'', + infoForm:{}, commisionSelection:{ entrust_coding: '', entrusted: '', @@ -629,10 +704,12 @@ pageSize: 8, // 姣忛〉鐨勬暟鎹潯鏁� radioValue: '鍏ㄩ儴', checkTypeVisible: false, - type: '', // 榛樿涓嶉�変腑鐨勭姸鎬� + type: 0, // 榛樿涓嶉�変腑鐨勭姸鎬� rawmaterialVisible: false, commisionVisible: false, - tmp: '' + tmp: '', + Standardframe: false, + tableData: [] } }, watch: { @@ -653,23 +730,20 @@ }, methods: { async handleClick(row){ - // console.log(item); - // const res = await ddd({goodId:id}) - // this.$message({ - // message: '鎭枩浣狅紝杩欐槸涓�鏉℃垚鍔熸秷鎭�', - // type: 'success' - // }); - - // console.log(res); this.inspectionTable = row; - console.log(row.icode); - this.icode = row.icode - this.$router.push({name:'Viewdetails',query: {icode:row.icode}}); + this.id = row.id + this.$router.push({name:'Viewdetails',query: {id:row.id}}); this.selectInspectsList() + }, + //濮旀墭妫�楠� + async getCommisionList() { + const res = await getCommisionList({pageNo:1,pageSize:10 }) + this.commisionTable = res.data + console.log(this.commisionTable); }, async selectInspectsList() { // 鑾峰彇鍒嗛〉鍒楄〃 - const res = await selectInspectsList({ countSize: this.pageSize, pageSize: this.currentPage,message:this.icode}) + const res = await selectInspectsList({ countSize: this.pageSize, pageSize: this.currentPage,message:this.id}) // this.inspectionTable = data // console.log(res.data.row) const data = res.data.row @@ -699,7 +773,6 @@ item['checkdate'] = checkdate // 妫�楠屾棩鏈� item['createTime'] = createTime // 鐧昏鏃ユ湡 }) - console.log('data:',data) this.inspectionTable = data if(this.searchData.type !== ''){ if(this.searchData.state !== ''){ @@ -742,33 +815,29 @@ this.infoForm = this.tmp this.rawmaterialVisible = false }, - async handleRadioChange(){ - if(this.type === 0){ - // 鍘熸潗鏂欐姤妫� - // this.rawmaterialVisible = true - // const res = await selectAll({type: this.type}) - // var data = res.data - // data.forEach((item)=>{ - // var checkdate = [] - // checkdate.push(item['createTime']) - // checkdate.push(item['updateTime']) - // item['checkdate'] = checkdate // 妫�楠屾棩鏈� - // }) - this.$router.push({ name: 'ReportForInspection' }); - }else if(this.type === 1){ - // this.commisionVisible = true - // const res = await selectAll({type: this.type}) - // var data = res.data - // data.forEach((item)=>{ - // var checkdate = [] - // checkdate.push(item['startTime']) - // checkdate.push(item['endTime']) - // item['checkdate_'] = item['startTime'] + '~' + item['endTime'] - // item['checkdate'] = checkdate // 妫�楠屾棩鏈� - // }) - // this.commisionTable = res.data - this.$router.push({ name: 'CommissionInspection' }); - } + handleRadioChange(){ + setTimeout(()=>{ + if(this.type === 0){ + // 鍘熸潗鏂欐姤妫� + this.rawmaterialVisible = true + selectAll({type: this.type}).then(res=>{ + var data = res.data + data.forEach((item)=>{ + var checkdate = [] + checkdate.push(item['createTime']) + checkdate.push(item['updateTime']) + item['checkdate'] = checkdate // 妫�楠屾棩鏈� + }) + this.rawMaterialTable = res.data + }) + // this.$router.push({ name: 'ReportForInspection' }); + }else if(this.type === 1){ + this.commisionVisible = true + getCommisionList({pageNo:1,pageSize:10}).then(res=>{ + this.commisionTable = res.data + }) + } + },100) }, // 鏂板妫�楠� async addInspection(){ @@ -811,7 +880,7 @@ type: this.type, unit: this.finishedTable.unit }) } - this.type = '' + this.type = 0 this.checkTypeVisible = false this.$message({ message: '娣诲姞鎴愬姛锛�', @@ -830,6 +899,10 @@ console.log(`褰撳墠椤�: ${val}`) this.currentPage = val this.selectInspectsList() + }, + //纭畾璺宠浆 + QUEding(){ + this.Standardframe = true } } } @@ -854,7 +927,7 @@ } height: auto; font-size: 22px !important; - padding: 20px 40px !important; + padding: 40px 50px !important; ::v-deep .el-radio__label{ font-size: 22px !important; padding-left: 0px !important; diff --git a/src/views/experiment/reportAuditing/index.vue b/src/views/experiment/reportAuditing/index.vue index 6c699b2..4386859 100644 --- a/src/views/experiment/reportAuditing/index.vue +++ b/src/views/experiment/reportAuditing/index.vue @@ -78,7 +78,7 @@ </span> </template></el-table-column > - <el-table-column + <el-table-columne prop="materialName" label="鏍峰搧鍚嶇О" min-width="10%" @@ -86,7 +86,7 @@ <el-table-column prop="status" label="瀹℃壒鐘舵��" min-width="8%" v-model="Auditconclusion"> <template slot-scope="scope"> <span> - <el-tag type="warning">{{ + <el-tag :color="scope.row.status == 0 ? '' : 'rgb(187, 237, 221)'" type="warning">{{ scope.row.status == 0 ? "寰呴�氳繃" : "閫氳繃" }}</el-tag> </span> @@ -109,7 +109,7 @@ title="鍘熷璁板綍瀹℃牳" :visible.sync="checkskipvisible" width="30%" - + > <el-form :model="form"> <el-form-item label="璇烽�夋嫨瀹℃牳缁撴灉:" :label-width="formLabelWidth"> @@ -153,7 +153,7 @@ reportTable: [], page: 1, total: 0, - pageSize: 10, + pageSize: 8, checkskipvisible: false, form:{}, // handleClose:{}, @@ -163,7 +163,7 @@ Auditconclusion:{}, tableRow: {}, - + }; }, created() { @@ -201,9 +201,13 @@ //閫氳繃 async checkskip(row) { console.log(this.tableRow); - this.reportTable[this.tableRow.$index].status=2 + this.reportTable[this.tableRow.$index].status=1 this.transmitData(this.tableRow.row.id) this.checkskipvisible= false + this.$message({ + message: '閫氳繃鎴愬姛', + type: 'success' + }); }, //涓嶉�氳繃 @@ -212,12 +216,16 @@ this.reportTable[this.tableRow.$index].status=0 this.transmitData(this.tableRow.row.id) this.checkskipvisible= false + this.$message({ + message: '寰呴�氳繃', + type: 'warning' + }); }, //瀹℃牳 - async transmitData(id) { - let param={"id":id,"result":1} - let data = await checkApi(param) + async transmitData(id) { + let param={"id":id,"result":2} + let data = await checkApi(param) }, // 鏌ヨ鍒楄〃 async getData() { diff --git a/src/views/inspectionManagement/commissionInspection/addCommision.vue b/src/views/inspectionManagement/commissionInspection/addCommision.vue index ace97d5..ce5d9d4 100644 --- a/src/views/inspectionManagement/commissionInspection/addCommision.vue +++ b/src/views/inspectionManagement/commissionInspection/addCommision.vue @@ -22,7 +22,9 @@ :data="detectionInfo" style="width: 100%;margin-bottom: 20px;"> <el-table-column type="index" label="搴忓彿" min-width="10%" /> <el-table-column prop="sampleNumber" label="鏍峰搧缂栧彿" min-width="8%" /> + <el-table-column prop="sampleName" label="鏍峰搧鍚嶇О" min-width="10%" /> + <el-table-column prop="specificationsModels" label="瑙勬牸鍨嬪彿" min-width="10%" /> <el-table-column prop="unit" label="鍗曚綅" min-width="8%" /> <el-table-column prop="samplesNumber" label="鏁伴噺" min-width="8%" /> @@ -165,6 +167,14 @@ </el-row> <el-row :gutter="50"> <el-col :span="11"> + <el-form-item label="璇勫畾鏍囧噯锛�"> + <el-select v-model="addPointerForm.addway" size="small" placeholder="璇烽�夋嫨璇勫畾鏍囧噯"> + <el-option v-for="options in model_spe_options" :value="options.value" + :key="options.key">{{ options.value }}</el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="11"> <el-form-item label="瑙勬牸鍨嬪彿锛�"> <el-select v-model="addPointerForm.specificationsModels" size="small" placeholder="璇峰厛閫夋嫨鏍峰搧鍚嶇О"> <el-option v-for="options in model_spe_options" :value="options.value" @@ -172,31 +182,35 @@ </el-select> </el-form-item> </el-col> + + </el-row> + <el-row :gutter="50"> + <el-col :span="11"> <el-form-item label="鏍峰搧鍗曚綅锛�"> <el-input type="text" v-model="addPointerForm.unit" placeholder="璇疯緭鍏ュ崟浣�" autocomplete="off" /> </el-form-item> </el-col> - </el-row> - <el-row :gutter="50"> + <el-col :span="11"> <el-form-item label="鏍峰搧鏁伴噺锛�"> <el-input type="text" v-model="addPointerForm.samplesNumber" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" /> </el-form-item> </el-col> - <el-col :span="11"> - <el-form-item label="澶囨敞锛�"> - <el-input type="text" v-model="addPointerForm.remarks" placeholder="璇疯緭鍏ュ娉�" autocomplete="off" /> - </el-form-item> - </el-col> + </el-row> <el-row :gutter="50"> - <el-col :span="10"> + <el-col :span="9"> <el-form-item label="娣诲姞椤圭洰锛�"> <el-checkbox-group v-model="addPointerForm.experiment" style="display: flex; flex-direction: column;"> <el-checkbox v-for="expers in experList" :label="expers.label" :key="expers.key">{{ expers.label }}</el-checkbox> </el-checkbox-group> + </el-form-item> + </el-col> + <el-col :span="41"> + <el-form-item label="澶囨敞锛�"> + <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 20}" style="width: 200px;" v-model="addPointerForm.remarks" placeholder="璇疯緭鍏ュ娉�" autocomplete="off" /> </el-form-item> </el-col> </el-row> @@ -337,6 +351,7 @@ for (let i = 1; i < this.addPointerForm.experiment.length; i++) { exper += ',' + this.addPointerForm.experiment[i] } + // console.log(exper) this.addPointerForm.experiment = exper let tmp = this.addPointerForm diff --git a/src/views/inspectionManagement/commissionInspection/index.vue b/src/views/inspectionManagement/commissionInspection/index.vue index 271fdf9..b113ca8 100644 --- a/src/views/inspectionManagement/commissionInspection/index.vue +++ b/src/views/inspectionManagement/commissionInspection/index.vue @@ -452,4 +452,4 @@ text-align: center; color: #0166e2; } -</style> \ No newline at end of file +</style> diff --git a/src/views/standardLibrary/index.vue b/src/views/standardLibrary/index.vue index 979c4a6..5c69021 100644 --- a/src/views/standardLibrary/index.vue +++ b/src/views/standardLibrary/index.vue @@ -25,6 +25,16 @@ <div class="table-header"> <div class="serve-btn"> <span class="tipMsg">{{ msg !== "" ? msg : "" }}</span> + <el-select v-model="versionValue" @change="changeSelect" placeholder="璇烽�夋嫨鐗堟湰鍙�"> + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + <el-button type="primary" @click="addVersionFun">鏂板鐗堟湰鍙�</el-button> <el-button type="primary" icon="el-icon-plus" @@ -161,12 +171,16 @@ addSpecifications, deleteListApi, blurUpdateApi, + getVersion, + addVersion } from "@/api/standardLibrary"; import { selectproductModelApi } from "@/api/basicData/index"; export default { data() { return { + options:[], + versionValue: '', deleteList: [], msg: "", isAllSelect: false, @@ -199,7 +213,48 @@ created() { this.getStandardTree(); }, + mounted(){ + + }, methods: { + async initSelect(){ + this.options = []; + this.versionValue = ""; + const response = await getVersion({"specificationsId":this.selectData.id}); + if(response.code===200 && response.data.length>0){ + this.getTableByClick(this.selectData,response.data[0]) + for(let i=0;i<response.data.length;i++){ + this.options.push({ + value: response.data[i], + label: "V" + response.data[i] + }) + this.versionValue = response.data[0]; + } + } + }, + changeSelect(){ + this.tableData = []; + this.getTableByClick(this.selectData,this.versionValue); + }, + async insertVersion(){ + const resp = await addVersion({"specificationsId":this.selectData.id}); + if(resp.code===200){ + this.initSelect(); + this.$message({ + type: 'success', + message: resp.message + }); + } + }, + addVersionFun() { + this.$confirm('纭娣诲姞鏂扮殑鐗堟湰鍙峰悧?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.insertVersion(); + }).catch(() => {}); + }, filterNode(value, data) { if (!value) return true; return data.name.indexOf(value) !== -1; @@ -253,7 +308,8 @@ this.getParentData(node.parent, node.data.name); // 瀛樹笅閫変腑鑺傜偣 this.selectData = data; - this.getTableByClick(data); + this.getTableByClick(data,this.versionValue); + this.initSelect(); } if (!("children" in data)) { return; @@ -268,9 +324,10 @@ this.getParentData(node.parent, this.msg); } }, - async getTableByClick(data) { + async getTableByClick(data,versionVal) { await getProductList({ specificationsId: data.id, + version: versionVal }).then((res) => { res.data.forEach((i) => { if (i.name === undefined) { @@ -351,7 +408,7 @@ addTypeArr: [], }; this.getStandardTree(); - this.getTableByClick(this.selectData); + this.getTableByClick(this.selectData,this.versionValue); }, changeCascader(data) { this.addTreeForm.addTypeArr = data; @@ -457,7 +514,7 @@ message: res.message, type: "success", }); - this.getTableByClick(this.selectData); + this.getTableByClick(this.selectData,this.versionValue); }); }, async requiredOnfocus(scope) { @@ -472,7 +529,7 @@ message: res.message, type: "success", }); - this.getTableByClick(this.selectData); + this.getTableByClick(this.selectData,this.versionValue); }); }, }, @@ -608,6 +665,9 @@ width: 100%; padding-bottom: 6px; text-align: right; + .el-select{ + margin-right:10px; + } } .tipMsg { float: left; -- Gitblit v1.9.3