index.html
@@ -21,7 +21,7 @@ </head> <body> <div id="app"></div> <script type='text/javascript' src='http://192.168.73.130:9001/web-apps/apps/api/documents/api.js'></script> <!-- <script type='text/javascript' src='http://192.168.73.130:9001/web-apps/apps/api/documents/api.js'></script> --> <script src="<%= htmlWebpackPlugin.options.url %>/static/luckysheet/plugins/js/plugin.js"></script> <script src="<%= htmlWebpackPlugin.options.url %>/static/luckysheet/luckysheet.umd.js"></script> </body> src/assets/api/controller.js
@@ -181,9 +181,11 @@ delStandardTree: "/standardTree/delStandardTree", //删除标准树的层级 selectStandardProductList: "/standardTree/selectStandardProductList", //通过标准树查询对应的检验项目 selectStandardProductListByMethodId: "/standardTree/selectStandardProductListByMethodId", //通过检验标准查询检验项目 selectStandardProductByMethodId: "/standardTree/selectStandardProductByMethodId", //批量编辑查询检验项目 selectStandardMethodEnum: "/standardTree/selectStandardMethodEnum", //获取标准树下标准方法枚举 getStandardTree2: "/standardTree/getStandardTree2", //获取产品架构 upStandardProducts: "/standardTree/upStandardProducts", //获取产品架构 selectStandardProductEnumByMethodId: "/standardTree/selectStandardProductEnumByMethodId", //批量编辑查询所有检验项目和检验子项枚举 } const standardMethod = { @@ -283,4 +285,5 @@ const companies = { selectCompaniesList: "/companies/selectCompaniesList", //获取人事系统组织 selectSimpleList: "/companies/selectSimpleList", //获取人事系统组织下的人员 addPersonUser: "/companies/addPersonUser", //获取人事系统组织下的人员 } src/components/do/b1-ins-order/add.vue
@@ -272,7 +272,7 @@ <el-table-column prop="model" label="样品型号" align="center" min-width="100"> <template slot-scope="scope"> <el-select v-model="scope.row.model" filterable allow-create default-first-option placeholder="样品型号" size="small" @change="handleChangeModel" :disabled="active>1" style="width: 100%;" disabled> size="small" @change="handleChangeModel" :disabled="active>1" style="width: 100%;"> <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> @@ -348,7 +348,7 @@ <el-table-column prop="section" label="区间" width="120" show-overflow-tooltip></el-table-column> <el-table-column prop="ask" label="要求值" min-width="220px"> <template slot-scope="scope"> <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable type="textarea" <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable type="textarea" readonly :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)" :readonly="active>1"></el-input> </template> </el-table-column> @@ -876,8 +876,8 @@ }, activeStandardTree() { let trees = this.selectTree.split(" - ") if (trees.length < 5) { this.$message.error('未选择型号') if (trees.length < 4) { this.$message.error('未选择产品') return } this.addObj.factory = trees[0] @@ -1144,7 +1144,7 @@ if(val===null||val==='')return this.getProductLoad = true this.$axios.post(this.$api.standardTree.selectStandardProductList, { model: this.addObj.model + '-' + row.modelNum, model: row.model + '-' + row.modelNum, standardMethodListId: val }, { headers: { src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -319,7 +319,7 @@ </el-drawer> <el-drawer title="任务切换" :visible.sync="taskVisible" :size="500"> <ValueTable class="value-table" ref="insOrderPlan" :url="$api.insOrderPlan.selectInsOrderPlanList" :componentData="componentData" :key="upIndex" style="max-height: 100%;height: inherit;"/> :componentData="componentData" :key="upIndex" style="height: 100%;"/> </el-drawer> <el-dialog title="检验复核" :visible.sync="reviewDia" width="500px"> <div class="body" style="display: flex;padding: 10px;" v-if="reviewDia"> src/components/tool/value-table.vue
@@ -564,14 +564,17 @@ }, sizeChange(val) { this.page.size = val this.selectList() this.selectList('page') }, currentChange(val) { this.page.current = val this.selectList() this.selectList('page') }, selectList() { selectList(val) { this.loading = true if(val===undefined){ this.page.current = 1; } if (this.data.isPage != undefined && this.data.isPage != true) { this.page = { current: -1, @@ -593,6 +596,7 @@ this.total = res.data.body.total this.tableHead = res.data.head this.tableData = res.data.body.records // console.log(JSON.stringify(this.tableHead)+"---------"+JSON.stringify(this.tableData)) for (var a in this.data.selectField) { if (this.data.selectField[a].choose == true) { this.tableData.map(b => { src/components/view/a6-device-management.vue
@@ -687,7 +687,7 @@ this.$message.error('未输入启用日期') return } if(!this.formData.deviceStatus){ if(this.formData.deviceStatus==='' || this.formData.deviceStatus===null){ this.$message.error('未选择当前状态') return } src/components/view/b1-report-preparation.vue
@@ -160,6 +160,7 @@ import { convertToHtml } from 'mammoth'; import axios from "axios"; export default { components: { ValueTable, @@ -182,7 +183,7 @@ do: [ { id: 'handleWeave', font: '在线编制', font: '编制', type: 'text', method: 'handleWeave', disabFun: (row, index) => { @@ -383,25 +384,31 @@ if (power[i].menuMethod == 'writeReport') { sub = true } if (power[i].menuMethod == 'ratifyReport') { approve = true } if (power[i].menuMethod == 'examineReport') { issued = true } } if (!approve) { this.componentData.do.splice(5, 1) this.componentData.do.splice(6, 1) } if (!issued) { this.componentData.do.splice(4, 1) this.componentData.do.splice(5, 1) } if (!sub) { this.componentData.do.splice(3, 1) this.componentData.do.splice(4, 1) } if (!res) { this.componentData.do.splice(2, 1) this.componentData.do.splice(3, 1) } if (!up) { this.componentData.do.splice(1, 1) this.componentData.do.splice(2, 1) } // if (!edit) { // this.componentData.do.splice(0, 1) // } if (!edit) { this.componentData.do.splice(0, 1) } }, confirmClaim() { // console.log(this.$refs.Word.getValue()) src/components/view/b1-unpass.vue
@@ -45,8 +45,8 @@ <div class="search_thing"> <div class="search_label">规格型号:</div> <div class="search_input"> <el-input size="small" placeholder="请输入" clearable v-model="componentData.entity.model" @keyup.enter.native="refreshTable()"></el-input></div> <el-input size="small" placeholder="请输入" clearable v-model="componentData.entity.model" @keyup.enter.native="refreshTable()"></el-input></div> </div> <div class="search_thing"> <div class="search_label">样品名称:</div> @@ -86,23 +86,24 @@ entity: { sample: null, model: null, orderBy: { field: 'id', order: 'asc' } }, isIndex: true, showSelect: false, select: false, do: [ ], linkEvent: { // code: { // method: 'selectAllByOne' // } }, tagField: [], selectField: [], requiredAdd: ['model','sample',], requiredUp: [] }, entityCopy: {}, upIndex: 0, statusList: [], } }, mounted() { @@ -124,4 +125,3 @@ } } </script> src/components/view/b2-standard.vue
@@ -65,20 +65,25 @@ width: 80% !important; overflow: hidden; } >>>.el-table__body-wrapper{ height: calc(100% - 46px) !important; } >>>.header-class{ height: 40px !important; } >>>.header-class th.el-table__cell>.cell{ line-height: 20px !important; padding-top: 0 !important; padding-bottom: 0 !important; } >>>.el-table__row{ height: 35px !important; } .search{ height: 20%; border-bottom: 1px solid #ebeef5; @@ -88,26 +93,28 @@ box-sizing: border-box; padding-bottom: 10px; } .search-item{ display: flex; align-items: center; flex-wrap: wrap; } .search-item .el-row{ display: flex; align-items: center; } .search-item .el-col{ margin-left: 0; } .more-edit .dialog-footer{ position: absolute; top: 15px; right: 70px; } >>>.more-edit .el-dialog__body{ height: calc(100vh - 90px); } >>>.is-disabled .el-textarea__inner{ background: rgba(0, 0, 0, 0.05) !important; } @@ -139,6 +146,11 @@ .standard .el-table .warning-row .cell { color: #bababa; } .el-table-filter__list{ max-height: 400px; overflow-y: auto; } </style> <template> @@ -165,7 +177,7 @@ :class="`node_i ${data.children != undefined ? (data.code==='[1]'?'el-icon-folder-opened':'el-icon-folder') : 'el-icon-tickets'}`"></i> {{ data.code }} {{ data.label }}</span> </el-col> <el-col :span="2" style="text-align: right;" v-if="delStandardTree"> <el-col :span="2" style="text-align: right;" v-if="delStandardTree&&node.level==5"> <el-button type="text" size="mini" @click.stop="remove(node, data)"> <i class="el-icon-delete"></i> </el-button> @@ -177,11 +189,13 @@ <div class="right"> <el-row class="title" style="width: 100%;"> <el-col :span="20" style="font-size: 14px;color: #999;">{{selectTree}}</el-col> <el-button size="small" type="primary" @click="handleMore" style="position: absolute;right: 0px;top: 1px;" v-if="upStandardProduct">批量编辑</el-button> <el-button size="small" type="primary" @click="handleMore" style="position: absolute;right: 0px;top: 1px;" v-if="upStandardProduct">批量编辑</el-button> </el-row> <el-row class="standard_table" v-loading="tableLoad"> <el-table class="el-table" :data="standardList" style="width: 100%;height: 220px !important;" height="220" tooltip-effect="dark" highlight-current-row @row-click="rowClick" ref="standard" header-row-class-name="header-class"> <el-table class="el-table" :data="standardList" style="width: 100%;height: 220px !important;" height="220" tooltip-effect="dark" highlight-current-row @row-click="rowClick" ref="standard" header-row-class-name="header-class"> <el-table-column prop="code" label="标准编号" show-overflow-tooltip width="200"> <template slot-scope="scope"> <span style="color: red;font-size: 14px;">{{scope.row['code']}}</span> @@ -200,12 +214,8 @@ </el-row> <el-row class="product_table" v-loading="tableLoad2"> <el-table :data="productList" ref="productTable" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" @select="upProductSelect" @select-all="handleAll" class="productTable" header-row-class-name="header-class"> :fit="true" border @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" @select="upProductSelect" @select-all="handleAll" class="productTable" header-row-class-name="header-class"> <el-table-column type="selection" width="50" > </el-table-column> <el-table-column prop="model" label="型号" min-width="100" show-overflow-tooltip></el-table-column> @@ -213,8 +223,7 @@ <!-- <el-table-column prop="inspectionItemClassify" label="检验项类型" width="120" show-overflow-tooltip></el-table-column> --> <el-table-column prop="inspectionItemSubclass" label="检验项子项" min-width="140" show-overflow-tooltip></el-table-column> <el-table-column prop="sonLaboratory" label="子实验室" width="130" show-overflow-tooltip :filters="filters" :filter-method="filterHandler"></el-table-column> <el-table-column prop="sonLaboratory" label="子实验室" width="130" show-overflow-tooltip></el-table-column> <el-table-column prop="ask" label="要求值" min-width="200px"> <template slot-scope="scope"> <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable @@ -273,13 +282,8 @@ </template> </el-table-column> </el-table> <el-pagination style="position: absolute;right: 16px;bottom: 1px;" @current-change="handleCurrentChange" :current-page="currentPage" layout="total, prev, pager, next, jumper" :page-size="50" :total="total"> <el-pagination style="position: absolute;right: 16px;bottom: 1px;" @current-change="handleCurrentChange" :current-page="currentPage" layout="total, prev, pager, next, jumper" :page-size="50" :total="total"> </el-pagination> </el-row> </div> @@ -323,8 +327,8 @@ <el-button type="primary" @click="addStandardTree" :loading="addLoad">确 定</el-button> </span> </el-dialog> <el-dialog title="批量编辑" :visible.sync="moreEdit" width="90%" style="height: 100vh;" class="more-edit"> <div class="body" style="height: 100%;display: flex;flex-direction: column;"> <el-dialog title="批量编辑" :visible.sync="moreEdit" width="90%" class="more-edit"> <div class="body" style="display: flex;flex-direction: column;height: 80vh;"> <div class="search"> <div class="search-item"> <el-row style="width: 25%;margin-bottom: 16px;"> @@ -340,7 +344,8 @@ <!-- <span class="required-span">* </span> --> 要求描述:</el-col> <el-col :span="16" style="display: flex;align-items: flex-start;height: 100%;"> <el-input size="small" clearable type="textarea" :autosize="{ minRows: 1, maxRows: 3}" v-model="moreInfo.tell" :disabled="moreSelects.length==0"></el-input> <el-input size="small" clearable type="textarea" :autosize="{ minRows: 1, maxRows: 3}" v-model="moreInfo.tell" :disabled="moreSelects.length==0"></el-input> </el-col> </el-row> <el-row style="width: 25%;margin-bottom: 16px;"> @@ -348,7 +353,8 @@ <!-- <span class="required-span">* </span> --> 试验方法:</el-col> <el-col :span="16"> <el-select v-model="moreInfo.methodS" size="small" filterable style="width: 100%;" :disabled="moreSelects.length==0"> <el-select v-model="moreInfo.methodS" size="small" filterable style="width: 100%;" :disabled="moreSelects.length==0"> <el-option v-for="(a, ai) in methodList" :key="ai" :label="a.label" :value="a.value"></el-option> </el-select> </el-col> @@ -366,7 +372,8 @@ <!-- <span class="required-span">* </span> --> 工时系数:</el-col> <el-col :span="16"> <el-input size="small" v-model="moreInfo.manHour" clearable :disabled="moreSelects.length==0"></el-input> <el-input size="small" v-model="moreInfo.manHour" clearable :disabled="moreSelects.length==0"></el-input> </el-col> </el-row> <el-row style="width: 25%;"> @@ -374,7 +381,8 @@ <!-- <span class="required-span">* </span> --> 模板:</el-col> <el-col :span="16"> <el-select v-model="moreInfo.templateId" size="small" filterable placeholder="模板" style="width: 100%;" :disabled="moreSelects.length==0"> <el-select v-model="moreInfo.templateId" size="small" filterable placeholder="模板" style="width: 100%;" :disabled="moreSelects.length==0"> <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option> </el-select> </el-col> @@ -390,24 +398,20 @@ </div> <div style="flex: 1;overflow-y: auto;" v-loading="productTableLoading0"> <el-table :data="productList0" ref="productTable0" style="width: 100%;" height="94%" tooltip-effect="dark" stripe :fit="true" border @select-all="handleSelectAll0" @select="handleSelectionChange0" header-row-class-name="header-class" :row-key="row=>row.id" > stripe :fit="true" border @select-all="handleSelectAll0" @select="handleSelectionChange0" filter-placement="bottom-start" header-row-class-name="header-class" :row-key="row=>row.id" @filter-change="filterHandler"> <el-table-column type="selection" width="50" > </el-table-column> <el-table-column prop="model" label="型号" min-width="100" show-overflow-tooltip></el-table-column> <el-table-column prop="inspectionItem" label="检验项" min-width="140" show-overflow-tooltip></el-table-column> <el-table-column prop="inspectionItemSubclass" label="检验项子项" min-width="140" show-overflow-tooltip></el-table-column> <el-table-column prop="inspectionItem" label="检验项" min-width="140" show-overflow-tooltip :filters="filters0" :filter-multiple="false" column-key="inspectionItem"></el-table-column> <el-table-column prop="inspectionItemSubclass" label="检验项子项" min-width="140" show-overflow-tooltip :filters="filters1" :filter-multiple="false" column-key="inspectionItemSubclass"></el-table-column> <el-table-column prop="sonLaboratory" label="子实验室" width="130" show-overflow-tooltip :filters="filters" :filter-method="filterHandler"></el-table-column> :filter-multiple="false" column-key="sonLaboratory"></el-table-column> <el-table-column prop="ask" label="要求值" min-width="200px"></el-table-column> <el-table-column prop="tell" label="要求描述" min-width="220px"></el-table-column> <el-table-column prop="method" label="试验方法" width="200"></el-table-column> <el-table-column prop="methodS" label="试验方法" width="200"></el-table-column> <el-table-column prop="unit" label="计量单位" width="100" show-overflow-tooltip></el-table-column> <el-table-column prop="price" label="单价(元)" width="120"></el-table-column> <el-table-column prop="manHour" label="工时系数" width="120"></el-table-column> @@ -419,44 +423,12 @@ </el-table-column> <el-table-column prop="section" label="区间" width="120" show-overflow-tooltip></el-table-column> </el-table> <el-pagination style="position: absolute;right: 16px;bottom: 4px;" @current-change="handleCurrentChange0" :current-page="currentPage0" layout="total, prev, pager, next, jumper" :page-size="50" :total="total0"> <el-pagination style="position: absolute;right: 16px;bottom: 4px;" @current-change="handleCurrentChange0" :current-page="currentPage0" layout="total, prev, pager, next, jumper" :page-size="100" :total="total0"> </el-pagination> </div> </div> </el-dialog> <!-- <el-dialog title="新增标准" :visible.sync="addStandardDia" width="400px"> <div class="body"> <el-row style="line-height: 50px;"> <el-col :span="6" style="text-align: right;"> <span class="required-span">* </span>标准名称: </el-col> <el-col :span="16" :offset="1"> <el-select v-model="standardId" size="small" style="width: 100%;" clearable> <el-option v-for="(a, ai) in standardEnum" :key="ai" :value="a.value" :label="a.label"></el-option> </el-select> </el-col> </el-row> </div> <span slot="footer" class="dialog-footer"> <el-button @click="addStandardDia = false">取 消</el-button> <el-button type="primary" @click="addStandardMethodList" :loading="addLoad2">确 定</el-button> </span> </el-dialog> --> <!-- <el-dialog title="新增项目" :visible.sync="addProductDia" width="70%"> <div class="body" style="height: 60vh;" v-if="addProductDia"> <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData" /> </div> <span slot="footer" class="dialog-footer"> <el-button @click="addProductDia = false">取 消</el-button> <el-button type="primary" @click="addStandardProductDo" :loading="addLoad3">确 定</el-button> </span> </el-dialog> --> <el-dialog title="区间设置" :visible.sync="sectionUpDia" width="70%"> <div class="body" style="padding: 5px 0;"> <el-table :data="sectionList" border style="width: 100%" height="350px"> @@ -604,7 +576,37 @@ templateId:'' }, methodList:[], productTableLoading0:false productTableLoading0: false, filters0: [{ text: '测试', value: 0, }, { text: '测试1', value: 1, }, { text: '测试2', value: 2, } ], filters1: [{ text: '测试', value: 0, }, { text: '测试1', value: 1, }, { text: '测试2', value: 2, } ], pages: 1, inspectionItem: null, inspectionItemSubclass: null, sonLaboratory: null } }, watch: { @@ -640,6 +642,7 @@ this.selectEnumByCategoryForInspectionValueType() this.selectEnumByCategoryForSonLaboratory() this.getStandardTemplate() this.selectStandardMethods() }, methods: { filterNode(value, data) { @@ -1102,6 +1105,7 @@ this.addProductDia = false }, rowClick(row, column, event) { this.currentPage = 1; this.tableLoad2 = true this.standardId = row.id this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, { @@ -1115,7 +1119,7 @@ this.productList.forEach(a => { if (a.state == 1) this.toggleSelection(a) }) }, 200) }, 300) this.tableLoad2 = false }) }, @@ -1148,19 +1152,37 @@ // this.$message.success('已保存') }) }, filterHandler(value, row, column) { const property = column['property']; return row[property] === value; filterHandler(value) { for (let column in value) { if(value[column].length === 0){ if(column==='inspectionItem'){ this.inspectionItem = null }else if(column === 'inspectionItemSubclass'){ this.inspectionItemSubclass = null }else if(column === 'sonLaboratory'){ this.sonLaboratory = null } }else{ if(column==='inspectionItem'){ this.inspectionItem = value[column][0] }else if(column === 'inspectionItemSubclass'){ this.inspectionItemSubclass = value[column][0] }else if(column === 'sonLaboratory'){ this.sonLaboratory = value[column][0] } } this.getList() } }, handleAll(e) { if (e.length > 0) { this.productList = this.productList.map(m => { this.productList.map(m => { m.state = 0 this.upProductSelect(null, m) return m }) } else { this.productList = this.productList.map(m => { this.productList.map(m => { m.state = 1 this.upProductSelect(null, m) return m @@ -1267,6 +1289,9 @@ this.sectionUpDia = false this.currentPage0 = 1; this.getList() this.rowClick({ id: this.standardId }) }) } }, @@ -1293,11 +1318,10 @@ }) }, async handleMore(){ if(!this.standardId&&this.standardId!=0){ if ((!this.standardId && this.standardId != 0) || this.standardList.length == 0) { return this.$message.error('请选择实验室、样品') } await this.getList() this.selectStandardMethods() this.moreEdit = true }, selectStandardMethods() { @@ -1333,6 +1357,9 @@ this.$message.success('已保存') this.currentPage0 = 1; this.getList() this.rowClick({ id: this.standardId }) // this.moreInfo = { // ask:'', // tell:'', @@ -1365,18 +1392,22 @@ }, getList(){ this.productTableLoading0 = true this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, { this.getItemEnum() this.$axios.post(this.$api.standardTree.selectStandardProductByMethodId, { id: this.standardId, tree: this.selectTree, page: this.currentPage0 page: this.currentPage0, laboratory: this.sonLaboratory, items: this.inspectionItemSubclass, item: this.inspectionItem }).then(res => { this.productList0 = res.data.productList this.productList0 = res.data.records this.total0 = res.data.total this.productTableLoading0 = false this.page = res.data.pages this.$nextTick(()=>{ this.productList0.forEach((a,i) => { if(this.moreSelects.find(b=>a.id==b.id)){ // console.log(111111111,a) this.$refs.productTable0.toggleRowSelection(this.productList0[i],true) } }) @@ -1386,6 +1417,29 @@ handleCurrentChange0(e){ this.currentPage0 = e; this.getList() }, getItemEnum(){ this.$axios.post(this.$api.standardTree.selectStandardProductEnumByMethodId,{ id: this.standardId, tree: this.selectTree }).then(res=>{ this.filters0 = [] this.filters1 = [] res.data.item.forEach(a=>{ this.filters0.push({ text: a.inspectionItem, value: a.inspectionItem }) }) res.data.items.forEach(a=>{ if(a!=null){ this.filters1.push({ text: a.inspectionItemSubclass, value: a.inspectionItemSubclass }) } }) }) } } } src/components/view/b3-classes.vue
@@ -83,18 +83,14 @@ v-on:mouseenter="onMouseEnter(index)" v-on:mouseleave="currentUserIndex=null"> <div class="content-body-item" v-for="(m,i) in item.list" :key="'d'+i" :class="{hoverType:currentUserIndex==index}"> <div class="work-box" :class="{type0:m.shift==='0',type1:m.shift==='1',type2:m.shift==='2',type3:m.shift==='3',type4:m.shift==='4',type5:m.shift==='5',type6:m.shift==='6'}"> <!-- <div class="work-box-left"> <span>{{ getShiftByDic(m.shift) }}</span> </div> --> <el-dropdown trigger="click" placement="bottom" @command="e=>handleCommand(e,m)" :disabled="!upPower"> <!-- <i class="el-icon-arrow-down el-icon--right" style="font-size: 20px;color: #fff;cursor: pointer;"></i> --> <div class="work-box" :class="{type0:m.shift==='0',type1:m.shift==='1',type2:m.shift==='2',type3:m.shift==='3',type4:m.shift==='4',type5:m.shift==='5',type6:m.shift==='6'}"> <span style="cursor: pointer;" :style="`opacity: ${getShiftByDic(m.shift)=='无'?0:1};`">{{ getShiftByDic(m.shift) }}</span> </div> <el-dropdown-menu slot="dropdown"> <el-dropdown-item v-for="(n,j) in classType" :key="'h'+j" :command="n.value">{{ n.label }}</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </div> </div> </div> </div> @@ -767,7 +763,7 @@ display: flex; align-items: center; justify-content: space-around; background: #F5F7FB; background: #edeff2; border-radius: 8px 8px 8px 8px; color: #999; font-size: 14px; @@ -869,7 +865,7 @@ margin-left: 10px; } .hoverType{ background: rgba(58,123,250,0.05); background: rgba(58,123,250,0.03); } .year-table{ width: 100%; src/components/view/b4-daily-business-statistics.vue
@@ -151,8 +151,9 @@ } }, mounted(){ this.init() this.timers&&clearInterval(this.timers); setInterval(this.init,1000*60*5) setInterval(this.init(),1000*60*5) }, methods:{ init(){ src/components/view/b4-inspection-item-statistics.vue
@@ -190,9 +190,9 @@ } }, mounted(){ // this.init() this.init() this.timers&&clearInterval(this.timers); setInterval(this.init,1000*60*5) setInterval(this.init(),1000*60*5) }, methods:{ init(){ src/components/view/b4-sample-defects.vue
@@ -73,6 +73,7 @@ <el-table :data="tableData" style="width: 100%;margin-bottom: 10px;height: calc(100% - 40px);" height="calc(100% - 40px)" row-key="id" v-loading="loading" border src/components/view/person-manage.vue
@@ -174,8 +174,8 @@ <el-button size="small" @click="refresh()">重 置</el-button> <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button> </div> <div class="search_thing"> <el-button size="small" type="primary" @click="openthirdParty">获取三方人员</el-button> <div class="search_thing" style="display: flex;justify-content: right;margin-right: 10px;"> <el-button size="small" type="primary" @click="openthirdParty" v-if="addUserPower">获取三方人员</el-button> <el-button size="small" type="primary" @click="opeaAdd" v-if="addPower">新增用户</el-button> </div> </div> @@ -204,15 +204,29 @@ <div class="body"> <el-row> <el-col :span="9" style="height: 70vh;overflow: hidden;"> <el-input placeholder="输入关键字进行过滤" v-model="search2" size="small" style="width: 90%;padding: 0 5% 10px 5%;" <el-input placeholder="输入关键字搜索" v-model="search2" size="small" style="width: 90%;padding: 0 5% 10px 5%;" clearable @blur="searchFilter2" @clear="searchFilter2" @keyup.enter.native="searchFilter2()"> </el-input> <el-tree :data="datathirdParty" node-key="id" :props="defaultProps" @node-click="nodeClick2" style="height: calc(100% - 42px);" :filter-node-method="filterNode2" ref="tree2" highlight-current> style="height: calc(100% - 42px);" @node-expand="nodeOpen0" :filter-node-method="filterNode2" ref="tree2" highlight-current> </el-tree> </el-col> <el-col :span="15" style="height: 70vh;padding-left: 8px;"> <el-table height="70vh" border stripe :data="personList" v-loading="personLoad" ref="personTable" <div class="search_thing" style="width: 360px;margin-bottom: 10px;"> <div class="search_label" style="width: 140px;">员工号/员工姓名:</div> <div class="search_input"> <el-input size="small" placeholder="请输入工号/员工姓名" @clear="searchPerson" clearable v-model="userSearch2" @keyup.enter.native="searchPerson()"> <i slot="suffix" class="el-input__icon el-icon-search" style="cursor: pointer;" @click="searchPerson"></i></el-input> </div> </div> <el-table height="67vh" border stripe :data="personList" v-loading="personLoad" ref="personTable" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="50"> </el-table-column> @@ -330,6 +344,7 @@ upIndex: 0, addDia: false, addPower: true, addUserPower: true, delStandardTree: true, addDia0: false, addOb: { @@ -343,12 +358,19 @@ expandedKeys: [], addLoad: false, personList: [], personListCopy:[], treeLoad: false, personLoad: false, search2: '', multipleSelection: [] multipleSelection: [], companiesList:[], currentCompaniesList: [], userSearch2:'' } }, // watch: { // userSearch2(val){} // }, mounted() { this.selectTreeList() this.selectRole() @@ -359,6 +381,7 @@ openthirdParty() { this.addthirdParty = true; this.$axios.get(this.$api.companies.selectCompaniesList).then(res => { this.companiesList = JSON.parse(JSON.stringify(res.data)); this.datathirdParty = [] for (let ai = 0; ai < res.data.length; ai++) { let a = res.data[ai] @@ -442,6 +465,7 @@ let power = JSON.parse(sessionStorage.getItem('power')) let up = false let add = false let addUserPower = false let delStandardTree = false for (var i = 0; i < power.length; i++) { if (power[i].menuMethod == 'updateUser') { @@ -453,15 +477,19 @@ if (power[i].menuMethod == 'delDepartment') { delStandardTree = true } if (power[i].menuMethod == 'selectCompaniesList') { addUserPower = true } } if (!up) { this.componentData.do.splice(0, 1) } this.delStandardTree = delStandardTree this.addPower = add this.addUserPower = addUserPower }, handleAdd() { if (this.addOb.fatherId) { if (this.addOb.fatherId||this.addOb.name=='全部') { this.addDia0 = true; } else { this.$message.error('请选择一个架构层级') @@ -498,6 +526,9 @@ }, nodeOpen(data, node, el) { $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') }, nodeOpen0(data, node, el){ this.currentCompaniesList[node.level-1] = data.id }, nodeClose(data, node, el) { $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') @@ -566,11 +597,13 @@ }) }, nodeClick2(ob, node, el) { this.currentCompaniesList[node.level-1] = ob.id if (ob.id !== 'SC21') { this.personLoad = true this.$axios.post(this.$api.companies.selectSimpleList, { companyId: ob.id }).then(res => { this.personListCopy = JSON.parse(JSON.stringify(res.data)) this.personList = res.data this.personLoad = false this.$refs.personTable.doLayout() @@ -579,9 +612,65 @@ }, handleSelectionChange(val) { this.multipleSelection = val; console.log(this.multipleSelection); }, addUser2(){ if(this.multipleSelection.length === 0){ return this.$message.error('请选择人员') } if(this.currentCompaniesList.length === 0){ return this.$message.error('请选择组织') } for (let index = this.currentCompaniesList.length-1; index >1; index--) { let obj = this.multipleSelection.find(a=>a.companyId==this.currentCompaniesList[index]) if(!obj){ this.currentCompaniesList.splice(index,1) }else{ return } } let arr = [] this.currentCompaniesList.forEach(b=>{ /* this.companiesList.forEach(a=>{ if(a.companyId===b){ console.log(a) } }) */ let obj = this.companiesList.find(a=>a.companyId==b) arr.push(obj) }) this.addLoad = true this.$axios.post(this.$api.companies.addPersonUser, { company: arr, person: this.multipleSelection }, { headers: { 'Content-Type': 'application/json' } }).then(res => { if (res.code === 201) { this.addLoad = false return } this.$message.success('操作成功') this.multipleSelection = [] this.$refs.personTable.clearSelection() this.addthirdParty = false this.addLoad = false this.personList = [] this.userSearch2 = '' this.refresh() }).catch(e => { this.addthirdParty = false this.addLoad = false }) }, searchPerson(){ let arr = JSON.parse(JSON.stringify(this.personListCopy)) this.personList = arr.filter(a=>{ if(a.employeeID.includes(this.userSearch2)||a.name.includes(this.userSearch2)){ return true } }) } } } src/components/view/role-manage.vue
src/main.js
@@ -13,10 +13,11 @@ //本地 Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80"; const javaApi = 'http://192.168.11.200:8001';//李 // const javaApi = 'http://192.168.11.200:8001';//李 // const javaApi = 'http://10.20.102.168:8001';//张 // const javaApi = 'http://172.20.10.3:8001';//姜 // const javaApi = 'http://192.168.11.2:8001';//柴 const javaApi = 'http://127.0.0.1:8001';//晏 // const javaApi = 'http://114.132.189.42:1234';//测试服 //胜云服务器 // Vue.prototype.LOCATIONVUE = "http://syxt.shxiao2.cn";