Merge branch 'master' of http://192.168.110.209:9001/r/lims-before
| | |
| | | ENV = 'development' |
| | | |
| | | # base api |
| | | VUE_APP_BASE_API = 'http://192.168.137.116:1234/' |
| | | VUE_APP_BASE_API = 'http://192.168.110.107:1234/' |
| | |
| | | }) |
| | | |
| | | } |
| | | // |
| | | export function getContractsSampleInfo(params){ |
| | | return request({ |
| | | url: 'link-basic/getContractsSampleInfo', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | | //规格型号 |
| | | export function getModelSpecification(params){ |
| | | return request({ |
| | |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function isIfViewUUID(params){ |
| | | return request({ |
| | | url: '/link-basic/isIfViewUUID', |
| | |
| | | }) |
| | | } |
| | | |
| | | export function getContractsSampleInfo(params){ |
| | | export function delLink(params){ |
| | | return request({ |
| | | url: '/link-basic/getContractsSampleInfo', |
| | | url: '/link-basic-table/delLink', |
| | | method: 'post', |
| | | params |
| | | }) |
| | | } |
| | | |
| | | export function getSpecificationsName(params){ |
| | | return request({ |
| | | url: '/link-basic-table/getSpecificationsName', |
| | | method: 'get', |
| | | params |
| | | }) |
| | |
| | | <div v-if="!item.hidden"> |
| | | <template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow"> |
| | | <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path)"> |
| | | |
| | | <el-menu-item v-if="onlyOneChild.meta.show==false ?onlyOneChild.meta.show: true" :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}"> |
| | | <item :show="onlyOneChild.meta.show" :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" /> |
| | | <span v-if="onlyOneChild.meta.title==='主页'">主页</span> |
| | |
| | | let menuFather = baseRouter |
| | | const dataMenuFather = fn3(menuFather) |
| | | role.roleMenuList.forEach((r) => { |
| | | if(r.menuName!='首页'){ |
| | | dataMenuFather.push(Routees.filter(item => { |
| | | return item.path === r.menuUrl |
| | | })[0]) |
| | | } |
| | | }) |
| | | let eqChildren = []; |
| | | role.roleMenuList.forEach((r) => { |
| | |
| | | import axios from 'axios' |
| | | import router from '../router/index' |
| | | import { MessageBox, Message } from 'element-ui' |
| | | import store from '@/store' |
| | | import { getToken } from '@/utils/auth' |
| | |
| | | }) |
| | | sessionStorage.removeItem("user") |
| | | sessionStorage.setItem("flushPage",1) |
| | | this.$router.replace({path: '/login'}); |
| | | location.reload() |
| | | router.replace({path: '/login'}); |
| | | // location.reload() |
| | | } |
| | | if(res.code===403){ |
| | | Message({ |
| | |
| | | otherSupplements: "无", |
| | | improvementRequirements: "无", |
| | | dialogVisible2: false, |
| | | path: 'http://192.168.110.254:1234/cnasSatisfactionSurvey/uploadFile', |
| | | path: 'http://localhost:1234/cnasSatisfactionSurvey/uploadFile', |
| | | ruleForm: { |
| | | surveyDate: '', |
| | | userUnit: '', |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | // this.path=process.env.VUE_APP_BASE_API+"cnasSatisfactionSurvey/uploadFile" |
| | | }, |
| | | mounted() { |
| | | this.getData() |
| | |
| | | this.ZERENren = res.data |
| | | console.log(this.ZERENren); |
| | | }, |
| | | //设备 |
| | | // getDevices() { |
| | | // get(this.$url.chooseinstum).then(res => { |
| | | // this.devices = res.data |
| | | // }) |
| | | // }, |
| | | |
| | | async chooseinstum(){ |
| | | const res = await chooseinstum() |
| | | this.getDevices = res.data |
| | |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="检验时间:"> |
| | | <el-date-picker v-model="infoForm.endTime" type="daterange" range-separator="至" |
| | | <el-date-picker v-model="infoForm.checkdate" type="daterange" range-separator="至" |
| | | start-placeholder="开始日期" end-placeholder="结束日期" style="width: 300px;"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | </el-card> |
| | | <el-table :data="tableData" style="width: 100%; margin-bottom: 20px" row-key="id" border |
| | | height="calc(80vh - 250px)" default-expand-all ref="multipleTable" |
| | | @select-all="selectAll" @selection-change="handleSelectionChange" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> |
| | | <el-table-column type="selection" label="序号"> </el-table-column> |
| | | <!-- <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"> |
| | |
| | | selectAll, |
| | | addInspect, |
| | | chooseVer, |
| | | lookProByVer |
| | | lookProByVer, |
| | | } from '@/api/experiment/planAssignments' |
| | | export default { |
| | | data() { |
| | |
| | | amount: '', |
| | | checkdate: [] |
| | | }, |
| | | selectedValue: 1, |
| | | selectedValue: {}, |
| | | infoForm: {}, |
| | | commisionSelection: { |
| | | entrust_coding: '', |
| | |
| | | tableData: [], |
| | | tableRow: {}, |
| | | BANben: [], |
| | | select_1: [], |
| | | aa: {} |
| | | // select_1: [], |
| | | aa: {}, |
| | | listdata:[], |
| | | ddd:{} |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | if (this.$route.name === 'ForInspectionDetail') this.showDetail = true |
| | | }, |
| | | methods: { |
| | | |
| | | async selectAll() { |
| | | const res = selectAll({ |
| | | type: 0 |
| | |
| | | this.aa = this.BANben[0] |
| | | this.lookProByVer() |
| | | }, |
| | | |
| | | //标准库 |
| | | async lookProByVer() { |
| | | const res = await lookProByVer({ |
| | |
| | | }, |
| | | handleRawMaterialSelection() { |
| | | this.infoForm = this.tmp |
| | | console.log(this.infoForm); |
| | | this.rawmaterialVisible = false |
| | | }, |
| | | handleRadioChange() { |
| | |
| | | selectAll({ |
| | | type: 0 |
| | | }).then(res => { |
| | | // var data = res.data |
| | | // data.forEach((item)=>{ |
| | | // var checkdate = [] |
| | | // checkdate.push(item['createTime']) |
| | | // checkdate.push(item['updateTime']) |
| | | // item['checkdate'] = checkdate // 检验日期 |
| | | // }) |
| | | var data = res.data |
| | | data.forEach((item)=>{ |
| | | var checkdate = [] |
| | | checkdate.push(item['createTime']) |
| | | checkdate.push(item['updateTime']) |
| | | item['checkdate'] = checkdate // 检验日期 |
| | | }) |
| | | this.rawMaterialTable = res.data |
| | | }) |
| | | |
| | |
| | | selectAll({ |
| | | type: 2 |
| | | }).then(res => { |
| | | |
| | | var data = res.data |
| | | data.forEach((item)=>{ |
| | | var checkdate = [] |
| | | checkdate.push(item['createTime']) |
| | | checkdate.push(item['updateTime']) |
| | | item['checkdate'] = checkdate // 检验日期 |
| | | }) |
| | | this.commisionTable = res.data |
| | | }) |
| | | } |
| | |
| | | // 新增检验 |
| | | async addInspection() { |
| | | if (this.type === 0) { |
| | | await addInspect({ |
| | | addInspect({ |
| | | endTime: this.infoForm.checkdate[1], |
| | | formTime: this.infoForm.dateSurvey, |
| | | mcode: this.infoForm.materialCoding, |
| | | name: this.infoForm.materialName, |
| | | num: this.infoForm.quantity, |
| | | specifications: this.infoForm.specificationsModels, |
| | | formTime: this.infoForm.formTime, |
| | | mcode: this.infoForm.mcode, |
| | | name: this.infoForm.name, |
| | | num: this.infoForm.num, |
| | | specifications: this.infoForm.specifications, |
| | | startTime: this.infoForm.checkdate[0], |
| | | supplier: this.infoForm.supplierName, |
| | | supplier: this.infoForm.supplier, |
| | | type: this.type, |
| | | unit: this.infoForm.unit |
| | | unit: this.infoForm.unit, |
| | | version:this.BANben[1] |
| | | }).then(res=>{ |
| | | |
| | | }) |
| | | } |
| | | if (this.type === 1) { |
| | |
| | | startTime: this.commisionSelection.checkdate[0], |
| | | supplier: this.commisionSelection.supplier, |
| | | type: this.type, |
| | | unit: this.commisionSelection.unit |
| | | unit: this.commisionSelection.unit, |
| | | version:this.aa |
| | | |
| | | }) |
| | | } |
| | | if (this.type === 2) { |
| | |
| | | startTime: '2023-08-14', |
| | | supplier: this.finishedTable.supplier, |
| | | type: this.type, |
| | | unit: this.finishedTable.unit |
| | | unit: this.finishedTable.unit, |
| | | version:this.aa |
| | | |
| | | }) |
| | | } |
| | | this.type = 0 |
| | | this.checkTypeVisible = false |
| | | this.$message({ |
| | | message: '添加成功!', |
| | | type: 'success' |
| | | }); |
| | | // this.$message({ |
| | | // message: '添加成功!', |
| | | // type: 'success' |
| | | // }); |
| | | // this.$router.push({name: 'Viewdetails'}) |
| | | }, |
| | | // 每页条数改变时触发 选择一页显示多少行 |
| | | handleSizeChange(val) { |
| | |
| | | this.currentPage = val |
| | | this.selectInspectsList() |
| | | }, |
| | | // //表单校验 |
| | | // validateForm(infoForm){ |
| | | // console.log(this.infoForm); |
| | | |
| | | // if (infoForm.checkdate == undefined) { |
| | | // alert('请输入检验时间'); |
| | | // return false; |
| | | // } |
| | | // // 校验通过 |
| | | // return true; |
| | | // }, |
| | | //确定跳转 |
| | | QUEding() { |
| | | // this.tableRow = a |
| | | |
| | | if (this.infoForm.checkdate[0] == undefined||this.infoForm.checkdate[1] == undefined) { |
| | | this.$message({ |
| | | message: '请选择检验时间', |
| | | type: 'warning' |
| | | }); |
| | | return; |
| | | } |
| | | this.Standardframe = true |
| | | |
| | | this.skipshow() |
| | | this.chooseVer() |
| | | |
| | | }, |
| | | //新增的数据 |
| | | skipshow() { |
| | | const data = this.inspectionTable.at(-1) |
| | | this.listdata = data |
| | | }, |
| | | //確定詳情頁 |
| | | GOfrom() { |
| | | this.Standardframe = false |
| | | // const data = { |
| | | // // mcode : this.tmp.mcode, |
| | | // // name:this.tmp.name, |
| | | // // specifications:this.tmp.specifications, |
| | | // version:this.tmp.id |
| | | // } |
| | | async GOfrom() { |
| | | // this.addInspect() |
| | | this.addInspection() |
| | | // this.kk = res.data |
| | | console.log(this.kk) |
| | | // this.$router.push({name: 'Viewdetails',query: {id: res.data}}) |
| | | // console.log(res); |
| | | |
| | | this.$router.push({ |
| | | name: 'Viewdetails', |
| | | query: { |
| | | id: this.tmp.id |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <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="speName" label="规格型号" min-width="10%" > |
| | | </el-table-column> |
| | | <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%"> |
| | |
| | | addInspection, |
| | | isIfViewUUID, |
| | | getProductList, |
| | | getContractsSampleInfo |
| | | getContractsSampleInfo, |
| | | getSpecificationsName |
| | | } from '@/api/inspection/commisioninspection' |
| | | export default { |
| | | data() { |
| | |
| | | this.viewId = this.$route.params.viewId |
| | | this.$store.commit('settings/SAVE_LINK', this.viewId) |
| | | this.getlink(this.$route.params.viewId) |
| | | this.getContractsSampleInfo(this.$route.params.viewId) |
| | | }, |
| | | mounted() { |
| | | this.getSampleName() |
| | |
| | | } else { |
| | | this.getContractsSampleInfo() |
| | | } |
| | | }) |
| | | }, |
| | | async getContractsSampleInfo(viewId) { |
| | | let res = await getContractsSampleInfo({ |
| | | viewId |
| | | }) |
| | | }, |
| | | async getSampleName() { |
| | |
| | | samplesNumber: '', |
| | | remarks: '', |
| | | experiment: [], |
| | | addway: '' |
| | | addway: '', |
| | | speName: '' |
| | | } |
| | | }, |
| | | async submitInspection() { |
| | |
| | | reportNumber: parseInt(this.infoForm.num), |
| | | sampleDeliveryMode: sampledeliveryway, |
| | | sampleDeliveryPhone: this.infoForm.sendertel, |
| | | sampleSender: this.infoForm.sender |
| | | sampleSender: this.infoForm.sender, |
| | | speName: this.infoForm.speName |
| | | }) |
| | | this.infoForm.commisioncode = res.data |
| | | if (res.data) { |
| | |
| | | return item.name |
| | | }) |
| | | }) |
| | | this.model_sta_options.forEach(a=>{ |
| | | if(a.key == val){ |
| | | this.addPointerForm.speName = a.value |
| | | } |
| | | }) |
| | | }, |
| | | getContractsSampleInfo() { |
| | | getContractsSampleInfo({ |
| | | viewId: this.viewId |
| | | }).then(res => { |
| | | if (res.data == null) return |
| | | this.infoForm = { |
| | | commisioncode: res.data.entrustCoding, |
| | | deadline: res.data.completionDeadline, |
| | |
| | | } |
| | | this.detectionInfo = res.data.linkDetectionList |
| | | }) |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | import { |
| | | getCommisionList, |
| | | getViewUUID, |
| | | selectViewUUID |
| | | selectViewUUID, |
| | | delLink |
| | | } from '@/api/inspection/commisioninspection' |
| | | export default { |
| | | data() { |
| | |
| | | }, |
| | | updated() { |
| | | if (this.$router.currentRoute.name === 'AddCommision') { |
| | | // console.log(this.$router.currentRoute.name) |
| | | this.showDetail = true |
| | | } |
| | | }, |
| | |
| | | }) |
| | | 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需要的格式 |
| | |
| | | inspectionStatus: this.radioValue |
| | | }) |
| | | } |
| | | // console.log(res) |
| | | this.commisionTable = res.data.row |
| | | this.total = res.data.total |
| | | }, |
| | |
| | | }, |
| | | async radioclick() { |
| | | // 处理点击radio的时间 |
| | | console.log('radioValue', this.radioValue) |
| | | if (this.radioValue === 0) { |
| | | this.getCommisionList() |
| | | } else { |
| | |
| | | pageSize: this.pageSize, |
| | | inspectionStatus: this.radioValue |
| | | }) |
| | | // console.log(res) |
| | | this.commisionTable = res.data.row |
| | | this.total = res.data.total |
| | | } |
| | |
| | | }, |
| | | // 每页条数改变时触发 选择一页显示多少行 |
| | | async handleSizeChange(val) { |
| | | // console.log(`每页 ${val} 条`) |
| | | this.currentPage = 1 |
| | | this.pageSize = val |
| | | if (this.radioValue === 0) { |
| | |
| | | }, |
| | | // 当前页改变时触发 跳转其他页 |
| | | async handleCurrentChange(val) { |
| | | // console.log(`当前页: ${val}`) |
| | | this.currentPage = val |
| | | if (this.radioValue === 0) { |
| | | this.getCommisionList() |
| | |
| | | } |
| | | }, |
| | | handleClick(row){ |
| | | console.log(row); |
| | | delLink({ |
| | | id: row.id |
| | | }).then(res=>{ |
| | | this.$message.success('删除成功') |
| | | this.getCommisionList() |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | <style scoped lang="scss"> |
| | | .content-main{ |
| | | height: 100%; |
| | | |
| | | .top-bar{ |
| | | margin: -25px -15px; |
| | | background: #fff; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 24px 24px 0px 24px; |
| | | |
| | | .sermargin{ |
| | | margin-right: 60px; |
| | | } |
| | | } |
| | | |
| | | .rightBtn{ |
| | | background-color: rgb(1, 102, 226); |
| | | } |
| | | |
| | | .library-table{ |
| | | background-color: #fff; |
| | | flex: 1; |
| | |
| | | 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; |
| | |
| | | /* padding: 20px 20px 10px 20px; */ |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .el-table { |
| | | flex: 1; |
| | | } |
| | | |
| | | >div:nth-child(2){ |
| | | display: flex; |
| | | justify-content: end; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .checked { |
| | | color: green; |
| | | } |
| | |
| | | |
| | | .newPage{ |
| | | margin: -25px -15px; |
| | | |
| | | .inspectionForm{ |
| | | background-color:#fff; |
| | | |
| | | .formwrapper{ |
| | | margin-left: 80px; |
| | | padding:10px 0px; |
| | | } |
| | | } |
| | | |
| | | .inspectionProject{ |
| | | margin:10px 0px; |
| | | |
| | | .header{ |
| | | display:flex; |
| | | justify-content: space-between; |
| | | padding-top: -3px; |
| | | padding-bottom: 3px; |
| | | } |
| | | |
| | | .el-table{ |
| | | padding: 10px 10px; |
| | | height: 65vh; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | </style> |
| | |
| | | </el-form> |
| | | </div> |
| | | <div class="library-table"> |
| | | <el-card v-for="item in device" :key="index" class="box-card" style="width: 22.8%;"> |
| | | <el-card v-for="(item,index) in device" :key="index" class="box-card" style="width: 22.8%;"> |
| | | <div class="header"> |
| | | <div style="display: flex;justify-content: start; width: 100%;"> |
| | | <div class="el-icon-set-up" style="font-size: 25px;color: rgb(103, 194, 58);line-height: 55px ;"></div> |
| | |
| | | ] |
| | | } |
| | | }, |
| | | methods:{ |
| | | searchInspections(){ |
| | | |
| | | }, |
| | | reset(){ |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | |
| | | </el-col> |
| | | <el-col> |
| | | <el-form :model="planAddInfo" style="padding-left: 150px;"> |
| | | <el-form-item> |
| | | <el-col> |
| | | <el-col :span="6" style="display: flex;justify-content: space-around;"> |
| | | <span>负责人:</span> |
| | | <el-form-item label="负责人:" :rules="[{ required: true, message: '请选择负责人', trigger: 'change' }]"> |
| | | <el-select v-model="planAddInfo.measurePerson" placeholder="请选择负责人"> |
| | | <el-option v-for="item in userList" :key="item.value" :label="item.label" :value="item.value"> |
| | | <el-option v-for="item in userList" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8" style="display: flex;justify-content: space-around;"> |
| | | <span>计划时间:</span> |
| | | <el-form-item label="计划时间:" :rules="[{ required: true, message: '请选择计划时间', trigger: 'change' }]"> |
| | | <el-date-picker v-model="planAddInfo.planDate" type="daterange" range-separator="至" |
| | | start-placeholder="开始日期" end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"></el-col> |
| | | <el-col :span="5" style="display: flex;justify-content: space-around;"> |
| | | <span>计量单位:</span> |
| | | <el-form-item label="计量单位:"> |
| | | <el-input style="width: 150px;" v-model="planAddInfo.unit" placeholder=""></el-input> |
| | | </el-col> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> |
| | | </el-form> |
| | | </el-col> |
| | | <el-col> |
| | |
| | | <el-table-column prop="equipmentPointName" label="仪器设备" min-width="150"> |
| | | <template slot-scope="scope"> |
| | | <span v-show="!codePointesTableStatus">{{ scope.row.equipmentPointName }}</span> |
| | | <el-select @change="insListChange(scope.row.equipmentPointName,scope)" v-model="scope.row.equipmentPointName" placeholder="请选择仪器设备"> |
| | | <el-select @change="insListChange(scope.row.equipmentPointName, scope)" |
| | | v-model="scope.row.equipmentPointName" placeholder="请选择仪器设备"> |
| | | <el-option v-for="item in insList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | getListUserAndListIns, addPlanAndMeasure |
| | | } from '@/api/laboratory/measure' |
| | | import { dateFormat } from "../../../utils/dateUtil"; |
| | | import { MessageBox, Message } from 'element-ui' |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | }) |
| | | }, |
| | | async add() { |
| | | console.log(111111); |
| | | if (this.planAddInfo.measurePerson == null || this.planAddInfo.measurePerson == ''||this.planAddInfo.planDate[0]==null||this.planAddInfo.planDate[0]=='') { |
| | | Message({ |
| | | message: "负责人和计划日期不能为空!", |
| | | type: 'warning', |
| | | duration: 2 * 1000 |
| | | }) |
| | | return false |
| | | } |
| | | this.planAddInfo.startTime = dateFormat(this.planAddInfo.planDate[0]) |
| | | this.planAddInfo.endTime = dateFormat(this.planAddInfo.planDate[1]) |
| | | console.log(this.planAddInfo); |
| | |
| | | <el-input v-model="searchData.code" @blur="blurSearch()" class="input-form" placeholder="请输入"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item v-if="this.radioValue === 1"> |
| | | <el-button type="primary" @click="searchPlan">查询</el-button> |
| | | </el-form-item> |
| | | <el-form-item v-if="this.radioValue === 0" :label="this.radioValue === 0 ? '仪器设备名称:' : '设备名称'" |
| | | class="sermargin"> |
| | | <el-input v-model="searchData.name" class="input-form" placeholder="请输入"> |
| | |
| | | <el-table-column prop="name" label="负责人" min-width="10%" /> |
| | | <el-table-column prop="createTime" label="创建日期" min-width="10%" /> |
| | | <el-table-column prop="name" label="创建人" min-width="8%" /> |
| | | <el-table-column prop="code" label="计量编号" min-width="8%" /> |
| | | <el-table-column prop="code" label="计量编号" min-width="12%" /> |
| | | <el-table-column label="操作" min-width="15%"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="lookMeasurement(scope.row.equipmentCode)" size="small">查看计量履历</el-button> |
| | | <!-- <el-button type="text" @click="lookMeasurement(scope.row.equipmentCode)" size="small">查看计量履历</el-button> --> |
| | | <el-button type="text" size="small">查看附件</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- 分页器 --> |
| | | <div style="display: flex;justify-content: end;"> |
| | | <div style="display: flex;justify-content: end;padding: 10px 0;"> |
| | | <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"> |
| | |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <el-button v-if="selectInfoBtn" @click="combackLookPlan" style="position: fixed;top: 43px;right: 14px; z-index: 1000;" type="primary" icon="el-icon-refresh-left" size="mini" plain >返回</el-button> |
| | | <div v-if="addBtn" style="display: flex;justify-content: center;width: 10%;position: fixed;top: 43px;right: 14px; z-index: 1000;"> |
| | | <el-button v-if="selectInfoBtn" @click="combackLookPlan" |
| | | style="position: fixed;top: 43px;right: 14px; z-index: 1000;" type="primary" icon="el-icon-refresh-left" |
| | | size="mini" plain>返回</el-button> |
| | | <div v-if="addBtn" |
| | | style="display: flex;justify-content: center;width: 10%;position: fixed;top: 43px;right: 14px; z-index: 1000;"> |
| | | <el-button @click="addTop = -82;addBtn=false" size="mini" style="width: 60px;" >返回</el-button> |
| | | <el-button size="mini" @click="measureAdd" style="width: 60px;" type="primary">保存</el-button> |
| | | </div> |
| | |
| | | this.measureUpInfo.remarks = scope.row.remarks |
| | | this.measureUpInfo.termValidity = scope.row.termValidity |
| | | }, |
| | | measureAdd() { |
| | | async measureAdd() { |
| | | let res = await this.$refs.add.add() |
| | | if (!res) { |
| | | return |
| | | } |
| | | this.addTop = -82 |
| | | this.$message({ |
| | | message: '操作成功!', |
| | | type: 'success' |
| | | }); |
| | | this.lookVisible = false |
| | | this.addBtn = false |
| | | this.limitGetPlanMeasureInstrument() |
| | | }, |
| | | async handleSizeChangePlan(num) { |
| | | this.pageSizePlan = num |
| | |
| | | search() { |
| | | this.getStandingPageList() |
| | | }, |
| | | searchPlan(){ |
| | | this.getPlanPageList() |
| | | }, |
| | | reset(formName) { |
| | | this.searchData.name = '' |
| | | this.searchData.code = '' |
| | |
| | | }, |
| | | async getPlanPageList() { |
| | | let param = { |
| | | currentPage: this.currentPage, pageSize: this.pageSize, |
| | | code: this.searchData.code, name: this.searchData.name, unit: this.searchData.measureunit |
| | | currentPage: this.currentPage, |
| | | pageSize: this.pageSize, |
| | | plannedOrderNumber: this.searchData.code |
| | | } |
| | | const res = await getPlanPageList(param) |
| | | res.data.list.forEach(item => { |
| | |
| | | :filter-node-method="filterNode" |
| | | ref="tree" |
| | | @node-click="handleNodeClick" |
| | | :expand-on-click-node="false" |
| | | > |
| | | </el-tree> |
| | | </div> |
| | |
| | | </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-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-button type="primary" icon="el-icon-plus" @click="dialogFormVisible = true">新增人员</el-button> |
| | | <el-dialog :title="isUpdate == true ? '更新人员信息' : '新增人员'" :visible.sync="dialogFormVisible" width="30%"> |
| | | <el-form :model="form" ref="form" :rules="rules" style="padding-right: 50px;"> |
| | | <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" /> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="邮箱" |
| | | :label-width="formLabelWidth" |
| | | prop="email" |
| | | > |
| | | <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-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-form-item label="电话" :label-width="formLabelWidth" prop="phone"> |
| | | <el-input v-model="form.phone" /> |
| | | </el-form-item> |
| | | |
| | | <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 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="width: 100%" |
| | | placeholder="请选择权限" |
| | | > |
| | | <el-option |
| | | v-for="item in roleList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | <el-form-item label="权限" :label-width="formLabelWidth" prop="roleId"> |
| | | <el-select v-model="form.roleId" clearable style="width: 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> |
| | |
| | | </div> |
| | | <div class="content-main"> |
| | | <div class="personner-table"> |
| | | <el-table |
| | | ref="personnerlTable" |
| | | height="calc(100vh - 240px)" |
| | | border |
| | | :cell-style="{ textAlign: 'center' }" |
| | | <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%" |
| | | > |
| | | }" @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"> |
| | |
| | | }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="jobState" |
| | | label="在职状态" |
| | | min-width="120" |
| | | :filters="[ |
| | | <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" |
| | | > |
| | | ]" 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" @click="handleClick(scope.row)">编辑</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div> |
| | | <!-- 分页器 --> |
| | | <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" |
| | | /> |
| | | <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, put } from "@/api/util/requestUtil"; |
| | | import { |
| | | get, |
| | | post, |
| | | put |
| | | } from "@/api/util/requestUtil"; |
| | | import urlInfo from "../../../api/urlEnum/personnel.js"; |
| | | import { getOrganizationalApi } from "@/api/laboratory/organizational"; |
| | | import { |
| | | getOrganizationalApi |
| | | } from "@/api/laboratory/organizational"; |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | }, |
| | | formLabelWidth: "100px", |
| | | rules: { |
| | | account: [ |
| | | { |
| | | account: [{ |
| | | required: true, |
| | | message: "请输入账号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | name: [ |
| | | { |
| | | }, ], |
| | | name: [{ |
| | | required: true, |
| | | message: "请输入名字", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, ], |
| | | phone: [ |
| | | // { required: true, message: '请输入11位电话号码', trigger: 'blur' }, |
| | | { |
| | |
| | | trigger: ["blur", "change"], |
| | | }, |
| | | ], |
| | | organizationId: [ |
| | | { |
| | | organizationId: [{ |
| | | required: true, |
| | | type: "array", |
| | | message: "请选择部门", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | roleId: [ |
| | | { required: true, message: "请输入权限(0或1)", trigger: "blur" }, |
| | | ], |
| | | }, ], |
| | | roleId: [{ |
| | | required: true, |
| | | message: "请输入权限(0或1)", |
| | | trigger: "blur" |
| | | }, ], |
| | | }, |
| | | options: [], |
| | | status: "", |
| | |
| | | methods: { |
| | | // 每页条数改变时触发 选择一页显示多少行 |
| | | handleSizeChange(val) { |
| | | console.log(`每页 ${val} 条`); |
| | | this.currentPage = 1; |
| | | this.pageSize = val; |
| | | }, |
| | |
| | | }, |
| | | // 当前页改变时触发 跳转其他页 |
| | | handleCurrentChange(val) { |
| | | console.log(`当前页: ${val}`); |
| | | this.currentPage = val; |
| | | }, |
| | | async getData() { |
| | |
| | | }); |
| | | } |
| | | } else { |
| | | console.log("error submit!!"); |
| | | return false; |
| | | } |
| | | }); |
| | |
| | | }, |
| | | getRoleList() { |
| | | get("/user/list").then((res) => { |
| | | console.log(`output->res`, res); |
| | | this.roleList = res.data; |
| | | }); |
| | | }, |
| | |
| | | |
| | | <style lang="scss" scoped> |
| | | .personnel-main { |
| | | |
| | | // width: 100%; |
| | | // height: 100%; |
| | | .page-header-search { |
| | | background: #fff; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 0 24px 12px 24px; |
| | | padding: 20px 24px 12px 24px; |
| | | |
| | | .search-bar { |
| | | .el-form { |