Merge branch 'master' of http://192.168.110.209:9001/r/lims-before
| | |
| | | ENV = 'development' |
| | | |
| | | # base api |
| | | VUE_APP_BASE_API = 'http://localhost:1234/' |
| | | VUE_APP_BASE_API = 'http://192.168.110.87:1234/' |
| | |
| | | |
| | | # base api |
| | | # VUE_APP_BASE_API = '/stage-api' |
| | | VUE_APP_BASE_API = 'http://192.168.110.254:1234/' |
| | | VUE_APP_BASE_API = 'http://192.168.110.87:1234/' |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | const Api = { |
| | | addStandardProjectGroup: "/productModel/selectfather", // æ·»å æ å-->鿩项ç®åç» |
| | | productModelSelectmater: "/productModel/selectmater", // éæ©æ ·ååç§° |
| | | addproductModel: "/productModel/addproductModel", // æ·»å æ å |
| | | selectproductModel: "/productModel/selectproductModel", // æ¥è¯¢æ 忍¡çå表 |
| | | deleteProductModel: "/productModel/delproductModel", // å 餿 忍¡ç |
| | | selectproductModelById: "/productModel/selectproductModelById", // æ ¹æ®idæ¥è¯¢ |
| | | updateProductModel: "/productModel/writeproductModel", // æ´æ°æ å -->ç¼è¾ |
| | | deleteList: "/productModel/delAllproductModel", // æ¹éå é¤ |
| | | |
| | | } |
| | | |
| | | export function addStandardProjectGroupApi() { |
| | | return request({ |
| | | url: Api.addStandardProjectGroup, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | export function productModelSelectmaterApi() { |
| | | return request({ |
| | | url: Api.productModelSelectmater, |
| | | method: "get" |
| | | }) |
| | | } |
| | | |
| | | export function addproductModelApi(formData) { |
| | | return request({ |
| | | url: Api.addproductModel, |
| | | method: 'post', |
| | | data: formData |
| | | }) |
| | | } |
| | | |
| | | export function updateProductModelApi(formData) { |
| | | return request({ |
| | | url: Api.updateProductModel + '?id=' + formData.id, |
| | | method: 'post', |
| | | data: formData |
| | | }) |
| | | } |
| | | |
| | | export function selectproductModelApi(params) { |
| | | return request({ |
| | | url: Api.selectproductModel, |
| | | method: "get", |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | export function deleteProductModelApi(id){ |
| | | return request({ |
| | | url: Api.deleteProductModel, |
| | | method: "post", |
| | | params: {id: id} |
| | | }) |
| | | } |
| | | |
| | | export function selectproductModelByIdApi(id){ |
| | | return request({ |
| | | url: Api.selectproductModelById, |
| | | method: "get", |
| | | params: {id: id} |
| | | }) |
| | | } |
| | | |
| | | export function deleteListApi(id){ |
| | | return request({ |
| | | url: Api.deleteList, |
| | | method: "post", |
| | | params:{ids: id.toString()} |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | //è·åå·²æ£éªtop3 |
| | | export function getVerifiedTop3(params) { |
| | | return request({ |
| | | url: '/home/checktop3', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | | |
| | | //è·åæªæ£éªtop4 |
| | | export function getUncheckedTop4(params) { |
| | | return request({ |
| | | url: '/home/unchecktop4', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | | |
| | | //è·å忿䏿ååæ ¼ç |
| | | export function getMatAndFinshQualified(params) { |
| | | return request({ |
| | | url: '/home/qualified', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | | |
| | | //è·åæ£éªä¸æªæ£éªçååä¸é¡¹ç®çæ°é |
| | | export function getCheckAndProjectNum(params) { |
| | | return request({ |
| | | url: '/home/checkProjectNum', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | |
| | | }, |
| | | methods: { |
| | | childMethod(){ |
| | | this.$refs.child.combackLookPlan() |
| | | this.$refs.child.combackLookPlan() |
| | | }, |
| | | triggerMainBtnPlan(){ |
| | | this.$parent.triggerCombackBtn() |
| | |
| | | import store from './store' |
| | | import router from './router' |
| | | |
| | | //å¼å
¥echarts |
| | | import echarts from 'echarts' |
| | | Vue.prototype.$echarts = echarts |
| | | |
| | | |
| | | import '@/icons' // icon |
| | | import '@/permission' // permission control |
| | | |
| | |
| | | children: [ |
| | | { |
| | | path: 'inspectionApplication', |
| | | name: 'InspectionApplication', |
| | | name: 'inspectionApplication', |
| | | component: () => import('@/views/experiment/inspectionApplication/index'), |
| | | meta: { title: 'æ°å¢æ£éª', icon: 'tree' } |
| | | }, |
| | | { |
| | | path: 'Viewdetails', |
| | | name: 'Viewdetails', |
| | | hidden: true , |
| | | component: () => import('@/views/experiment/inspectionApplication/Viewdetails/index'), |
| | | meta: { title: '详æ
页', icon: 'tree' } |
| | | }, |
| | | { |
| | | path: 'planAssignments', |
| | | name: 'PlanAssignments', |
| | |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/baseData', |
| | | component: Layout, |
| | | redirect: '/baseData/basicDataMessage', |
| | | meta: { title: 'åºç¡æ°æ®', icon: 'el-icon-s-tools' }, |
| | | children: [ |
| | | { |
| | | path: '/basicDataMessage', |
| | | name: 'BasicDataMessage', |
| | | component: () => import('@/views/basicData/index'), |
| | | meta: { title: 'åºç¡æ°æ®', icon: 'el-icon-s-tools' } |
| | | } |
| | | ] |
| | | }, |
| | | // 404 page must be placed at the end !!! |
| | | { path: '*', redirect: '/404', hidden: true } |
| | | ] |
| | |
| | | |
| | | .el-upload__input { |
| | | display: none; |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | // .el-menu-popup{ |
| | | // min-width: 100px !important; |
| | | // } |
| | | .el-menu--vertical{ |
| | | max-width: 100px !important; |
| | | } |
| | | |
| | | .el-menu--collapse .el-menu .el-submenu, .el-menu--popup { |
| | | min-width: 100px !important; |
| | |
| | | } |
| | | |
| | | // menu hover |
| | | |
| | | |
| | | .el-submenu__title,.el-tooltip{ |
| | | border-radius: 8px; |
| | | overflow: hidden; |
| | | &:hover { |
| | | background-color: $menuHover !important; |
| | | background-color: $menuHover !important; |
| | | color: $menuActiveText !important; |
| | | } |
| | | } |
| | | .submenu-title-noDropdown{ |
| | | &:hover { |
| | | background-color:transparent !important; |
| | | background-color:transparent !important; |
| | | // background-color: $menuBg !important; |
| | | // border-radius: 8px; |
| | | // overflow: hidden; |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | & .nest-menu .el-submenu>.el-submenu__title, |
| | | & .el-submenu .el-menu-item { |
| | | min-width: $sideBarWidth !important; |
| | | background-color: $subMenuBg !important; |
| | | |
| | | &:hover { |
| | | |
| | | |
| | | background-color: $subMenuHover !important; |
| | | } |
| | | } |
| | | |
| | | // .is-active.el-submenu{ |
| | | // color: $subMenuActiveText !important; |
| | | |
| | | |
| | | // } |
| | | .is-active.el-menu-item { |
| | | // color: $subMenuActiveText !important; |
| | |
| | | |
| | | .el-submenu { |
| | | overflow: hidden; |
| | | |
| | | |
| | | &>.el-submenu__title{ |
| | | // width: auto; |
| | | // height: auto; |
| | |
| | | margin: 0 auto; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | .nest-menu .el-submenu>.el-submenu__title, |
| | | .el-menu-item { |
| | | width: 100px; |
| | | height: 30px !important; |
| | | min-width: 100px !important; |
| | | line-height: 30px; |
| | | text-align: left !important; |
| | | height: 40px !important; |
| | | line-height: 40px; |
| | | padding-left: 20px !important; |
| | | font-size: 10px; |
| | | width: 100% !important; |
| | | justify-content: start !important; |
| | | background-color: $subMenuBg !important; |
| | | color: $subMenuHover !important; |
| | |
| | | max-height: 100vh; |
| | | overflow-y: auto; |
| | | background-color: #fff; |
| | | width: 150px !important; |
| | | padding: 0 !important; |
| | | &::-webkit-scrollbar-track-piece { |
| | | background: #d3dce6; |
| | | } |
| | |
| | | <template> |
| | | <div> |
| | | ä¸ç¬¦å项管ç |
| | | <div class="content-main"> |
| | | <div class="top-bar"> |
| | | <el-form ref="form" :inline="true" :model="searchData"> |
| | | <el-form-item label="å½å
¥æ¥æ:" style="margin-right: 20px;"> |
| | | <el-date-picker |
| | | v-model="searchData.entry_date" |
| | | type="date" |
| | | placeholder="è¯·éæ©å½å
¥æ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="å®¡æ ¸æ¥æ:" style="margin-right: 20px;"> |
| | | <el-date-picker |
| | | v-model="searchData.check_date" |
| | | type="date" |
| | | placeholder="è¯·éæ©å®¡æ ¸æ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ:" style="margin-right: 20px;"> |
| | | <el-select v-model="searchData.state" placeholder="å
¨é¨" style="width: 100px;"> |
| | | <el-option |
| | | v-for="item in stateoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="é¨é¨:" style="margin-right: 20px;"> |
| | | <el-input v-model="searchData.department" placeholder="请è¾å
¥é¨é¨"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="searchInspections">æ¥è¯¢</el-button> |
| | | <el-button type="primary" plain @click="reset">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form class="rightBtn"> |
| | | <el-form-item class="createBtn"> |
| | | <el-button type="primary" icon="el-icon-document-add" style="margin-right: 10px;">æ°å¢è®°å½</el-button> |
| | | </el-form-item> |
| | | <el-form-item class="getDataBtn"> |
| | | <el-button type="primary" icon="el-icon-download">导åº</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="library-table"> |
| | | <div class="table-header"> |
| | | <el-radio-group v-model="radioValue" @change="radioclick"> |
| | | <el-radio-button v-for="item in conditionsOptions" :key="item.value" :label="item.value"> |
| | | {{ item.label }} |
| | | </el-radio-button> |
| | | </el-radio-group> |
| | | </div> |
| | | <div class="table-box"> |
| | | <el-table |
| | | ref="recordTable" |
| | | :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="recordTable" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | label="åºå·" |
| | | min-width="10%"> |
| | | <template slot-scope="scope"> |
| | | <el-checkbox v-model="checked"></el-checkbox> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="title" |
| | | label="æ é¢" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | prop="content" |
| | | label="å
容" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | prop="level" |
| | | label="ç级" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | prop="type" |
| | | label="ç±»å" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="state" |
| | | label="ç¶æ" |
| | | min-width="12%"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.state === 1" style="color: red;">æªè¯»</span> |
| | | <span v-if="scope.row.state === 2" style="color: green;">已读</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="sender" |
| | | label="å件人" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="create_time" |
| | | label="å建æ¶é´" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | label="æä½" |
| | | min-width="10%" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" @click="deleteRow(scope.row)">å é¤</el-button> |
| | | <el-button type="text" size="small" @click="readRow(scope.row)">æ 为已读</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- åé¡µå¨ --> |
| | | <div> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage" |
| | | :page-sizes="[5, 10, 15, 20]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data(){ |
| | | return { |
| | | searchData:{ |
| | | entry_date: '', |
| | | check_date: '', |
| | | state: 0, |
| | | department: '' |
| | | }, |
| | | stateoptions:[{ |
| | | value: 0, |
| | | label: 'å·²å
³é' |
| | | },{ |
| | | value: 1, |
| | | label: 'å¾
å
³é' |
| | | }], |
| | | recordTable:[], |
| | | currentPage: 0, |
| | | pageSize:5, |
| | | total: 20 |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .content-main{ |
| | | width: 100%; |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .top-bar{ |
| | | margin: -25px -15px; |
| | | background: #fff; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 5px 24px 0px 24px; |
| | | .rightBtn{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | } |
| | | .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; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="main_div"> |
| | | <div class="top_div"> |
| | | <span>æ ·ååç§°ï¼</span> |
| | | <el-select |
| | | v-model="params.material" |
| | | size="small" |
| | | placeholder="è¯·éæ©æ ·ååç§°" |
| | | > |
| | | <el-option |
| | | v-for="item in productModelSelectmater" |
| | | :value="item" |
| | | :key="item.index" |
| | | :label="item" |
| | | ></el-option> |
| | | </el-select> |
| | | <span class="top_div_span">项ç®åç»ï¼</span> |
| | | <el-input |
| | | v-model="params.father" |
| | | placeholder="请è¾å
¥é¡¹ç®åç»" |
| | | style="width: 10%" |
| | | size="small " |
| | | ></el-input> |
| | | <span class="top_div_span">项ç®åç§°ï¼</span> |
| | | <el-input |
| | | v-model="params.name" |
| | | placeholder="请è¾å
¥é¡¹ç®åç§°" |
| | | style="width: 10%" |
| | | size="small " |
| | | ></el-input> |
| | | <el-button |
| | | type="primary" |
| | | class="top_div_button" |
| | | size="small" |
| | | @click="selectProductModelTable" |
| | | >æ¥è¯¢</el-button |
| | | > |
| | | <el-button class="top_div_button" size="small" @click="params = {}" |
| | | >éç½®</el-button |
| | | > |
| | | <div style="float: right"> |
| | | <el-button |
| | | class="top_div_button" |
| | | type="primary" |
| | | size="small" |
| | | icon="el-icon-folder-add" |
| | | @click="centerDialogVisible = true" |
| | | >æ°å¢</el-button |
| | | > |
| | | <el-dialog |
| | | :visible.sync="centerDialogVisible" |
| | | width="30%" |
| | | right |
| | | :before-close="handleClose" |
| | | > |
| | | <template slot="title"> |
| | | <div class="addTop"> |
| | | <span>{{ isUpdate ? "æ´æ°" : "æ°å¢" }}åºç¡æ°æ®</span> |
| | | </div> |
| | | </template> |
| | | <el-form :model="form" :rules="rules" ref="ruleForm" class="addForm"> |
| | | <el-form-item prop="material" required> |
| | | <span>æ ·ååç§°ï¼</span> |
| | | <el-select |
| | | v-model="form.material" |
| | | style="width: 85%" |
| | | placeholder="è¯·éæ©æ ·ååç§°" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) in productModelSelectmater" |
| | | :key="index" |
| | | :value="item" |
| | | :label="item" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <span>项ç®åç»ï¼</span> |
| | | <el-select |
| | | v-model="form.father" |
| | | style="width: 85%" |
| | | placeholder="è¯·éæ©é¡¹ç®åç»" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) in projectGroupingOptions" |
| | | :key="index" |
| | | :value="item" |
| | | :label="item" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12" |
| | | ><el-form-item prop="name" required |
| | | ><span>项ç®åç§°ï¼</span> |
| | | <el-input |
| | | style="width: 70%" |
| | | v-model="form.name" |
| | | placeholder="请è¾å
¥é¡¹ç®åç§°" |
| | | ></el-input></el-form-item |
| | | ></el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item prop="unit"> |
| | | <span |
| | | v-html="'å ä½ï¼'" |
| | | ></span> |
| | | <el-input |
| | | style="width: 70%" |
| | | v-model="form.unit" |
| | | placeholder="请è¾å
¥åä½" |
| | | ></el-input></el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | </el-form> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="centerDialogVisible = false" size="small " |
| | | >å æ¶</el-button |
| | | > |
| | | <el-button type="primary" @click="submitAdd" size="small ">{{ |
| | | isUpdate ? "æ´ æ°" : "ä¿ å" |
| | | }}</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-button |
| | | class="top_div_button" |
| | | icon="el-icon-delete-solid" |
| | | size="small" |
| | | style="color: #00a5ff" |
| | | @click="deleteListClick" |
| | | >å é¤</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="table_div"> |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%; margin-bottom: 20px" |
| | | row-key="name" |
| | | border |
| | | height="calc(100vh - 250px)" |
| | | default-expand-all |
| | | ref="multipleTable" |
| | | @select="selectTr" |
| | | @select-all="selectAll" |
| | | :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="æä½"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.code == '[2]' || scope.row.edit == true"> |
| | | <el-button type="text" size="mini" @click="childrenClick(scope)" |
| | | >ç¼è¾</el-button |
| | | > |
| | | <el-button |
| | | type="text" |
| | | size="mini" |
| | | @click="deleteTreeChildren(scope)" |
| | | >å é¤</el-button |
| | | > |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | addStandardProjectGroupApi, |
| | | productModelSelectmaterApi, |
| | | addproductModelApi, |
| | | selectproductModelApi, |
| | | deleteProductModelApi, |
| | | selectproductModelByIdApi, |
| | | updateProductModelApi, |
| | | deleteListApi, |
| | | } from "@/api/basicData/index"; |
| | | export default { |
| | | name: "BasicDataMessage", |
| | | data() { |
| | | return { |
| | | isAllSelect: false, |
| | | projectGroupingOptions: [], |
| | | productModelSelectmater: [], |
| | | value: "", |
| | | isUpdate: false, |
| | | projectName: "", |
| | | tableData: [], |
| | | centerDialogVisible: false, |
| | | deleteList: [], |
| | | form: { |
| | | material: "", // æ ·ååç§° |
| | | father: "", // 项ç®åç» |
| | | name: "", // 项ç®åç§° |
| | | unit: "", // åä½ |
| | | }, |
| | | params: { |
| | | material: "", |
| | | father: "", |
| | | name: "", |
| | | }, |
| | | rules: { |
| | | material: [ |
| | | { required: true, message: "è¯·éæ©æ ·ååç§°", trigger: "change" }, |
| | | ], |
| | | name: [ |
| | | { required: true, message: "请è¾å
¥é¡¹ç®åç§°", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 25, |
| | | message: "é¿åº¦å¨ 2 å° 25 个å符", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | unit: [ |
| | | { required: true, message: "请è¾å
¥åä½", trigger: "blur" }, |
| | | { |
| | | min: 1, |
| | | max: 25, |
| | | message: "é¿åº¦å¨ 1 å° 25 个å符", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | submitAdd() { |
| | | if (!this.isUpdate) { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | addproductModelApi(this.form).then((res) => { |
| | | this.centerDialogVisible = false; |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.selectProductModelTable(); |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | updateProductModelApi(this.form).then((res) => { |
| | | this.centerDialogVisible = false; |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.selectProductModelTable(); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | async selectProductMaster() { |
| | | await productModelSelectmaterApi().then((res) => { |
| | | this.productModelSelectmater = res.data; |
| | | }); |
| | | }, |
| | | handleClose(done) { |
| | | this.$confirm("确认å
³éï¼") |
| | | .then((_) => { |
| | | this.centerDialogVisible = false; |
| | | done(); |
| | | }) |
| | | .catch((_) => {}); |
| | | }, |
| | | selectProductModelTable() { |
| | | selectproductModelApi(this.params).then((res) => { |
| | | res.data.forEach((i) => { |
| | | if (i.name === undefined) { |
| | | i.name = i.children[0].name; |
| | | i.unit = i.children[0].unit; |
| | | i.id = i.children[0].id; |
| | | i.edit = true; |
| | | delete i.children; |
| | | } |
| | | }); |
| | | this.tableData = res.data; |
| | | this.selectDataList(); |
| | | }); |
| | | }, |
| | | childrenClick(scope) { |
| | | this.isUpdate = true; |
| | | let father = ""; |
| | | selectproductModelByIdApi(scope.row.id).then((res) => { |
| | | let result = res.data; |
| | | this.form.name = result.name; |
| | | this.form.material = result.material; |
| | | this.form.father = result.father; |
| | | this.form.unit = result.unit; |
| | | this.form.id = scope.row.id; |
| | | }); |
| | | this.centerDialogVisible = true; |
| | | }, |
| | | selectDataList() { |
| | | this.tableData.forEach((a) => { |
| | | a.code = "[1]"; |
| | | if (a.children != undefined) { |
| | | a.children.forEach((b) => { |
| | | b.code = "[2]"; |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | deleteTreeChildren(scope) { |
| | | deleteProductModelApi(scope.row.id).then((res) => { |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.selectProductModelTable(); |
| | | }); |
| | | }, |
| | | |
| | | // è¡¨æ ¼æ å
¨é¨éä¸é
ç½® |
| | | // å
¨é/åæ¶éæä½ |
| | | selectAll(val) { |
| | | this.isAllSelect = !this.isAllSelect; |
| | | let data = this.tableData; |
| | | this.toggleSelect(data, this.isAllSelect, "all"); |
| | | // èªå®ä¹ |
| | | if (this.isAllSelect) { |
| | | val.forEach((i) => { |
| | | let isExist = false; |
| | | this.deleteList.findIndex((c) => { |
| | | if (c === i.id) { |
| | | isExist = true; |
| | | } |
| | | }); |
| | | if (!isExist && i.id !== undefined) { |
| | | this.deleteList.push(i.id); |
| | | } |
| | | }); |
| | | } else { |
| | | this.deleteList.splice(0, this.deleteList.length); |
| | | } |
| | | // èªå®ä¹ç»æ |
| | | }, |
| | | //éæ©æè¡ |
| | | selectTr(selection, row) { |
| | | this.$set(row, "isChecked", !row.isChecked); |
| | | this.$nextTick(() => { |
| | | 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) { |
| | | if (type === "all") { |
| | | if (data.length > 0) { |
| | | data.forEach((item) => { |
| | | this.toggleSelection(item, flag); |
| | | if (item.children && item.children.length > 0) { |
| | | this.toggleSelect(item.children, flag, type); |
| | | } |
| | | }); |
| | | } |
| | | } else { |
| | | if (data.children && data.children.length > 0) { |
| | | data.children.forEach((item) => { |
| | | item.isChecked = !item.isChecked; |
| | | this.$refs.multipleTable.toggleRowSelection(item, flag); |
| | | this.toggleSelect(item, flag, type); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | //æ¹åéä¸ |
| | | toggleSelection(row, flag) { |
| | | this.$set(row, "isChecked", flag); |
| | | this.$nextTick(() => { |
| | | if (flag) { |
| | | this.$refs.multipleTable.toggleRowSelection(row, flag); |
| | | } else { |
| | | this.$refs.multipleTable.clearSelection(); |
| | | } |
| | | }); |
| | | }, |
| | | // è¡¨æ ¼æ å
¨é¨éä¸é
ç½® ç»æ |
| | | deleteListClick() { |
| | | deleteListApi(this.deleteList).then((res) => { |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.selectProductModelTable(); |
| | | }); |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.selectProductMaster().then((res) => { |
| | | this.params.material = this.productModelSelectmater[0]; |
| | | this.selectProductModelTable(); |
| | | }); |
| | | }, |
| | | watch: { |
| | | centerDialogVisible: { |
| | | handler(newVal, oldVal) { |
| | | if (newVal == true) { |
| | | addStandardProjectGroupApi().then((res) => { |
| | | this.projectGroupingOptions = res.data; |
| | | }); |
| | | } else { |
| | | // è¯·æ±æåæ¸
餿°æ® |
| | | this.form = {}; |
| | | // æäº¤æåæ¸
餿£éª |
| | | this.$refs.ruleForm.resetFields(); |
| | | this.isUpdate = false; |
| | | } |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | .el-tag.el-tag { |
| | | border-color: transparent; |
| | | background-color: transparent; |
| | | } |
| | | .el-tag.el-tag:hover { |
| | | border-color: transparent; |
| | | background-color: transparent; |
| | | } |
| | | .firstDiv { |
| | | float: left; |
| | | width: 20px; |
| | | height: 20px; |
| | | border-radius: 50%; |
| | | background-color: #eff5ff; |
| | | margin-top: 5px; |
| | | justify-content: center; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-right: 8px; |
| | | } |
| | | .main_div { |
| | | width: 100%; |
| | | position: relative; |
| | | padding: 0 10px 10px 10px; |
| | | } |
| | | .el-dialog__header { |
| | | padding: 0; |
| | | } |
| | | .el-dialog__headerbtn { |
| | | top: 0; |
| | | } |
| | | .el-dialog__close { |
| | | padding: 8px 0; |
| | | color: #ffffff !important; |
| | | } |
| | | .addForm { |
| | | padding: 20px 20px 0 20px; |
| | | } |
| | | .addForm .el-form-item__error { |
| | | left: 66px; |
| | | } |
| | | .el-dialog { |
| | | border-radius: 10px; |
| | | } |
| | | .el-dialog__body { |
| | | padding: 30px 20px 0 20px; |
| | | } |
| | | .addTop { |
| | | border-top-left-radius: 10px; |
| | | border-top-right-radius: 10px; |
| | | background-color: #00a5ff; |
| | | color: #ffffff; |
| | | padding: 8px 20px; |
| | | float: left; |
| | | height: 30px; |
| | | width: 100%; |
| | | } |
| | | .addTop span { |
| | | font-size: 16px; |
| | | font-weight: 700; |
| | | } |
| | | .table_div { |
| | | margin-top: 10px; |
| | | width: 100%; |
| | | height: calc(100vh - 230px); |
| | | background-color: #ffffff; |
| | | padding: 10px; |
| | | } |
| | | |
| | | .top_div { |
| | | height: 120px; |
| | | width: 100%; |
| | | padding: 30px 40px; |
| | | background-color: #ffffff; |
| | | } |
| | | .top_div_span { |
| | | margin-left: 50px; |
| | | } |
| | | .top_div_button { |
| | | margin-left: 20px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <div style="overflow: hidden;"> |
| | | <el-card style="margin: 10px;" v-model="searchData" > |
| | | <div slot="header" class="clearfix"> |
| | | <span> |
| | | <i slot="prefix" class="el-icon-s-home" /> |
| | | å®éªç®¡ç/åæææ£éªå</span> |
| | | </div> |
| | | <div class="card-content"> |
| | | <el-row :gutter="80"> |
| | | <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-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="ä¾åºååç§°:" > |
| | | <el-input :disabled="true" v-model="searchData.supplier"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产åç¼å·:"> |
| | | <el-input :disabled="true" v-model="searchData.mcode"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-form> |
| | | </el-row> |
| | | <el-row :gutter="80"> |
| | | <el-form ref="form" :model="searchData" label-width="80px"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="åææåç§°:"> |
| | | <el-input :disabled="true" v-model="searchData.name"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | |
| | | <el-form-item label="è§æ ¼åå·:"> |
| | | <el-input :disabled="true" v-model="searchData.specifications"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="6"> |
| | | |
| | | <el-form-item label="åä½:"> |
| | | <el-input :disabled="true" v-model="searchData.unit"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-form> |
| | | </el-row> |
| | | <el-row :gutter="80"> |
| | | <el-form ref="form" :model="searchData" label-width="80px"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ°é:"> |
| | | <el-input :disabled="true" v-model="searchData.num"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | |
| | | <el-form-item label="ç»è®°æ¥æ:"> |
| | | <el-input :disabled="true" v-model="searchData.end_time"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="6"> |
| | | |
| | | <el-form-item label="ç»è®°äºº:"> |
| | | <el-input :disabled="true" v-model="searchData.userName"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-form> |
| | | </el-row> |
| | | </div> |
| | | </el-card> |
| | | |
| | | |
| | | <el-row style="margin: 5px;"> |
| | | <el-col :span="12" style="line-height: 32px;">æ£éªé¡¹ç®</el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <!-- <el-button ic size="medium " @click="()=>{}">ä¿å</el-button> --> |
| | | <el-button icon="el-icon-refresh-lef" size="medium " style="background-color: cornflowerblue;" @click="goback">è¿å</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <div> |
| | | <el-card style="margin: 10px;"> |
| | | <el-table |
| | | :data="tableData" |
| | | border |
| | | style="width: 100%"> |
| | | <el-table-column |
| | | label="åºå·" |
| | | type="index" |
| | | width="50"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="date" |
| | | label="项ç®" |
| | | width="180"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | label="åä½" |
| | | width="180"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="kk" |
| | | label="æ åå¼"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="zz" |
| | | 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-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="pp" |
| | | 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> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { selectInspectsList, selectAll, addInspect} 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:'' |
| | | } |
| | | }, |
| | | created(){ |
| | | console.log(this.$route.query.icode); |
| | | this.id = this.$route.query.icode; |
| | | this.selectInspectsList() |
| | | }, |
| | | methods: { |
| | | 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 |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | |
| | | </style> |
| | | |
| | |
| | | > |
| | | <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" >æäº¤</el-button> --> |
| | | <el-button type="text" size="small" >ä½åº</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <el-pagination |
| | | class="pagination" |
| | | :current-page="currentPage" |
| | | :page-sizes="[5, 10, 20, 30]" |
| | | :page-sizes="[1, 10, 20, 30]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total" |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- å¯¹è¯æ¡ --> |
| | | <div class="checkType"> |
| | | <el-dialog |
| | | title="æ°å¢æ£éªå" |
| | |
| | | > |
| | | <div class="check-box"> |
| | | <el-radio-group v-model="type" @change="handleRadioChange"> |
| | | <el-radio :label="0" border>åæææ£éª</el-radio> |
| | | <el-radio :label="0" border >åæææ£éª</el-radio> |
| | | <el-radio :label="1" border>å§ææ£éª</el-radio> |
| | | <el-radio :label="2" border>æåæ£éª</el-radio> |
| | | </el-radio-group> |
| | |
| | | <el-row :gutter="100"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="æ¥ææ¥æï¼"> |
| | | <el-input style="width: 300px" type="text" :value="infoForm.dateSurvey" placeholder="请è¾å
¥æ¥ææ¥æ" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" :value="infoForm.dateSurvey" placeholder="请è¾å
¥æ¥ææ¥æ" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="ä¾åºååç§°ï¼"> |
| | | <el-input style="width: 300px" type="text" :value="infoForm.supplierName" placeholder="请è¾å
¥ä¾åºååç§°" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" :value="infoForm.supplierName" 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="infoForm.materialCoding" placeholder="请è¾å
¥åææç¼ç " autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" :value="infoForm.materialCoding" placeholder="请è¾å
¥åææç¼ç " autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="åææåç§°ï¼"> |
| | | <el-input style="width: 300px" type="text" :value="infoForm.materialName" placeholder="请è¾å
¥åææåç§°" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" :value="infoForm.materialName" 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="infoForm.specificationsModels" placeholder="请è¾å
¥è§æ ¼åå·" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" :value="infoForm.specificationsModels" placeholder="请è¾å
¥è§æ ¼åå·" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="åä½ï¼"> |
| | | <el-input style="width: 300px" type="text" :value="infoForm.unit" placeholder="请è¾å
¥åä½" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" :value="infoForm.unit" 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="infoForm.quantity" placeholder="请è¾å
¥æ°é" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" :value="infoForm.quantity" placeholder="请è¾å
¥æ°é" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | |
| | | <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-input style="width: 300px" type="text" :value="commisionSelection.formTime" 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-input style="width: 300px" type="text" :value="commisionSelection.supplier" 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-input style="width: 300px" type="text" :value="commisionSelection.mcode" 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-input style="width: 300px" type="text" :value="commisionSelection.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" 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-input style="width: 300px" type="text" :value="commisionSelection.unit" 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-input style="width: 300px" type="text" :value="commisionSelection.num" placeholder="请è¾å
¥æ°é" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | |
| | | <el-row :gutter="100"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="æ¥ææ¥æï¼"> |
| | | <el-input style="width: 300px" type="text" v-model="finishedTable.deliverydate" placeholder="请è¾å
¥æ¥ææ¥æ" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" v-model="finishedTable.deliverydate" placeholder="请è¾å
¥æ¥ææ¥æ" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="ä¾åºååç§°ï¼"> |
| | | <el-input style="width: 300px" type="text" v-model="finishedTable.supplier" placeholder="请è¾å
¥ä¾åºååç§°" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" v-model="finishedTable.supplier" 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" v-model="finishedTable.code" placeholder="请è¾å
¥åææç¼ç " autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" v-model="finishedTable.code" placeholder="请è¾å
¥åææç¼ç " autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="åææåç§°ï¼"> |
| | | <el-input style="width: 300px" type="text" v-model="finishedTable.name" placeholder="请è¾å
¥åææåç§°" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" v-model="finishedTable.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" v-model="finishedTable.modelandspecification" placeholder="请è¾å
¥è§æ ¼åå·" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" v-model="finishedTable.modelandspecification" placeholder="请è¾å
¥è§æ ¼åå·" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="åä½ï¼"> |
| | | <el-input style="width: 300px" type="text" v-model="finishedTable.unit" placeholder="请è¾å
¥åä½" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" v-model="finishedTable.unit" 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" v-model="finishedTable.amount" placeholder="请è¾å
¥æ°é" autocomplete="off" /> |
| | | <el-input style="width: 300px" type="text" v-model="finishedTable.amount" placeholder="请è¾å
¥æ°é" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | |
| | | type="selection" |
| | | label="" |
| | | min-width="10%" |
| | | /> |
| | | /> |
| | | <el-table-column |
| | | type="index" |
| | | label="åºå·" |
| | |
| | | <el-button @click="commisionVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="handleCommisionSelection">ç¡® å®</el-button> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | <template v-else> |
| | | <router-view /> |
| | | |
| | | </template> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import { selectInspectsList, selectAll, addInspect} from '@/api/experiment/planAssignments' |
| | | export default { |
| | |
| | | searchData: { |
| | | applicationnumber: '', |
| | | type: '', |
| | | state: '' |
| | | state: '', |
| | | }, |
| | | icode:'', |
| | | inspectionTable: [], |
| | | rawMaterialTable: [], |
| | | commisionTable: [{ |
| | |
| | | }], |
| | | currentPage: 1, |
| | | total: 20, // æ»æ¡æ° |
| | | pageSize: 5, // æ¯é¡µçæ°æ®æ¡æ° |
| | | pageSize: 8, // æ¯é¡µçæ°æ®æ¡æ° |
| | | radioValue: 'å
¨é¨', |
| | | checkTypeVisible: false, |
| | | type: '', // é»è®¤ä¸éä¸çç¶æ |
| | |
| | | if (this.$route.name === 'ForInspectionDetail') this.showDetail = true |
| | | }, |
| | | 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.selectInspectsList() |
| | | }, |
| | | async selectInspectsList() { |
| | | // è·åå页å表 |
| | | const res = await selectInspectsList({ countSize: this.pageSize, pageSize: this.currentPage }) |
| | | const res = await selectInspectsList({ countSize: this.pageSize, pageSize: this.currentPage,message:this.icode}) |
| | | // this.inspectionTable = data |
| | | // console.log(res.data.row) |
| | | const data = res.data.row |
| | |
| | | this.total = this.inspectionTable.length |
| | | }, |
| | | reset(){ |
| | | this.searchData = { |
| | | applicationnumber: '', |
| | | type: '', |
| | | state: '' |
| | | } |
| | | this.countSize = 1 |
| | | this.searchData = { } |
| | | // console.log('2222'); |
| | | this.selectInspectsList() |
| | | }, |
| | | //被éä¸çä¿¡æ¯ åé |
| | | //被éä¸çä¿¡æ¯ åé |
| | | handleSelectionChange(val) { |
| | | if (val.length > 1) { |
| | | this.$refs.multipleTable.clearSelection(); |
| | | this.$refs.multipleTable.clearSelection(); |
| | | this.$refs.multipleTable.toggleRowSelection(val.pop()) |
| | | } |
| | | this.tmp = val[0] |
| | |
| | | this.rawmaterialVisible = false |
| | | }, |
| | | async handleRadioChange(){ |
| | | console.log(this.type) |
| | | 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.rawMaterialTable = data |
| | | // 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.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' }); |
| | | } |
| | | }, |
| | | // æ°å¢æ£éª |
| | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | |
| | | <style lang="scss" scoped> |
| | | .checkType{ |
| | | .check-box{ |
| | |
| | | border-color: #b3d8ff; |
| | | ::v-deep .el-radio__label{ |
| | | color: #333 !important; |
| | | |
| | | |
| | | } |
| | | } |
| | | height: auto; |
| | |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | } |
| | | |
| | | |
| | | .getDataBtn, .createBtn { |
| | | margin-left: 10px; /* Optional: Add some space between the buttons */ |
| | | } |
| | |
| | | padding: 15px; |
| | | background-color: white; |
| | | height: calc(100vh - 15vh); |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .order_num{ |
| | | border-radius: 1rem; |
| | | width: 35px; |
| | | height: 25px; |
| | | text-align: center; |
| | | margin-right: 8px; |
| | | } |
| | | </style> |
| | | <style> |
| | |
| | | |
| | | .plan .cell { |
| | | color: #333; |
| | | display: flex; |
| | | } |
| | | </style> |
| | | |
| | |
| | | <el-table-column type="index" width="50" label="åºå·"> |
| | | </el-table-column> |
| | | <el-table-column prop="date" label="ç³è¯·åå·"> |
| | | <template slot-scope="scope"> |
| | | <div style="display: flex;"> |
| | | <div v-if="scope.row.code=='01'" style="color: #3caaff;background-color: #eff5ff;" class="order_num">01</div> |
| | | <div v-else-if="scope.row.code=='02'" style="color: #57c981;background-color: #f1fbf4;" class="order_num">02</div> |
| | | <div v-else-if="scope.row.code=='03'" style="color: #dfa8fb;background-color: #faf2ff;" class="order_num">03</div> |
| | | <div>{{scope.row.date}}</div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="æ£éªç»æ"> |
| | | </el-table-column> |
| | |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="primary" v-if="isIfReport(scope.row)">䏿¥</el-button> |
| | | <el-button size="mini" type="warning" @click="openUpDia(scope.row)" |
| | | v-else-if="scope.row.insId==undefined&&scope.row.address==null">åé
</el-button> |
| | | v-else-if="scope.row.code=='03'&&scope.row.insId==undefined&&scope.row.address==null">åé
</el-button> |
| | | <el-button size="mini" type="success" @click="openUpInsDia(scope.row)" |
| | | v-else-if="scope.row.insId==undefined&&scope.row.name==null">æ£éª</el-button> |
| | | v-else-if="scope.row.code=='03'&&scope.row.insId==undefined&&scope.row.name==null">æ£éª</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | id: 34, |
| | | date: '2016-05-01', |
| | | name: null, |
| | | res: '[{"number": 1,"res": "ä¸åæ ¼"},{"number": 2}]', |
| | | address: '䏿µ·å¸æ®éåºéæ²æ±è·¯ 1519 å¼' |
| | | res: '[{"number": 1,"res": "ä¸åæ ¼"},{"number": 3,"res": "ä¸åæ ¼"}]', |
| | | address: '䏿µ·å¸æ®éåºéæ²æ±è·¯ 1519 å¼', |
| | | children: [{ |
| | | id: 35, |
| | | date: 'hhh', |
| | | name: null, |
| | | res: '[{"number": 1},{"number": 2}]', |
| | | address: '䏿µ·å¸æ®éåºéæ²æ±è·¯ 1519 å¼' |
| | | }] |
| | | }] |
| | | }, { |
| | | id: 2, |
| | |
| | | methods: { |
| | | selectDataList() { |
| | | this.tableData.forEach(a => { |
| | | a.code = '[1]' |
| | | a.code = '01' |
| | | if (a.children != undefined) { |
| | | a.children.forEach(b => { |
| | | b.code = '[2]' |
| | | b.res = JSON.parse(b.res) |
| | | b.code = '02' |
| | | if (b.children != undefined) { |
| | | b.children.forEach(c => { |
| | | c.code = '03' |
| | | c.res = JSON.parse(c.res) |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | </script> |
| | |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </el-form> |
| | | <el-form> |
| | | <el-button class="rightBtn" type="primary">å®¡æ ¸</el-button> |
| | | </el-form> |
| | | </div> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <div class="library-table"> |
| | | <div class="table-header"> |
| | | <div class="search-bar"> |
| | | <el-radio-group v-model="checkStatus" @change="handleRadioChange"> |
| | | <el-radio-button>å
¨é¨</el-radio-button> |
| | | <el-radio-button label="0">å¾
æäº¤</el-radio-button> |
| | | <el-radio-button label="2">å¾
éè¿</el-radio-button> |
| | | <el-radio-button label="0">å¾
éè¿</el-radio-button> |
| | | <el-radio-button label="2">éè¿</el-radio-button> |
| | | </el-radio-group> |
| | | <el-checkbox v-model="checked" style="margin-left: 20px" |
| | | >ä»
çæç</el-checkbox |
| | |
| | | <template slot-scope="scope"> |
| | | <span> |
| | | <el-tag type="warning">{{ |
| | | scope.row.status == 0 ? "å¾
æäº¤" : "å¾
éè¿" |
| | | scope.row.status == 0 ? "å¾
éè¿" : "éè¿" |
| | | }}</el-tag> |
| | | </span> |
| | | </template></el-table-column |
| | |
| | | type="text" |
| | | size="small" |
| | | @click="handleClick(scope.row)" |
| | | >æ¥ç详ç»</el-button |
| | | > |
| | | >æ¥çè¯¦ç» |
| | | </el-button> |
| | | <el-button type="text" size="small" @click="checkskip = true">å®¡æ ¸</el-button> |
| | | |
| | | <el-dialog |
| | | title="åå§è®°å½å®¡æ ¸" |
| | | :visible.sync="checkskip" |
| | | width="30%" |
| | | :before-close="handleClose"> |
| | | <el-form :model="form"> |
| | | <el-form-item label="è¯·éæ©å®¡æ ¸ç»æ" :label-width="formLabelWidth"> |
| | | </el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6" :offset="5"> |
| | | <!-- <el-button type="primary" style="background-color: rgb(208, 201, 192);">éå</el-button> --> |
| | | <el-button style="background-color: rgb(206, 211, 216);">éå</el-button> |
| | | </el-col> |
| | | <el-col :span="6" :offset="3"> |
| | | <!-- <el-button type="primary" style="background-color: rgb(181, 237, 125);">éè¿</el-button> --> |
| | | <el-button style="background-color: rgb(192, 236, 148);">éè¿</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="checkskip = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="checkskip= false">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | total: 0, |
| | | pageSize: 10, |
| | | checked: true, |
| | | checkskip: false, |
| | | form:{}, |
| | | handleClose:'', |
| | | formLabelWidth: '120px' |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | this.checkStatus = undefined; |
| | | this.getData(); |
| | | }, |
| | | //å®¡æ ¸è·³è½¬ |
| | | // checkskip() { |
| | | |
| | | // }, |
| | | // æ¥è¯¢å表 |
| | | async getData() { |
| | | const params = { |
| | |
| | | <template> |
| | | <div class="home-main"> |
| | | <div class="home-header-welcome"> |
| | | <div class="welcome-left"> |
| | | <div class="left-avatar" /> |
| | | <div class="left-tips"> |
| | | <div>Hi jackï¼æ¬¢è¿ä½¿ç¨ZT-LIMS</div> |
| | | <div>ä»å¤©æ¯2023å¹´07æ07æ¥ ææäº</div> |
| | | </div> |
| | | <div class="content-main"> |
| | | <div class="echart1"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="16"> |
| | | <el-card class="box-card" :body-style="{ padding: '0px 10px',height:'120px' }"> |
| | | <p style="font-size: 10px;margin-left: 10px;">æ£éªæ»æ°ç»è®¡</p> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="6" > |
| | | <img :src="imgSrc" /> |
| | | <div class="card-text"> |
| | | <h6>æ£éªåå·²æ£éªæ»æ°</h6> |
| | | <p>{{insNum}}</p> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <img :src="imgSrc"/> |
| | | <div class="card-text"> |
| | | <h6>æ£éªåæªæ£éªæ»æ°</h6> |
| | | <p>{{insUnNum}}</p> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <img :src="imgSrc"/> |
| | | <div class="card-text"> |
| | | <h6>æ£éªé¡¹ç®å·²æ£éªæ»æ°</h6> |
| | | <p>{{insproNum}}</p> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <img :src="imgSrc"/> |
| | | <div class="card-text"> |
| | | <h6>æ£éªé¡¹ç®æªæ£éªæ»æ°</h6> |
| | | <p>{{insproUnNum}}</p> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-card class="box-card" :body-style="{ padding: '0px',height:'120px' }"> |
| | | <p style="font-size: 10px;margin-left: 10px;color: #2fcf10;">å·²æ£éª</p> |
| | | <el-table |
| | | :data="verifiedData" |
| | | :default-sort = "{prop: 'date', order: 'descending'}" |
| | | :cell-style="{margin:'0',padding:'2px 0px'}" |
| | | :header-cell-style="{margin:'0',padding:'0',backgroundColor:'#f0f7ff',color:'#0050a7'}"> |
| | | <el-table-column prop="no" label="æå" sortable width="110"></el-table-column> |
| | | <el-table-column prop="result" label="æ£éªç»è®º" width="110"></el-table-column> |
| | | <el-table-column prop="num" label="æ£éªæ°é" sortable width="110"></el-table-column> |
| | | <el-table-column prop="chact" label="æ£éªå æ¯" sortable width="110"></el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="welcome-right"> |
| | | <div class="right-centent"> |
| | | <div>å³å°è¶
æå¾
å</div> |
| | | <div>ææ </div> |
| | | </div> |
| | | <div /> |
| | | <div class="right-centent"> |
| | | <div>å·²è¶
æå¾
å</div> |
| | | <div>21</div> |
| | | </div> |
| | | <div class="echart2"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="6"> |
| | | <el-card :body-style="{ padding: '0px',height:'180px' }"> |
| | | <p>åææåæ ¼ç</p> |
| | | <div id="materialPieChart" style="width:100%;height:180px"></div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-card :body-style="{ padding: '0px',height:'180px' }"> |
| | | <p>æååæ ¼ç</p> |
| | | <div id="finishedPieChart" style="width:100%;height:180px"></div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-card :body-style="{ padding: '0px',height:'180px' }"> |
| | | <p style="z-index: 10;position: absolute;font-size: 10px;margin-left: 10px;color: #ff0000;">æªæ£éª</p> |
| | | <el-table |
| | | :data="uncheckedData" |
| | | :cell-style="{margin:'0px',padding:'3px 0px'}" |
| | | :header-cell-style="{margin:'0px',padding:'3px 0px',backgroundColor:'#f0f7ff',color:'#0050a7'}"> |
| | | <el-table-column prop="no" label="åºå·" width="100"></el-table-column> |
| | | <el-table-column prop="name" label="å¾
æ£é¡¹ç®" width="120"></el-table-column> |
| | | <el-table-column prop="instrumentname" label="设å¤" width="120"></el-table-column> |
| | | <el-table-column prop="startTime" label="æ£éªæ¶é´" width="120"> |
| | | </el-table-column><el-table-column prop="checkname" label="æ£éªäºº" width="120"> |
| | | </el-table-column><el-table-column prop="endTime" label="é¢è®¡ç»ææ¶é´" width="120"></el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="echart3"> |
| | | <el-card :body-style="{ padding: '0px',height:'300px' }"> |
| | | <el-radio-group class="button-group" :input="getDataByType(radioType)" v-model="radioType" size="mini"> |
| | | <el-radio-button label="æ¬å¨"></el-radio-button> |
| | | <el-radio-button label="æ¬æ"></el-radio-button> |
| | | <el-radio-button label="æ¬å¹´"></el-radio-button> |
| | | </el-radio-group> |
| | | <div id="barLineChart" style="width:100%;height:300px;"></div> |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | <div class="content-main" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import * as echarts from 'echarts'; |
| | | import { getVerifiedTop3,getUncheckedTop4,getMatAndFinshQualified,getCheckAndProjectNum |
| | | } from '@/api/home' |
| | | export default { |
| | | name: "home", |
| | | data() { |
| | | return { |
| | | insNum: 0, |
| | | insUnNum: 0, |
| | | insproNum: 0, |
| | | insproUnNum: 1110, |
| | | radioType: "æ¬å¹´", |
| | | imgSrc: require("@/assets/404_images/bg.png"), |
| | | verifiedData: new Array(), |
| | | uncheckedData: new Array(), |
| | | } |
| | | }, |
| | | mounted(){ |
| | | this.getcheckProjectNum(); |
| | | this.getVerifiedData(); |
| | | this.getUncheckedData(); |
| | | this.getPieChart(); |
| | | }, |
| | | methods: { |
| | | async getcheckProjectNum(){ |
| | | const {data} = await getCheckAndProjectNum(); |
| | | this.insNum = data.insNum; |
| | | this.insUnNum = data.insUnNum; |
| | | this.insproNum = data.insproNum; |
| | | this.insproUnNum = data.insproUnNum; |
| | | }, |
| | | async getVerifiedData(){ |
| | | const { data } = await getVerifiedTop3(); |
| | | for(let i=0;i<data.length;i++){ |
| | | let val = ""; |
| | | if(data[i].result == 0){ |
| | | val = "ä¸åæ ¼"; |
| | | }else if(data[i].result == 1){ |
| | | val = "åæ ¼"; |
| | | }else{ |
| | | val = "æªæ£éª"; |
| | | } |
| | | this.verifiedData.push ({ |
| | | no: i+1, |
| | | result: val, |
| | | num: data[i].num, |
| | | chact: data[i].chact + '%' |
| | | }) |
| | | } |
| | | }, |
| | | async getUncheckedData(){ |
| | | const {data} = await getUncheckedTop4(); |
| | | for(let i=0;i<data.length;i++){ |
| | | this.uncheckedData.push ({ |
| | | no: i+1, |
| | | name: data[i].name, |
| | | instrumentname: data[i].instrumentname, |
| | | startTime: data[i].startTime, |
| | | checkname: data[i].checkname, |
| | | endTime: data[i].endTime |
| | | }) |
| | | } |
| | | }, |
| | | initPieChart(elementId,data){ |
| | | var chartDom = document.getElementById(elementId); |
| | | var myChart = echarts.init(chartDom); |
| | | window.addEventListener('resize', function() { |
| | | myChart.resize(); |
| | | }); |
| | | var option; |
| | | option = { |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | right: 'right', |
| | | top: 'center', |
| | | left: 20 |
| | | }, |
| | | series: [ |
| | | { |
| | | type: 'pie', |
| | | radius: ['40%', '70%'], |
| | | tooltip: { |
| | | valueFormatter: function(value){ |
| | | return value + '%'; |
| | | } |
| | | }, |
| | | avoidLabelOverlap: false, |
| | | label: { |
| | | show: false, |
| | | position: 'center', |
| | | }, |
| | | labelLine: { |
| | | show: false |
| | | }, |
| | | data: data |
| | | } |
| | | ] |
| | | }; |
| | | |
| | | option && myChart.setOption(option); |
| | | }, |
| | | async getPieChart(){ |
| | | const {data} = await getMatAndFinshQualified(); |
| | | let material = [ |
| | | { value: data.material, name: 'åæ ¼',itemStyle:{color: '#91cc75'} }, |
| | | { value: data.unmaterial, name: 'ä¸åæ ¼',itemStyle:{color: '#fac858'} }, |
| | | { value: data.notmaterial, name: 'å¾
æ£éª' }, |
| | | ] |
| | | let finished = [ |
| | | { value: data.finished, name: 'åæ ¼',itemStyle:{color: '#91cc75'} }, |
| | | { value: data.unfinished, name: 'ä¸åæ ¼',itemStyle:{color: '#fac858'} }, |
| | | { value: data.notfinished, name: 'å¾
æ£éª' }, |
| | | ] |
| | | //渲æé¥¼ç¶å¾ |
| | | this.initPieChart("materialPieChart",material); |
| | | this.initPieChart("finishedPieChart",finished); |
| | | }, |
| | | async getDataByType(label){ |
| | | const xAxis = ['䏿', 'äºæ', '䏿', 'åæ', 'äºæ', 'å
æ', '䏿','å
«æ','乿','åæ','å䏿','åäºæ'] |
| | | const bar1Data = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]; |
| | | const bar2Data = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]; |
| | | const line1Data = [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]; |
| | | const line2Data = [3.0, 4.2, 6.3, 5.5, 8.3, 13.2, 20.3, 13.4, 23.0, 21.5, 2.0, 33.2]; |
| | | switch(label){ |
| | | case "æ¬å¹´": |
| | | this.initBarAndLineChart(xAxis,bar1Data,bar2Data,line1Data,line2Data); |
| | | break; |
| | | case "æ¬æ": |
| | | let arr = new Array(); |
| | | for(let i=1;i<=31;i++){ |
| | | arr.push(i); |
| | | } |
| | | this.initBarAndLineChart(arr,bar1Data,bar2Data,line1Data,line2Data); |
| | | break; |
| | | case "æ¬å¨": |
| | | let arr2 = new Array("å¨ä¸","å¨äº","å¨ä¸","å¨å","å¨äº","å¨å
","卿¥"); |
| | | this.initBarAndLineChart(arr2,bar1Data,bar2Data,line1Data,line2Data); |
| | | break |
| | | } |
| | | }, |
| | | initBarAndLineChart(xAxis,bar1Data,bar2Data,line1Data,line2Data){ |
| | | var chartDom = document.getElementById('barLineChart'); |
| | | var myChart = echarts.init(chartDom); |
| | | window.addEventListener('resize', function() { |
| | | myChart.resize(); |
| | | }); |
| | | var option; |
| | | option = { |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'cross', |
| | | crossStyle: { |
| | | color: '#999' |
| | | } |
| | | } |
| | | }, |
| | | legend: { |
| | | data: ['åæææ£éª', 'æåæ£éª', 'åææåæ ¼ç','æååæ ¼ç'] |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | type: 'category', |
| | | data: xAxis, |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | } |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | type: 'value', |
| | | name: 'æ£éªæ°é', |
| | | min: 0, |
| | | max: 1000, |
| | | interval: 100, |
| | | axisLabel: { |
| | | formatter: '{value}' |
| | | } |
| | | }, |
| | | { |
| | | type: 'value', |
| | | name: 'åæ ¼ç', |
| | | min: 0, |
| | | max: 100, |
| | | interval: 10, |
| | | axisLabel: { |
| | | formatter: '{value} %' |
| | | } |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: 'åæææ£éª', |
| | | type: 'bar', |
| | | tooltip: { |
| | | valueFormatter: function (value) { |
| | | return value; |
| | | } |
| | | }, |
| | | data: bar1Data |
| | | }, |
| | | { |
| | | name: 'æåæ£éª', |
| | | type: 'bar', |
| | | tooltip: { |
| | | valueFormatter: function (value) { |
| | | return value ; |
| | | } |
| | | }, |
| | | data: bar2Data |
| | | }, |
| | | { |
| | | name: 'åææåæ ¼ç', |
| | | smooth: true, |
| | | type: 'line', |
| | | yAxisIndex: 1, |
| | | tooltip: { |
| | | valueFormatter: function (value) { |
| | | return value + ' %'; |
| | | } |
| | | }, |
| | | data: line1Data |
| | | }, |
| | | { |
| | | name: 'æååæ ¼ç', |
| | | smooth: true, |
| | | type: 'line', |
| | | yAxisIndex: 1, |
| | | tooltip: { |
| | | valueFormatter: function (value) { |
| | | return value + ' %'; |
| | | } |
| | | }, |
| | | data: line2Data |
| | | } |
| | | ] |
| | | }; |
| | | option && myChart.setOption(option); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .home-main{ |
| | | .home-header-welcome{ |
| | | width: 100%; |
| | | background: #fff; |
| | | height: 84px; |
| | | display: flex; |
| | | border-bottom: 1px solid #f0f2f5; |
| | | padding: 8px 24px 12px 24px; |
| | | justify-content: space-between; |
| | | .welcome-left{ |
| | | display: flex; |
| | | align-items: center; |
| | | height: 100%; |
| | | .left-avatar{ |
| | | width: 56px; |
| | | height: 56px; |
| | | margin-right: 24px; |
| | | background: #0077DB; |
| | | border-radius: 50%; |
| | | .content-main{ |
| | | .echart1{ |
| | | .el-table{ |
| | | font-weight: bold; |
| | | width: 100%; |
| | | height:100; |
| | | padding:0px; |
| | | margin-left:10px; |
| | | } |
| | | .box-card img{ |
| | | width:100%; |
| | | height:100px; |
| | | border-radius: 10px; |
| | | } |
| | | .box-card .card-text{ |
| | | position: absolute; |
| | | top:0px; |
| | | h6{ |
| | | margin:10px 15px; |
| | | } |
| | | p{ |
| | | width:100%; |
| | | text-align: right; |
| | | font-size: 25px; |
| | | } |
| | | } |
| | | } |
| | | .echart2 { |
| | | .el-table{ |
| | | font-weight: bold; |
| | | width: 100%; |
| | | height:100; |
| | | padding:0px; |
| | | margin-left:10px; |
| | | padding-top:40px; |
| | | } |
| | | .left-tips{ |
| | | height: 80%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | >div:nth-child(1){ |
| | | font-size: 20px; |
| | | color: #303133; |
| | | } |
| | | >div:nth-child(2){ |
| | | font-size: 14px; |
| | | color: #606266; |
| | | } |
| | | .el-col{ |
| | | margin: 10px 0; |
| | | } |
| | | p{ |
| | | position: absolute; |
| | | font-size: 10px; |
| | | margin-left: 10px; |
| | | color:black; |
| | | } |
| | | } |
| | | .welcome-right{ |
| | | width: 250px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | .right-centent{ |
| | | height: 80%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | align-items: flex-end; |
| | | >div:nth-child(1){ |
| | | color: #909399; |
| | | font-size: 14px; |
| | | } |
| | | >div:nth-child(2){ |
| | | font-size: 24px; |
| | | color: #c0c4cc; |
| | | } |
| | | } |
| | | >div:nth-child(2){ |
| | | width: 2px; |
| | | height: 70%; |
| | | background: #f0f2f5; |
| | | } |
| | | .echart3 .button-group{ |
| | | margin-top: 10px; |
| | | margin-left: 88%; |
| | | z-index: 10; |
| | | } |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <div>æ¶æ¯</div> |
| | | <div class="content-main"> |
| | | <div class="top-bar"> |
| | | <el-form ref="form" :inline="true" :model="searchData"> |
| | | <el-form-item label="æ é¢:" class="sermargin"> |
| | | <el-input |
| | | v-model="searchData.title" |
| | | class="input-form" |
| | | placeholder="请è¾å
¥æ é¢" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å
容:" style="margin-right: 30px;"> |
| | | <el-input |
| | | v-model="searchData.content" |
| | | class="input-form" |
| | | placeholder="请è¾å
¥å
容" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="search">æ¥è¯¢</el-button> |
| | | <el-button type="primary" plain @click="reset">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form> |
| | | <el-button class="deleteBtn" plain type="primary" @click="deleteMessage" >å é¤</el-button> |
| | | <el-button type="primary" @click="readMessage" style="width: 110px;" >æ 为已读</el-button> |
| | | </el-form> |
| | | </div> |
| | | <div class="library-table"> |
| | | <div class="table-header"> |
| | | <el-radio-group v-model="radioValue" @change="radioclick"> |
| | | <el-radio-button v-for="item in conditionsOptions" :key="item.value" :label="item.value"> |
| | | {{ item.label }} |
| | | </el-radio-button> |
| | | </el-radio-group> |
| | | </div> |
| | | <div class="table-box"> |
| | | <el-table |
| | | ref="messageTable" |
| | | :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="messageTable" |
| | | @selection-change="handleSelectionChange" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | min-width="10%" |
| | | /> |
| | | <el-table-column |
| | | prop="title" |
| | | label="æ é¢" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | prop="content" |
| | | label="å
容" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | prop="level" |
| | | label="ç级" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | prop="type" |
| | | label="ç±»å" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="state" |
| | | label="ç¶æ" |
| | | min-width="12%"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.state === 1" style="color: red;">æªè¯»</span> |
| | | <span v-if="scope.row.state === 2" style="color: green;">已读</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="sender" |
| | | label="å件人" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="create_time" |
| | | label="å建æ¶é´" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | label="æä½" |
| | | min-width="10%" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" @click="deleteRow(scope.row)">å é¤</el-button> |
| | | <el-button type="text" size="small" @click="readRow(scope.row)">æ 为已读</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- åé¡µå¨ --> |
| | | <div> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage" |
| | | :page-sizes="[5, 10, 15, 20]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data(){ |
| | | return { |
| | | searchData: { |
| | | title: '', |
| | | content: '' |
| | | }, |
| | | radioValue: 0, |
| | | conditionsOptions: [ |
| | | { |
| | | label: 'å
¨é¨', |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: 'æªè¯»', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: '已读', |
| | | value: 2 |
| | | } |
| | | ], |
| | | selectionRows:[], |
| | | messageTable:[], |
| | | currentPage:1, |
| | | pageSize: 5, |
| | | total:10, |
| | | |
| | | } |
| | | }, |
| | | created(){ |
| | | |
| | | }, |
| | | methods: { |
| | | deleteMessage(){ |
| | | console.log(this.selectionRows) |
| | | }, |
| | | readMessage(){ |
| | | console.log(this.selectionRows) |
| | | }, |
| | | // æè·è¡¨æ ¼éæ©çæ°æ® |
| | | handleSelectionChange(selection){ |
| | | this.selectionRows = selection |
| | | }, |
| | | // æ 记已读 |
| | | readRow(row){ |
| | | console.log(row) |
| | | }, |
| | | // å é¤ |
| | | deleteRow(row){ |
| | | console.log(row) |
| | | }, |
| | | radioclick(){ |
| | | console.log(this.radioValue) |
| | | }, |
| | | handleSizeChange(val){ |
| | | console.log(`å½åæ¯é¡µ${val}æ¡æ°æ®`) |
| | | }, |
| | | handleCurrentChange(val){ |
| | | console.log(`å½åæ¯ç¬¬${val}页`) |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .content-main{ |
| | | width: 100%; |
| | | .top-bar{ |
| | | margin: -25px -15px; |
| | | padding: 5px 24px 0px 24px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | background-color: #fff; |
| | | .sermargin{ |
| | | margin-right: 60px; |
| | | } |
| | | .deleteBtn{ |
| | | background-color: #fff; |
| | | border: 1px solid rgb(225, 222, 222); |
| | | color: rgb(184, 182, 182); |
| | | } |
| | | .deleteBtn:active { |
| | | outline: none; /* å»é¤æé®çé»è®¤ç¹å»æ¶çå¤è¾¹æ¡ */ |
| | | box-shadow: 0 0 4px rgb(142, 141, 141); /* æ·»å ç¹å»æ¶çé´å½±ææï¼é¢è²è®¾ä¸ºç°è² */ |
| | | } |
| | | .deleteBtn:hover { |
| | | outline: none; /* å»é¤æé®çé»è®¤ç¹å»æ¶çå¤è¾¹æ¡ */ |
| | | background-color: rgb(233, 233, 233); /* æ·»å ç¹å»æ¶çé´å½±ææï¼é¢è²è®¾ä¸ºç°è² */ |
| | | } |
| | | .deleteBtn:focus { |
| | | outline: none; /* å»é¤æé®çé»è®¤ç¹å»æ¶çå¤è¾¹æ¡ */ |
| | | background-color: rgb(233, 233, 233); /* æ·»å ç¹å»æ¶çé´å½±ææï¼é¢è²è®¾ä¸ºç°è² */ |
| | | } |
| | | } |
| | | .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; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | </style> |
| | |
| | | <template> |
| | | <div>å¾
å</div> |
| | | <div class="content-main"> |
| | | <div class="top-bar"> |
| | | <el-form ref="form" :inline="true" :model="searchData"> |
| | | <el-form-item label="æ é¢:" class="sermargin"> |
| | | <el-input |
| | | v-model="searchData.title" |
| | | class="input-form" |
| | | placeholder="请è¾å
¥æ é¢" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å
容:" style="margin-right: 30px;"> |
| | | <el-input |
| | | v-model="searchData.content" |
| | | class="input-form" |
| | | placeholder="请è¾å
¥å
容" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="search">æ¥è¯¢</el-button> |
| | | <el-button type="primary" plain @click="reset">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form> |
| | | <el-button class="deleteBtn" plain type="primary" @click="deleteMessage" >å é¤</el-button> |
| | | <el-button type="primary" @click="readMessage" style="width: 110px;" >æ 为已读</el-button> |
| | | </el-form> |
| | | </div> |
| | | <div class="library-table"> |
| | | <div class="table-header"> |
| | | <el-radio-group v-model="radioValue" @change="radioclick"> |
| | | <el-radio-button v-for="item in conditionsOptions" :key="item.value" :label="item.value"> |
| | | {{ item.label }} |
| | | </el-radio-button> |
| | | </el-radio-group> |
| | | </div> |
| | | <div class="table-box"> |
| | | <el-table |
| | | ref="toDoTable" |
| | | :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="toDoTable" |
| | | @selection-change="handleSelectionChange" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | prop="sender" |
| | | label="å件人" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="title" |
| | | label="æ é¢" |
| | | min-width="13%" |
| | | /> |
| | | <el-table-column |
| | | prop="todo" |
| | | label="代åå
容" |
| | | min-width="20%" |
| | | /> |
| | | <el-table-column |
| | | prop="group" |
| | | label="åç»" |
| | | min-width="15%" |
| | | /> |
| | | <el-table-column |
| | | prop="level" |
| | | label="ç级" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="create_time" |
| | | label="å建æ¶é´" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | prop="deadline" |
| | | label="è¦æ±å®ææ¶é´" |
| | | min-width="12%" |
| | | /> |
| | | <el-table-column |
| | | prop="state" |
| | | label="ç¶æ" |
| | | min-width="12%" |
| | | /> |
| | | </el-table> |
| | | <!-- åé¡µå¨ --> |
| | | <div> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage" |
| | | :page-sizes="[5, 10, 15, 20]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data(){ |
| | | return { |
| | | searchData: { |
| | | title: '', |
| | | content: '' |
| | | }, |
| | | radioValue: 0, |
| | | conditionsOptions: [ |
| | | { |
| | | label: 'å
¨é¨', |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: 'æªå¤ç', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: 'å·²å¤ç', |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: 'å·²è¶
æ', |
| | | value: 3 |
| | | } |
| | | ], |
| | | toDoTable:[], |
| | | selectionRows:[], |
| | | currentPage:1, |
| | | pageSize: 5, |
| | | total:100, |
| | | |
| | | } |
| | | }, |
| | | methods: { |
| | | deleteMessage(){ |
| | | console.log(this.selectionRows) |
| | | }, |
| | | readMessage(){ |
| | | console.log(this.selectionRows) |
| | | }, |
| | | // æè·è¡¨æ ¼éæ©çæ°æ® |
| | | handleSelectionChange(selection){ |
| | | this.selectionRows = selection |
| | | }, |
| | | radioclick(){ |
| | | console.log(this.radioValue) |
| | | }, |
| | | handleSizeChange(val){ |
| | | console.log(`å½åæ¯é¡µ${val}æ¡æ°æ®`) |
| | | }, |
| | | handleCurrentChange(val){ |
| | | console.log(`å½åæ¯ç¬¬${val}页`) |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .content-main{ |
| | | width: 100%; |
| | | .top-bar{ |
| | | margin: -25px -15px; |
| | | padding: 5px 24px 0px 24px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | background-color: #fff; |
| | | .sermargin{ |
| | | margin-right: 60px; |
| | | } |
| | | .deleteBtn{ |
| | | background-color: #fff; |
| | | border: 1px solid rgb(225, 222, 222); |
| | | color: rgb(184, 182, 182); |
| | | } |
| | | .deleteBtn:active { |
| | | outline: none; /* å»é¤æé®çé»è®¤ç¹å»æ¶çå¤è¾¹æ¡ */ |
| | | box-shadow: 0 0 4px rgb(142, 141, 141); /* æ·»å ç¹å»æ¶çé´å½±ææï¼é¢è²è®¾ä¸ºç°è² */ |
| | | } |
| | | .deleteBtn:hover { |
| | | outline: none; /* å»é¤æé®çé»è®¤ç¹å»æ¶çå¤è¾¹æ¡ */ |
| | | background-color: rgb(233, 233, 233); /* æ·»å ç¹å»æ¶çé´å½±ææï¼é¢è²è®¾ä¸ºç°è² */ |
| | | } |
| | | .deleteBtn:focus { |
| | | outline: none; /* å»é¤æé®çé»è®¤ç¹å»æ¶çå¤è¾¹æ¡ */ |
| | | background-color: rgb(233, 233, 233); /* æ·»å ç¹å»æ¶çé´å½±ææï¼é¢è²è®¾ä¸ºç°è² */ |
| | | } |
| | | } |
| | | .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; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | </style> |
| | |
| | | <template> |
| | | <div class="standard-library-main"> |
| | | <div class="content-main"> |
| | | <div class="library-bom" style="width: 300px;"> |
| | | <el-input |
| | | v-model="filterText" |
| | | placeholder="è¾å
¥å
³é®åè¿è¡è¿æ»¤" |
| | | /> |
| | | <div class="library-bom" style="width: 300px"> |
| | | <el-input v-model="filterText" placeholder="è¾å
¥å
³é®åè¿è¡è¿æ»¤" /> |
| | | <el-button type="text">å
¨é¨</el-button> |
| | | <el-tree |
| | | ref="tree" |
| | | style="width: 100%;" |
| | | style="width: 100%" |
| | | class="filter-tree" |
| | | :data="standardTree" |
| | | :props="defaultProps" |
| | |
| | | @node-click="nodeClick" |
| | | /> |
| | | </div> |
| | | <div class="library-table" style="width: 80%;"> |
| | | <div class="library-table" style="width: 80%"> |
| | | <div class="table-header"> |
| | | <div class="search-bar"> |
| | | <el-form ref="form" :inline="true" :model="searchData"> |
| | | <el-form-item> |
| | | <span>åææç¼ç ï¼</span> |
| | | <el-input |
| | | v-model="searchData.keyword" |
| | | placeholder="请è¾å
¥äººååç§°/åææåç§°" |
| | |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="filteredTableData">æ¥è¯¢</el-button> |
| | | <el-button type="primary" plain @click="resetBtn">éç½®</el-button> |
| | | <span>åææåç§°ï¼</span> |
| | | <el-input |
| | | v-model="searchData.keyword" |
| | | placeholder="请è¾å
¥åææåç§°" |
| | | > |
| | | <i slot="prefix" class="el-input__icon el-icon-search" /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="filteredTableData" |
| | | >æ¥è¯¢</el-button |
| | | > |
| | | <el-button type="primary" plain @click="resetBtn" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="serve-btn"> |
| | | <el-button type="primary" icon="el-icon-plus" @click="addTreeFormVisible = true">æ°å¢</el-button> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-plus" |
| | | @click="addTreeFormVisible = true" |
| | | >æ°å¢</el-button |
| | | > |
| | | <el-button |
| | | class="top_div_button" |
| | | icon="el-icon-delete-solid" |
| | | size="small" |
| | | style="color: #00a5ff" |
| | | @click="deleteListClick" |
| | | >å é¤</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="table-box"> |
| | | <el-table |
| | | <!-- <el-table |
| | | ref="tableData" |
| | | row-key="id" |
| | | max-height="680" |
| | | :tree-props="{children: 'children', hasChildren: 'hasChildren'}" |
| | | :cell-style="{textAlign: 'left'}" |
| | | :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'left'}" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" |
| | | :cell-style="{ textAlign: 'left' }" |
| | | :header-cell-style="{ |
| | | border: '0px', |
| | | background: '#f5f7fa', |
| | | color: '#606266', |
| | | boxShadow: 'inset 0 1px 0 #ebeef5', |
| | | textAlign: 'left', |
| | | }" |
| | | :data="tableData" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | label="åºå·" |
| | | width="100px" |
| | | > |
| | | <template v-if="scope.row.index+1" slot-scope="scope"> |
| | | {{ scope.row.index+1 }} |
| | | <el-table-column type="index" label="åºå·" width="100px"> |
| | | <template v-if="scope.row.index + 1" slot-scope="scope"> |
| | | {{ scope.row.index + 1 }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="father" |
| | | label="åç§°" |
| | | width="320px" |
| | | > |
| | | <el-table-column prop="father" label="åç§°" width="320px"> |
| | | <template slot-scope="scope"> |
| | | <el-tag size="mini" :type="scope.row.father? '':'success'" :style="{borderRadius: '40%',marginRight: '12px'}">{{ scope.row.father? '01':'02' }}</el-tag> {{ scope.row.father || scope.row.name }} |
| | | <el-tag |
| | | size="mini" |
| | | :type="scope.row.father ? '' : 'success'" |
| | | :style="{ borderRadius: '40%', marginRight: '12px' }" |
| | | >{{ scope.row.father ? "01" : "02" }}</el-tag |
| | | > |
| | | {{ scope.row.father || scope.row.name }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="åä½" width="300px" /> |
| | | <el-table-column prop="required" label="æ å" width="300px" /> |
| | | <el-table-column prop="internal" label="å
æ§å¶" width="300px" /> |
| | | </el-table> --> |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%; margin-bottom: 20px" |
| | | row-key="name" |
| | | border |
| | | height="calc(100vh - 250px)" |
| | | default-expand-all |
| | | ref="multipleTable" |
| | | @select="selectTr" |
| | | @select-all="selectAll" |
| | | :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="åä½" |
| | | width="300px" |
| | | /> |
| | | <el-table-column |
| | | prop="required" |
| | | label="æ å" |
| | | width="300px" |
| | | /> |
| | | <el-table-column |
| | | prop="internal" |
| | | label="å
æ§å¶" |
| | | width="300px" |
| | | /> |
| | | sortable |
| | | ></el-table-column> |
| | | </el-table> |
| | | <!-- å¼¹åºè¡¨å页 --> |
| | | <div> |
| | |
| | | </div> |
| | | <div> |
| | | <!-- åé¡µå¨ --> |
| | | <el-pagination |
| | | <!-- <el-pagination |
| | | :current-page="pageParams.pageNo" |
| | | :page-sizes="[10, 15, 20, 25]" |
| | | :page-size="pageParams.pageSize" |
| | |
| | | :total="pageParams.total" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | /> --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog class="addTree" title="æ·»å ææ " width="28%" :visible.sync="addTreeFormVisible" @close="closeAddTreeForm"> |
| | | <el-dialog |
| | | class="addTree" |
| | | title="æ·»å ææ " |
| | | width="28%" |
| | | :visible.sync="addTreeFormVisible" |
| | | @close="closeAddTreeForm" |
| | | > |
| | | <el-form v-model="addTreeForm" label-position="top"> |
| | | <el-form-item label="ä¸çº§"> |
| | | <el-cascader |
| | | v-model="addTreeForm.addTypeArr" |
| | | :options="formTypeOptions" |
| | | :props="{ ...defaultProps,checkStrictly: true }" |
| | | :props="{ ...defaultProps, checkStrictly: true }" |
| | | clearable |
| | | @change="changeCascader" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item v-show="addTreeForm.addTypeArr.length<2" label="ç©æåç§°"> |
| | | <el-form-item |
| | | v-show="addTreeForm.addTypeArr.length < 2" |
| | | label="ç©æåç§°" |
| | | > |
| | | <el-input v-model="addTreeForm.materialName" /> |
| | | </el-form-item> |
| | | <el-form-item v-show="addTreeForm.addTypeArr.length<3" label="æ§è¡æ å"> |
| | | <el-form-item |
| | | v-show="addTreeForm.addTypeArr.length < 3" |
| | | label="æ§è¡æ å" |
| | | > |
| | | <el-input v-model="addTreeForm.standardName" /> |
| | | </el-form-item> |
| | | <el-form-item v-show="addTreeForm.addTypeArr.length<4" label="è§æ ¼åå·"> |
| | | <el-form-item |
| | | v-show="addTreeForm.addTypeArr.length < 4" |
| | | label="è§æ ¼åå·" |
| | | > |
| | | <el-input v-model="addTreeForm.specificationsName" /> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getMaterialList, getProductList, getProductSonList, |
| | | addMaterial, addStandards, addSpecifications |
| | | } from '@/api/standardLibrary' |
| | | import { |
| | | getMaterialList, |
| | | getProductList, |
| | | getProductSonList, |
| | | addMaterial, |
| | | addStandards, |
| | | addSpecifications, |
| | | deleteListApi, |
| | | } from "@/api/standardLibrary"; |
| | | |
| | | import { selectproductModelApi } from "@/api/basicData/index"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | deleteList: [], |
| | | addTreeFormVisible: false, |
| | | filterText: '', |
| | | filterText: "", |
| | | // æ ååºbomæ |
| | | standardTree: [], |
| | | // bomç,é»è®¤é
ç½®å¼ |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'name', |
| | | value: 'id' |
| | | children: "children", |
| | | label: "name", |
| | | value: "id", |
| | | }, |
| | | // æ¥è¯¢æ¡ä»¶ |
| | | searchData: { |
| | | keyword: '' |
| | | keyword: "", |
| | | }, |
| | | tableData: [ |
| | | ], |
| | | tableData: [], |
| | | oldtableData: [], |
| | | // å页忰 |
| | | pageParams: { |
| | | pageNo: 1, |
| | | pageSize: 12, |
| | | total: 0 |
| | | total: 0, |
| | | }, |
| | | tablespecifications: [ |
| | | ], |
| | | tablespecifications: [], |
| | | // éä¸çèç¹æ°æ® |
| | | selectData: {}, |
| | | formTypeOptions: [], |
| | | addTreeForm: { |
| | | addTypeArr: [] |
| | | } |
| | | } |
| | | addTypeArr: [], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | filterText(val) { |
| | | this.$refs.tree.filter(val) |
| | | } |
| | | this.$refs.tree.filter(val); |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getStandardTree() |
| | | this.getStandardTree(); |
| | | }, |
| | | methods: { |
| | | filterNode(value, data) { |
| | | if (!value) return true |
| | | return data.label.indexOf(value) !== -1 |
| | | if (!value) return true; |
| | | return data.label.indexOf(value) !== -1; |
| | | }, |
| | | // è·åbomæ çæ åæ°æ® |
| | | async getStandardTree() { |
| | | const { data } = await getMaterialList() |
| | | console.log(data) |
| | | this.standardTree = data.map(item => { |
| | | let name = null |
| | | const { data } = await getMaterialList(); |
| | | console.log(data); |
| | | this.standardTree = data.map((item) => { |
| | | let name = null; |
| | | switch (item.type) { |
| | | case 1: |
| | | name = 'åææ' |
| | | break |
| | | name = "åææ"; |
| | | break; |
| | | case 2: |
| | | name = 'åæå' |
| | | break |
| | | name = "åæå"; |
| | | break; |
| | | case 3: |
| | | name = 'æå' |
| | | break |
| | | name = "æå"; |
| | | break; |
| | | } |
| | | return { |
| | | ...item, id: item.type, name |
| | | } |
| | | }) |
| | | console.log(this.standardTree) |
| | | ...item, |
| | | id: item.type, |
| | | name, |
| | | }; |
| | | }); |
| | | console.log(this.standardTree); |
| | | // formTypeOptions |
| | | // é»è®¤ç¬¬ä¸ä¸ªå级èç¹æç´¢ï¼æ°å¢é
置项 |
| | | const treeOptions = JSON.parse(JSON.stringify(this.standardTree)) |
| | | this.getDefault(treeOptions, 0) |
| | | console.log(treeOptions) |
| | | this.formTypeOptions = treeOptions |
| | | const treeOptions = JSON.parse(JSON.stringify(this.standardTree)); |
| | | this.getDefault(treeOptions, 0); |
| | | console.log(treeOptions); |
| | | this.formTypeOptions = treeOptions; |
| | | this.$nextTick().then(() => { |
| | | const firstNode = document.querySelector('.el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node') |
| | | firstNode.click() |
| | | const firstNode = document.querySelector( |
| | | ".el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node" |
| | | ); |
| | | firstNode.click(); |
| | | // console.log(firstNode) |
| | | }) |
| | | }); |
| | | }, |
| | | getDefault(arr, index) { |
| | | for (const item of arr) { |
| | | if (item.children && item.children?.length > 0) { |
| | | // æåèç¹ |
| | | this.getDefault(item.children, index + 1) |
| | | // æåèç¹ |
| | | this.getDefault(item.children, index + 1); |
| | | if (index === 2) { |
| | | item.children = null |
| | | item.children = null; |
| | | } |
| | | } |
| | | // else { |
| | |
| | | // console.log('children' in data) |
| | | // æ¯åèç¹ |
| | | if (node.level === 4) { |
| | | // console.log(data, node) |
| | | console.log(data, node); |
| | | // åä¸éä¸èç¹ |
| | | this.selectData = data |
| | | this.selectData = data; |
| | | // eslint-disable-next-line prefer-const |
| | | this.getTableByClick(data) |
| | | this.getTableByClick(data); |
| | | } |
| | | if (!('children' in data)) { |
| | | return |
| | | if (!("children" in data)) { |
| | | return; |
| | | } |
| | | }, |
| | | async getTableByClick(data) { |
| | | // eslint-disable-next-line prefer-const |
| | | let { data: { row, total }} = await getProductList({ pageNo: this.pageParams.pageNo, pageSize: this.pageParams.pageSize, specificationsId: data.id }) |
| | | let { |
| | | data: { row, total }, |
| | | } = await getProductList({ |
| | | pageNo: this.pageParams.pageNo, |
| | | pageSize: this.pageParams.pageSize, |
| | | specificationsId: data.id, |
| | | }); |
| | | // console.log(row) |
| | | this.pageParams.total = total |
| | | row = row.map((item, index) => ({ ...item, index })) |
| | | this.pageParams.total = total; |
| | | row = row.map((item, index) => ({ ...item, index })); |
| | | for (const item of row) { |
| | | if (item.children) { |
| | | const res = await getProductSonList({ fatherName: item.father }) |
| | | item.children = res.data |
| | | item.id = item.father |
| | | const res = await getProductSonList({ fatherName: item.father }); |
| | | item.children = res.data; |
| | | item.id = item.father; |
| | | } |
| | | } |
| | | this.tableData = row |
| | | this.tableData = row; |
| | | }, |
| | | specificationDetails(row) { |
| | | // 跳转产åè§æ ¼è¯¦æ
页 |
| | | this.$router.push(`/standardLibrary/SpecificationDetails/${row.id}`) |
| | | this.$router.push(`/standardLibrary/SpecificationDetails/${row.id}`); |
| | | }, |
| | | handleSizeChange(val) { |
| | | console.log(`æ¯é¡µ ${val} æ¡`) |
| | | this.pageParams.pageSize = val |
| | | this.getTableByClick(this.selectData) |
| | | console.log(`æ¯é¡µ ${val} æ¡`); |
| | | this.pageParams.pageSize = val; |
| | | this.getTableByClick(this.selectData); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | console.log(`å½å页: ${val}`) |
| | | this.pageParams.pageNo = val |
| | | this.getTableByClick(this.selectData) |
| | | console.log(`å½å页: ${val}`); |
| | | this.pageParams.pageNo = val; |
| | | this.getTableByClick(this.selectData); |
| | | }, |
| | | // æ¥è¯¢æé® |
| | | filteredTableData() { |
| | | this.oldtableData = this.tableData |
| | | this.oldtableData = this.tableData; |
| | | // æ ¹æ®è¾å
¥çå
³é®åå¾å°è¿æ»¤åçæ°æ®ï¼å¦ææå°±æè¿æ»¤åçæ°æ®å±ç¤ºå¨é¡µé¢ä¸ |
| | | const filteredtabledata = this.tableData.filter(item => { |
| | | return item.name.includes(this.searchData.keyword) |
| | | }) |
| | | const filteredtabledata = this.tableData.filter((item) => { |
| | | return item.name.includes(this.searchData.keyword); |
| | | }); |
| | | // console.log('filteredtabledata', filteredtabledata) |
| | | this.tableData = filteredtabledata |
| | | this.tableData = filteredtabledata; |
| | | }, |
| | | // éç½®æé® |
| | | resetBtn() { |
| | | this.searchData.keyword = '' |
| | | this.tableData = this.oldtableData |
| | | this.searchData.keyword = ""; |
| | | this.tableData = this.oldtableData; |
| | | }, |
| | | renderContent(h, { node, data, store }) { |
| | | // console.log('data', data) |
| | | // console.log('node', node) |
| | | // 夿æ¯å¦æ¯ç¶èç¹ææä»¶å¤¹ |
| | | const isFolder = ('children') in data |
| | | const isFolder = "children" in data; |
| | | return ( |
| | | <span class='tree-node'> |
| | | <span class="tree-node"> |
| | | {isFolder ? ( |
| | | <i |
| | | class={node.expanded ? 'el-icon-folder-opened blue-folder' : 'el-icon-folder blue-folder'} |
| | | class={ |
| | | node.expanded |
| | | ? "el-icon-folder-opened blue-folder" |
| | | : "el-icon-folder blue-folder" |
| | | } |
| | | ></i> |
| | | ) : ( |
| | | <i class='el-icon-document blue-folder'></i> |
| | | <i class="el-icon-document blue-folder"></i> |
| | | )} |
| | | <div class='tree-lable'>[{node.level}] {data.name}</div> |
| | | <div class="tree-lable"> |
| | | [{node.level}] {data.name} |
| | | </div> |
| | | </span> |
| | | ) |
| | | ); |
| | | }, |
| | | async subAddTreeForm() { |
| | | this.addTreeFormVisible = false |
| | | console.log(this.addTreeForm.addTypeArr.length) |
| | | let res = null |
| | | this.addTreeFormVisible = false; |
| | | console.log(this.addTreeForm.addTypeArr.length); |
| | | let res = null; |
| | | try { |
| | | switch (this.addTreeForm.addTypeArr.length) { |
| | | case 1: |
| | | console.log(this.addTreeForm) |
| | | res = await addMaterial({ ...this.addTreeForm, type: this.addTreeForm.addTypeArr.pop() }) |
| | | break |
| | | console.log(this.addTreeForm); |
| | | res = await addMaterial({ |
| | | ...this.addTreeForm, |
| | | type: this.addTreeForm.addTypeArr.pop(), |
| | | }); |
| | | break; |
| | | case 2: |
| | | console.log(this.addTreeForm) |
| | | res = await addStandards({ ...this.addTreeForm, materialId: this.addTreeForm.addTypeArr.pop() }) |
| | | break |
| | | console.log(this.addTreeForm); |
| | | res = await addStandards({ |
| | | ...this.addTreeForm, |
| | | materialId: this.addTreeForm.addTypeArr.pop(), |
| | | }); |
| | | break; |
| | | case 3: |
| | | console.log(this.addTreeForm) |
| | | res = await addSpecifications({ ...this.addTreeForm, standardId: this.addTreeForm.addTypeArr.pop() }) |
| | | break |
| | | console.log(this.addTreeForm); |
| | | res = await addSpecifications({ |
| | | ...this.addTreeForm, |
| | | standardId: this.addTreeForm.addTypeArr.pop(), |
| | | }); |
| | | break; |
| | | } |
| | | } catch (error) { |
| | | this.$message.error('æ·»å 失败') |
| | | this.$message.error("æ·»å 失败"); |
| | | } |
| | | |
| | | console.log(res) |
| | | this.$message.success('æ·»å æå') |
| | | this.addTreeForm = {} |
| | | this.getStandardTree() |
| | | this.getTableByClick(this.selectData) |
| | | console.log(res); |
| | | this.$message.success("æ·»å æå"); |
| | | this.addTreeForm = {}; |
| | | this.getStandardTree(); |
| | | this.getTableByClick(this.selectData); |
| | | }, |
| | | changeCascader(data) { |
| | | console.log(data) |
| | | this.addTreeForm.addTypeArr = data |
| | | console.log(data); |
| | | this.addTreeForm.addTypeArr = data; |
| | | }, |
| | | closeAddTreeForm() { |
| | | this.addTreeForm = { |
| | | addTypeArr: [] |
| | | } |
| | | console.log(this.addTreeForm) |
| | | } |
| | | addTypeArr: [], |
| | | }; |
| | | console.log(this.addTreeForm); |
| | | }, |
| | | /** è¡¨æ ¼æè¡ç¹å»äºä»¶ */ |
| | | // handleRowClick(row, column, event) { |
| | | // // 夿å½åè¡æ¯å¦æåéï¼è¥æ²¡æåç»æå¤ç |
| | |
| | | // if (!row.children) return |
| | | // this.$refs.tableData.toggleRowExpansion(row) |
| | | // } |
| | | } |
| | | } |
| | | selectProductModelTable() { |
| | | selectproductModelApi(this.params).then((res) => { |
| | | res.data.forEach((i) => { |
| | | if (i.name === undefined) { |
| | | i.name = i.children[0].name; |
| | | i.unit = i.children[0].unit; |
| | | i.id = i.children[0].id; |
| | | i.edit = true; |
| | | delete i.children; |
| | | } |
| | | }); |
| | | this.tableData = res.data; |
| | | this.selectDataList(); |
| | | }); |
| | | }, |
| | | selectDataList() { |
| | | this.tableData.forEach((a) => { |
| | | a.code = "[1]"; |
| | | if (a.children != undefined) { |
| | | a.children.forEach((b) => { |
| | | b.code = "[2]"; |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | // è¡¨æ ¼æ å
¨é¨éä¸é
ç½® |
| | | // å
¨é/åæ¶éæä½ |
| | | selectAll(val) { |
| | | this.isAllSelect = !this.isAllSelect; |
| | | let data = this.tableData; |
| | | this.toggleSelect(data, this.isAllSelect, "all"); |
| | | // èªå®ä¹ |
| | | if (this.isAllSelect) { |
| | | val.forEach((i) => { |
| | | let isExist = false; |
| | | this.deleteList.findIndex((c) => { |
| | | if (c === i.id) { |
| | | isExist = true; |
| | | } |
| | | }); |
| | | if (!isExist && i.id !== undefined) { |
| | | this.deleteList.push(i.id); |
| | | } |
| | | }); |
| | | } else { |
| | | this.deleteList.splice(0, this.deleteList.length); |
| | | } |
| | | // èªå®ä¹ç»æ |
| | | }, |
| | | //éæ©æè¡ |
| | | selectTr(selection, row) { |
| | | this.$set(row, "isChecked", !row.isChecked); |
| | | this.$nextTick(() => { |
| | | 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) { |
| | | if (type === "all") { |
| | | if (data.length > 0) { |
| | | data.forEach((item) => { |
| | | this.toggleSelection(item, flag); |
| | | if (item.children && item.children.length > 0) { |
| | | this.toggleSelect(item.children, flag, type); |
| | | } |
| | | }); |
| | | } |
| | | } else { |
| | | if (data.children && data.children.length > 0) { |
| | | data.children.forEach((item) => { |
| | | item.isChecked = !item.isChecked; |
| | | this.$refs.multipleTable.toggleRowSelection(item, flag); |
| | | this.toggleSelect(item, flag, type); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | //æ¹åéä¸ |
| | | toggleSelection(row, flag) { |
| | | this.$set(row, "isChecked", flag); |
| | | this.$nextTick(() => { |
| | | if (flag) { |
| | | this.$refs.multipleTable.toggleRowSelection(row, flag); |
| | | } else { |
| | | this.$refs.multipleTable.clearSelection(); |
| | | } |
| | | }); |
| | | }, |
| | | // è¡¨æ ¼æ å
¨é¨éä¸é
ç½® ç»æ |
| | | deleteListClick() { |
| | | deleteListApi(this.deleteList).then((res) => { |
| | | this.$message({ |
| | | message: res.message, |
| | | type: "success", |
| | | }); |
| | | this.selectProductModelTable(); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | // el-tableè¡¨æ ¼å¯¹é½ |
| | | ::v-deep .el-table__row:not([class*="el-table__row--level-"]) { |
| | | td:nth-child(2){ |
| | | td:nth-child(2) { |
| | | padding-left: 23px !important; |
| | | } |
| | | } |
| | |
| | | // width: 1000px; |
| | | // height: 800px; |
| | | // } |
| | | .standard-library-main{ |
| | | .standard-library-main { |
| | | width: 100vh; |
| | | height: 100%; |
| | | // 页é¢ä¸å¿å
容åºå |
| | | .content-main{ |
| | | // 页é¢ä¸å¿å
容åºå |
| | | .content-main { |
| | | display: flex; |
| | | height: 100%; |
| | | min-height: calc(100vh - 88px); |
| | | max-height: calc(100vh - 88px); |
| | | padding: 15px; |
| | | >div{ |
| | | > div { |
| | | padding: 20px; |
| | | background: #fff; |
| | | } |
| | | .library-bom{ |
| | | .library-bom { |
| | | // padding-right: 10px; |
| | | width: 300px; |
| | | // height: 100%; |
| | | max-height: 100%; |
| | | height: 100%; |
| | | // max-height: 100%; |
| | | // margin-right: 12px; |
| | | // overflow-y: scroll; |
| | | .el-tree { |
| | | // margin-top: |
| | | // margin-top: |
| | | width: 100%; |
| | | ::v-deep .el-tree-node__content{ |
| | | overflow: scroll; |
| | | ::v-deep .el-tree-node__content { |
| | | height: 24px !important; |
| | | font-size: 18px; |
| | | // display: inline-block !important; |
| | | padding: 2px; |
| | | // color: #333; |
| | | .tree-node{ |
| | | .tree-node { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 20px; |
| | | } |
| | | .tree-lable{ |
| | | .tree-lable { |
| | | height: 100%; |
| | | line-height: 23px; |
| | | font-size: 12px; |
| | | padding-left: 8px; |
| | | } |
| | | .blue-folder{ |
| | | color: rgb(64, 158, 255) |
| | | .blue-folder { |
| | | color: rgb(64, 158, 255); |
| | | } |
| | | } |
| | | } |
| | |
| | | // } |
| | | // } |
| | | } |
| | | .library-table{ |
| | | .library-table { |
| | | // height: 100%; |
| | | width: 170vh; |
| | | max-height: 100%; |
| | |
| | | display: flex; |
| | | flex-direction: column; |
| | | // overflow-y: scroll; |
| | | .table-header{ |
| | | .table-header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .el-form-item{ |
| | | .el-form-item { |
| | | margin-bottom: 30px !important; |
| | | } |
| | | } |
| | | .table-box{ |
| | | flex: 1; |
| | | background: #fff; |
| | | // padding: 20px 20px 10px 20px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | .table-box { |
| | | flex: 1; |
| | | background: #fff; |
| | | // padding: 20px 20px 10px 20px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | |
| | | .el-table { |
| | | // .el-table { |
| | | // flex: 1; |
| | | // max-height: 680px; |
| | | // overflow-y: scroll; |
| | | } |
| | | // } |
| | | >div:nth-child(3){ |
| | | // height: 20px; |
| | | display: flex; |
| | |
| | | } |
| | | } |
| | | } |
| | | .addTree{ |
| | | .el-form-item{ |
| | | .addTree { |
| | | .el-form-item { |
| | | margin-bottom: 10px; |
| | | } |
| | | .el-cascader{ |
| | | .el-cascader { |
| | | width: 100%; |
| | | } |
| | | } |