.env.production
@@ -3,5 +3,5 @@ # base api # VUE_APP_BASE_API = '/prod-api' VUE_APP_BASE_API = 'http://192.168.110.254:1234/' VUE_APP_BASE_API = 'http://192.168.110.167:1234/' .env.staging
@@ -5,6 +5,6 @@ # base api # VUE_APP_BASE_API = '/stage-api' VUE_APP_BASE_API = 'http://192.168.110.87:1234/' VUE_APP_BASE_API = 'http://192.168.110.167:1234/' package.json
@@ -26,6 +26,7 @@ "path-to-regexp": "2.4.0", "postcss-pxtorem": "^5.1.1", "vue": "2.6.10", "vue-clipboard2": "^0.3.3", "vue-router": "3.0.6", "vuex": "3.1.0" }, src/api/inspection/commisioninspection.js
@@ -41,3 +41,27 @@ data }) } export function getViewUUID(params){ return request({ url: '/link-basic/getViewUUID', method: 'get', params }) } export function selectViewUUID(){ return request({ url: '/link-basic/selectViewUUID', method: 'get' }) } export function isIfViewUUID(params){ return request({ url: '/link-basic/isIfViewUUID', method: 'get', params }) } src/api/url.js
@@ -5,6 +5,7 @@ "reported": "/plan/reported",//上报 "distribution": "/plan/distribution",//分配 "check": "/plan/check",//检验 "info": "/user/info",//登录-->获取用户信息 } export default function(Vue) { src/layout/components/Navbar.vue
@@ -13,7 +13,7 @@ </div> <el-dropdown class="avatar-container" trigger="click"> <div class="avatar-wrapper"> <a class="user-avatar">{{ '中天'.slice(0,1) }}</a> <a class="user-avatar">{{ user.name.slice(0,1) }}</a> </div> <el-dropdown-menu slot="dropdown" class="user-dropdown"> <el-dropdown-item > @@ -49,6 +49,12 @@ import { mapGetters } from 'vuex' // import Breadcrumb from '@/components/Breadcrumb' // import Hamburger from '@/components/Hamburger' import { get, post, wpost, postFile } from "@/api/util/requestUtil.js" export default { data(){ @@ -72,6 +78,17 @@ 'avatar' ]) }, data() { return { user: { id: null, name: 'value' } } }, mounted() { this.getUser() }, methods: { reset(){ this.dialogFormVisible = false; @@ -91,6 +108,11 @@ async logout() { // await this.$store.dispatch('user/logout') this.$router.push(`/login?redirect=${this.$route.fullPath}`) }, getUser(){ get(this.$url.info).then(res=>{ this.user = res.data }) } } } src/layout/components/Sidebar/Item.vue
@@ -19,9 +19,7 @@ render(h, context) { const { icon, title } = context.props const vnodes = [] // console.log(show) // if (!show) return // console.log(icon, title) if (icon) { if (icon.includes('el-icon')) { vnodes.push(<i class={[icon, 'sub-el-icon']} />) src/layout/components/Sidebar/SidebarItem.vue
@@ -63,7 +63,6 @@ return {} }, created() { // console.log(this.item) }, methods: { hasOneShowingChild(children = [], parent) { src/layout/components/Sidebar/index.vue
@@ -31,7 +31,6 @@ 'sidebar' ]), routes() { console.log(this.$router.options.routes); return this.$router.options.routes }, activeMenu() { src/main.js
@@ -7,6 +7,8 @@ import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' 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 @@ -41,6 +43,8 @@ return JSON.parse(JSON.stringify(val)) } Vue.prototype.vueIp = "http://localhost:8080/" // set ElementUI lang to EN Vue.use(ElementUI, { locale }) // 如果想要中文版 element-ui,按如下方式声明 @@ -50,6 +54,7 @@ Vue.config.productionTip = false new Vue({ el: '#app', router, src/router/index.js
@@ -42,6 +42,11 @@ hidden: true }, { path: '/addCommision', component: () => import('@/views/inspectionManagement/commissionInspection/addCommision'), hidden:true }, { path: '/', component: Layout, redirect: '/home', @@ -52,6 +57,11 @@ component: () => import('@/views/home/index'), meta: { title: '主页', icon: 'el-icon-s-home' } }] }, { path: '/addCommision/:viewId', hidden: true, component: () => import('@/views/inspectionManagement/commissionInspection/addCommision'), }, { path: '/standardLibrary', @@ -164,16 +174,7 @@ path: 'commissionInspection', name: 'CommissionInspection', component: () => import('@/views/inspectionManagement/commissionInspection/index'), meta: { title: '委托检验', icon: 'table' }, children: [ { path: 'addCommision', name: 'AddCommision', hidden: true, component: () => import('@/views/inspectionManagement/commissionInspection/addCommision'), meta: { title: '检测信息', icon: 'table' } } ] meta: { title: '委托检验', icon: 'table' } }, { path: 'reportForInspection', src/views/experiment/checkTheReport/index.vue
@@ -1,27 +1,33 @@ <template> <div class="content-main"> <div class="top-bar"> <el-form ref="form" :inline="true"> <el-form-item class="sermargin"> <el-form ref="form" :inline="true" :model="searchData" label-position="left"> <el-form-item label="样品编号:"> <el-input v-model="input" v-model="searchData.sample_code" class="input-form" placeholder="请直接输入样式编号/报告单号/样品编号/进行搜索或下拉选择进行组合查询" placeholder="请输入样品编号" @keyup.enter.native="getData" /> </el-form-item> <el-form-item label="报告单号:"> <el-input v-model="searchData.reportCode" class="input-form" placeholder="请输入报告单号" /> </el-form-item> <el-form-item label="申请单号:"> <el-input v-model="searchData.application_code" class="input-form" placeholder="请输入申请单号" /> </el-form-item> <el-form-item> <el-button type="primary" @click="getData()">查询</el-button> <el-button type="primary" plain @click="resetData()">重置</el-button> </el-form-item> <el-dropdown> <span class="el-dropdown-link"> 高级搜索<i class="el-icon-arrow-down el-icon--right"></i> </span> <el-dropdown-menu slot="dropdown"> <el-dropdown-item>高级搜索</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </el-form> <el-form> <el-button class="rightBtn" type="primary" icon="el-icon-document" @@ -36,7 +42,8 @@ <el-radio-button>全部</el-radio-button> <el-radio-button label="0">待提交</el-radio-button> <el-radio-button label="1">待审核</el-radio-button> <el-radio-button label="2">已审核</el-radio-button> <el-radio-button label="2">待签字</el-radio-button> <el-radio-button label="3">已完成</el-radio-button> </el-radio-group> <el-checkbox v-model="checked" style="margin-left: 20px" @@ -165,7 +172,11 @@ export default { data() { return { input: "", searchData:{ sample_code:'', reportCode:'', application_code: '' }, checkStatus: undefined, reportTable: [], page: 1, @@ -196,7 +207,11 @@ }, // 重置按钮 resetData() { this.input = undefined; this.searchData={ sample_code:'', reportCode:'', application_code: '' }, this.page = 1; this.pageSize = 10; this.checkStatus = undefined; @@ -207,7 +222,7 @@ const params = { page: this.page, pageSize: this.pageSize, name: this.input ? this.input : undefined, name: this.searchData.sample_code ? this.searchData.sample_code : undefined, status: this.checkStatus ? this.checkStatus : undefined, }; const { data } = await selectAllReport(params); @@ -226,7 +241,8 @@ justify-content: space-between; padding: 5px 24px 0px 24px; .input-form { width: 700px; width: 250px; margin-right: 30px; } .el-dropdown-link { cursor: pointer; src/views/inspectionManagement/commissionInspection/addCommision.vue
@@ -1,19 +1,19 @@ <template> <div v-if="!showDetail"> <div class="add_commision"> <div class="content-main"> <div class="firstBox"> <div class="title">检测信息</div> <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 <!-- <el-input v-model="searchData" class="input-form split" placeholder="扫描二维码录入样品..." prefix-icon="el-icon-search" style="width: 200px;" > </el-input> </el-input>--> <el-button type="primary" size="small" style="background-color: rgb(1, 102, 226);">重置</el-button> </div> <el-table @@ -107,7 +107,7 @@ <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-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" > @@ -193,6 +193,8 @@ </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> @@ -263,9 +265,6 @@ </el-dialog> </div> </div> </div> <div v-else> <router-view></router-view> </div> </template> @@ -478,9 +477,23 @@ </script> <style lang="scss" scoped> .add_commision{ padding: 20px; } .content-main{ padding: 20px 40px; background-color: #f0f2f5; width: 100%; height: 100vh; .firstBox{ .title{ padding:0px 10px 10px 10px; padding: 15px 10px; font-size: 18px; background-color: #0166e2; color: #fff; border-radius: 4px; } .tableBox{ background-color: #fff; @@ -518,12 +531,20 @@ .submitBtn{ display: flex; justify-content: end; margin-right: 156px; 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> src/views/inspectionManagement/commissionInspection/index.vue
@@ -5,28 +5,16 @@ <div class="top-bar"> <el-form ref="form" :inline="true" :model="searchData"> <el-form-item label="委托编号:" class="sermargin"> <el-input v-model="searchData.code" class="input-form" placeholder="请输入" > <el-input v-model="searchData.code" class="input-form" placeholder="请输入"> </el-input> </el-form-item> <el-form-item label="样品名称:" class="sermargin"> <el-input v-model="searchData.name" class="input-form" placeholder="请输入" > <el-input v-model="searchData.name" class="input-form" placeholder="请输入"> </el-input> </el-form-item> <el-form-item label="委托单位:" style="margin-right: 20px;"> <el-select v-model="searchData.department" placeholder="全部"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> @@ -36,7 +24,23 @@ </el-form-item> </el-form> <el-form> <el-button class="rightBtn" type="primary" @click="goToaddCommision">新增委托</el-button> <el-popover placement="left" width="350" trigger="click"> <div class="vue_qr_div"> <el-row> <el-col> <el-input v-model="view" readonly size="medium" style="width: 250px;margin-right: 10px;"></el-input> <el-button size="small" type="primary" v-if="viewId==null" @click="viewDia=true">生成</el-button> <el-button size="small" type="primary" v-else-if="viewId!=null" @click="copy">复制</el-button> </el-col> </el-row> <el-row style="margin-top: 10px;"> <el-col v-if="viewId==null">当前链接已过期,请点击生成按钮重新生成</el-col> <el-col v-else-if="viewId!=null">当前链接将在{{(parseInt(viewTime)/60/60)>1?(parseInt(viewTime)/60/60).toFixed(1)+'小时':Math.round(parseInt(viewTime)/60)+'分钟'}}后过期</el-col> </el-row> </div> <el-button slot="reference" class="rightBtn" type="primary" @click="goToaddCommision">新增委托</el-button> </el-popover> </el-form> </div> <div class="library-table"> @@ -49,76 +53,26 @@ </el-radio-group> </div> <div class="generateInsp"> <el-button type="primary" size="mini" icon="el-icon-document" style="background-color: rgb(1, 102, 226);">生成报检单</el-button> <el-button type="primary" size="mini" icon="el-icon-document" style="background-color: rgb(1, 102, 226);">生成报检单</el-button> </div> </div> <div class="table-box"> <el-table ref="commisionTable" :max-height="800" :cell-style="{textAlign: 'center'}" <el-table ref="commisionTable" :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="commisionTable" style="width: 100%" > <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%"> :data="commisionTable" style="width: 100%"> <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> @@ -128,10 +82,7 @@ </div> </template> </el-table-column> <el-table-column label="操作" min-width="8%" > <el-table-column label="操作" min-width="8%"> <template slot-scope="scope"> <el-button type="text" size="small" @click="handleClick(scope.row)">删除</el-button> </template> @@ -139,14 +90,9 @@ </el-table> <!-- 分页器 --> <div> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[5, 10, 20]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[5, 10, 20]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination> </div> </div> @@ -156,11 +102,39 @@ <div v-else> <router-view /> </div> <el-dialog title="链接时长设置" :visible.sync="viewDia" width="30%"> <div> <el-row style="line-height: 46px;"> <el-col :span="6" style="font-size: 14px;text-align: right;">时长设置:</el-col> <el-col :span="14" :offset="1"> <el-select v-model="viewTime" size="medium"> <el-option label="1 天" :value="1"></el-option> <el-option label="2 天" :value="2"></el-option> <el-option label="3 天" :value="3"></el-option> <el-option label="4 天" :value="4"></el-option> <el-option label="5 天" :value="5"></el-option> <el-option label="6 天" :value="6"></el-option> <el-option label="1 周" :value="7"></el-option> </el-select> </el-col> </el-row> </div> <span slot="footer" class="dialog-footer"> <el-button type="primary" @click="getViewId()">提 交</el-button> <el-button @click="viewDia = false">取 消</el-button> </span> </el-dialog> <!-- 隐藏域输入框用来复制 --> <input id="copyContext" style="position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;" /> </div> </template> <script> import { getCommisionList } from '@/api/inspection/commisioninspection' import { getCommisionList, getViewUUID, selectViewUUID } from '@/api/inspection/commisioninspection' export default { data() { return { @@ -188,8 +162,7 @@ sample_name: "发动机", inspection_status: 1 }], conditionsOptions: [ { conditionsOptions: [{ label: '全部', value: 0 }, @@ -205,7 +178,12 @@ currentPage: 1, pageSize: 5, total: 100, showDetail: false showDetail: false, day: 1, view: null, viewId: null, viewTime: 1, viewDia: false } }, created() { @@ -219,14 +197,20 @@ }, methods: { async getCommisionList(){ const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize}) const res = await getCommisionList({ pageNo: this.currentPage, pageSize: this.pageSize }) this.commisionTable = res.data.row this.total = res.data.total // console.log(res) // 获取所有的委托单位名称 const allDepartmentNames = [...new Set(this.commisionTable.map(item => item.entrusted))] // 将allDepartmentNames转换为options需要的格式 this.options = allDepartmentNames.map(name => ({ value: name, label: name })) this.options = allDepartmentNames.map(name => ({ value: name, label: name })) }, // 查询方法 @@ -272,7 +256,11 @@ if(this.radioValue === 0){ this.getCommisionList() }else{ const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize, inspectionStatus: this.radioValue}) const res = await getCommisionList({ pageNo: this.currentPage, pageSize: this.pageSize, inspectionStatus: this.radioValue }) // console.log(res) this.commisionTable = res.data.row this.total = res.data.total @@ -287,7 +275,11 @@ if(this.radioValue === 0){ this.getCommisionList() }else{ const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize, inspectionStatus: this.radioValue}) const res = await getCommisionList({ pageNo: this.currentPage, pageSize: this.pageSize, inspectionStatus: this.radioValue }) this.commisionTable = res.data.row this.total = res.data.total } @@ -299,20 +291,55 @@ if(this.radioValue === 0){ this.getCommisionList() }else{ const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize, inspectionStatus: this.radioValue}) const res = await getCommisionList({ pageNo: this.currentPage, pageSize: this.pageSize, inspectionStatus: this.radioValue }) this.commisionTable = res.data.row this.total = res.data.total } }, goToaddCommision() { this.$router.push('/inspectionManagement/commissionInspection/addCommision') this.showDetail = true // this.showDetail = true selectViewUUID({ day: this.day }).then(res => { this.view = `${this.vueIp}addCommision/${res.data.id}` this.viewId = res.data.id this.viewTime = res.data.time }) }, getViewId() { getViewUUID({ day: this.viewTime == null ? 1 : this.viewTime }).then(res => { this.viewId = res.data this.view = `${this.vueIp}addCommision/${res.data.id}` this.viewDia = false this.$message.success('链接已生成,点击复制按钮进行复制') }) }, copy() { document.getElementById('copyContext').value = this.view const input = document.querySelector('#copyContext'); input.select() if (document.execCommand('copy')) { this.$message.success('已复制到剪贴板') } } } } </script> <style scoped> .top-bar { margin: -25px -15px; background: #fff; display: flex; justify-content: space-between; padding: 5px 24px 0px 24px; } .top-bar{ margin: -25px -15px; @@ -323,10 +350,26 @@ .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; @@ -361,4 +404,51 @@ } } .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; } } } .vue_qr_div { text-align: center; color: #0166e2; } </style> src/views/login/index.vue
@@ -43,10 +43,10 @@ </el-form-item> <el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;" @click.native.prevent="handleLogin">Login</el-button> <div class="tips"> <!-- <div class="tips"> <span style="margin-right:20px;">username: admin</span> <span> password: any</span> </div> </div> --> </el-form> </div> </template> @@ -115,7 +115,7 @@ this.loading = false }) } else { console.log('error submit!!') console.log('登录失败!') return false } })