package.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/rawMaterials/reportForInspection.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/standardLibrary.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/router/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/request.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/rawMaterials/reportForInspection/forInspectionDetail.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/rawMaterials/reportForInspection/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/standardLibrary/SpecificationDetails.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/standardLibrary/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/trialManagement/entrust.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/trialManagement/rawMaterials.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
package.json
@@ -14,6 +14,7 @@ "test:ci": "npm run lint && npm run test:unit" }, "dependencies": { "af-table-column": "^1.0.3", "amfe-flexible": "^2.2.1", "axios": "0.18.1", "core-js": "3.6.5", src/api/rawMaterials/reportForInspection.js
@@ -10,9 +10,23 @@ } // æ·»å æ£éªç³è¯·å export function addInspection() { export function addInspection(data) { return request({ url: '/inspection/addInspection', method: 'post' method: 'post', headers: { 'Content-Type': 'multipart/form-data' }, data }) } // æ¥è¯¢ææç³è¯·åidæ¥è¯¢æ ·åå表 export function getInspectionMaterialListById(params) { return request({ url: '/inspectionMaterialList/selectInspectionMaterialListById/' + params.inspectionId, method: 'get', params }) } src/api/standardLibrary.js
@@ -1,88 +1,5 @@ import request from '@/utils/request' // æ¥è¯¢æææ åæ°æ® export function getStandardsList() { return request({ url: '/standards/list', method: 'get' }) } // å页æ¥è¯¢æææ åæ°æ® export function getStandardsListOfPage(params) { return request({ url: '/standards/list_page', method: 'get', params }) } // æ·»å ç±»å export function addStandards(data) { return request({ url: '/standards/add', method: 'post', data }) } // æ ¹æ®æ åæ¥è¯¢ææåå· åæ°IdOrNameOfSerialNumberï¼ standardsId export function getSerialNumberList(params) { return request({ url: '/serial-number/list', method: 'get', params }) } // æ·»å åå· export function addSerialNumber(data) { return request({ url: '/serial-number/add', method: 'post', data }) } // æ ¹æ®åå·æ¥è¯¢ææäº§åè§æ ¼ åæ°serialNumberIdï¼ specificationsName export function getSpecificationsList(params) { return request({ url: '/specifications/list', method: 'get', params }) } // æ·»å 产åè§æ ¼ export function addSpecifications(data) { return request({ url: '/specifications/add', method: 'post', data }) } // ç¼è¾äº§åè§æ ¼ export function updateSpecifications(data) { return request({ url: '/specifications/update', method: 'put', data }) } // æ´æ°è§æ ¼ç¶æ export function updateSpeState(data) { return request({ url: '/specifications/update_spe_state', method: 'put', data }) } // è§æ ¼è¯¦æ 页æ¥å£ // æ ¹æ®è§æ ¼idæ¥è¯¢ææç©æ specificationsId export function getMaterialList(params) { return request({ url: '/material/list', @@ -91,10 +8,19 @@ }) } // æ ¹æ®ç©æidï¼è·å对åºçç©æè¯¦æ export function getMaterialDetail(params) { // è·åææé¡¹ç® export function getProductList(params) { return request({ url: '/material/list_id', url: '/product/page', method: 'get', params }) } // è·åææç¶é¡¹ç®å¯¹åºçåé¡¹ç® export function getProductSonList(params) { return request({ url: '/product/father', method: 'get', params }) @@ -109,65 +35,20 @@ }) } // ç¼è¾ç©æä¿¡æ¯ export function updateMaterial(data) { // æ·»å æ å export function addStandards(data) { return request({ url: '/material/update', method: 'put', data }) } // å é¤ç©æä¿¡æ¯ export function deleteMaterial(params) { return request({ url: '/material/delete', method: 'delete', params }) } // æ ¹æ®ç©æidæ¥è¯¢æææ ååç±» specificationsId export function getProductList(params) { return request({ url: '/product/list', method: 'get', params }) } // æ·»å æ ååç±» export function addProduct(data) { return request({ url: '/product/add', url: '/standards/add', method: 'post', data }) } // æ¥è¯¢æ åå类详æ ï¼å¯¹åºçæ å详æ export function getProductProductId(params) { // æ·»å è§æ ¼ export function addSpecifications(data) { return request({ url: '/product/productId', method: 'get', params }) } // ç¼è¾å项ç®ä¿¡æ¯ export function updateProduct(data) { return request({ url: '/product/update', method: 'put', url: '/specifications/add', method: 'post', data }) } // å é¤å项ç®ä¿¡æ¯ export function deleteProduct(params) { return request({ url: '/product/delete', method: 'delete', params }) } src/main.js
@@ -2,7 +2,8 @@ import 'normalize.css/normalize.css' // A modern alternative to CSS resets import 'amfe-flexible' import AFTableColumn from 'af-table-column' Vue.use(AFTableColumn) import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' import locale from 'element-ui/lib/locale/lang/zh-CN' // lang i18n src/router/index.js
@@ -75,6 +75,26 @@ ] }, { path: '/trialManagement', component: Layout, redirect: '/trialManagement/index', meta: { title: 'è¯éªç®¡ç', icon: 'el-icon-s-help' }, children: [ { path: 'index', name: 'entrust', component: () => import('@/views/trialManagement/entrust'), meta: { title: 'å§ææ£éª', icon: 'form' } }, { path: 'rawMaterials', name: 'RawMaterials', component: () => import('@/views/trialManagement/rawMaterials'), meta: { title: 'åæææ¥æ£', icon: 'form' } } ] }, { path: '/rawMaterials', component: Layout, redirect: '/rawMaterials/reportForInspection', src/utils/request.js
@@ -47,11 +47,12 @@ // if the custom code is not 20000, it is judged as an error. if (res.code !== 200) { Message({ message: res.message || 'Error', type: 'error', duration: 5 * 1000 }) console.log(res.message || 'Error') // Message({ // message: res.message || 'Error', // type: 'error', // duration: 5 * 1000 // }) // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; if (res.code === 50008 || res.code === 50012 || res.code === 50014) { // to re-login src/views/rawMaterials/reportForInspection/forInspectionDetail.vue
@@ -26,14 +26,18 @@ </div> --> </div> <div class="message"> <div class="message-item"><span><i class="el-icon-edit" />è¯éªæ¹æ³ï¼</span></div> <!-- <div class="message-item"><span><i class="el-icon-edit" />è¯éªæ¹æ³ï¼</span></div> --> <div class="message-item"> <span><i class="el-icon-edit" />项ç®åç±»ï¼</span> <span><i class="el-icon-edit" />æ£éªç±»åï¼ <span v-if="inspectionDetail.type===0">åæææ£éª</span> <span v-else-if="inspectionDetail.type===1">åæåæ£éª</span> <span v-else-if="inspectionDetail.type===2">æåæ£éª</span> </span> </div> <div class="message-item"> <span><i class="el-icon-edit" />æ´æ°äººï¼</span></div> <span><i class="el-icon-edit" />ç»è®°äººï¼<el-tag>{{ inspectionDetail.userName }}</el-tag></span></div> <div class="message-item"> <span><i class="el-icon-edit" />æ´æ°æ¶é´ï¼</span></div> <span><i class="el-icon-edit" />ç»è®°æ¥æï¼{{ inspectionDetail.createTime }}</span></div> </div> </div> <div class="card-main sample-list"> @@ -57,53 +61,58 @@ style="width: 100%" > <el-table-column prop="applicationOrdernumber" label="ç³è¯·åå·" prop="materialNum" label="ç©æç¼å·" min-width="200" /> <el-table-column prop="typeofInspection" label="æ£éªç±»å" prop="materialName" label="ç©æåç§°" min-width="200" /> <el-table-column prop="objectofInspection" label="æ£éªå¯¹è±¡" label="ç©æå±æ§" min-width="200" /> <el-table-column prop="palceofObject" label="对象ä½ç½®" prop="materialBatch" label="æ¹æ¬¡" min-width="200" /> <el-table-column prop="name" label="对象åç§°" prop="materialReelNumber" label="çå·" min-width="200" /> <el-table-column prop="date" label="ç»è®°æ¥æ" prop="specificationsSerialNumber" label="åå·" min-width="200" /> <el-table-column prop="registrant" label="ç»è®°äºº" label="è§æ ¼" min-width="200" /> <el-table-column prop="applicationTime" label="ç³è¯·æ¶é´" label="å ¥åºæ°é" min-width="200" /> <el-table-column prop="materialNum" label="éæ ·æ°é" min-width="200" /> <el-table-column label="æä½" min-width="200" :fixed="true" fixed="right" > <template slot-scope="scope"> <el-button type="text" size="small" @click="handleClick(scope.row)">æ¥ç</el-button> <el-button type="text" size="small">ä½åº</el-button> <el-button type="text" size="small" @click="openChangeMaterial(scope.row)">ç¼è¾</el-button> <el-button type="text" size="small">å é¤</el-button> </template> </el-table-column> </el-table> @@ -165,7 +174,7 @@ </el-col> </el-row> </div> <el-row gutter="100" :style="{marginTop:'24px'}"> <el-row :gutter="100" :style="{marginTop:'24px'}"> <el-col :span="12"> <el-form-item label="æ¹æ¬¡"> <el-input placeholder="" /> @@ -177,7 +186,7 @@ </el-form-item> </el-col> </el-row> <el-row gutter="100"> <el-row :gutter="100"> <el-col :span="12"> <el-form-item label="çå·"> <el-input placeholder="" /> @@ -189,7 +198,7 @@ </el-form-item> </el-col> </el-row> <el-row gutter="100"> <el-row :gutter="100"> <el-col :span="12"> <el-form-item label="è§æ ¼/åå·åç§°"> <el-input placeholder="" /> @@ -201,7 +210,7 @@ </el-form-item> </el-col> </el-row> <el-row gutter="100"> <el-row :gutter="100"> <el-col :span="12"> <el-form-item label="ç产æä»¤å·"> <el-input placeholder="" /> @@ -213,14 +222,14 @@ </el-form-item> </el-col> </el-row> <el-row gutter="100"> <el-row :gutter="100"> <el-col :span="12"> <el-form-item label="çµåç级"> <el-input placeholder="" /> </el-form-item> </el-col> </el-row> <el-row gutter="100" :style="{flex:'1'}"> <el-row :gutter="100" :style="{flex:'1'}"> <el-col :span="24"> <el-form-item label="夿³¨"> <el-input @@ -232,7 +241,7 @@ </el-col> </el-row> <el-form-item> <el-button type="primary" @click="onSubmit">ç«å³å建</el-button> <el-button type="primary">ç«å³å建</el-button> <el-button>åæ¶</el-button> </el-form-item> </el-form> @@ -243,7 +252,7 @@ <!-- Left side tree structure --> <div class="tree-container"> <span class="all"> å ¨é¨</span> <el-tree :data="treeData" @node-click="handleNodeClick" ></el-tree> <el-tree :data="treeData" /> </div> <!-- Right side material list --> <div class="table-container"> @@ -252,38 +261,40 @@ :data="selectedNodeMaterials" style="width: 100%" highlight-current-row @row-click="handleSelectionChange" :header-row-class-name="headerBg" > @row-click="handleSelectionChange" > <el-table-column label="ç©æç¼å·" prop="number"> prop="number" > <template slot-scope="scope"> <el-radio v-model="radioSelected" :label="scope.row.number" @change.native='handleSelectionChange(scope.row)'> </el-radio> <el-radio v-model="radioSelected" :label="scope.row.number" @change.native="handleSelectionChange(scope.row)"> </el-radio> </template> </el-table-column> <el-table-column prop="name" label="ç©æåç§°"></el-table-column> </el-table> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageParams.pageNo" :page-sizes="[10, 20, 30, 40]" :page-size="pageParams.pageSize" :total="pageParams.total" layout="total, sizes, prev, pager, next, jumper" /> </div> <el-table-column prop="name" label="ç©æåç§°" /> </el-table> <el-pagination :current-page="pageParams.pageNo" :page-sizes="[10, 20, 30, 40]" :page-size="pageParams.pageSize" :total="pageParams.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" @current-change="handleCurrentChange" /> </div> </div> <div slot="footer" class="dialog-footer"> <el-button @click="chooseMaterialVisible = false">å æ¶</el-button> <el-button type="primary" >ç¡®å®éæ©</el-button> <el-button type="primary">ç¡®å®éæ©</el-button> </div> </el-dialog> </div> </template> <script> import { getInspectionMaterialListById } from '@/api/rawMaterials/reportForInspection' export default { data() { return { @@ -337,10 +348,24 @@ name: 'æµè¯æ°æ®2' }], radioSelected: null, multipleSelection: '' multipleSelection: '', inspectionDetail: {} } }, created() { // console.log(this.$route.query) ä¼ éçç³è¯·å对象详æ this.inspectionDetail = JSON.parse(this.$route.query.inspectionDetail) this.getMaterialList() }, methods: { openChangeMaterial(row) { console.log(row) }, async getMaterialList() { const res = await getInspectionMaterialListById({ inspectionId: this.inspectionDetail.id }) // console.log(res) this.sampleTable = res.data }, handleSelectionChange(val) { console.log(val) this.radioSelected = val.number // éä¸è¡çnumber src/views/rawMaterials/reportForInspection/index.vue
@@ -63,7 +63,13 @@ prop="type" label="æ£éªç±»å" min-width="200" /> > <template slot-scope="scope"> <span v-if="scope.row.type===0">åæææ£éª</span> <span v-else-if="scope.row.type===1">åæåæ£éª</span> <span v-else-if="scope.row.type===2">æåæ£éª</span> </template> </el-table-column> <el-table-column prop="createTime" label="å建æ¶é´" @@ -75,7 +81,7 @@ min-width="200" /> <el-table-column prop="registrant" prop="inspectUserId" label="æ£éªäºº" min-width="200" /> @@ -131,7 +137,7 @@ width="40%" > <div class="check-box"> <el-radio-group v-model="type"> <el-radio-group v-model="addInspectionType"> <el-radio :label="0" border>åæææ£éª</el-radio> <el-radio :label="1" border>åæåæ£éª</el-radio> <el-radio :label="2" border>æåæ£éª</el-radio> @@ -152,7 +158,7 @@ </template> <script> import { getInspectionList } from '@/api/rawMaterials/reportForInspection' import { getInspectionList, addInspection } from '@/api/rawMaterials/reportForInspection' export default { data() { return { @@ -179,7 +185,7 @@ pageSize: 10, // æ¯é¡µçæ°æ®æ¡æ° radioValue: 'å ¨é¨', checkTypeVisible: false, type: 0 addInspectionType: 0 } }, watch: { @@ -192,26 +198,6 @@ deep: true } }, // beforeRouteEnter(to, from, next) { // console.log(to, from) // next() // // 卿¸²æè¯¥ç»ä»¶ç对åºè·¯ç±è¢« confirm åè°ç¨ // // ä¸ï¼è½ï¼è·åç»ä»¶å®ä¾ `this` // // å 为å½é©åæ§è¡åï¼ç»ä»¶å®ä¾è¿æ²¡è¢«å建 // }, // beforeRouteUpdate(to, from, next) { // console.log(to, from) // if (to.name === 'ForInspectionDetail') this.showDetail = true // this.$nextTick(() => { // console.log(1) // this.showDetail = true // }) // next() // // å¨å½åè·¯ç±æ¹åï¼ä½æ¯è¯¥ç»ä»¶è¢«å¤ç¨æ¶è°ç¨ // // 䏾便¥è¯´ï¼å¯¹äºä¸ä¸ªå¸¦æå¨æåæ°çè·¯å¾ /foo/:idï¼å¨ /foo/1 å /foo/2 ä¹é´è·³è½¬çæ¶åï¼ // // ç±äºä¼æ¸²æåæ ·ç Foo ç»ä»¶ï¼å æ¤ç»ä»¶å®ä¾ä¼è¢«å¤ç¨ãèè¿ä¸ªé©åå°±ä¼å¨è¿ä¸ªæ åµä¸è¢«è°ç¨ã // // å¯ä»¥è®¿é®ç»ä»¶å®ä¾ `this` // }, created() { this.getInspectionTableData() }, @@ -223,12 +209,26 @@ const res = await getInspectionList({ pageSize: this.currentPage, countSize: this.pageSize }) // this.inspectionTable = data console.log(res) this.inspectionTable = res.data }, goToForInspectionDetail() { this.$router.push('/rawMaterials/reportForInspection/forInspectionDetail') async goToForInspectionDetail() { try { // const form = new FormData() form.append('type', this.addInspectionType) let { data: inspectionDetail } = await addInspection(form) // console.log(res) inspectionDetail = JSON.stringify(inspectionDetail) this.$message.success('æ·»å æå') this.$router.push({ path: '/rawMaterials/reportForInspection/forInspectionDetail', query: { inspectionDetail }}) } catch (error) { this.$message.error('æ·»å 失败') } }, // æ¥ç对åºç³è¯·å详æ handleClick(row) { console.log(row) const inspectionDetail = JSON.stringify(row) this.$router.push({ path: '/rawMaterials/reportForInspection/forInspectionDetail', query: { inspectionDetail }}) }, // æ¯é¡µæ¡æ°æ¹åæ¶è§¦å éæ©ä¸é¡µæ¾ç¤ºå¤å°è¡ handleSizeChange(val) { @@ -281,6 +281,8 @@ height: 100%; display: flex; flex-direction: column; min-height: calc(100vh - 88px); padding: 15px; } .top-bar{ margin: -25px; @@ -333,6 +335,11 @@ flex-direction: column; .el-table { flex: 1; display: flex; flex-direction: column; ::v-deep .el-table__body-wrapper{ flex: 1; } } >div:nth-child(2){ display: flex; src/views/standardLibrary/SpecificationDetails.vue
@@ -420,7 +420,7 @@ </template> <script> import { getMaterialList, getProductList, getProductProductId, addMaterial, addProduct, getMaterialDetail, updateMaterial, updateProduct, deleteMaterial, deleteProduct } from '@/api/standardLibrary' import { getMaterialList, getProductProductId, addMaterial, addProduct, getMaterialDetail, updateMaterial, updateProduct, deleteMaterial, deleteProduct } from '@/api/standardLibrary' export default { name: 'SpecificationDetail', data() { @@ -516,29 +516,12 @@ this.materialTreeDefault = [this.materialTree[0].id] console.log(this.materialTree, this.materialTreeDefault) }, // è·å项ç®tree async getProjectTreeData(data) { const { data: projectArr } = await getProductList({ materialId: data.id }) // console.log(projectArr) projectArr.map((item, index) => { item.label = item.father item.id = index item.children = item.sonProduct.map(item => ({ ...item, label: item.name })) }) this.projectTree = projectArr // 项ç®ä¸é»è®¤éä¸çåé¡¹ç® console.log(this.projectTree) this.fatherOpetions = this.projectTree.map(item => ({ id: item.id, label: item.label })) console.log(this.fatherOpetions) this.projectTreeDefault = [this.projectTree[0]?.children[0]?.id] }, // ç©æåºçèç¹ç¹å» materialTreeClick(data, node, element) { // ç¹å»ç©æèç¹ï¼æ¥è¯¢å¯¹åºç项ç®treeæ°æ® console.log(data) // å¾å°ç©æId this.materialId = data.id this.getProjectTreeData(data) }, // 项ç®åºçèç¹ç¹å» async projectTreeClick(data, node, element) { src/views/standardLibrary/index.vue
@@ -6,12 +6,14 @@ v-model="filterText" placeholder="è¾å ¥å ³é®åè¿è¡è¿æ»¤" /> <el-button type="text" @click="getAllStandard">å ¨é¨</el-button> <el-button type="text">å ¨é¨</el-button> <el-tree ref="tree" class="filter-tree" :data="standardTree" :props="defaultProps" node-key="id" highlight-current default-expand-all :filter-node-method="filterNode" :render-content="renderContent" @@ -33,223 +35,68 @@ <el-form-item> <el-button type="primary" @click="filteredTableData">æ¥è¯¢</el-button> <el-button type="primary" plain @click="resetBtn">éç½®</el-button> <!-- <el-button type="text">é«çº§æç´¢<i class="el-icon-arrow-down el-icon--right" /></el-button> --> </el-form-item> </el-form> </div> <div class="serve-btn"> <el-button type="primary" icon="el-icon-plus" @click="showFormInfo">{{ selectedNodeType }}</el-button> <el-button type="primary" icon="el-icon-plus" @click="addTreeFormVisible = true">æ°å¢</el-button> </div> </div> <div class="table-box"> <el-table ref="tableData" :cell-style="{textAlign: 'center'}" :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}" 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'}" :data="tableData" style="width: 100%" > <el-table-column type="index" label="åºå·" min-width="50" /> <!-- å¤ç¨ --> width="100px" > <template v-if="scope.row.index+1" slot-scope="scope"> {{ scope.row.index+1 }} </template> </el-table-column> <el-table-column v-for="(item,index) in tablespecifications" :key="index" :prop="item.prop" :label="item.label" :min-width="item.minWidth" 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 }} </template> </el-table-column> <el-table-column prop="unit" label="åä½" width="300px" /> <template v-if="showTableCurrent===2"> <el-table-column prop="spe_state" label="ç¶æ" min-width="150" > <template slot-scope="scope"> <el-tag :type="scope.row.spe_state === 0 ? 'primary' : 'success'" disable-transitions >{{ scope.row.spe_state === 0 ? 'å·²åç¨' : 'å·²å¯ç¨' }}</el-tag> </template> </el-table-column> <el-table-column label="æä½" min-width="150" > <template slot-scope="scope"> <el-button type="text" size="small" :style="{marginRight:'8px'}" @click="specificationDetails(scope.row)" >æ¥ç</el-button> <el-popover v-model="scope.row.visible" placement="top" width="30" > <div style="text-align: center; margin: 0" @click=" getRowID(scope.row)"> <div> <el-button size="mini" type="text" @click="dialogFormVisible4=true">ç¼è¾</el-button> </div> <div> <el-button size="mini" type="text" @click="dialogFormVisible5 = true">åç¨</el-button> </div> </div> <el-button slot="reference" type="text"><i class="el-icon-more" /></el-button> </el-popover> </template> </el-table-column> </template> <el-table-column prop="required" label="æ å" width="300px" /> <el-table-column prop="internal" label="å æ§å¶" width="300px" /> </el-table> <!-- å¼¹åºè¡¨å页 --> <div> <!-- æ·»å æ å --> <el-dialog title="æ·»å æ å" :visible.sync="dialogFormVisible1" width="33%"> <el-form :model="standardForm" :rules="rulesStandard"> <el-form-item label="æ åå·" label-width="100px" prop="standardnumber"> <el-input v-model="standardForm.standardnumber" autocomplete="off" /> </el-form-item> <el-form-item label="æ ååç§°" label-width="100px" prop="standardname"> <el-input v-model="standardForm.standardname" autocomplete="off" /> </el-form-item> <el-form-item label="è±æåç§°" label-width="100px" prop="standardenname"> <el-input v-model="standardForm.engname" autocomplete="off" /> </el-form-item> <el-form-item label="ç¶çº§åç±»" label-width="100px"> <el-select v-model="standardForm.type" placeholder="è¯·éæ©"> <el-option label="åææ" value="0" /> <el-option label="çµçº¿çµç¼" value="1" /> </el-select> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="dialogFormVisible1 = false">å æ¶</el-button> <el-button type="primary" @click="submitForm">ç¡® å®</el-button> </div> </el-dialog> <!-- æ·»å åå· --> <el-dialog title="æ·»å åå·" :visible.sync="dialogFormVisible2" width="30%"> <el-form ref="form" :model="modelForm" :rules="rulesModel"> <el-form-item label="åå·" :label-width="formLabelWidth" prop="model"> <el-input v-model="modelForm.model" autocomplete="off" /> </el-form-item> <el-form-item label="åå·åç§°" :label-width="formLabelWidth" prop="modelname"> <el-input v-model="modelForm.modelname" autocomplete="off" /> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="dialogFormVisible2 = false">å æ¶</el-button> <el-button type="primary" @click="submitForm()">ç¡® å®</el-button> </div> </el-dialog> <!-- æ·»å è§æ ¼ --> <el-dialog title="æ·»å è§æ ¼" :visible.sync="dialogFormVisible3" width="30%"> <el-form ref="form" :model="specificationForm" :rules="rulesspecification"> <el-form-item label="è§æ ¼åç§°" :label-width="formLabelWidth" prop="name"> <el-input v-model="specificationForm.name" autocomplete="off" /> </el-form-item> <el-form-item label="è§æ ¼ç¼å·" :label-width="formLabelWidth" prop="number"> <el-input v-model="specificationForm.number" autocomplete="off" /> </el-form-item> <el-form-item label="䏿¹å¡«åç产æä»¤å·" :label-width="formLabelWidth" prop="instruct"> <el-input v-model="specificationForm.instruct" autocomplete="off" /> </el-form-item> <el-form-item label="çµåç级" :label-width="formLabelWidth"> <el-select v-model="specificationForm.voltageLevel" placeholder="è¯·éæ©çµåç级"> <el-option label="åç±»1" value="test" /> <el-option label="åç±»2" value="2" /> <el-option label="åç±»3" value="3" /> </el-select> </el-form-item> <el-form-item label="ä¸»çº¿è¯æªé¢" :label-width="formLabelWidth"> <el-select v-model="specificationForm.crossSection" placeholder="è¯·éæ©ä¸»çº¿è¯æªé¢"> <el-option label="åç±»1" value="test" /> <el-option label="åç±»2" value="2" /> <el-option label="åç±»3" value="3" /> </el-select> </el-form-item> <el-form-item label="主线è¯è¯æ°" :label-width="formLabelWidth"> <el-select v-model="specificationForm.numberOfCores" placeholder="è¯·éæ©ä¸»çº¿è¯è¯æ°"> <el-option label="åç±»1" value="test" /> <el-option label="åç±»2" value="2" /> <el-option label="åç±»3" value="3" /> </el-select> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="dialogFormVisible3 = false">å æ¶</el-button> <el-button type="primary" @click="submitForm()">ç¡® å®</el-button> </div> </el-dialog> <!-- ç¼è¾è§æ ¼ --> <el-dialog title="ç¼è¾è§æ ¼" :visible.sync="dialogFormVisible4" width="30%"> <el-form ref="form" :model="editSpeForm" :rules="rulesspecification"> <el-form-item label="è§æ ¼åç§°" :label-width="formLabelWidth" prop="name"> <el-input v-model="editSpeForm.name" autocomplete="off" /> </el-form-item> <el-form-item label="è§æ ¼ç¼å·" :label-width="formLabelWidth" prop="number"> <el-input v-model="editSpeForm.number" autocomplete="off" /> </el-form-item> <el-form-item label="䏿¹å¡«åç产æä»¤å·" :label-width="formLabelWidth" prop="instruct"> <el-input v-model="editSpeForm.instruct" autocomplete="off" /> </el-form-item> <el-form-item label="çµåç级" :label-width="formLabelWidth"> <el-select v-model="editSpeForm.voltageLevel" placeholder="è¯·éæ©çµåç级"> <el-option label="åç±»1" value="test" /> <el-option label="åç±»2" value="2" /> <el-option label="åç±»3" value="3" /> </el-select> </el-form-item> <el-form-item label="ä¸»çº¿è¯æªé¢" :label-width="formLabelWidth"> <el-select v-model="editSpeForm.crossSection" placeholder="è¯·éæ©ä¸»çº¿è¯æªé¢"> <el-option label="åç±»1" value="test" /> <el-option label="åç±»2" value="2" /> <el-option label="åç±»3" value="3" /> </el-select> </el-form-item> <el-form-item label="主线è¯è¯æ°" :label-width="formLabelWidth"> <el-select v-model="editSpeForm.numberOfCores" placeholder="è¯·éæ©ä¸»çº¿è¯è¯æ°"> <el-option label="åç±»1" value="test" /> <el-option label="åç±»2" value="2" /> <el-option label="åç±»3" value="3" /> </el-select> </el-form-item> <el-form-item label="è§æ ¼ç¶æ" :label-width="formLabelWidth"> <el-select v-model="editSpeForm.spe_state" placeholder="è¯·éæ©è§æ ¼ç¶æ"> <el-option label="åç¨" value="0" /> <el-option label="æ£å¸¸" value="1" /> <el-option label="è稿" value="-1" /> </el-select> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="dialogFormVisible4 = false">å æ¶</el-button> <el-button type="primary" @click="handleEdit">ç¡® å®</el-button> </div> </el-dialog> <!-- åç¨ --> <el-dialog title="æç¤º" :visible.sync="dialogFormVisible5" width="30%" > <span>确认åç¨åï¼</span> <span slot="footer" class="dialog-footer"> <el-button @click="dialogFormVisible5 = false">å æ¶</el-button> <el-button type="primary" @click="updateSpeState">ç¡® å®</el-button> </span> </el-dialog> <!-- --> </div> <div> <!-- åé¡µå¨ --> <el-pagination :current-page="pageParams.pageNo" :page-sizes="[10, 15, 20, 25]" :page-size="pageParams.pageNo" :page-size="pageParams.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="pageParams.total" @size-change="handleSizeChange" @@ -259,27 +106,51 @@ </div> </div> </div> <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 }" clearable @change="changeCascader" /> </el-form-item> <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-input v-model="addTreeForm.standardName" /> </el-form-item> <el-form-item v-show="addTreeForm.addTypeArr.length<4" label="è§æ ¼åå·"> <el-input v-model="addTreeForm.specificationsName" /> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="subAddTreeForm">ç¡® å®</el-button> <el-button @click="addTreeFormVisible = false">å æ¶</el-button> </div> </el-dialog> </div> </template> <script> import { getStandardsList, getSerialNumberList, getSpecificationsList, getStandardsListOfPage, addStandards, addSerialNumber, addSpecifications, updateSpecifications, updateSpeState } from '@/api/standardLibrary' import { getMaterialList, getProductList, getProductSonList, addMaterial, addStandards, addSpecifications } from '@/api/standardLibrary' export default { data() { return { dialogFormVisible1: false, dialogFormVisible2: false, dialogFormVisible3: false, dialogFormVisible4: false, dialogFormVisible5: false, visible: false, addTreeFormVisible: false, filterText: '', // æ ååºbomæ standardTree: [], // bomç,é»è®¤å¼ // bomç,é»è®¤é ç½®å¼ defaultProps: { children: 'children', label: 'label' label: 'name', value: 'id' }, // æ¥è¯¢æ¡ä»¶ searchData: { @@ -291,83 +162,17 @@ // å页忰 pageParams: { pageNo: 1, pageSize: 10, pageSize: 12, total: 0 }, tablespecifications: [ ], // éä¸èç¹å¯¹åºçè¡¨æ ¼ 0 æ¯æ å表 1æ¯åå·è¡¨ 2è§æ ¼è¡¨ showTableCurrent: 0, // éä¸çèç¹æ°æ® selectNode: {}, selectedNodeType: 'æ·»å æ å', standardForm: [{ standardnumber: '', standardname: '', engname: '', type: '' }], modelForm: [{ model: '', modelname: '' }], specificationForm: [{ name: '', // 产åè§æ ¼åç§° number: '', // è§æ ¼ç¼å· crossSection: '', numberOfCores: '', instruct: '', voltageLevel: '' }], editSpeForm: [{ crossSection: '', instruct: '', name: '', // è§æ ¼åç§° number: '', // è§æ ¼ç¼å· numberOfCores: '', serialId: '', // åå·ID spe_state: '', voltageLevel: '' }], formLabelWidth: '100px', rulesStandard: { standardnumber: [ { required: true, message: '请è¾å ¥æ åå·', trigger: 'blur' } ], standardname: [{ required: true, message: '请è¾å ¥æ ååç§°', trigger: 'blur' }], standardenname: [ { required: false, message: '请è¾å ¥è±æåç§°', trigger: 'blur' } ] }, rulesModel: { model: [ { required: true, message: '请è¾å ¥åå·', trigger: 'blur' }], modelname: [{ required: true, message: '请è¾å ¥åå·åç§°', trigger: 'blur' }], parentclassification: [ { required: true, message: '请è¾å ¥', trigger: 'blur' } ] }, rulesspecification: { number: [ { required: true, message: '请è¾å ¥è§æ ¼ç¼å·', trigger: 'blur' }], name: [{ required: true, message: '请è¾å ¥è§æ ¼åç§°', trigger: 'blur' }], instruct: [ { required: true, message: '请è¾å ¥ä¸æ¹å¡«åç产æä»¤å·', trigger: 'blur' } ] }, standardId: '', // è·åå½åæ åID modelId: '', // è·åå½ååå·ID rowId: '' // è·åå½åè§æ ¼æå¨è¡ID selectData: {}, formTypeOptions: [], addTreeForm: { addTypeArr: [] } } }, watch: { @@ -377,7 +182,6 @@ }, created() { this.getStandardTree() this.getAllStandard() }, methods: { filterNode(value, data) { @@ -386,175 +190,100 @@ }, // è·åbomæ çæ åæ°æ® async getStandardTree() { this.selectedNodeType = 'æ·»å æ å' const { data: standard } = await getStandardsList()// è·åæææ å // console.log(standard)// è·åæææ å this.standardTree = standard.map(item => { item.serialNumber = item.serialNumber?.map(childrenItem => ({ ...childrenItem, label: childrenItem.name })) return { ...item, label: item.name, children: item.serialNumber } const { data } = await getMaterialList() console.log(data) this.standardTree = data.map(item => { let name = null switch (item.type) { case 1: name = 'åææ' break case 2: name = 'åæå' break case 3: name = 'æå' break } return { ...item, id: item.type, name } }) // console.log(this.standardTree) console.log(this.standardTree) // formTypeOptions // é»è®¤ç¬¬ä¸ä¸ªå级èç¹æç´¢ï¼æ°å¢é 置项 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() // console.log(firstNode) }) }, getDefault(arr, index) { for (const item of arr) { if (item.children && item.children?.length > 0) { // æåèç¹ this.getDefault(item.children, index + 1) if (index === 2) { item.children = null } } // else { // // if ('children' in item) { // // // // // } else { // // // console.log(index, item) // // } // } } }, // ç¹å»bomæ èç¹æ¹æ³ async nodeClick(data, node, element) { // console.log('data', data) // console.log('children' in data) // æ¯åèç¹ if (node.level === 4) { // console.log(data, node) // åä¸éä¸èç¹ this.selectData = data // eslint-disable-next-line prefer-const this.getTableByClick(data) } if (!('children' in data)) { // console.log('ç¹å»åèç¹', data) this.selectedNodeType = 'æ·»å è§æ ¼' this.modelId = data.id this.selectNode = data // è·åç¹å»åèç¹çè¡¨æ ¼ await this.getSpecifications(data) return } // 䏿¯åèç¹ this.selectedNodeType = 'æ·»å åå·' this.standardId = data.id this.selectNode = data await this.getSerialNumber(data) }, 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 }) // console.log(row) 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 } } this.tableData = row }, specificationDetails(row) { // 跳转产åè§æ ¼è¯¦æ 页 this.$router.push(`/standardLibrary/SpecificationDetails/${row.id}`) }, // è·åå½åè§æ ¼çè¡id getRowID(row) { // console.log(row.id) this.id = row.id }, // è·åæææ åtable async getAllStandard() { this.selectedNodeType = 'æ·»å æ å' // console.log(this.pageParams) const { data: { row, total }} = await getStandardsListOfPage({ ...this.pageParams }) // console.log('å¾å°æææ å==>', row) this.pageParams.total = total this.tableData = row this.tablespecifications = [ { prop: 'name', label: 'æ ååç§°', minWidth: '150px' }, { prop: 'eng_name', label: 'æ åè±æåç§°', minWidth: '150px' }, { prop: 'createTime', label: 'å建æ¶é´', minWidth: '150px' } ] this.showTableCurrent = 0 }, // è·å对åºåå·ä¸çææè§æ ¼ async getSerialNumber(data) { const { data: { row, total }} = await getSerialNumberList({ standardsId: data.id, ...this.pageParams }) console.log('ç¹å»ç¶èç¹', row)// æ ¹æ®æ åè·åå¯¹åºæ åä¸çè§æ ¼ this.tableData = row this.pageParams.total = total this.tablespecifications = [ { prop: 'name', label: 'åå·åç§°', minWidth: '150px' } ] this.showTableCurrent = 1 }, // è·åæ åä¸å¯¹åºçææåå· async getSpecifications(data) { const { data: { row, total }} = await getSpecificationsList({ serialNumberId: data.id, ...this.pageParams }) // console.log(row) this.tableData = row this.pageParams.total = total this.tablespecifications = [ { prop: 'name', label: '产ååç§°', minWidth: '150px' }, { prop: 'username', label: 'æ´æ°äºº', minWidth: '100px' }, { prop: 'updateTime', label: 'æ´æ°æ¶é´', minWidth: '150px' }, { prop: 'vel', label: 'çæ¬', minWidth: '150px' } ] this.showTableCurrent = 2 }, // å±ç¤ºå¼¹åºæ¡ showFormInfo() { if (this.selectedNodeType === 'æ·»å æ å') { this.dialogFormVisible1 = true } else if (this.selectedNodeType === 'æ·»å åå·') { this.dialogFormVisible2 = true } else { this.dialogFormVisible3 = true } }, async submitForm() { if (this.showTableCurrent === 0) { await addStandards({ engName: this.standardForm.engname, id: this.standardForm.standardnumber, name: this.standardForm.standardname, type: parseInt(this.standardForm.type) }) this.dialogFormVisible1 = false } else if (this.showTableCurrent === 1) { await addSerialNumber({ id: this.modelForm.model, name: this.modelForm.modelname, standardsId: this.standardId // å ³èæ åID }) this.dialogFormVisible2 = false } else { await addSpecifications({ crossSection: this.specificationForm.crossSection, instruct: this.specificationForm.instruct, name: this.specificationForm.name, number: this.specificationForm.number, numberOfCores: this.specificationForm.numberOfCores, serialId: this.modelId, // å ³èåå·ID voltageLevel: this.specificationForm.voltageLevel }) this.dialogFormVisible3 = false } }, // å页æ¡ä»¶æ¹åæ¶å¤æéè¦å页æ¥è¯¢çæ¹æ³ judgment() { switch (this.showTableCurrent) { case 0: this.getAllStandard() break case 1: this.getSerialNumber(this.selectNode) break case 2: this.getSpecifications(this.selectNode) break } }, handleSizeChange(val) { console.log(`æ¯é¡µ ${val} æ¡`) this.pageParams.pageSize = val this.judgment() this.getTableByClick(this.selectData) }, handleCurrentChange(val) { console.log(`å½å页: ${val}`) this.pageParams.pageNo = val this.judgment() this.getTableByClick(this.selectData) }, // æ¥è¯¢æé® filteredTableData() { @@ -571,33 +300,13 @@ this.searchData.keyword = '' this.tableData = this.oldtableData }, // å¤çç¼è¾è§æ ¼ async handleEdit() { // console.log(this.id) await updateSpecifications({ crossSection: this.editSpeForm.crossSection, id: this.rowId, instruct: this.editSpeForm.instruct, name: this.editSpeForm.name, number: this.editSpeForm.number, numberOfCores: this.editSpeForm.numberOfCores, serialId: this.modelId, // å ³èåå·ID spe_state: this.editSpeForm.spe_state, voltageLevel: this.editSpeForm.spe_state }) this.dialogFormVisible4 = false }, // åç¨ async updateSpeState() { await updateSpeState({ id: this.rowId, spe_state: '0' }) this.dialogFormVisible5 = false }, renderContent(h, { node, data, store }) { // console.log('data', data) // console.log('node', node) // 夿æ¯å¦æ¯ç¶èç¹ææä»¶å¤¹ const isFolder = ('children') in data return ( <span> <span class='tree-node'> {isFolder ? ( <i class={node.expanded ? 'el-icon-folder-opened blue-folder' : 'el-icon-folder blue-folder'} @@ -605,15 +314,68 @@ ) : ( <i class='el-icon-document blue-folder'></i> )} <span> {data.label}</span> <div class='tree-lable'>[{node.level}] {data.name}</div> </span> ) }, async subAddTreeForm() { 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 case 2: 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 } } catch (error) { this.$message.error('æ·»å 失败') } console.log(res) this.$message.success('æ·»å æå') this.addTreeForm = {} this.getStandardTree() this.getTableByClick(this.selectData) }, changeCascader(data) { console.log(data) this.addTreeForm.addTypeArr = data }, closeAddTreeForm() { this.addTreeForm = { addTypeArr: [] } console.log(this.addTreeForm) } /** è¡¨æ ¼æè¡ç¹å»äºä»¶ */ // handleRowClick(row, column, event) { // // 夿å½åè¡æ¯å¦æåéï¼è¥æ²¡æåç»æå¤ç // // console.log(row) // if (!row.children) return // this.$refs.tableData.toggleRowExpansion(row) // } } } </script> <style lang="scss" scoped> // el-tableè¡¨æ ¼å¯¹é½ ::v-deep .el-table__row:not([class*="el-table__row--level-"]) { td:nth-child(2){ padding-left: 23px !important; } } // .dialogform { // transform: translate(-50%, -50%); // top: 50% !important; @@ -629,6 +391,7 @@ display: flex; height: 100%; min-height: calc(100vh - 88px); max-height: calc(100vh - 88px); padding: 15px; >div{ padding: 20px; @@ -636,15 +399,30 @@ } .library-bom{ flex: 2; // width: 20%; // height: 100%; max-height: 100%; margin-right: 12px; overflow-y: scroll; .el-tree { // margin-top: 12px; ::v-deep .el-tree-node__content{ height: 24px !important; font-size: 16px; display: inline-block !important; font-size: 18px; // display: inline-block !important; padding: 2px; color: #333; // color: #333; .tree-node{ display: flex; align-items: center; height: 20px; } .tree-lable{ height: 100%; line-height: 23px; font-size: 12px; padding-left: 8px; } .blue-folder{ color: rgb(64, 158, 255) } @@ -674,11 +452,14 @@ // } } .library-table{ // height: 100%; flex: 8; max-height: 100%; // flex: 8; margin-left: 12px; display: flex; flex-direction: column; // overflow-y: scroll; .table-header{ display: flex; justify-content: space-between; @@ -692,10 +473,15 @@ // padding: 20px 20px 10px 20px; display: flex; flex-direction: column; justify-content: space-between; .el-table { flex: 1; // flex: 1; // max-height: 680px; // overflow-y: scroll; } >div:nth-child(2){ >div:nth-child(3){ // height: 20px; display: flex; justify-content: end; margin: 10px 0; @@ -703,5 +489,13 @@ } } } .addTree{ .el-form-item{ margin-bottom: 10px; } .el-cascader{ width: 100%; } } } </style> src/views/trialManagement/entrust.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ <template> <div class="entrust"> å§ææ£éª </div> </template> <script> export default { } </script> <style> </style> src/views/trialManagement/rawMaterials.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,228 @@ <template> <div class="raw-materials"> <div class="content-main"> <div class="top-bar"> <el-form ref="form" v-model="searchData" :inline="true"> <el-form-item label="ææç¼ç "> <el-input v-model="searchData.keyword" class="input-form" placeholder="请è¾å ¥ææç¼ç " > <i slot="prefix" class="el-input__icon el-icon-search" /> </el-input> </el-form-item> <el-form-item label="ææåç§°"> <el-input v-model="searchData.keyword" class="input-form" placeholder="请è¾å ¥ææåç§°" > <i slot="prefix" class="el-input__icon el-icon-search" /> </el-input> </el-form-item> <el-form-item label="ç¶æ"> <el-select placeholder="è¯·éæ©ç¶æ" /> </el-form-item> <el-form-item label="æ¥ææ¥æ"> <el-select placeholder="è¯·éæ©ç¶æ" /> </el-form-item> <el-form-item> <el-button type="primary">æ¥è¯¢</el-button> <el-button type="primary" plain>éç½®</el-button> </el-form-item> </el-form> </div> <div class="raw-materials-table"> <!-- <div class="table-header"> <div class="search-bar"> </div> </div> --> <div class="table-box"> <el-table ref="rawMaterialsTable" :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="rawMaterialsTable" style="width: 100%" > <el-table-column type="selection" max-width="55" /> <el-table-column type="index" label="åºå·" max-width="200" /> <el-table-column prop="createTime" label="æ¥ææ¥æ" max-width="200" /> <el-table-column prop="userName" label="ä¾åºååç§°" max-width="200" /> <el-table-column prop="inspectUserId" label="ææç¼ç " max-width="200" /> <el-table-column prop="inspectionStatus" label="ææåç§°" max-width="200" /> <el-table-column prop="qualifiedState" label="è§æ ¼åå·" max-width="200" /> <el-table-column prop="inspectStartTime" label="åä½" max-width="200" /> <el-table-column prop="inspectEndTime" label="æ°é" max-width="200" /> <el-table-column prop="inspectEndTime" label="æ¥æ£æ¥æ" max-width="200" /> <el-table-column prop="inspectEndTime" label="æ£éªäºº" max-width="200" /> <el-table-column prop="inspectEndTime" label="æ£éªæ¥æ" max-width="200" /> <el-table-column prop="inspectEndTime" label="ç¶æ" max-width="200" /> </el-table> <!-- åé¡µå¨ --> <div> <el-pagination :current-page="currentPage" :page-sizes="[100, 200, 300, 400]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" /> </div> </div> </div> </div> </div> </template> <script> export default { data() { return { searchData: '', rawMaterialsTable: [] } } } </script> <style lang="scss" scoped> .content-main{ width: 100%; height: 100%; display: flex; flex-direction: column; min-height: calc(100vh - 88px); padding: 15px; } .top-bar{ margin: -25px; background: #fff; display: flex; justify-content: space-between; padding: 5px 24px 0px 24px; .el-form{ width: 100%; display: flex; >div{ flex: 1; } } } .input-form{ // width: 300px; } .retrieval{ float: right; font-size: 14px; color: rgb(0, 120, 255); line-height: 40px; } .rightBtn { display: flex; justify-content: flex-end; } .getDataBtn, .createBtn { margin-left: 10px; /* Optional: Add some space between the buttons */ } .raw-materials-table{ background-color: #fff; flex: 1; max-width: 100%; margin-left: 0px; margin-right: 0px; margin-top: 50px; 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: 20px; flex: 1; background: #fff; // padding: 20px 20px 10px 20px; display: flex; flex-direction: column; .el-table { flex: 1; display: flex; flex-direction: column; ::v-deep .el-table__body-wrapper{ flex: 1; } } >div:nth-child(2){ display: flex; justify-content: end; margin: 10px 0; } } } </style>