Merge branch 'master' of http://192.168.110.209:9001/r/lims-before
| | |
| | | "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", |
| | |
| | | params |
| | | }) |
| | | } |
| | | |
| | | //è·åæ¥åå
çæ°æ® |
| | | export function getReportData(params) { |
| | | return request({ |
| | | url: '/report/getReportContext', |
| | | method: 'post', |
| | | params |
| | | }) |
| | | } |
| | |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | } |
| | | //æ£éªå详æ
|
| | | export function selectInspectsListById(params){ |
| | | return request({ |
| | | url: '/inspection/selectInspectsListById', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | | //éæ©è´£ä»»é¡¹ç®æ£éªäºº |
| | | 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 |
| | | }) |
| | | } |
| | | //åæææ£éªå表 |
| | | export function YANcailiso(params) { |
| | | return request({ |
| | | url: '/raw-material/selectAll', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | | //çæ¬å· |
| | | export function chooseVer(params) { |
| | | return request({ |
| | | url: '/inspection/chooseVer', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | |
| | | }) |
| | | |
| | | } |
| | | |
| | | //è§æ ¼åå· |
| | | export function getModelSpecification(params){ |
| | | return request({ |
| | | url: '/link-basic/specification', |
| | |
| | | |
| | | const Api = { |
| | | getOrganizational: "/organizational/list", // å级æ |
| | | getTableInitialization: "/organizational/table", // è¡¨æ ¼æ°æ®æ¥å£ |
| | | organizationalAdd: "/organizational/add", // æ·»å é¨é¨ |
| | | organizationalUpdate: "/organizational/add", // ä¿®æ¹é¨é¨ |
| | | organizationalDelete: "/organizational/delete", // å é¤é¨é¨ |
| | | } |
| | | export function getOrganizationalApi() { |
| | | return request({ |
| | | url: Api.getOrganizational, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | export function getTableInitializationApi(departmentId) { |
| | | return request({ |
| | | url: Api.getTableInitialization, |
| | | method: 'get', |
| | | params: { |
| | | departmentId |
| | | } |
| | | }) |
| | | } |
| | | |
| | | export function organizationalAddApi(formData){ |
| | | return request({ |
| | | url: Api.organizationalAdd, |
| | | method: 'post', |
| | | data: formData |
| | | }) |
| | | } |
| | | |
| | | export function organizationalUpdateApi(formData){ |
| | | return request({ |
| | | url: Api.organizationalUpdate + '?id=' + formData.id, |
| | | method: 'put', |
| | | data: formData |
| | | }) |
| | | } |
| | | |
| | | export function organizationalDeleteApi(id){ |
| | | return request({ |
| | | url: Api.organizationalDelete, |
| | | method: 'delete', |
| | | params: { |
| | | ids: id.toString() |
| | | } |
| | | }) |
| | | } |
| | |
| | | }) |
| | | } |
| | | |
| | | //è·åææçæ¬ |
| | | 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({ |
| | |
| | | }) |
| | | } |
| | | |
| | | export function put(path, data) { |
| | | return request({ |
| | | url: path, |
| | | method: 'put', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function wpost(path, params) { |
| | | return request({ |
| | | url: path, |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="preview-main"> |
| | | <div class="logo"> |
| | | <img :src="logoSrc" /> |
| | | </div> |
| | | <div class="center"> |
| | | <h1>åæææ£æµæ¥å</h1> |
| | | <table> |
| | | <tr> |
| | | <td>ææåç§°</td> |
| | | <td colspan="5">{{reportData.name}}</td> |
| | | </tr> |
| | | <tr> |
| | | <td>è§æ ¼åå·</td> |
| | | <td colspan="2"> |
| | | {{reportData.specifications.split("-")[1]}} |
| | | </td> |
| | | <td>ææåå®¶</td> |
| | | <td colspan="2">{{reportData.supplier}}</td> |
| | | </tr> |
| | | <tr> |
| | | <td>ææç¼å·</td> |
| | | <td colspan="2">{{reportData.imCode}}</td> |
| | | <td>æ£æµç¼å·</td> |
| | | <td colspan="2">{{reportData.insCode}}</td> |
| | | </tr> |
| | | <tr> |
| | | <td>æ£æµä¾æ®</td> |
| | | <td colspan="2">{{reportData.specifications.split("-")[0]}}</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,index) in reportData.products" :key="item"> |
| | | <td>{{index+1}}</td> |
| | | <td>{{item.ipName}}</td> |
| | | <td>{{item.unit}}</td> |
| | | <td>{{item.required}}</td> |
| | | <td>{{item.testValue}}</td> |
| | | <td>{{item.testState == 1 ? "â" : "X"}}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="6">æ£éªç»è®ºï¼{{reportData.type == 1 ? "åæ ¼" : "ä¸åæ ¼"}}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="6"> |
| | | 注ï¼âââ表示该项ç®åæ ¼ï¼âÃâ表示该项ç®ä¸åæ ¼ï¼âââ表示该项ç®ä¸è¦æ±æ£æµã |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | <el-row class="date-group" :gutter="20"> |
| | | <el-col :span="12">æ£æµãæ¥æï¼<span>{{reportData.createTime}}</span></el-col> |
| | | <el-col :span="12">å®¡æ ¸ãæ¥æï¼<span>{{reportData.checkTime}}</span></el-col> |
| | | </el-row> |
| | | <p class="footer"> |
| | | <span>ç¼å·:</span><span>{{reportData.reportCode}}</span> |
| | | <span> åè¡æ¥æ:</span><span>{{new Date() | formatDate}}</span> |
| | | <span> ä¿åæé:</span><span>é¿æ</span> |
| | | </p> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | export default({ |
| | | data() { |
| | | return { |
| | | logoSrc : require("@/assets/404_images/logo.png"), |
| | | } |
| | | }, |
| | | methods:{ |
| | | formatDate(val){ |
| | | var dt = new Date(val); |
| | | let year = dt.getFullYear(); |
| | | let month = (dt.getMonth() + 1).toString().padStart(2,'0'); |
| | | let date = dt.getDate().toString().padStart(2,'0'); |
| | | return `${year}-${month}-${date}`; |
| | | } |
| | | }, |
| | | props:["reportData"] |
| | | }) |
| | | </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: 5px 5px; |
| | | } |
| | | .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> |
| | |
| | | </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> |
| | |
| | | name: 'value' |
| | | }, |
| | | dialogFormVisible: false, |
| | | formLabelWidth: '120px' |
| | | formLabelWidth: '120px', |
| | | user: { |
| | | id: null, |
| | | name: 'value' |
| | | } |
| | | } |
| | | }, |
| | | components: { |
| | |
| | | import echarts from 'echarts' |
| | | Vue.prototype.$echarts = echarts |
| | | |
| | | import print from 'print-js' |
| | | |
| | | import '@/icons' // icon |
| | | import '@/permission' // permission control |
| | |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%; margin-bottom: 20px" |
| | | row-key="name" |
| | | row-key="id" |
| | | border |
| | | height="calc(100vh - 250px)" |
| | | default-expand-all |
| | | ref="multipleTable" |
| | | @select="selectTr" |
| | | @select-all="selectAll" |
| | | @selection-change="handleSelectionChange" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" |
| | | > |
| | | <el-table-column type="selection" label="åºå·"> </el-table-column> |
| | |
| | | this.isAllSelect = !this.isAllSelect; |
| | | let data = this.tableData; |
| | | this.toggleSelect(data, this.isAllSelect, "all"); |
| | | // èªå®ä¹ |
| | | if (this.isAllSelect) { |
| | | val.forEach((i) => { |
| | | if (i.id !== undefined) { |
| | | this.deleteList.push(i.id); |
| | | } else { |
| | | i.children.forEach((c) => { |
| | | this.deleteList.push(c.id); |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | | this.deleteList.splice(0, this.deleteList.length); |
| | | } |
| | | }, |
| | | //éæ©æè¡ |
| | | selectTr(selection, row) { |
| | |
| | | this.isAllSelect = row.isChecked; |
| | | this.toggleSelect(row, row.isChecked, "tr"); |
| | | }); |
| | | |
| | | if (row.isChecked === true) { |
| | | if (row.children !== undefined) { |
| | | row.children.forEach((i) => { |
| | | this.deleteList.push(i.id); |
| | | }); |
| | | } else { |
| | | this.deleteList.push(row.id); |
| | | } |
| | | } else if (row.isChecked === false) { |
| | | if (row.children !== undefined) { |
| | | row.children.forEach((i) => { |
| | | this.deleteList.findIndex((c, index) => { |
| | | if (c === i.id) { |
| | | this.deleteList.splice(index, 1); |
| | | return; |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | this.deleteList.findIndex((c, index) => { |
| | | if (c === row.id) { |
| | | this.deleteList.splice(index, 1); |
| | | return; |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | //éå½å级 |
| | | toggleSelect(data, flag, type) { |
| | |
| | | } |
| | | }); |
| | | }, |
| | | handleSelectionChange(val) { |
| | | this.deleteList = [] |
| | | val.forEach((v) => { |
| | | if(v.id !== undefined) { |
| | | this.deleteList.push(v.id) |
| | | } |
| | | }) |
| | | console.log(`output->this.deleteList`,this.deleteList) |
| | | }, |
| | | // è¡¨æ ¼æ å
¨é¨éä¸é
ç½® ç»æ |
| | | deleteListClick() { |
| | | deleteListApi(this.deleteList).then((res) => { |
| | |
| | | }, |
| | | } |
| | | }, |
| | | mounted(){ |
| | | // this.initLeaderStatiChart(""); |
| | | this.initLeaderTimelyChart("leaderTimely"); |
| | | this.initTesterStatiChart("testerStati"); |
| | | this.initTesterTimelyChart("testerTimely"); |
| | | }, |
| | | mounted(){}, |
| | | methods: { |
| | | async queryData(){ |
| | | let date = this.formInline.date; |
| | |
| | | series: [ |
| | | { |
| | | name: '已宿', |
| | | barWidth: '20%', |
| | | barWidth: '30%', |
| | | type: 'bar', |
| | | stack: 'one', |
| | | emphasis: emphasisStyle, |
| | |
| | | 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, |
| | |
| | | }, |
| | | yAxis: { |
| | | min: 0, |
| | | max: 60, |
| | | interval: 10, |
| | | max: max, |
| | | interval: 1, |
| | | }, |
| | | grid: { |
| | | bottom: 100 |
| | |
| | | name: 'æ°æ®1', |
| | | type: 'bar', |
| | | stack: 'one', |
| | | barWidth: '30%', |
| | | emphasis: emphasisStyle, |
| | | data: data1, |
| | | itemStyle:{ |
| | |
| | | name: 'æ°æ®2', |
| | | type: 'bar', |
| | | stack: 'one', |
| | | barWidth: '30%', |
| | | emphasis: emphasisStyle, |
| | | data: data2, |
| | | itemStyle:{ |
| | |
| | | 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', |
| | |
| | | { |
| | | name: 'å§å', |
| | | type: 'category', |
| | | data: ['æ²ç§',], |
| | | data: xAxisData, |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | }, |
| | | itemStyle: { |
| | | top: '20px' |
| | | } |
| | | } |
| | | ], |
| | | yAxis: [ |
| | |
| | | type: 'value', |
| | | name: 'æ°é', |
| | | min: 0, |
| | | max: 10, |
| | | max: yAxisData1, |
| | | interval: 1, |
| | | axisLabel: { |
| | | formatter: '{value}' |
| | |
| | | { |
| | | name: 'æ ·åæ°', |
| | | type: 'bar', |
| | | barWidth: '20%', |
| | | barWidth: '30%', |
| | | tooltip: { |
| | | valueFormatter: function (value) { |
| | | return value; |
| | | } |
| | | }, |
| | | data: [4.0], |
| | | data: data1, |
| | | itemStyle: { |
| | | color: '#9fceff' |
| | | } |
| | |
| | | { |
| | | 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){ |
| | |
| | | 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', |
| | |
| | | xAxis: [ |
| | | { |
| | | type: 'category', |
| | | data: ["","",""], |
| | | data: xAxisData, |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | |
| | | type: 'value', |
| | | name: '', |
| | | min: 0, |
| | | max: 50, |
| | | interval: 5, |
| | | max: yAxisData1, |
| | | interval: 1, |
| | | axisLabel: { |
| | | formatter: '{value}' |
| | | } |
| | |
| | | { |
| | | name: 'é¡¹ç®æ°', |
| | | type: 'bar', |
| | | barWidth: '30%', |
| | | tooltip: { |
| | | valueFormatter: function (value) { |
| | | return value ; |
| | | } |
| | | }, |
| | | data: [2.0, 4.9, 7.0], |
| | | data: data1, |
| | | itemStyle: { |
| | | color: '#5087ec' |
| | | } |
| | |
| | | return value + ' %'; |
| | | } |
| | | }, |
| | | data: [2.0, 2.2, 3.3], |
| | | data: data2, |
| | | itemStyle: { |
| | | color: '#68bbc4' |
| | | } |
| | |
| | | > |
| | | </div> |
| | | </div> |
| | | <el-dialog |
| | | top="10vh" |
| | | title="æ¥åé¢è§" |
| | | :visible.sync="dialogVisible" |
| | | width="60%"> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="printFun()">æå°</el-button> |
| | | </span> |
| | | <div class="printStyle"> |
| | | <preview id="printDiv" :reportData="reportData"></preview> |
| | | </div> |
| | | </el-dialog> |
| | | <div class="table-box"> |
| | | <el-table |
| | | ref="reportTable" |
| | |
| | | </template></el-table-column |
| | | > |
| | | <el-table-column |
| | | prop="materialCode" |
| | | prop="reportCode" |
| | | label="æ¥ååå·" |
| | | sortable |
| | | min-width="10%" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span style="color: #409eff;"> |
| | | {{ scope.row.materialCode }} |
| | | {{ scope.row.reportCode }} |
| | | </span> |
| | | </template></el-table-column |
| | | > |
| | |
| | | <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> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { selectAllReport } from "@/api/experiment/checkTheReport"; |
| | | import { selectAllReport,getReportData } from "@/api/experiment/checkTheReport"; |
| | | import Preview from "@/components/experiment/checkTheReport/index.vue"; |
| | | import PrintJS from 'print-js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | reportData: [], |
| | | searchData:{ |
| | | sample_code:'', |
| | | reportCode:'', |
| | |
| | | total: 0, |
| | | pageSize: 10, |
| | | checked: true, |
| | | dialogVisible: false, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getData(); |
| | | }, |
| | | mounted(){ |
| | | }, |
| | | components:{ |
| | | Preview |
| | | }, |
| | | methods: { |
| | | async queryReportByRCode(code){ |
| | | const resp = await getReportData({code:code}); |
| | | this.reportData = resp.data; |
| | | console.log(this.reportData); |
| | | }, |
| | | //æ¥çæ¥åæé® |
| | | previewFun(row){ |
| | | this.dialogVisible = true; |
| | | this.queryReportByRCode(row.reportCode); |
| | | }, |
| | | //æå°æé® |
| | | printFun(){ |
| | | this.dialogVisible = false; |
| | | PrintJS({ |
| | | printable: "printDiv", |
| | | type: "html", |
| | | // header: "åæææ£æµæ¥å", |
| | | targetStyles: ["*"], |
| | | ignoreElements: ["no-ignore"], |
| | | }); |
| | | }, |
| | | // ç¶ææé® |
| | | handleRadioChange() { |
| | | this.getData(); |
| | |
| | | }; |
| | | const { data } = await selectAllReport(params); |
| | | this.reportTable = data.row; |
| | | console.log(data.row); |
| | | this.total = data.total; |
| | | }, |
| | | }, |
| | |
| | | margin: 10px 0; |
| | | } |
| | | } |
| | | .printStyle{ |
| | | overflow: scroll; |
| | | height:600px; |
| | | .el-button{ |
| | | position: absolute; |
| | | top: 10vh; |
| | | left: 90%; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | | |
| | |
| | | <div> |
| | | <el-card style="margin: 10px;"> |
| | | <el-table |
| | | :data="tableData" |
| | | :data="insProducts" |
| | | border |
| | | style="width: 100%"> |
| | | <el-table-column |
| | |
| | | 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> |
| | |
| | | </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 |
| | | //æ£éªå责任人 |
| | | 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> |
| | |
| | | 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> |
| | |
| | | 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="æ¥ææ¥æï¼"> |
| | |
| | | <el-form :model="commisionSelection" ref="commisionTable" class="checkTypeForm" label-position="top" label-width="200px" size="mini"> |
| | | <el-row :gutter="100"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="æ¥ææ¥æï¼"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.formTime" placeholder="请è¾å
¥æ¥ææ¥æ" autocomplete="off" /> |
| | | <el-form-item label="å§æç¼å·"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.entrust_coding" placeholder="请è¾å
¥æ¥ææ¥æ" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="ä¾åºååç§°ï¼"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.supplier" placeholder="请è¾å
¥å§æåä½" autocomplete="off" /> |
| | | <el-form-item label="å§æåä½"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.entrusted" placeholder="请è¾å
¥å§æåä½" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="100"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="å§æç¼å·ï¼"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.mcode" placeholder="请è¾å
¥æ ·åç¼å·" autocomplete="off" /> |
| | | <el-form-item label="æ ·åç¼å·"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.samples_number" placeholder="请è¾å
¥æ ·åç¼å·" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="å§æåç§°ï¼"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.name" placeholder="请è¾å
¥æ ·ååç§°" autocomplete="off" /> |
| | | <el-form-item label="æ ·ååç§°"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.sample_name" placeholder="请è¾å
¥æ ·ååç§°" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="100"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="è§æ ¼åå·ï¼"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.specifications" placeholder="请è¾å
¥åå·è§æ ¼" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.specifications_models" placeholder="请è¾å
¥åå·è§æ ¼" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="åä½ï¼"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.unit" placeholder="请è¾å
¥åä½" autocomplete="off" /> |
| | | <el-form-item label="éè¾¾æ¶é´"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.dateSurvey" placeholder="请è¾å
¥åä½" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="100"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="æ°éï¼"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.num" placeholder="请è¾å
¥æ°é" autocomplete="off" /> |
| | | <el-form-item label="宿æé"> |
| | | <el-input style="width: 300px" type="text" :value="commisionSelection.completionDeadline" placeholder="请è¾å
¥æ°é" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | |
| | | </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-card> |
| | | <template slot-scope="scope" > |
| | | <span>çæ¬éæ©ï¼</span> |
| | | <el-select v-model="commisionTable" size="small" slot="append" style="width: 220px;"> |
| | | <el-option v-for="item in BANben" :key="item.id" :label="item.name" :value="item.name"></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-card> |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%; margin-bottom: 20px" |
| | | row-key="name" |
| | | border |
| | | |
| | | 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> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="Standardframe = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="Standardframe = false">ç¡® å®</el-button> |
| | | </span> |
| | | |
| | | </el-dialog> |
| | | |
| | | <!-- åæææ£éªæ¨¡ææ¡ --> |
| | | <el-dialog |
| | | title="åæææ£éª" |
| | |
| | | :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}" |
| | | :data="rawMaterialTable" |
| | | style="width: 100%" |
| | | @selection-change="handleSelectionChange" |
| | | @selection-change="handleSelectionChange_0" |
| | | > |
| | | <el-table-column |
| | | <el-table-column |
| | | type="selection" |
| | | label="" |
| | | min-width="10%" |
| | | /> |
| | | <el-table-column |
| | |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="dateSurvey" |
| | | prop="createTime" |
| | | label="æ¥ææ¥æ" |
| | | min-width="8%" |
| | | /> |
| | |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="createTime" |
| | | prop="dateSurvey" |
| | | label="æ£éªæ¥æ" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="state" |
| | | prop="condition" |
| | | label="ç¶æ" |
| | | min-width="8%" |
| | | > |
| | |
| | | @selection-change="handleSelectionChange" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | min-width="10%" |
| | | /> |
| | | <el-table-column |
| | | type="index" |
| | | label="åºå·" |
| | | min-width="10%" |
| | | /> |
| | | <el-table-column |
| | | prop="formTime" |
| | | label="æ¥ææ¥æ" |
| | | min-width="10%" |
| | | /> |
| | | <el-table-column |
| | | prop="supplier" |
| | | label="ä¾åºååç§°" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | prop="mcode" |
| | | label="ææç¼ç " |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="specifications" |
| | | label="è§æ ¼åå·" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="unit" |
| | | label="åä½" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | prop="num" |
| | | label="æ°é" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="checkdate_" |
| | | label="æ£éªæ¥æ" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column type="selection" min-width="10%" /> |
| | | <el-table-column type="index" label="åºå·" min-width="10%" /> |
| | | <el-table-column prop="entrust_coding" label="å§æç¼å·" min-width="10%" /> |
| | | <el-table-column prop="entrusted" label="å§æåä½" min-width="12%" /> |
| | | <el-table-column prop="samples_number" label="æ ·åç¼å·" min-width="8%" /> |
| | | <el-table-column prop="sample_name" label="æ ·ååç§°" min-width="8%" /> |
| | | <el-table-column prop="specifications_models" label="è§æ ¼åå·" min-width="12%" /> |
| | | <el-table-column prop="dateSurvey" label="éè¾¾æ¶é´" min-width="8%" /> |
| | | <el-table-column prop="completionDeadline" label="宿æé" min-width="8%" /> |
| | | <el-table-column prop="contacts" label="å§æç¼å¶äºº" min-width="8%" /> |
| | | <el-table-column prop="inspectionTime" label="æ£éªæ¥æ" min-width="8%" /> |
| | | <el-table-column prop="inspection_status" label="ç¶æ" min-width="8%"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.inspection_status === 1"> |
| | | <span style="color: green;">å·²æ£æµ</span> |
| | | </div> |
| | | <div v-else> |
| | | <span style="color: red;">å¾
æ£æµ</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" min-width="8%"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="commisionVisible = false">å æ¶</el-button> |
| | |
| | | </template> |
| | | <template v-else> |
| | | <router-view /> |
| | | |
| | | </template> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { selectInspectsList, selectAll, addInspect} from '@/api/experiment/planAssignments' |
| | | import { selectInspectsList, selectAll, addInspect,getCommisionList,YANcailiso,chooseVer} from '@/api/experiment/planAssignments' |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | type: '', |
| | | state: '', |
| | | }, |
| | | valu:{}, |
| | | icode:'', |
| | | inspectionTable: [], |
| | | rawMaterialTable: [], |
| | | commisionTable: [{ |
| | | specifications_models: "GGXH-AAAAA", |
| | | inspectionTime: "2023-08-03", |
| | | id: 2, |
| | | samples_number: 0, |
| | | dateSurvey: "2023-08-03", |
| | | entrusted: "é¿éå·´å·´", |
| | | completionDeadline: "2023-08-03", |
| | | contacts: "å°é»", |
| | | entrust_coding: "SL20230803000003", |
| | | sample_name: "å卿º", |
| | | inspection_status: 1 |
| | | },{ |
| | | specifications_models: "GGXH-AAAAA", |
| | | inspectionTime: "2023-08-03", |
| | | id: 2, |
| | | samples_number: 0, |
| | | dateSurvey: "2023-08-03", |
| | | entrusted: "é¿éå·´å·´", |
| | | completionDeadline: "2023-08-03", |
| | | contacts: "å°é»", |
| | | entrust_coding: "SL20230803000003", |
| | | sample_name: "å卿º", |
| | | inspection_status: 1 |
| | | }], |
| | | commisionTable: [], |
| | | finishedTable: { |
| | | deliverydate: '', |
| | | supplier: '', |
| | |
| | | amount: '', |
| | | checkdate: [] |
| | | }, |
| | | infoForm:'', |
| | | infoForm:{}, |
| | | commisionSelection:{ |
| | | entrust_coding: '', |
| | | entrusted: '', |
| | |
| | | pageSize: 8, // æ¯é¡µçæ°æ®æ¡æ° |
| | | radioValue: 'å
¨é¨', |
| | | checkTypeVisible: false, |
| | | type: '', // é»è®¤ä¸éä¸çç¶æ |
| | | type: 0, // é»è®¤ä¸éä¸çç¶æ |
| | | rawmaterialVisible: false, |
| | | commisionVisible: false, |
| | | tmp: '' |
| | | tmp: '', |
| | | Standardframe: false, |
| | | tableData: [], |
| | | tableRow:{}, |
| | | BANben:[], |
| | | select_1: [] |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | }, |
| | | 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 chooseVer() { |
| | | const res = await chooseVer ({ |
| | | mcode:this.commisionTable.entrust_coding, |
| | | name:this.commisionTable.entrusted, |
| | | scifications:this.commisionTable.specifications_models |
| | | }) |
| | | console.log(res); |
| | | this.BANben = res.data.row |
| | | }, |
| | | //å§ææ£éª |
| | | async getCommisionList() { |
| | | const res = await getCommisionList({pageNo:1,pageSize:10 }) |
| | | console.log(res); |
| | | this.commisionTable = res.data |
| | | }, |
| | | //åææ |
| | | async selecYANcailisotAllAPI() { |
| | | const res = await YANcailiso({pageNo:1,pageSize:10 }) |
| | | console.log(res); |
| | | this.rawMaterialTable = res.data.row |
| | | }, |
| | | 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 |
| | |
| | | item['checkdate'] = checkdate // æ£éªæ¥æ |
| | | item['createTime'] = createTime // ç»è®°æ¥æ |
| | | }) |
| | | console.log('data:',data) |
| | | this.inspectionTable = data |
| | | if(this.searchData.type !== ''){ |
| | | if(this.searchData.state !== ''){ |
| | |
| | | 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 |
| | | getCnList({pageNo:1,pageSize:10}).then(res=>{ |
| | | // consommisioole.log(res); |
| | | this.commisionTable = res.data.row |
| | | }) |
| | | } |
| | | },100) |
| | | }, |
| | | // æ°å¢æ£éª |
| | | async addInspection(){ |
| | |
| | | type: this.type, |
| | | unit: this.finishedTable.unit }) |
| | | } |
| | | this.type = '' |
| | | this.type = 0 |
| | | this.checkTypeVisible = false |
| | | this.$message({ |
| | | message: 'æ·»å æåï¼', |
| | |
| | | console.log(`å½å页: ${val}`) |
| | | this.currentPage = val |
| | | this.selectInspectsList() |
| | | }, |
| | | //ç¡®å®è·³è½¬ |
| | | QUEding(){ |
| | | // this.tableRow = a |
| | | this.Standardframe = true |
| | | chooseVer({mcode:this.select_1[0].materialCoding, |
| | | name:this.select_1[0].materialName, |
| | | scifications:this.select_1[0].specificationsModels}).then(res => { |
| | | this.BANben = res.data.row |
| | | console.log(this.BANben); |
| | | }) |
| | | |
| | | }, |
| | | handleSelectionChange_0(val){ |
| | | this.select_1 = [] |
| | | val.forEach(v => { |
| | | let obj = {} |
| | | obj.materialCoding = v.materialCoding |
| | | obj.materialName = v.materialName |
| | | obj.specificationsModels = v.specificationsModels |
| | | this.select_1.push(obj) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | 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; |
| | |
| | | </span> |
| | | </template></el-table-column |
| | | > |
| | | <el-table-column |
| | | <el-table-columne |
| | | prop="materialName" |
| | | label="æ ·ååç§°" |
| | | min-width="10%" |
| | |
| | | <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> |
| | |
| | | title="åå§è®°å½å®¡æ ¸" |
| | | :visible.sync="checkskipvisible" |
| | | width="30%" |
| | | |
| | | |
| | | > |
| | | <el-form :model="form"> |
| | | <el-form-item label="è¯·éæ©å®¡æ ¸ç»æ:" :label-width="formLabelWidth"> |
| | |
| | | reportTable: [], |
| | | page: 1, |
| | | total: 0, |
| | | pageSize: 10, |
| | | pageSize: 8, |
| | | checkskipvisible: false, |
| | | form:{}, |
| | | // handleClose:{}, |
| | |
| | | Auditconclusion:{}, |
| | | tableRow: {}, |
| | | |
| | | |
| | | |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | //éè¿ |
| | | 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' |
| | | }); |
| | | |
| | | }, |
| | | //ä¸éè¿ |
| | |
| | | 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() { |
| | |
| | | <template> |
| | | <div class="add_commision"> |
| | | <div class="content-main"> |
| | | <div class="firstBox"> |
| | | <div class="title">å§æä¿¡æ¯</div> |
| | | <div class="tableBox"> |
| | | <div class="tableBox-header"> |
| | | <el-button class="split" @click="dialogueFormVisible = true" type="primary" size="small" style="background-color: rgb(1, 102, 226);">æ·»å æ ·å</el-button> |
| | | <!-- <el-input |
| | | <div class="add_commision"> |
| | | <div class="content-main"> |
| | | <div class="firstBox"> |
| | | <div class="title">å§æä¿¡æ¯</div> |
| | | <div class="tableBox"> |
| | | <div class="tableBox-header"> |
| | | <el-button class="split" @click="dialogueFormVisible = true" type="primary" size="small" |
| | | style="background-color: rgb(1, 102, 226);">æ·»å æ ·å</el-button> |
| | | <!-- <el-input |
| | | v-model="searchData" |
| | | class="input-form split" |
| | | placeholder="æ«æäºç»´ç å½å
¥æ ·å..." |
| | |
| | | style="width: 200px;" |
| | | > |
| | | </el-input>--> |
| | | <el-button type="primary" size="small" style="background-color: rgb(1, 102, 226);">éç½®</el-button> |
| | | </div> |
| | | <el-table |
| | | ref="detectionInfo" |
| | | :max-height="800" |
| | | :cell-style="{textAlign: 'center'}" |
| | | :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}" |
| | | :data="detectionInfo" |
| | | style="width: 100%" |
| | | > |
| | | <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%" |
| | | /> |
| | | <el-table-column |
| | | prop="addway" |
| | | label="æ·»å æ¹å¼" |
| | | min-width="8%"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.addway === 0"> |
| | | <el-tag :type= 'success' disable-transitions>æ«æ</el-tag> |
| | | </div> |
| | | <div v-if="scope.row.addway === 1"> |
| | | <el-tag :type= 'primary' disable-transitions>å½å
¥</el-tag> |
| | | </div> |
| | | <div v-else></div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="experiment" |
| | | label="è¯éª" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="remarks" |
| | | label="夿³¨" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | label="æä½" |
| | | min-width="8%" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small">ä¿®æ¹</el-button> |
| | | <el-button type="text" size="small" @click="deleteRow(scope.row)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- åé¡µå¨ --> |
| | | <div> |
| | | <el-pagination |
| | | class="pagination" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="100" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="400"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | <div class="secondBox"> |
| | | <el-row class="header"> |
| | | <el-col :span="12">åºæ¬ä¿¡æ¯</el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <!-- ç¹å»è¿åï¼å½å页é¢å¼ä¸ºfalse --> |
| | | <!-- <el-button type="primary" size="mini" style="background-color: rgb(1, 102, 226); ">æå°å§æå</el-button> --> |
| | | </el-col> |
| | | </el-row> |
| | | <el-form :model="infoForm" ref="infoForm" class="infoForm" label-position="right" label-width="100px" size="mini" > |
| | | <div class="formwrapper"> |
| | | <el-row :gutter="200"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="å§æç¼å·ï¼"> |
| | | <el-input style="width: 160px" type="text" :value="infoForm.commisioncode" readonly disabled="true" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="å§æåä½ï¼"> |
| | | <el-input style="width: 160px" v-model="infoForm.department" placeholder="请è¾å
¥å§æåä½" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="è系人ï¼"> |
| | | <el-input style="width: 160px" v-model="infoForm.contacter" placeholder="请è¾å
¥å§æåä½" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="èç³»çµè¯ï¼"> |
| | | <el-input style="width: 160px" v-model="infoForm.tel" placeholder="请è¾å
¥èç³»çµè¯" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="200"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="èç³»å°åï¼" > |
| | | <el-input style="width: 160px;" v-model="infoForm.address" placeholder="请è¾å
¥èç³»å°å" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="宿æéï¼"> |
| | | <el-date-picker |
| | | v-model="infoForm.deadline" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | style="width: 160px;"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="éæ ·æ¶é´ï¼"> |
| | | <el-date-picker |
| | | v-model="infoForm.time" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | style="width: 160px;"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="éæ ·æ¹å¼ï¼"> |
| | | <el-select style="width: 160px;" v-model="infoForm.way" size="small" placeholder="éæ ·"> |
| | | <el-option v-for="options in sampleDeliveryMode" :key="options.key" :value="options.value">{{ options.value }}</el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="200"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="éæ ·äººï¼" > |
| | | <el-input style="width: 160px;" v-model="infoForm.sender" placeholder="请è¾å
¥éæ ·äºº" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="éæ ·äººçµè¯ï¼" > |
| | | <el-input style="width: 160px;" v-model="infoForm.sendertel" placeholder="请è¾å
¥éæ ·äººçµè¯" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æ¥åæ°ï¼"> |
| | | <el-input style="width: 160px;" v-model="infoForm.num" placeholder="请è¾å
¥æ¥åæ°" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="姿夿³¨ï¼"> |
| | | <el-input style="width: 160px;" v-model="infoForm.other" placeholder="夿³¨" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="submitBtn"> |
| | | <el-button type="primary" size="small" @click="submitInspection" style="background-color: rgb(1, 102, 226);">æäº¤</el-button> |
| | | <!-- ç¹å»è¿åï¼å½å页é¢å¼ä¸ºfalse --> |
| | | <el-button type="primary" size="mini" style="background-color: rgb(1, 102, 226); ">æå°å§æå</el-button> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div class="checkType"> |
| | | <el-dialog |
| | | title="æ·»å ææ " |
| | | :visible.sync="dialogueFormVisible" |
| | | width="40%" |
| | | > |
| | | <el-form :model="addPointerForm" ref="addPointerForm" class="addPointerForm" label-position="right" label-width="100px" size="mini"> |
| | | <el-row :gutter="50"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="æ ·åç¼å·ï¼"> |
| | | <el-select style="width: 160px;" v-model="addPointerForm.sampleNumber" size="small" placeholder="è¯·éæ©æ ·åç¼å·"> |
| | | <el-option v-for="options in samplecodeoptions" :value="options.value" :key="options.key" >{{ options.value }}</el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="æ ·ååç§°ï¼"> |
| | | <el-select style="width: 160px;" v-model="addPointerForm.sampleName" size="small" placeholder="è¯·éæ©æ ·ååç§°"> |
| | | <el-option v-for="options in sampleoptions" :value="options.value" :key="options.key">{{ options.value }}</el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="50"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="è§æ ¼åå·ï¼"> |
| | | <el-select style="width: 160px;" v-model="addPointerForm.specificationsModels" 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="10"> |
| | | <el-form-item label="æ ·ååä½ï¼"> |
| | | <el-input style="width: 160px" type="text" v-model="addPointerForm.unit" placeholder="请è¾å
¥åä½" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="50"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="æ ·åæ°éï¼"> |
| | | <el-input style="width: 160px" type="text" v-model="addPointerForm.samplesNumber" placeholder="请è¾å
¥æ°é" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="夿³¨ï¼"> |
| | | <el-input style="width: 160px" 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-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-row> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="addInspection">æ·»å </el-button> |
| | | <el-button @click="dialogueFormVisible = false">å æ¶</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-button type="primary" size="small" style="background-color: rgb(1, 102, 226);">éç½®</el-button> |
| | | </div> |
| | | <el-table ref="detectionInfo" :max-height="800" :cell-style="{textAlign: 'center'}" |
| | | :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}" |
| | | :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%" /> |
| | | <el-table-column prop="addway" label="æ·»å æ¹å¼" min-width="8%"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.addway === 0"> |
| | | <el-tag type="success" disable-transitions>æ«æ</el-tag> |
| | | </div> |
| | | <div v-if="scope.row.addway === 1"> |
| | | <el-tag type="primary" disable-transitions>å½å
¥</el-tag> |
| | | </div> |
| | | <div v-else></div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="remarks" label="夿³¨" min-width="8%" /> |
| | | <el-table-column label="æä½" min-width="8%"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small">ä¿®æ¹</el-button> |
| | | <el-button type="text" size="small" @click="deleteRow(scope.row)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="secondBox"> |
| | | <el-row class="header"> |
| | | <el-col :span="12" style="font-size: 16px;margin-bottom: 5px;">åºæ¬ä¿¡æ¯</el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | </el-col> |
| | | </el-row> |
| | | <el-form :model="infoForm" ref="infoForm" class="infoForm" label-position="right" label-width="100px" |
| | | size="mini"> |
| | | <div class="formwrapper"> |
| | | <el-row :gutter="200"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="å§æç¼å·ï¼"> |
| | | <el-input style="width: 200px" type="text" :value="infoForm.commisioncode" readonly disabled |
| | | autocomplete="off" size="small" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="å§æåä½ï¼"> |
| | | <el-input style="width: 200px" v-model="infoForm.department" placeholder="请è¾å
¥å§æåä½" size="small" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="è系人ï¼"> |
| | | <el-input style="width: 200px" v-model="infoForm.contacter" placeholder="请è¾å
¥å§æåä½" size="small" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="èç³»çµè¯ï¼"> |
| | | <el-input style="width: 200px" v-model="infoForm.tel" placeholder="请è¾å
¥èç³»çµè¯" size="small" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="200"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="èç³»å°åï¼"> |
| | | <el-input style="width: 200px;" v-model="infoForm.address" placeholder="请è¾å
¥èç³»å°å" autocomplete="off" |
| | | size="small" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="宿æéï¼"> |
| | | <el-date-picker v-model="infoForm.deadline" type="date" placeholder="éæ©æ¥æ" style="width: 200px;" |
| | | size="small"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="éæ ·æ¶é´ï¼"> |
| | | <el-date-picker v-model="infoForm.time" type="date" placeholder="éæ©æ¥æ" style="width: 200px;"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="éæ ·æ¹å¼ï¼"> |
| | | <el-select style="width: 200px;" v-model="infoForm.way" size="small" placeholder="éæ ·"> |
| | | <el-option v-for="options in sampleDeliveryMode" :key="options.key" |
| | | :value="options.value">{{ options.value }}</el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="200"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="éæ ·äººï¼"> |
| | | <el-input style="width: 200px;" v-model="infoForm.sender" placeholder="请è¾å
¥éæ ·äºº" autocomplete="off" |
| | | size="small" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="éæ ·äººçµè¯ï¼"> |
| | | <el-input style="width: 200px;" v-model="infoForm.sendertel" placeholder="请è¾å
¥éæ ·äººçµè¯" |
| | | autocomplete="off" size="small" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æ¥åæ°ï¼"> |
| | | <el-input style="width: 200px;" v-model="infoForm.num" placeholder="请è¾å
¥æ¥åæ°" autocomplete="off" |
| | | size="small" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="姿夿³¨ï¼"> |
| | | <el-input style="width: 200px;" v-model="infoForm.other" placeholder="夿³¨" autocomplete="off" |
| | | size="small" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="submitBtn"> |
| | | <el-button type="primary" size="small" @click="submitInspection" |
| | | style="background-color: rgb(1, 102, 226);">æäº¤</el-button> |
| | | <!-- ç¹å»è¿åï¼å½å页é¢å¼ä¸ºfalse --> |
| | | <el-button type="primary" size="mini" style="background-color: rgb(1, 102, 226); ">æå°å§æå</el-button> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div class="checkType"> |
| | | <el-dialog title="æ·»å æ ·å" :visible.sync="dialogueFormVisible" width="40%" top="30vh"> |
| | | <el-form :model="addPointerForm" ref="addPointerForm" class="addPointerForm" label-position="right" |
| | | label-width="100px" size="mini"> |
| | | <el-row :gutter="50"> |
| | | <el-col :span="11"> |
| | | <el-form-item label="æ ·åç¼å·ï¼"> |
| | | <el-input v-model="addPointerForm.sampleNumber" size="small" disabled> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="11"> |
| | | <el-form-item label="æ ·ååç§°ï¼"> |
| | | <el-select v-model="addPointerForm.sampleName" size="small" placeholder="è¯·éæ©æ ·ååç§°" |
| | | @change="upMaterialName"> |
| | | <el-option v-for="options in sampleoptions" :value="options.key" :label="options.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </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" |
| | | :key="options.key">{{ options.value }}</el-option> |
| | | </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-col :span="11"> |
| | | <el-form-item label="æ ·åæ°éï¼"> |
| | | <el-input type="text" v-model="addPointerForm.samplesNumber" placeholder="请è¾å
¥æ°é" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | <el-row :gutter="50"> |
| | | <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> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="addInspection">æ·»å </el-button> |
| | | <el-button @click="dialogueFormVisible = false">å æ¶</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getSampleName, getModelSpecification, getlink, addInspection} from '@/api/inspection/commisioninspection' |
| | | export default { |
| | | data() { |
| | | return { |
| | | currentPage: 0, |
| | | searchData: '', |
| | | infoForm: { |
| | | commisioncode: '', |
| | | department: '', |
| | | contacter: '', |
| | | tel: '', |
| | | address: '', |
| | | deadline: '', |
| | | time: '', |
| | | way: '', |
| | | sender: '', |
| | | sendertel: '', |
| | | num: '', |
| | | other: '' |
| | | }, |
| | | detectionInfo: [], |
| | | addPointerForm:{ |
| | | sampleNumber: '', |
| | | sampleName: '', |
| | | specificationsModels: '', |
| | | unit: '', |
| | | samplesNumber: '', |
| | | remarks: '', |
| | | experiment: [], |
| | | addway: '' |
| | | }, |
| | | experList:[{ |
| | | key: '1', |
| | | label: 'å¤è§æ£æ¥' |
| | | },{ |
| | | key: '2', |
| | | label: 'å¨ä½çµåè¯éª' |
| | | },{ |
| | | key: '3', |
| | | label: 'çµé»ç®¡æ³æ¼çµæµè¯éª' |
| | | },{ |
| | | key: '4', |
| | | label: 'ç»ç¼é¨å交æµèåè¯éª' |
| | | }], |
| | | sampleoptions:[{ |
| | | key:'1', |
| | | value: 'é项1' |
| | | },{ |
| | | key:'2', |
| | | value: 'é项2' |
| | | }], |
| | | samplecodeoptions:[{ |
| | | key:'1', |
| | | value: '' |
| | | }], |
| | | model_spe_options:[{ |
| | | key:'1', |
| | | value: 'é项1' |
| | | },{ |
| | | key: '2', |
| | | value: 'é项2' |
| | | }], |
| | | sampleDeliveryMode:[{ |
| | | key: '1', |
| | | value: 'éæ ·' |
| | | },{ |
| | | key: '2', |
| | | value: 'ä¸é¨' |
| | | }], |
| | | dialogueFormVisible: false, |
| | | showDetail: false |
| | | } |
| | | }, |
| | | created(){ |
| | | this.getlink() |
| | | }, |
| | | mounted(){ |
| | | this.getSampleName() |
| | | this.getModelSpecification() |
| | | }, |
| | | methods: { |
| | | // è·å龿¥link |
| | | getlink(){ |
| | | getlink().then((result)=>{ |
| | | this.$store.commit('settings/SAVE_LINK',result.data) |
| | | console.log(this.$store.state.settings.link) |
| | | }) |
| | | }, |
| | | async getSampleName(){ |
| | | const res = await getSampleName() |
| | | // console.log('res',res.data) |
| | | this.sampleoptions = res.data.map((item)=>{ |
| | | return{ |
| | | key:item.id.toString(), |
| | | value:item.name |
| | | } |
| | | }) |
| | | this.samplecodeoptions = res.data.map((item)=>{ |
| | | return{ |
| | | key:item.id.toString(), |
| | | value:item.code |
| | | } |
| | | }) |
| | | }, |
| | | async getModelSpecification(){ |
| | | const res = await getModelSpecification({materialId: '1'}) |
| | | // console.log(res) |
| | | this.model_spe_options = res.data.map((item)=>{ |
| | | return{ |
| | | key:item.specificationsId, |
| | | value:item.specificationsName |
| | | } |
| | | }) |
| | | }, |
| | | addInspection(){ |
| | | let exper = this.addPointerForm.experiment[0] |
| | | this.addPointerForm.addway = 1 |
| | | 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 |
| | | this.detectionInfo.push(tmp) |
| | | this.dialogueFormVisible = false |
| | | this.addPointerForm ={ |
| | | sampleNumber: '', |
| | | sampleName: '', |
| | | specificationsModels: '', |
| | | unit: '', |
| | | samplesNumber: '', |
| | | remarks: '', |
| | | experiment: [], |
| | | addway: '' |
| | | } |
| | | }, |
| | | async submitInspection(){ |
| | | let sampledeliveryway |
| | | if(this.infoForm.way === 'éæ ·'){ |
| | | sampledeliveryway = 1 |
| | | }else{ |
| | | sampledeliveryway = 2 |
| | | } |
| | | const res = await addInspection({completionDeadline: this.infoForm.deadline, |
| | | contactAddress: this.infoForm.address, |
| | | contactNumber: this.infoForm.tel, |
| | | contacts: this.infoForm.contacter, |
| | | entrustRemarks: this.infoForm.other, |
| | | entrusted: this.infoForm.department, |
| | | inspectionTime: this.infoForm.time, |
| | | linkDetectionList: this.detectionInfo, |
| | | reportNumber: parseInt(this.infoForm.num), |
| | | sampleDeliveryMode: sampledeliveryway, |
| | | sampleDeliveryPhone: this.infoForm.sendertel, |
| | | sampleSender: this.infoForm.sender}) |
| | | // const res = await addInspection({ |
| | | // completionDeadline: "2023-08-03", |
| | | // contactAddress: "æ±èåé", |
| | | // contactNumber: "12321423432", |
| | | // contacts: "å°é»", |
| | | // entrustRemarks: "姿夿³¨YPBH123456789YPBH123456789YPBH123456789", |
| | | // entrusted: "é¿éå·´å·´", |
| | | // inspectionTime: "2023-08-03", |
| | | // linkDetectionList: [ |
| | | // { |
| | | // "experiment": "忢¦", |
| | | // "remarks": "éè¿äº", |
| | | // "sampleName": "å卿º", |
| | | // "sampleNumber": "YPBH123456789", |
| | | // "samplesNumber": 20, |
| | | // "specificationsModels": "GGXH-AAAAA", |
| | | // "unit": "ç¾åº¦" |
| | | // } |
| | | // ], |
| | | // reportNumber: 23, |
| | | // sampleDeliveryMode: 1, |
| | | // sampleDeliveryPhone: "123456789676", |
| | | // sampleSender: "å°ç½" |
| | | // }) |
| | | // console.log(res) |
| | | this.infoForm.commisioncode = res.data |
| | | if(res.data){ |
| | | this.$message({ |
| | | message: 'æåä½ !', |
| | | type: 'success' |
| | | }) |
| | | // è·³è½¬é¡µé¢ |
| | | this.$router.push('/inspectionManagement/commissionInspection') |
| | | this.showDetail = true |
| | | }else{ |
| | | this.$message.error(res.message) |
| | | } |
| | | }, |
| | | handleSizeChange(pageSize) { |
| | | this.pageParams.pageSize = pageSize |
| | | }, |
| | | handleCurrentChange(pageNo) { |
| | | this.pageParams.pageNo = pageNo |
| | | }, |
| | | deleteRow(row){ |
| | | console.log(row) |
| | | row = null |
| | | } |
| | | } |
| | | } |
| | | import { |
| | | getSampleName, |
| | | getModelSpecification, |
| | | getlink, |
| | | addInspection, |
| | | isIfViewUUID |
| | | } from '@/api/inspection/commisioninspection' |
| | | export default { |
| | | data() { |
| | | return { |
| | | currentPage: 0, |
| | | searchData: '', |
| | | infoForm: { |
| | | commisioncode: '', |
| | | department: '', |
| | | contacter: '', |
| | | tel: '', |
| | | address: '', |
| | | deadline: '', |
| | | time: '', |
| | | way: '', |
| | | sender: '', |
| | | sendertel: '', |
| | | num: '', |
| | | other: '' |
| | | }, |
| | | detectionInfo: [], |
| | | addPointerForm: { |
| | | sampleNumber: '', |
| | | sampleName: '', |
| | | specificationsModels: '', |
| | | unit: '', |
| | | samplesNumber: '', |
| | | remarks: '', |
| | | experiment: [], |
| | | addway: '' |
| | | }, |
| | | experList: [{ |
| | | key: '1', |
| | | label: 'å¤è§æ£æ¥' |
| | | }, { |
| | | key: '2', |
| | | label: 'å¨ä½çµåè¯éª' |
| | | }, { |
| | | key: '3', |
| | | label: 'çµé»ç®¡æ³æ¼çµæµè¯éª' |
| | | }, { |
| | | key: '4', |
| | | label: 'ç»ç¼é¨å交æµèåè¯éª' |
| | | }], |
| | | sampleoptions: [{ |
| | | key: '1', |
| | | value: 'é项1' |
| | | }, { |
| | | key: '2', |
| | | value: 'é项2' |
| | | }], |
| | | samplecodeoptions: [{ |
| | | key: '1', |
| | | value: '' |
| | | }], |
| | | model_spe_options: [], |
| | | sampleDeliveryMode: [{ |
| | | key: '1', |
| | | value: 'éæ ·' |
| | | }, { |
| | | key: '2', |
| | | value: 'ä¸é¨' |
| | | }], |
| | | dialogueFormVisible: false, |
| | | showDetail: false, |
| | | viewId: null |
| | | } |
| | | }, |
| | | created() { |
| | | this.viewId = this.$route.params.viewId |
| | | this.$store.commit('settings/SAVE_LINK', this.viewId) |
| | | this.getlink(this.$route.params.viewId) |
| | | }, |
| | | mounted() { |
| | | this.getSampleName() |
| | | }, |
| | | methods: { |
| | | getlink(viewId) { |
| | | if (viewId == null) { |
| | | this.$message.error('å½å龿¥ä¸å¨æææå
,ç³»ç»èªå¨å
³é') |
| | | this.$router.push('/404') |
| | | return |
| | | } |
| | | isIfViewUUID({ |
| | | viewId |
| | | }).then(res => { |
| | | if (!res.data) { |
| | | this.$message.error('å½å龿¥ä¸å¨æææå
,ç³»ç»èªå¨å
³é') |
| | | this.$router.push('/404') |
| | | } |
| | | }) |
| | | }, |
| | | async getSampleName() { |
| | | const res = await getSampleName() |
| | | this.sampleoptions = res.data.map((item) => { |
| | | return { |
| | | key: item.id.toString(), |
| | | value: item.name, |
| | | code: item.code |
| | | } |
| | | }) |
| | | }, |
| | | async getModelSpecification(val) { |
| | | const res = await getModelSpecification({ |
| | | materialId: val |
| | | }) |
| | | this.model_spe_options = res.data.map((item) => { |
| | | return { |
| | | key: item.specificationsId, |
| | | value: item.specificationsName |
| | | } |
| | | }) |
| | | }, |
| | | addInspection() { |
| | | let exper = this.addPointerForm.experiment[0] |
| | | this.addPointerForm.addway = 1 |
| | | 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 |
| | | this.detectionInfo.push(tmp) |
| | | this.dialogueFormVisible = false |
| | | this.addPointerForm = { |
| | | sampleNumber: '', |
| | | sampleName: '', |
| | | specificationsModels: '', |
| | | unit: '', |
| | | samplesNumber: '', |
| | | remarks: '', |
| | | experiment: [], |
| | | addway: '' |
| | | } |
| | | }, |
| | | async submitInspection() { |
| | | let sampledeliveryway |
| | | if (this.infoForm.way === 'éæ ·') { |
| | | sampledeliveryway = 1 |
| | | } else { |
| | | sampledeliveryway = 2 |
| | | } |
| | | const res = await addInspection({ |
| | | completionDeadline: this.infoForm.deadline, |
| | | contactAddress: this.infoForm.address, |
| | | contactNumber: this.infoForm.tel, |
| | | contacts: this.infoForm.contacter, |
| | | entrustRemarks: this.infoForm.other, |
| | | entrusted: this.infoForm.department, |
| | | inspectionTime: this.infoForm.time, |
| | | linkDetectionList: this.detectionInfo, |
| | | reportNumber: parseInt(this.infoForm.num), |
| | | sampleDeliveryMode: sampledeliveryway, |
| | | sampleDeliveryPhone: this.infoForm.sendertel, |
| | | sampleSender: this.infoForm.sender |
| | | }) |
| | | this.infoForm.commisioncode = res.data |
| | | if (res.data) { |
| | | this.$message({ |
| | | message: 'æåä½ !', |
| | | type: 'success' |
| | | }) |
| | | // è·³è½¬é¡µé¢ |
| | | this.$router.push('/inspectionManagement/commissionInspection') |
| | | this.showDetail = true |
| | | } else { |
| | | this.$message.error(res.message) |
| | | } |
| | | }, |
| | | handleSizeChange(pageSize) { |
| | | this.pageParams.pageSize = pageSize |
| | | }, |
| | | handleCurrentChange(pageNo) { |
| | | this.pageParams.pageNo = pageNo |
| | | }, |
| | | deleteRow(row) { |
| | | |
| | | }, |
| | | upMaterialName(val) { |
| | | this.sampleoptions.forEach(a => { |
| | | if (a.key == val) { |
| | | this.addPointerForm.sampleNumber = a.code |
| | | } |
| | | }) |
| | | this.getModelSpecification(val) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .add_commision{ |
| | | padding: 20px; |
| | | } |
| | | |
| | | .content-main{ |
| | | padding: 20px 40px; |
| | | background-color: #f0f2f5; |
| | | width: 100%; |
| | | height: 100vh; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | // align-items: center; |
| | | |
| | | .firstBox{ |
| | | .title { |
| | | padding: 15px 10px; |
| | | font-size: 18px; |
| | | background-color: #0166e2; |
| | | color: #fff; |
| | | border-radius: 4px; |
| | | } |
| | | .tableBox{ |
| | | background-color: #fff; |
| | | padding: 0px 20px; |
| | | margin: 0px -15px; |
| | | flex: 1; |
| | | background: #fff; |
| | | /* padding: 20px 20px 10px 20px; */ |
| | | display: flex; |
| | | flex-direction: column; |
| | | .tableBox-header{ |
| | | padding: 20px 0px; |
| | | .split{ |
| | | margin-right: 15px; |
| | | } |
| | | } |
| | | .el-table { |
| | | flex: 1; |
| | | } |
| | | >div:nth-child(3){ |
| | | display: flex; |
| | | justify-content: end; |
| | | margin: 10px 0; |
| | | } |
| | | } |
| | | } |
| | | .secondBox{ |
| | | margin: 0px -15px; |
| | | .header{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 10px 20px; |
| | | margin-top: 10px; |
| | | } |
| | | .submitBtn{ |
| | | display: flex; |
| | | justify-content: end; |
| | | margin-right: 40px; |
| | | margin-top: 20px; |
| | | } |
| | | } |
| | | .infoForm{ |
| | | background-color: #fff; |
| | | padding: 20px 50px; |
| | | .formwrapper{ |
| | | margin: 20px 0px; |
| | | padding-left: 30px; |
| | | .el-row{ |
| | | margin: 10px 0px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | .firstBox { |
| | | .title { |
| | | padding: 15px 10px; |
| | | font-size: 18px; |
| | | background-color: #0166e2; |
| | | color: #fff; |
| | | border-radius: 4px; |
| | | margin-bottom: 20px; |
| | | } |
| | | |
| | | .tableBox { |
| | | background-color: #fff; |
| | | padding: 0px 20px; |
| | | flex: 1; |
| | | background: #fff; |
| | | /* padding: 20px 20px 10px 20px; */ |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .tableBox-header { |
| | | padding: 20px 0px; |
| | | |
| | | .split { |
| | | margin-right: 15px; |
| | | } |
| | | } |
| | | |
| | | .el-table { |
| | | flex: 1; |
| | | } |
| | | |
| | | >div:nth-child(3) { |
| | | display: flex; |
| | | justify-content: end; |
| | | margin: 10px 0; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .secondBox { |
| | | |
| | | .header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 10px 20px; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | .submitBtn { |
| | | display: flex; |
| | | justify-content: end; |
| | | margin-right: 40px; |
| | | margin-top: 20px; |
| | | } |
| | | } |
| | | |
| | | .infoForm { |
| | | background-color: #fff; |
| | | padding: 20px 50px; |
| | | |
| | | .formwrapper { |
| | | margin: 20px 0px; |
| | | padding-left: 30px; |
| | | |
| | | .el-row { |
| | | margin: 10px 0px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 5px 24px 0px 24px; |
| | | } |
| | | |
| | | .top-bar{ |
| | | margin: -25px -15px; |
| | | background: #fff; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 5px 24px 0px 24px; |
| | | .sermargin{ |
| | | margin-right: 60px; |
| | | } |
| | | .rightForm{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | /* background-color: #bfa; */ |
| | | height: 40px; |
| | | line-height: 40px; |
| | | >div{ |
| | | padding: 0px 10px; |
| | | padding-bottom: 10px; |
| | | border:1px solid rgb(8, 156, 230); |
| | | margin-right: 10px; |
| | | /* height: 40px; |
| | | .sermargin { |
| | | margin-right: 60px; |
| | | } |
| | | |
| | | .rightForm { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | /* background-color: #bfa; */ |
| | | height: 40px; |
| | | line-height: 40px; |
| | | |
| | | >div { |
| | | padding: 0px 10px; |
| | | padding-bottom: 10px; |
| | | border: 1px solid rgb(8, 156, 230); |
| | | margin-right: 10px; |
| | | /* height: 40px; |
| | | line-height: 40px; */ |
| | | } |
| | | .rightBtn{ |
| | | background-color: rgb(1, 102, 226); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .library-table{ |
| | | background-color: #fff; |
| | | flex: 1; |
| | | margin: 0px -15px; |
| | | margin-top: 40px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .table-header{ |
| | | padding: 20px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .el-form-item{ |
| | | margin-bottom: 30px !important; |
| | | } |
| | | } |
| | | .table-box{ |
| | | padding: 0px 20px; |
| | | margin-top: 0px; |
| | | flex: 1; |
| | | background: #fff; |
| | | /* padding: 20px 20px 10px 20px; */ |
| | | display: flex; |
| | | flex-direction: column; |
| | | .el-table { |
| | | flex: 1; |
| | | } |
| | | >div:nth-child(2){ |
| | | display: flex; |
| | | justify-content: end; |
| | | margin: 10px 0; |
| | | } |
| | | } |
| | | } |
| | | .rightBtn { |
| | | background-color: rgb(1, 102, 226); |
| | | } |
| | | } |
| | | } |
| | | |
| | | .library-table { |
| | | background-color: #fff; |
| | | flex: 1; |
| | | margin: 0px -15px; |
| | | margin-top: 40px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .table-header { |
| | | padding: 20px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .el-form-item { |
| | | margin-bottom: 30px !important; |
| | | } |
| | | } |
| | | |
| | | .table-box { |
| | | padding: 0px 20px; |
| | | margin-top: 0px; |
| | | flex: 1; |
| | | background: #fff; |
| | | /* padding: 20px 20px 10px 20px; */ |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .el-table { |
| | | flex: 1; |
| | | } |
| | | |
| | | >div:nth-child(2) { |
| | | display: flex; |
| | | justify-content: end; |
| | | margin: 10px 0; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .rightBtn { |
| | | background-color: rgb(1, 102, 226); |
| | |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="condition" |
| | | prop="type" |
| | | label="ç¶æ" |
| | | min-width="8%" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span :style="{ color: scope.row.condition === 1 ? 'green' : 'red' }"> |
| | | {{ scope.row.condition === 1 ? 'å·²æ£æµ':'æªæ£æµ' }} |
| | | <span :style="{ color: scope.row.type === 1 ? 'green' : 'red' }"> |
| | | {{ scope.row.type === 1 ? 'å·²æ£æµ':'æªæ£æµ' }} |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | // console.log(res) |
| | | this.inspectionTable = res.data.row |
| | | this.data = res.data.row |
| | | console.log(res.data.row); |
| | | this.total = res.data.total |
| | | }, |
| | | async search(){ |
| | |
| | | type="primary" |
| | | size="small" |
| | | icon="el-icon-circle-plus-outline" |
| | | @click="dialogVisible = true" |
| | | >æ°å¢</el-button |
| | | > |
| | | <el-button size="small" icon="el-icon-delete-solid">å é¤</el-button> |
| | | <el-button |
| | | size="small" |
| | | icon="el-icon-delete-solid" |
| | | @click="listDeleteClick" |
| | | >å é¤</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="table-main-div"> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column label="æ¥æ" width="120"> |
| | | <template slot-scope="scope">{{ scope.row.date }}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="å§å" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="address" label="å°å" show-overflow-tooltip> |
| | | <el-table-column |
| | | label="åºå·" |
| | | type="index" |
| | | width="70" |
| | | ></el-table-column> |
| | | <el-table-column prop="department" label="é¨é¨"> </el-table-column> |
| | | <el-table-column label="æä½"> |
| | | <template scope="scope"> |
| | | <el-button type="text" size="mini" @click="updateClick(scope)" |
| | | >ç¼è¾</el-button |
| | | > |
| | | <el-button type="text" size="mini" @click="deleteClick(scope)" |
| | | >å é¤</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | <el-dialog |
| | | :title="isUpdate ? 'æ´æ°é¨é¨åç§°' : 'æ°å¢é¨é¨'" |
| | | :visible.sync="dialogVisible" |
| | | width="30%" |
| | | > |
| | | <el-form |
| | | :model="formData" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | class="elFormClass" |
| | | > |
| | | <el-form-item label="ä¸çº§é¨é¨ï¼" prop="name" style="padding-left: 10px"> |
| | | <el-input |
| | | v-model="treeNodeData.department" |
| | | :disabled="true" |
| | | style="width: 81.3%" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="é¨é¨åç§°ï¼" |
| | | prop="department" |
| | | style="padding-top: 20px" |
| | | > |
| | | <el-input |
| | | placeholder="请è¾å
¥é¨é¨åç§°" |
| | | v-model="formData.department" |
| | | clearable |
| | | style="width: 80%" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="saveForm">{{ |
| | | isUpdate ? "æ´ æ°" : "æ° å¢" |
| | | }}</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getOrganizationalApi } from "@/api/laboratory/organizational"; |
| | | import { |
| | | getOrganizationalApi, |
| | | getTableInitializationApi, |
| | | organizationalAddApi, |
| | | organizationalUpdateApi, |
| | | organizationalDeleteApi, |
| | | } from "@/api/laboratory/organizational"; |
| | | export default { |
| | | name: "Organizational", |
| | | data() { |
| | | return { |
| | | filterText: "", |
| | | dialogVisible: false, |
| | | msg: "", |
| | | isUpdate: false, |
| | | data: [], |
| | | // treeæ é»è®¤å¼é
ç½® |
| | | defaultProps: { |
| | |
| | | label: "department", |
| | | id: "id", |
| | | }, |
| | | tableData: [ |
| | | { |
| | | date: "2016-05-02", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1518 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-04", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1517 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-01", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1519 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-03", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1516 å¼", |
| | | }, |
| | | ], |
| | | formData: { |
| | | fatherId: "", |
| | | department: "", |
| | | }, |
| | | // æ°å¢æé®éé¢ç¦æ¢è¾å
¥æ¡æ°æ® |
| | | disabledInputShow: "", |
| | | // ä¿åç¹å»èç¹æ°æ® |
| | | treeNodeData: {}, |
| | | // å¤éå é¤ |
| | | listDelete: [], |
| | | // è¡¨æ ¼æ°æ® |
| | | tableData: [], |
| | | rules: { |
| | | department: [ |
| | | { required: true, message: "请è¾å
¥æ´»å¨åç§°", trigger: "blur" }, |
| | | { min: 1, max: 25, message: "é¿åº¦å¨ 1 å° 5 个å符", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | |
| | | treeInitialization() { |
| | | getOrganizationalApi().then((res) => { |
| | | this.data = res.data; |
| | | // åå§åé»è®¤msgæç¤ºè·¯å¾ä¸ºç¬¬ä¸èç¹åç§° |
| | | this.msg = res.data[0].department; |
| | | // åå§åè°ç¨è¡¨æ ¼æ¥å£ |
| | | this.tableInitialization(res.data[0].id); |
| | | // åå§åä¿å第ä¸èç¹æ°æ® |
| | | this.treeNodeData.department = res.data[0].department; |
| | | this.treeNodeData.id = res.data[0].id; |
| | | }); |
| | | }, |
| | | // è·åæ è·¯å¾ |
| | |
| | | // ç¹å»æ èç¹ |
| | | handleNodeClick(data, node, element) { |
| | | this.getParentData(node.parent, node.data.department); |
| | | console.log(`output->this.msg`, this.msg); |
| | | console.log(`output->data`, data); |
| | | console.log(`output->node`, node); |
| | | console.log(`output->element`, element); |
| | | // ç±äºç¹å»ç¬¬ä¸èç¹æ æ³è§¦ågetParentDataéé¢ç夿ï¼åªè½é¢å¤å¤æ |
| | | if (node.data.id === 0) { |
| | | this.msg = node.data.department; |
| | | } |
| | | // ç¹å»èç¹æ°æ®åå¨ä¸æ¥ |
| | | this.treeNodeData = node.data; |
| | | // ç¹å»è§¦åè¯¥å½æ°ï¼æ´æ°è¡¨æ ¼æ°æ® |
| | | this.tableInitialization(node.data.id); |
| | | }, |
| | | // æ¹åå¤éæ¡ç¶æ |
| | | toggleSelection(rows) { |
| | |
| | | }, |
| | | // ç¹å»å¤éæ¡ä»¥åçæä½ |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val; |
| | | this.listDelete = [] |
| | | val.forEach((v) => { |
| | | this.listDelete.push(v.id); |
| | | }); |
| | | }, |
| | | // åå§åè¡¨æ ¼æ°æ® |
| | | tableInitialization(departmentId) { |
| | | getTableInitializationApi(departmentId).then((res) => { |
| | | this.tableData = res.data; |
| | | }); |
| | | }, |
| | | // æ´æ°ä¸æ°å¢è¡¨å |
| | | saveForm() { |
| | | this.formData.fatherId = this.treeNodeData.id; |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | if (!this.isUpdate) { |
| | | organizationalAddApi(this.formData).then((res) => { |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.treeInitialization(); |
| | | this.dialogVisible = false; |
| | | }); |
| | | } else { |
| | | organizationalUpdateApi(this.formData).then((res) => { |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.treeInitialization(); |
| | | this.dialogVisible = false; |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | // ç¹å»ç¼è¾è§¦å |
| | | updateClick(scope) { |
| | | this.dialogVisible = true; |
| | | this.isUpdate = true; |
| | | this.formData.id = scope.row.id; |
| | | this.formData.fatherId = this.treeNodeData.id; |
| | | this.formData.department = scope.row.department; |
| | | }, |
| | | // è¡¨æ ¼ä¸çå é¤æé® |
| | | deleteClick(scope) { |
| | | organizationalDeleteApi(scope.row.id).then((res) => { |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.treeInitialization(); |
| | | }); |
| | | }, |
| | | // 头é¨å¤éå é¤ |
| | | listDeleteClick() { |
| | | organizationalDeleteApi(this.listDelete).then((res) => { |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.treeInitialization(); |
| | | }); |
| | | }, |
| | | }, |
| | | mounted() { |
| | |
| | | watch: { |
| | | filterText(val) { |
| | | this.$refs.tree.filter(val); |
| | | }, |
| | | dialogVisible: { |
| | | handler(newVal, oldVal) { |
| | | if (newVal == false) { |
| | | this.isUpdate = false; |
| | | this.formData = {}; |
| | | this.$refs.ruleForm.resetFields(); |
| | | } |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | font-weight: 500; |
| | | color: #999999; |
| | | } |
| | | .elFormClass .el-form-item__error { |
| | | padding-left: 90px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="personnel-main "> |
| | | <div class="personnel-main"> |
| | | <div class="page-header-search"> |
| | | <div class="search-bar"> |
| | | <el-form ref="form" :inline="true"> |
| | |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="getData()">æ¥è¯¢</el-button> |
| | | <el-button type="primary" plain @click="resetData()">éç½®</el-button> |
| | | <el-button type="primary" plain @click="resetData()" |
| | | >éç½®</el-button |
| | | > |
| | | <!-- <el-button type="text">é«çº§æç´¢<i class="el-icon-arrow-down el-icon--right" /></el-button> --> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="serve-btn"> |
| | | <el-button type="primary" icon="el-icon-plus" @click="dialogFormVisible = true">æ°å¢äººå</el-button> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-plus" |
| | | @click="dialogFormVisible = true" |
| | | >æ°å¢äººå</el-button |
| | | > |
| | | |
| | | <el-dialog title="æ°å¢äººå" :visible.sync="dialogFormVisible" width="30%"> |
| | | <el-form :model="form" :rules="rules"> |
| | | <el-form-item label="è´¦å·" :label-width="formLabelWidth" prop="account"> |
| | | <el-input v-model="form.account" autocomplete="off" /> |
| | | <el-dialog |
| | | :title="isUpdate == true ? 'æ´æ°äººåä¿¡æ¯' : 'æ°å¢äººå'" |
| | | :visible.sync="dialogFormVisible" |
| | | width="30%" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item |
| | | label="è´¦å·" |
| | | :label-width="formLabelWidth" |
| | | prop="account" |
| | | > |
| | | <el-input v-model="form.account" /> |
| | | </el-form-item> |
| | | <el-form-item label="å¹´é¾" :label-width="formLabelWidth"> |
| | | <el-input v-model="form.age" autocomplete="off" /> |
| | | <el-input v-model="form.age" /> |
| | | </el-form-item> |
| | | <el-form-item label="é®ç®±" :label-width="formLabelWidth" prop="email"> |
| | | <el-input v-model="form.email" autocomplete="off" /> |
| | | <el-form-item |
| | | label="é®ç®±" |
| | | :label-width="formLabelWidth" |
| | | prop="email" |
| | | > |
| | | <el-input v-model="form.email" /> |
| | | </el-form-item> |
| | | <el-form-item label="åå" :label-width="formLabelWidth" prop="name"> |
| | | <el-input v-model="form.name" autocomplete="off" /> |
| | | <el-form-item |
| | | label="åå" |
| | | :label-width="formLabelWidth" |
| | | prop="name" |
| | | > |
| | | <el-input v-model="form.name" /> |
| | | </el-form-item> |
| | | <el-form-item label="çµè¯" :label-width="formLabelWidth" prop="phone"> |
| | | <el-input v-model="form.phone" autocomplete="off" /> |
| | | <el-form-item |
| | | label="çµè¯" |
| | | :label-width="formLabelWidth" |
| | | prop="phone" |
| | | > |
| | | <el-input v-model="form.phone" /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æé" :label-width="formLabelWidth" prop="role_id"> |
| | | <el-input v-model="form.role_id" autocomplete="off" /> |
| | | <el-form-item |
| | | label="é¨é¨" |
| | | :label-width="formLabelWidth" |
| | | required |
| | | prop="organizationId" |
| | | > |
| | | <el-cascader |
| | | style="width: 100%" |
| | | :options="options" |
| | | :props="myProp" |
| | | v-model="form.organizationId" |
| | | clearable |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | |
| | | <el-form-item |
| | | label="æé" |
| | | :label-width="formLabelWidth" |
| | | prop="roleId" |
| | | > |
| | | <el-select |
| | | v-model="form.roleId" |
| | | clearable |
| | | style="100%" |
| | | placeholder="è¯·éæ©æé" |
| | | > |
| | | <el-option |
| | | v-for="item in roleList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogFormVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitForm()">ç¡® å®</el-button> |
| | | <el-button type="primary" @click="submitForm()">{{ |
| | | isUpdate == true ? "æ´ æ°" : "ç¡® å®" |
| | | }}</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | | <div class="content-main"> |
| | | <div class="personner-table"> |
| | | <el-table ref="personnerlTable" :max-height="700" :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }" |
| | | :data="personnerlTable" style="width: 100%"> |
| | | <el-table |
| | | ref="personnerlTable" |
| | | height="calc(100vh - 240px)" |
| | | border |
| | | :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ |
| | | border: '0px', |
| | | background: '#f5f7fa', |
| | | color: '#606266', |
| | | boxShadow: 'inset 0 1px 0 #ebeef5', |
| | | textAlign: 'center', |
| | | }" |
| | | @filter-change="fnFilterChangeInit" |
| | | :data="personnerlTable" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column prop="username" label="è§è²åç§°" min-width="120" /> |
| | | <el-table-column prop="roleName" label="è§è²æé" min-width="120" /> |
| | | <el-table-column prop="age" label="å¹´é¾" min-width="150" /> |
| | | <el-table-column prop="age" label="å¹´é¾" min-width="150"> |
| | | <template scope="scope"> |
| | | {{ |
| | | scope.row.age === "" || |
| | | scope.row.age === null || |
| | | scope.row.age == undefined |
| | | ? "---" |
| | | : scope.row.age |
| | | }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="department" label="é¨é¨" min-width="150" /> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" min-width="180" /> |
| | | <el-table-column prop="phone" label="çµè¯" min-width="200" /> |
| | | <el-table-column prop="email" label="é®ç®±" min-width="200" /> |
| | | <el-table-column prop="jobState" label="å¨èç¶æ" min-width="120" |
| | | :filters="[{ text: 0, value: 0 }, { text: 1, value: 1 }]" :filter-method="filterTag" |
| | | filter-placement="bottom-end"> |
| | | <el-table-column prop="phone" label="çµè¯" min-width="200"> |
| | | <template scope="scope"> |
| | | {{ |
| | | scope.row.phone === "" || scope.row.phone === undefined |
| | | ? "---" |
| | | : scope.row.phone |
| | | }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="email" label="é®ç®±" min-width="200"> |
| | | <template scope="scope"> |
| | | {{ |
| | | scope.row.email === "" || scope.row.email === undefined |
| | | ? "---" |
| | | : scope.row.email |
| | | }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="jobState" |
| | | label="å¨èç¶æ" |
| | | min-width="120" |
| | | :filters="[ |
| | | { text: 'å¨è', value: 1 }, |
| | | { text: '离å²', value: 0 }, |
| | | ]" |
| | | column-key="status" |
| | | :filter-method="filterTag" |
| | | filter-placement="bottom-end" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-tag :type="scope.row.jobState === 0 ? 'danger' : 'success'" disable-transitions>{{ |
| | | scope.row.jobState === 0 ? '离å²' : 'å¨è' }}</el-tag> |
| | | <el-tag |
| | | :type="scope.row.jobState === 0 ? 'danger' : 'success'" |
| | | disable-transitions |
| | | >{{ scope.row.jobState === 0 ? "离å²" : "å¨è" }}</el-tag |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" min-width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" @click="handleClick(scope.row)">ç¼è¾</el-button> |
| | | <!-- <el-button type="text" size="small">ç¼è¾</el-button> --> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | @click="handleClick(scope.row)" |
| | | >ç¼è¾</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div> |
| | | <!-- åé¡µå¨ --> |
| | | <el-pagination :current-page="currentPage" :page-sizes="[100, 200, 300, 400]" :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="this.personnerlTable.length" |
| | | @size-change="handleSizeChange" @current-change="handleCurrentChange" /> |
| | | <el-pagination |
| | | :current-page="currentPage" |
| | | :page-sizes="[10, 15, 20, 25]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { get, post } from '@/api/util/requestUtil'; |
| | | import urlInfo from '../../../api/urlEnum/personnel.js' |
| | | import { get, post, put } from "@/api/util/requestUtil"; |
| | | import urlInfo from "../../../api/urlEnum/personnel.js"; |
| | | import { getOrganizationalApi } from "@/api/laboratory/organizational"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | keyword: '', |
| | | personnerlTable: [ |
| | | |
| | | ], |
| | | keyword: "", |
| | | roleList: "", |
| | | personnerlTable: [], |
| | | filteredpersonnerlTable: [], |
| | | currentindex: 1, |
| | | currentPage: 1, // å½å页ç |
| | |
| | | personData: [], // ç¨æ¥åæ¾æ¥å£ä¼ è¿æ¥ç人ååè¡¨æ°æ® |
| | | dialogFormVisible: false, |
| | | form: { |
| | | account: '', |
| | | age: '', |
| | | email: '', |
| | | name: '', |
| | | phone: '', |
| | | role_id: '' |
| | | account: "", |
| | | age: "", |
| | | email: "", |
| | | name: "", |
| | | phone: "", |
| | | organizationId: "", |
| | | roleId: "", |
| | | }, |
| | | formLabelWidth: '100px', |
| | | myProp: { |
| | | value: "id", |
| | | label: "department", |
| | | checkStrictly: true, //å
è®¸éæ©ä»»æä¸è |
| | | }, |
| | | formLabelWidth: "100px", |
| | | rules: { |
| | | account: [ |
| | | { |
| | | required: true, message: '请è¾å
¥è´¦å·', trigger: 'blur' |
| | | } |
| | | required: true, |
| | | message: "请è¾å
¥è´¦å·", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | name: [{ |
| | | required: true, message: '请è¾å
¥åå', trigger: 'blur' |
| | | }], |
| | | name: [ |
| | | { |
| | | required: true, |
| | | message: "请è¾å
¥åå", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | phone: [ |
| | | // { required: true, message: '请è¾å
¥11ä½çµè¯å·ç ', trigger: 'blur' }, |
| | | { pattern: /^1[34578]\d{9}$/, message: 'éæ³ææºå·ç ', trigger: 'blur' } |
| | | { |
| | | pattern: /^1[3456789]\d{9}$/, |
| | | message: "éæ³ææºå·ç ", |
| | | trigger: ["blur", "change"], |
| | | }, |
| | | ], |
| | | email: [ |
| | | // { required: true, message: '请è¾å
¥é®ç®±å°å', trigger: 'blur' }, |
| | | { type: 'email', message: 'éæ³é®ç®±å°å', trigger: ['blur', 'change'] } |
| | | { |
| | | type: "email", |
| | | message: "éæ³é®ç®±å°å", |
| | | trigger: ["blur", "change"], |
| | | }, |
| | | ], |
| | | role_id: [ |
| | | { required: true, message: '请è¾å
¥æé(0æ1)', trigger: 'blur' } |
| | | |
| | | ] |
| | | } |
| | | } |
| | | organizationId: [ |
| | | { |
| | | required: true, |
| | | type: "array", |
| | | message: "è¯·éæ©é¨é¨", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | roleId: [ |
| | | { required: true, message: "请è¾å
¥æé(0æ1)", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | options: [], |
| | | status: "", |
| | | isUpdate: false, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.getData() |
| | | this.getData(); |
| | | this.getTreeData(); |
| | | }, |
| | | methods: { |
| | | // æ¯é¡µæ¡æ°æ¹åæ¶è§¦å éæ©ä¸é¡µæ¾ç¤ºå¤å°è¡ |
| | | handleSizeChange(val) { |
| | | console.log(`æ¯é¡µ ${val} æ¡`) |
| | | this.currentPage = 1 |
| | | this.pageSize = val |
| | | console.log(`æ¯é¡µ ${val} æ¡`); |
| | | this.currentPage = 1; |
| | | this.pageSize = val; |
| | | }, |
| | | filterTag() { |
| | | console.log(11); |
| | | filterTag(value) { |
| | | this.status = ""; |
| | | this.status = value; |
| | | return true; |
| | | }, |
| | | // å½å页æ¹åæ¶è§¦å 跳转å
¶ä»é¡µ |
| | | handleCurrentChange(val) { |
| | | console.log(`å½å页: ${val}`) |
| | | this.currentPage = val |
| | | console.log(`å½å页: ${val}`); |
| | | this.currentPage = val; |
| | | }, |
| | | async getData() { |
| | | let data = { |
| | | pageNo: 0, |
| | | pageSize: 20, |
| | | name: this.keyword |
| | | } |
| | | pageSize: 10, |
| | | name: this.keyword, |
| | | status: this.status, |
| | | }; |
| | | let res = await get(urlInfo.url.list_new_personnel, data); |
| | | this.personnerlTable=res.data.row |
| | | this.total=res.data.total |
| | | this.personnerlTable = res.data.row; |
| | | this.total = res.data.total; |
| | | }, |
| | | searchData() { |
| | | this.filteredpersonnerlTable = this.personnerlTable.filter((item) => { |
| | | return item.username === this.keyword |
| | | } |
| | | ) |
| | | this.personnerlTable = this.filteredpersonnerlTable |
| | | return item.username === this.keyword; |
| | | }); |
| | | this.personnerlTable = this.filteredpersonnerlTable; |
| | | }, |
| | | resetData() { |
| | | // console.log("111111") |
| | | this.personnerlTable = this.personData |
| | | this.keyword = '' |
| | | this.personnerlTable = this.personData; |
| | | this.keyword = ""; |
| | | this.status = ""; |
| | | this.getData(); |
| | | }, |
| | | // æäº¤æ°å¢äººå表å |
| | | submitForm() { |
| | | // Handle form submission here |
| | | // console.log(this.form); |
| | | // POSTè¯·æ± |
| | | this.$refs.form.validate((valid) => { |
| | | if (valid) { |
| | | this.dialogFormVisible = false |
| | | axios.post('/user/add_new_personnel', this.form) |
| | | .then(response => { |
| | | console.log(response) |
| | | // this.dialogVisible = false; |
| | | }) |
| | | .catch(error => { |
| | | console.error(error) |
| | | }) |
| | | let departmentId = this.form.organizationId; |
| | | this.form.organizationId = departmentId[departmentId.length - 1]; |
| | | if (!this.isUpdate) { |
| | | post("/user/add_new_personnel", this.form).then((response) => { |
| | | this.$message({ |
| | | message: response.message, |
| | | type: "success", |
| | | }); |
| | | this.dialogFormVisible = false; |
| | | this.getData(); |
| | | }); |
| | | } else { |
| | | put("/user/update_new_personnel", this.form).then((res) => { |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.dialogFormVisible = false; |
| | | this.getData(); |
| | | }); |
| | | } |
| | | } else { |
| | | console.log('error submit!!') |
| | | return false |
| | | console.log("error submit!!"); |
| | | return false; |
| | | } |
| | | }) |
| | | }); |
| | | }, |
| | | } |
| | | // æ¸
空Cascaderç©ºç½ |
| | | clearCascaderBlank(list) { |
| | | list.forEach((i) => { |
| | | if (i.children.length === 0) { |
| | | i.children = undefined; |
| | | } else { |
| | | this.clearCascaderBlank(i.children); |
| | | } |
| | | }); |
| | | }, |
| | | fnFilterChangeInit() { |
| | | this.personData = []; |
| | | this.getData(); |
| | | }, |
| | | /* |
| | | * @param list æ°æ®å表 |
| | | * @param id å端è¿åçid |
| | | **/ |
| | | getParentsById(list, id) { |
| | | for (let i in list) { |
| | | if (list[i].id == id) { |
| | | return [list[i].id]; |
| | | } |
| | | if (list[i].children) { |
| | | let node = this.getParentsById(list[i].children, id); |
| | | if (node !== undefined) { |
| | | //æ¥è¯¢å°æç¶èæç¶èç¹å å°æ°ç»åé¢ |
| | | node.unshift(list[i].id); |
| | | return node; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | } |
| | | handleClick(row) { |
| | | this.isUpdate = true; |
| | | this.dialogFormVisible = true; |
| | | this.form.name = row.username; |
| | | this.form.roleName = row.roleName; |
| | | this.form.phone = row.phone; |
| | | this.form.id = row.id; |
| | | this.form.email = row.email; |
| | | this.form.organizationId = this.getParentsById( |
| | | this.options, |
| | | row.departmentId |
| | | ); |
| | | this.form.roleId = row.roleName; |
| | | this.form.age = row.age; |
| | | this.form.account = row.account; |
| | | }, |
| | | getTreeData() { |
| | | getOrganizationalApi().then((res) => { |
| | | this.options = res.data[0].children; |
| | | this.clearCascaderBlank(this.options); |
| | | }); |
| | | }, |
| | | getRoleList() { |
| | | get("/user/list").then((res) => { |
| | | console.log(`output->res`, res); |
| | | this.roleList = res.data; |
| | | }); |
| | | }, |
| | | }, |
| | | watch: { |
| | | dialogFormVisible: { |
| | | handler(newVal, oldVal) { |
| | | if (newVal == false) { |
| | | this.isUpdate = false; |
| | | this.form = {}; |
| | | this.$refs.form.resetFields(); |
| | | } else { |
| | | this.getRoleList(); |
| | | } |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .personnel-main { |
| | | |
| | | // width: 100%; |
| | | // height: 100%; |
| | | .page-header-search { |
| | |
| | | background: #fff; |
| | | padding: 20px 20px 10px 20px; |
| | | |
| | | >div:nth-child(2) { |
| | | > div:nth-child(2) { |
| | | display: flex; |
| | | justify-content: end; |
| | | margin: 10px 0; |
| | |
| | | <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" |
| | |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%; margin-bottom: 20px" |
| | | row-key="name" |
| | | row-key="id" |
| | | border |
| | | height="calc(100vh - 250px)" |
| | | default-expand-all |
| | | ref="multipleTable" |
| | | @select="selectTr" |
| | | @select-all="selectAll" |
| | | @selection-change="handleSelectionChange" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" |
| | | > |
| | | <el-table-column type="selection" label="åºå·"> </el-table-column> |
| | |
| | | addSpecifications, |
| | | deleteListApi, |
| | | blurUpdateApi, |
| | | getVersion, |
| | | addVersion |
| | | } from "@/api/standardLibrary"; |
| | | |
| | | import { selectproductModelApi } from "@/api/basicData/index"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | options:[], |
| | | versionValue: '', |
| | | deleteList: [], |
| | | msg: "", |
| | | isAllSelect: false, |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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) { |
| | |
| | | this.$message.error("æ·»å 失败"); |
| | | } |
| | | |
| | | console.log(res); |
| | | this.$message.success("æ·»å æå"); |
| | | this.addTreeForm = { |
| | | addTypeArr: [], |
| | | }; |
| | | this.getStandardTree(); |
| | | this.getTableByClick(this.selectData); |
| | | this.getTableByClick(this.selectData,this.versionValue); |
| | | }, |
| | | changeCascader(data) { |
| | | this.addTreeForm.addTypeArr = data; |
| | |
| | | this.isAllSelect = !this.isAllSelect; |
| | | let data = this.tableData; |
| | | this.toggleSelect(data, this.isAllSelect, "all"); |
| | | // èªå®ä¹ |
| | | if (this.isAllSelect) { |
| | | val.forEach((i) => { |
| | | if (i.id !== undefined) { |
| | | this.deleteList.push(i.id); |
| | | } else { |
| | | i.children.forEach((c) => { |
| | | this.deleteList.push(c.id); |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | | this.deleteList.splice(0, this.deleteList.length); |
| | | } |
| | | }, |
| | | //éæ©æè¡ |
| | | selectTr(selection, row) { |
| | |
| | | this.isAllSelect = row.isChecked; |
| | | this.toggleSelect(row, row.isChecked, "tr"); |
| | | }); |
| | | |
| | | if (row.isChecked === true) { |
| | | if (row.children !== undefined) { |
| | | row.children.forEach((i) => { |
| | | this.deleteList.push(i.id); |
| | | }); |
| | | } else { |
| | | this.deleteList.push(row.id); |
| | | } |
| | | } else if (row.isChecked === false) { |
| | | if (row.children !== undefined) { |
| | | row.children.forEach((i) => { |
| | | this.deleteList.findIndex((c, index) => { |
| | | if (c === i.id) { |
| | | this.deleteList.splice(index, 1); |
| | | return; |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | this.deleteList.findIndex((c, index) => { |
| | | if (c === row.id) { |
| | | this.deleteList.splice(index, 1); |
| | | return; |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | //éå½å级 |
| | | toggleSelect(data, flag, type) { |
| | |
| | | } |
| | | }); |
| | | }, |
| | | handleSelectionChange(val) { |
| | | this.deleteList = [] |
| | | val.forEach((v) => { |
| | | if(v.id !== undefined){ |
| | | this.deleteList.push(v.id) |
| | | } |
| | | }) |
| | | console.log(`output->this.deleteList`,this.deleteList) |
| | | }, |
| | | // è¡¨æ ¼æ å
¨é¨éä¸é
ç½® ç»æ |
| | | deleteListClick() { |
| | | deleteListApi(this.deleteList).then((res) => { |
| | |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.getTableByClick(this.selectData); |
| | | this.getTableByClick(this.selectData,this.versionValue); |
| | | }); |
| | | }, |
| | | async requiredOnfocus(scope) { |
| | |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.getTableByClick(this.selectData); |
| | | this.getTableByClick(this.selectData,this.versionValue); |
| | | }); |
| | | }, |
| | | }, |
| | |
| | | width: 100%; |
| | | padding-bottom: 6px; |
| | | text-align: right; |
| | | .el-select{ |
| | | margin-right:10px; |
| | | } |
| | | } |
| | | .tipMsg { |
| | | float: left; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="content-wrapper"> |
| | | <div class="content-main"> |
| | | <div class="cover"> |
| | | <div class="cover-top"> |
| | | <div> |
| | | <div style="height: 30px; line-height: 30px;">æ¥åç¼å·:</div> |
| | | <div style="height: 30px; line-height: 30px;">Reference No:</div> |
| | | </div> |
| | | </div> |
| | | <div class="title"> |
| | | <h1 style="text-align-last:justify ;">æ£éªæ¥å</h1> |
| | | <h1>Test Report</h1> |
| | | </div> |
| | | <div class="cover-body"> |
| | | <div class="name"> |
| | | <div style="width:140px; text-align-last: justify;"> |
| | | <div>è¯æ ·åç§°</div> |
| | | <span style="font-size: 14px;">Name of Product</span> |
| | | </div> |
| | | <div class="line"> æµè¯åç§°</div> |
| | | </div> |
| | | <div class="name"> |
| | | <div style="width:140px; text-align-last: justify;"> |
| | | <div style="text-align-last: justify;">åå·</div> |
| | | <span style="font-size: 14px;">Type and Size</span> |
| | | </div> |
| | | <div class="line"> æµè¯åç§°</div> |
| | | </div> |
| | | <div class="name"> |
| | | <div style="width:140px; text-align-last: justify;"> |
| | | <div>å§æåä½</div> |
| | | <span style="font-size: 14px;display: block;margin: 10px 50px 0px;">Client</span> |
| | | </div> |
| | | <div class="line"> æµè¯åç§°</div> |
| | | </div> |
| | | <div class="name"> |
| | | <div style="width:140px; text-align-last: justify;"> |
| | | <div>æ£éªç±»å«</div> |
| | | <span style="font-size: 14px;">Kind of Test</span></div> |
| | | <div class="line"> æµè¯åç§°</div> |
| | | </div> |
| | | </div> |
| | | <div class="cover-footer"> |
| | | <span>æ±èä¸å¤©ç§æè¡ä»½æéå
¬å¸æ£æµä¸å¿</span><br> |
| | | <span style="font-size: 14px;">TEST CENTER OF JIANGSU ZHONGTIAN TECHNOLOGY CO.,LTD</span> |
| | | </div> |
| | | </div> |
| | | <div class="pageOne"> |
| | | <div class="statement"> |
| | | <div><h2>声æ</h2></div> |
| | | <div style="text-align-last: center;"><h2 style="font-size: 14px;">Statement</h2></div> |
| | | </div> |
| | | <div class="statement-body"> |
| | | <div> |
| | | <span>1. æ¬æ£éªæ¥åï¼å
æ¬å¤å°ä»¶ï¼æªå æ£æµä¸ç¨ç« ä¸å¾æ æã</span><br> |
| | | <span>This test report (including any duplicates) shall become effective only with pecial chapter for testing on.</span> |
| | | </div> |
| | | <div> |
| | | <span>2. æ¬æ£éªæ¥åæ ç¼åãå®¡æ ¸ãæ¹å人ç¾ç« æ æã</span><br> |
| | | <span>This test report shall become effective only with the signatures of compiler checker and approver.</span> |
| | | </div> |
| | | <div> |
| | | <span>3. æ¬æ£éªæ¥åæ¶æ¹æ æã</span><br> |
| | | <span>This test report will be invalid if altered.</span> |
| | | </div> |
| | | <div> |
| | | <span>4. æ¬æ£éªæ¥åä¸å¾é¨åå¤å°ã</span><br> |
| | | <span>This test report mustnât copy partly.</span> |
| | | </div> |
| | | <div> |
| | | <span>5. éæ ·å§ææ£éªï¼ä»
å¯¹æ¥æ ·è´è´£ã</span><br> |
| | | <span>For the sample submitted by clients, the test result is valid only for these samples.</span> |
| | | </div> |
| | | <div> |
| | | <span>6. æ ·ååå§æåä½ä¸ºå§ææ¹èªå½åã</span><br> |
| | | <span>Samples and consignor name for the principal.</span> |
| | | </div> |
| | | <div> |
| | | <span>7. æ¬æ£éªæ¥åä¸è±ææè¿°æå²çªæ¶ï¼ä»¥ä¸æè§£é为åã</span><br> |
| | | <span>If the Chinese and English version of the test report have any conflict, the Chinese version should be the standard for arbitrament.</span> |
| | | </div> |
| | | <div> |
| | | <span>8. å§ææ¹å¯¹æ¬æ£éªæ¥åè¥æå¼è®®ï¼åºäºæ ·åä¿åæå
忬ä¸å¿æåºï¼èç³»çµè¯ï¼0513-84885657</span><br> |
| | | <span>Clients who have any different ideas about this test report, may contract with Test Central within the sample reservation time. Tel: 0513-84885657</span> |
| | | </div> |
| | | <div> |
| | | <span>9. æ¬ä¸å¿æ ·åèªæ¥ååéæ¥èµ·ï¼ä¸è¬ä¿åä¸ä¸ªæï¼ä»¥å¤å¤éªã</span><br> |
| | | <span>The sample shall be reserved for one month beginning from the data when this test report is submitted for examine or review.</span> |
| | | </div> |
| | | </div> |
| | | <div class="statement-footer"> |
| | | <div class="depart"> |
| | | <span>æ±èä¸å¤©ç§æè¡ä»½æéå
¬å¸æ£æµä¸å¿</span><br> |
| | | <span>Test Center of Jiangsu Zhongtian Technology Co., LTD</span> |
| | | </div> |
| | | <div class="address"> |
| | | <span>å° åï¼æ±èçåéå¸ç»æµææ¯å¼ååºæ°å¼åè·¯19å·</span><br> |
| | | <span>Address: No.19 Xinkai South Road, Nantong Economic and Technological Development Zone, Jiangsu Province</span> |
| | | </div> |
| | | <div class="zipcode">鮿¿ç¼ç Zip Codeï¼226010</div> |
| | | <div class="tel">çµ è¯Telï¼0513-89059043</div> |
| | | <div class="email">é® ç®±E-mail:ï¼ztttc@chinaztt.com </div> |
| | | </div> |
| | | </div> |
| | | <div class="pageTwo"> |
| | | <div class="header" style="line-height: 10px;"> |
| | | <div style="width: 350px;margin: 0 auto; text-align-last: justify;"> |
| | | <h2 style="font-size: 18px;">æ±èä¸å¤©ç§æè¡ä»½æéå
¬å¸æ£æµä¸å¿</h2> |
| | | </div> |
| | | <div style="width: 500px; margin: 0 auto;text-align-last: justify;"> |
| | | <h2 style="font-size: 14px;">TEST CENTER OF JIANGSU ZHONGTIAN TECHNOLOGY CO.,LTD</h2> |
| | | </div> |
| | | <div style="width: 120px;margin: 0 auto;text-align-last: justify;"> |
| | | <h2 style="font-size: 18px;">æ£æµæ¥å</h2> |
| | | </div> |
| | | <div style="width: 100px; margin: 0 auto;text-align-last: justify;"> |
| | | <h2 style="font-size: 14px;">Test Report</h2> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | | <div class="table-header"> |
| | | <div> |
| | | <span>æ¥åç¼å·ï¼</span><br> |
| | | <span>Reference Noï¼</span> |
| | | </div> |
| | | <div> |
| | | <span>第1页å
±2页</span><br> |
| | | <span>Page 1 of 2</span> |
| | | </div> |
| | | </div> |
| | | <div class="table-body"> |
| | | <table width="100%" border="1" cellspacing="0" style="text-align: center;"> |
| | | <tr> |
| | | <td><span>è¯æ ·åç§°</span><br> |
| | | <span>Name of product</span></td> |
| | | <td colspan="2"></td> |
| | | <td> |
| | | <span>è§æ ¼åå·</span><br> |
| | | <span>Type and size</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>æ ·åæ°é</span><br> |
| | | <span>Test item</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | <td> |
| | | <span>æ£éªé¡¹ç®</span><br> |
| | | <span>Test item</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>æ¥æ ·æ¹å¼</span><br> |
| | | <span>Delivering method</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | <td> |
| | | <span>æ£éªç±»å</span><br> |
| | | <span>Type of test</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>æ ·åç¶æ</span><br> |
| | | <span>Sample discription</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | <td> |
| | | <span>ç产åä½</span><br> |
| | | <span>Producer</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>æ¶æ ·æ¶é´</span><br> |
| | | <span>Received date</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | <td> |
| | | <span>æ£éªæ¥æ</span><br> |
| | | <span>Test date</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>å§æäºº</span><br> |
| | | <span>Consignor</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | <td> |
| | | <span>çµè¯</span><br> |
| | | <span>Tel</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>å§æåä½</span><br> |
| | | <span>Client</span> |
| | | </td> |
| | | <td colspan="5"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>å§æåä½å°å</span><br> |
| | | <span>Address</span> |
| | | </td> |
| | | <td colspan="5"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>æ£éªç¯å¢</span><br> |
| | | <span>Test environment</span> |
| | | </td> |
| | | <td colspan="5"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>æ£éªä¾æ®</span><br> |
| | | <span>Test standard</span> |
| | | </td> |
| | | <td colspan="5"></td> |
| | | </tr> |
| | | <tr> |
| | | <td style="height: 180px;"> |
| | | <span>ç»è®º</span><br> |
| | | <span>Conclusion </span> |
| | | </td> |
| | | <td colspan="5"> |
| | | <div style="height: 120px;"></div> |
| | | <div style="height: 60px;margin-left: 250px;"> |
| | | <span>ï¼æ£æµæ¥åä¸ç¨ç« ï¼</span><br> |
| | | <span>( SPECIFIC STAMP FOR TEST RTORT) </span><br> |
| | | <span>ç¾åæ¥æï¼ å¹´ æ æ¥</span><br> |
| | | <span>Date of issue: August 23, 2023</span> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>夿³¨</span><br> |
| | | <span>Remark </span> |
| | | </td> |
| | | <td colspan="5"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>ç¼å¶</span><br> |
| | | <span>Preparer</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | <td> |
| | | <span>æ£éª</span><br> |
| | | <span>Tester</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>å®¡æ ¸</span><br> |
| | | <span>Checker </span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | <td> |
| | | <span>æ¹å</span><br> |
| | | <span>Approver</span> |
| | | </td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="pageThree"> |
| | | <div class="header" style="line-height: 10px;"> |
| | | <div style="width: 350px;margin: 0 auto; text-align-last: justify;"> |
| | | <h2 style="font-size: 18px;">æ±èä¸å¤©ç§æè¡ä»½æéå
¬å¸æ£æµä¸å¿</h2> |
| | | </div> |
| | | <div style="width: 500px; margin: 0 auto;text-align-last: justify;"> |
| | | <h2 style="font-size: 14px;">TEST CENTER OF JIANGSU ZHONGTIAN TECHNOLOGY CO.,LTD</h2> |
| | | </div> |
| | | <div style="width: 120px;margin: 0 auto;text-align-last: justify;"> |
| | | <h2 style="font-size: 18px;">æ£æµæ¥å</h2> |
| | | </div> |
| | | <div style="width: 100px; margin: 0 auto;text-align-last: justify;"> |
| | | <h2 style="font-size: 14px;">Test Report</h2> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | | <div class="table-header"> |
| | | <div> |
| | | <span>æ¥åç¼å·ï¼</span><br> |
| | | <span>Reference Noï¼</span> |
| | | </div> |
| | | <div> |
| | | <span>第2页å
±2页</span><br> |
| | | <span>Page 2 of 2</span> |
| | | </div> |
| | | </div> |
| | | <div class="table-body"> |
| | | <table width="100%" border="1" cellspacing="0" style="text-align: center;"> |
| | | <tr> |
| | | <td colspan="4"> |
| | | <span>æ ·åç¼å·</span><br> |
| | | <span>Sample No</span></td> |
| | | <td colspan="3"></td> |
| | | <td colspan="4"> |
| | | <span>è§æ ¼åå·</span><br> |
| | | <span>Type</span> |
| | | </td> |
| | | <td colspan="3"></td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span>åºå·</span><br> |
| | | <span>No</span> |
| | | </td> |
| | | <td colspan="3"> |
| | | <span>æ£éªé¡¹ç®</span><br> |
| | | <span>Test item</span> |
| | | </td> |
| | | <td> |
| | | <span>åä½</span><br> |
| | | <span>Unit</span> |
| | | </td> |
| | | <td colspan="3"> |
| | | <span>æ åè¦æ±</span><br> |
| | | <span>Requirement</span> |
| | | </td> |
| | | <td colspan="3"> |
| | | <span>æ£éªç»æ</span><br> |
| | | <span>Test result</span> |
| | | </td> |
| | | <td> |
| | | <span>ç»è®º</span><br> |
| | | <span>Conclusion</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <span></span><br> |
| | | <span></span> |
| | | </td> |
| | | <td colspan="3"> |
| | | <span>æ ·åæ è¯</span><br> |
| | | <span>Sample labeling</span> |
| | | </td> |
| | | <td> |
| | | <span></span><br> |
| | | <span>I</span> |
| | | </td> |
| | | <td colspan="3"> |
| | | <span></span><br> |
| | | <span></span> |
| | | </td> |
| | | <td colspan="3"> |
| | | <span></span><br> |
| | | <span></span> |
| | | </td> |
| | | <td> |
| | | <span></span><br> |
| | | <span></span> |
| | | </td> |
| | | </tr> |
| | | <tr v-for="item in resultTable" :key="index"> |
| | | <td> |
| | | <span>{{ item.id }}</span><br> |
| | | </td> |
| | | <td colspan="3"> |
| | | <span>{{ item.testitem }}</span><br> |
| | | <span>{{ item.testitem_engName }}</span> |
| | | </td> |
| | | <td> |
| | | <span>{{ item.unit }}</span> |
| | | </td> |
| | | <td colspan="3"> |
| | | <span>{{ item.requirement }}</span><br> |
| | | <span>{{ item.requirement_eng }}</span> |
| | | </td> |
| | | <td colspan="3"> |
| | | <span>{{ item.testresult }}</span><br> |
| | | <span>{{ item.testresult_engName }}</span> |
| | | </td> |
| | | <td> |
| | | <span>{{ item.conclusion }}</span> |
| | | </td> |
| | | </tr> |
| | | |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="pageFour"> |
| | | <div class="page-header" style="display: flex;justify-content: space-between;font-size: 12px;"> |
| | | <div> |
| | | <span>æ¥åç¼å·ï¼</span><br> |
| | | <span>Reference Noï¼</span> |
| | | </div> |
| | | <div> |
| | | <span>é页</span><br> |
| | | <span>Appenfix</span> |
| | | </div> |
| | | </div> |
| | | <hr> |
| | | <div class="table"> |
| | | <div class="table-header"> |
| | | <div style="width: 200px; margin: 0 auto;text-align-last: justify;"><h2>æ£éªè®¾å¤ä¸è§è¡¨</h2></div> |
| | | <div style="text-align-last: center;"><h2 style="font-size: 14px;">Equipment List</h2></div> |
| | | </div> |
| | | <div class="table-body"> |
| | | <table width="100%" border="1" cellspacing="0" style="text-align: center;"> |
| | | <thead> |
| | | <tr> |
| | | <td> |
| | | <span>åºå·</span><br> |
| | | <span>No</span> |
| | | </td> |
| | | <td colspan="2"> |
| | | <span>设å¤åç§°</span><br> |
| | | <span>Equipment name</span> |
| | | </td> |
| | | <td> |
| | | <span>设å¤åå·</span><br> |
| | | <span>type</span> |
| | | </td> |
| | | <td colspan="2"> |
| | | <span>ç¼å·</span><br> |
| | | <span>Factory number</span> |
| | | </td> |
| | | <td colspan="2"> |
| | | <span>æ ¡åæææ</span><br> |
| | | <span>Date of validity</span> |
| | | </td> |
| | | </tr> |
| | | </thead> |
| | | <tr v-for="item in table" :key="index"> |
| | | <td> |
| | | <span>{{ item.id }}</span> |
| | | </td> |
| | | <td colspan="2"> |
| | | <span>{{ item.equipment_name }}</span> |
| | | </td> |
| | | <td> |
| | | <span>{{ item.type }}</span><br> |
| | | </td> |
| | | <td colspan="2"> |
| | | <span>{{ item.factory_number }}</span> |
| | | </td> |
| | | <td colspan="2"> |
| | | <span>{{ item.validity }}</span> |
| | | </td> |
| | | </tr> |
| | | |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | props:{ |
| | | |
| | | }, |
| | | data(){ |
| | | return { |
| | | resultTable:[ |
| | | { |
| | | id: '1', |
| | | testitem: 'å姿伏', |
| | | testitem_engName: 'Primitive strength', |
| | | unit: 'MPa', |
| | | requirement: 'æå°10.0', |
| | | requirement_eng: 'Minimun 10.0', |
| | | testresult: '', |
| | | testitem_engName: '' |
| | | } |
| | | ], |
| | | table:[{ |
| | | id: 1, |
| | | equipment_name: 'æææº', |
| | | type: 1, |
| | | factory_number: 'Akjgfewof', |
| | | validity:'2023.8.25~2023.8.27' |
| | | }] |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .content-wrapper{ |
| | | background-color: #f0f2f5; |
| | | width: 100%; |
| | | height: 100vh; |
| | | overflow-y: auto; |
| | | .content-main{ |
| | | margin: -50px auto; |
| | | width: 50%; |
| | | // background-color: #fff; |
| | | // background-color: #bfa; |
| | | .cover{ |
| | | margin: 80px 0px; |
| | | padding:0px 50px; |
| | | height: 1200px; |
| | | background-color: #fff; |
| | | box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); |
| | | .cover-top{ |
| | | display: flex; |
| | | justify-content: end; |
| | | font-size: 20px; |
| | | margin-right: 50px; |
| | | padding-top: 50px; |
| | | // font-weight: bold; |
| | | } |
| | | .title{ |
| | | margin-top: 100px; |
| | | padding: 0px 220px; |
| | | text-align: center; |
| | | font-size: 25px; |
| | | } |
| | | .cover-body{ |
| | | font-size: 25px; |
| | | margin: 100px 80px; |
| | | .name{ |
| | | // background-color: #bfa; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 20px; |
| | | .line{ |
| | | width: 500px; |
| | | border-bottom: solid 1px black; |
| | | text-align: center; |
| | | // height: 60px; |
| | | line-height: 60px; |
| | | } |
| | | } |
| | | } |
| | | .cover-footer{ |
| | | text-align: center; |
| | | margin-top: 200px; |
| | | span{ |
| | | font-size: 23px; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | } |
| | | } |
| | | } |
| | | .pageOne{ |
| | | margin-top: -50px; |
| | | background-color: #fff; |
| | | box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); |
| | | padding:50px 100px; |
| | | height: 1200px; |
| | | .statement{ |
| | | margin: 0 auto; |
| | | width: 100px; |
| | | text-align-last: justify; |
| | | } |
| | | .statement-body{ |
| | | line-height: 32px; |
| | | text-align: justify; |
| | | margin: 30px 0px; |
| | | font-size: 12px; |
| | | } |
| | | .statement-footer{ |
| | | line-height: 30px; |
| | | font-size: 12px; |
| | | } |
| | | } |
| | | .pageTwo{ |
| | | margin-top: 30px; |
| | | background-color: #fff; |
| | | box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); |
| | | padding:50px 60px; |
| | | height: 1200px; |
| | | .table{ |
| | | margin-top: 20px; |
| | | .table-header{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | font-size: 14px; |
| | | line-height: 20px; |
| | | } |
| | | .table-body{ |
| | | font-size: 12px; |
| | | table td{ |
| | | width: 150px; |
| | | height: 52px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .pageThree{ |
| | | margin-top: 30px; |
| | | background-color: #fff; |
| | | box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); |
| | | padding:50px 60px; |
| | | height: 1200px; |
| | | .table{ |
| | | margin-top: 20px; |
| | | .table-header{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | font-size: 14px; |
| | | line-height: 20px; |
| | | } |
| | | .table-body{ |
| | | font-size: 12px; |
| | | table td{ |
| | | width: 8%; |
| | | height: 52px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .pageFour{ |
| | | margin-top: 30px; |
| | | background-color: #fff; |
| | | box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); |
| | | padding:50px 60px; |
| | | height: 1200px; |
| | | .table{ |
| | | margin-top: 50px; |
| | | .table-header{ |
| | | line-height: 20px; |
| | | } |
| | | .table-body{ |
| | | margin-top: 20px; |
| | | font-size: 12px; |
| | | table td{ |
| | | width: 80px; |
| | | height: 52px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | </style> |