package.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/App.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/experiment/template_testReport/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/EventBus.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/GlobalClickMixin.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/experiment/checkTheReport/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/experiment/inspectionApplication/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/inspectionManagement/commissionInspection/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/inspectionManagement/reportForInspection/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
package.json
@@ -22,6 +22,7 @@ "element-ui": "2.13.2", "html2pdf.js": "^0.10.1", "js-cookie": "2.2.0", "moment": "^2.29.4", "normalize.css": "7.0.0", "nprogress": "0.2.0", "path-to-regexp": "2.4.0", src/App.vue
@@ -1,12 +1,14 @@ <template> <div id="app"> <router-view /> </div> <div id="app"> <router-view /> </div> </template> <script> import GlobalClickMixin from "@/utils/GlobalClickMixin"; export default { name: 'App', mixins: [GlobalClickMixin], // ä½¿ç¨æ··å ¥ name: 'App', mounted() { document.title = "è£ å¤çµç¼ lims ç³»ç»" } @@ -14,86 +16,88 @@ </script> <style> #app{ overflow: hidden !important; } .breadcrumb-container{ height: 40px; } .app-main{ margin-top: 41px !important; } .el-menu-item{ width: 100%; } /* å ¨å±æ¨¡ææ¡æ ·å¼ */ .el-dialog{ border-radius: 10px; overflow: hidden; } .el-dialog__header,.el-message-box__header { box-sizing: border-box; height: 46px; border-bottom: 1px solid rgb(238, 238, 238); padding: 0px; padding-left: 18px; display: flex; align-items: center; background-color: #069cff; } .el-dialog__header *{ font-size: 16px !important; color: #fff; } .el-message-box{ border: 0; border-radius: 15px; } .el-message-box__header * { font-size: 16px !important; color: #fff !important; } .el-dialog__headerbtn .el-dialog__close{ color: #fff; top: -20px; } .el-dialog__headerbtn{ top: initial; } .el-dialog__footer .el-button * { font-size: 14px !important; } .el-dialog__footer .el-button { height: 36px; border: 1px solid rgba(190, 190, 190, 0.44); box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41); padding: 0 14px; } .ins_state_success{ background-color: #67c23a; color: #fff; display: initial; padding: 6px 10px; border-radius: 4px; } .ins_state_error{ background-color: #f56c6c; color: #fff; display: initial; padding: 6px 10px; border-radius: 4px; } #app { overflow: hidden !important; } .breadcrumb-container { height: 40px; } .app-main { margin-top: 41px !important; } .el-menu-item { width: 100%; } /* å ¨å±æ¨¡ææ¡æ ·å¼ */ .el-dialog { border-radius: 10px; overflow: hidden; } .el-dialog__header, .el-message-box__header { box-sizing: border-box; height: 46px; border-bottom: 1px solid rgb(238, 238, 238); padding: 0px; padding-left: 18px; display: flex; align-items: center; background-color: #069cff; } .el-dialog__header * { font-size: 16px !important; color: #fff; } .el-message-box { border: 0; border-radius: 15px; } .el-message-box__header * { font-size: 16px !important; color: #fff !important; } .el-dialog__headerbtn .el-dialog__close { color: #fff; top: -20px; } .el-dialog__headerbtn { top: initial; } .el-dialog__footer .el-button * { font-size: 14px !important; } .el-dialog__footer .el-button { height: 36px; border: 1px solid rgba(190, 190, 190, 0.44); box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41); padding: 0 14px; } .ins_state_success { background-color: #67c23a; color: #fff; display: initial; padding: 6px 10px; border-radius: 4px; } .ins_state_error { background-color: #f56c6c; color: #fff; display: initial; padding: 6px 10px; border-radius: 4px; } </style> src/components/experiment/template_testReport/index.vue
@@ -174,57 +174,73 @@ <span>æ£éªç±»å</span><br> <span>Type of test</span> </td> <td colspan="2"></td> <td colspan="2"> {{reportData.type === 0 ? "åæææ£éª" : (reportData.type === 1 ? "å§ææ£éª" : "æåæ£éª")}} </td> </tr> <tr> <td> <span>æ ·åç¶æ</span><br> <span>Sample discription</span> </td> <td colspan="2"></td> <td colspan="2">/</td> <td> <span>ç产åä½</span><br> <span>Producer</span> </td> <td colspan="2"></td> <td colspan="2"> {{reportData.supplier}} </td> </tr> <tr> <td> <span>æ¶æ ·æ¶é´</span><br> <span>éæ ·æ¶é´</span><br> <span>Received date</span> </td> <td colspan="2"></td> <td colspan="2"> </td> <td> <span>æ£éªæ¥æ</span><br> <span>Test date</span> </td> <td colspan="2"></td> <td colspan="2"> {{reportData.createTime}} </td> </tr> <tr> <td> <span>å§æäºº</span><br> <span>Consignor</span> </td> <td colspan="2"></td> <td colspan="2"> {{enterprise.linkName}} </td> <td> <span>çµè¯</span><br> <span>Tel</span> </td> <td colspan="2"></td> <td colspan="2"> {{enterprise.linkPhone}} </td> </tr> <tr> <td> <span>å§æåä½</span><br> <span>Client</span> </td> <td colspan="5"></td> <td colspan="5"> {{enterprise.name}} </td> </tr> <tr> <td> <span>å§æåä½å°å</span><br> <span>Address</span> </td> <td colspan="5"></td> <td colspan="5"> {{enterprise.address}} </td> </tr> <tr> <td> @@ -246,12 +262,12 @@ <span>Conclusion </span> </td> <td colspan="5"> <div style="height: 120px;"></div> <div style="padding-left: 20px;width:100%;text-align:left; font-size:18px;height: 120px;line-height: 120px;">{{reportData.inspectionStatus === 1 ? "åæ ¼" : "ä¸åæ ¼"}}</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> <span>ç¾åæ¥æï¼ {{formattedDate('yyyyå¹´MMæDDæ¥','zh-cn') }}</span><br> <span>Date of issue: {{formattedDate('LL','en-ca') }}</span> </div> </td> </tr> @@ -267,7 +283,7 @@ <span>ç¼å¶</span><br> <span>Preparer</span> </td> <td colspan="2"></td> <td colspan="2">{{reportData.preparerName}}</td> <td> <span>æ£éª</span><br> <span>Tester</span> @@ -308,8 +324,8 @@ <div class="table"> <div class="table-header"> <div> <span>æ¥åç¼å·ï¼</span><br> <span>Reference Noï¼</span> <span>æ¥åç¼å·ï¼{{reportData.rcode}}</span><br> <span>Reference Noï¼{{reportData.rcode}}</span> </div> <div> <span>第2é¡µå ±2页</span><br> @@ -323,12 +339,12 @@ <span>æ ·åç¼å·</span><br> <span>Sample No</span> </td> <td colspan="3"></td> <td colspan="3">{{reportData.imCode}}</td> <td colspan="4"> <span>è§æ ¼åå·</span><br> <span>Type</span> </td> <td colspan="3"></td> <td colspan="3">{{reportData.specifications}}</td> </tr> <tr> <td> @@ -356,53 +372,35 @@ <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, index) in resultTable" :key="index"> <td> <span>{{ item.id }}</span><br> <span>{{ index + 1 }}</span><br> </td> <td colspan="3"> <span>{{ item.testitem }}</span><br> <span>{{ item.testitem_engName }}</span> <span>{{ item.ipName }}</span> </td> <td> <span>{{ item.unit }}</span> </td> <td colspan="3"> <span>{{ item.requirement }}</span><br> <span>{{ item.requirement_eng }}</span> <span>{{ item.required }}</span><br> </td> <td colspan="3"> <span>{{ item.testresult }}</span><br> <span>{{ item.testresult_engName }}</span> <span>{{ item.testValue }}</span><br> </td> <td> <span>{{ item.conclusion }}</span> <span>{{ isIfState(item.testState) }}</span> </td> </tr> <tr> <td> <span>夿³¨:</span><br/> <span>remarks:</span> </td> <td colspan="13"> âââ表示项ç®åæ ¼ï¼âÃâ表示项ç®ä¸åæ ¼,âï¼â表示ä¸è¦å¤å®ï¼âï¼âè¡¨ç¤ºæ²¡ææ åè¦æ±ã âââ indicates test Item is qualifiedï¼âÃâ indicates test Item is unqualified, âï¼â indicates test Item judgment is not required,âï¼â indicates test Item is no test requirement . </td> </tr> </table> @@ -412,8 +410,8 @@ <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> <span>æ¥åç¼å·ï¼{{reportData.rcode}}</span><br> <span>Reference Noï¼{{reportData.rcode}}</span> </div> <div> <span>é页</span><br> @@ -474,6 +472,7 @@ </td> </tr> </table> <p style="width:100%;text-align: center;font-size: 15px;">------以ä¸ç©ºç½ï¼Following Blankï¼------</p> </div> </div> </div> @@ -482,6 +481,7 @@ </template> <script> import moment from 'moment'; import { get, post, @@ -489,19 +489,9 @@ } from "@/api/util/requestUtil.js" export default { name: 'TestReport', props: ["reportData"], data() { return { resultTable: [{ id: '1', testitem: 'å姿伏', testitem_engName: 'Primitive strength', unit: 'MPa', requirement: 'æå°10.0', requirement_eng: 'Minimun 10.0', testresult: '', testitem_engName: '' }], resultTable: [], table: [{ id: 1, equipment_name: 'æææº', @@ -516,7 +506,8 @@ } }, mounted() { this.getEnterprise() this.initResultData(); this.getEnterprise(); if (Object.keys(this.reportData).length > 0) { this.reData.productNames = '' this.reportData.products.forEach(a=>{ @@ -526,12 +517,39 @@ } }, methods: { initResultData(){ this.resultTable = this.reportData.products; if (this.resultTable.length < 15) { let size = this.resultTable.length; let num = 15 - size; for (let i = 0; i < num; i++) { this.resultTable.push({ code: null, ipName: "", required: "", testState: null, testValue: "", unit: "" }) } } }, isIfState(val) { if (val === 1) return "â" else if (val === null || val === undefined) return null else return "X" }, formattedDate(fmt,local) { moment.locale(local); return moment().format(fmt); }, getEnterprise() { get("/report/getEnterprise").then(res => { this.enterprise = res.data }) } } }, props: ["reportData"], } </script> src/main.js
@@ -9,7 +9,6 @@ import locale from 'element-ui/lib/locale/lang/zh-CN' // lang i18n import VueClipboard from 'vue-clipboard2' Vue.use(VueClipboard) import '@/styles/index.scss' // global css import App from './App' @@ -61,4 +60,4 @@ router, store, render: h => h(App) }) }); src/utils/EventBus.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,3 @@ // EventBus.js import Vue from 'vue'; export const EventBus = new Vue(); src/utils/GlobalClickMixin.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ import { EventBus } from './EventBus.js'; export default { mounted() { this.$el.addEventListener('click', this.$_handleGlobalClick); }, beforeDestroy() { this.$el.removeEventListener('click', this.$_handleGlobalClick); }, methods: { $_handleGlobalClick(event) { if (event.target.tagName === 'SPAN'||event.target.tagName==='BUTTON') { if(sessionStorage.getItem('user')===undefined&&sessionStorage.getItem('user')===null){ return; } let user=JSON.parse(sessionStorage.getItem('user')); if(user.account === 'admin'&&user.sessionLayerId === 'f5c8bcb7d5a0fd27e2323280f7e98cad'){ return; } // console.log(this.$router.currentRoute); // console.log(user.role.roleMenuList); // console.log(event.target.innerText); } } } }; src/views/experiment/checkTheReport/index.vue
@@ -177,18 +177,20 @@ TestReport }, methods: { async queryReportByRCode(code) { async queryReportByRCode(code,name) { const resp = await getReportData({ code: code }); this.reportData = resp.data; this.reportData.preparerName = name; this.dialogVisible = true; console.log(this.reportData); }, //æ¥çæ¥åæé® previewFun(row) { this.reportType = row.type; this.queryReportByRCode(row.reportCode); this.queryReportByRCode(row.reportCode,row.name); }, handleSelectionChange(selection) { this.selectedRows = selection; src/views/experiment/inspectionApplication/index.vue
@@ -609,8 +609,12 @@ }, reset() { this.countSize = 1; this.pageSize = 8; this.searchData = {}; this.pageSize = 10; this.searchData = { applicationnumber: '', type: '', state: '', }; this.selectInspectsList(); }, //被éä¸çä¿¡æ¯ åé @@ -770,12 +774,18 @@ this.addInspection() }, delInspect(row){ delInspect({ id: row.id }).then(res=>{ this.$message.success('å·²ä½åº') this.selectInspectsList() }) this.$confirm('æ¨ç¡®è®¤å é¤è¿æ¡æ°æ®å?', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { delInspect({ id: row.id }).then(()=>{ this.$message.success('å·²ä½åº') this.selectInspectsList() }) }).catch(() => {}); } } } src/views/inspectionManagement/commissionInspection/index.vue
@@ -71,7 +71,6 @@ <el-table-column prop="inspectionTime" 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="insTime" 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 === 0"> src/views/inspectionManagement/reportForInspection/index.vue
@@ -84,7 +84,6 @@ <el-table-column prop="quantity" label="æ°é" min-width="5%" /> <el-table-column prop="inspectionDate" label="æ¥æ£æ¥æ" min-width="8%" /> <el-table-column prop="surveyor" label="æ£éªäºº" min-width="8%" /> <el-table-column prop="insTime" label="æ£éªæ¥æ" min-width="8%" /> <el-table-column prop="type" label="ç¶æ" min-width="8%"> <template slot-scope="scope"> <span :style="{ color: scope.row.type === 1 ? 'green' : 'red' }">