Merge branch 'master' of http://114.132.189.42:9002/r/center-lims-before
| | |
| | | </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> |
| | |
| | | height: 300px; |
| | | } |
| | | |
| | | .el-table-filter__list-item{ |
| | | font-size: 12px; |
| | | line-height: 32px; |
| | | } |
| | | </style> |
| | |
| | | |
| | | const user = { |
| | | selectUserList: "/user/selectUserList", //获取用户列表 |
| | | selectPersonnelOverview: "/user/selectPersonnelOverview", // 资源要求-人员总览 |
| | | selectRoleList: "/role/selectRoleList", //获取角色列表 |
| | | updateUser: "/user/updateUser", //修改用户信息 |
| | | addUser: "/user/addUser", //添加用户信息 |
| | |
| | | getUserNow: "/user/getUserNow", //获取当前登录的客户信息 |
| | | getUserInfo: "/user/getUserInfo", //获取当前登录的用户信息 |
| | | upUserPassword: "/user/upUserPassword", //修改用户密码 |
| | | upUserDepardLimsId: "/user/upUserDepardLimsId", //修改人员明细所在组织架构 |
| | | delUserDepardLimsId: "/user/delUserDepardLimsId", //删除人员明细所在组织架构 |
| | | } |
| | | |
| | | const dataReporting = { |
| | |
| | | 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 = { |
| | |
| | | addStandardMethod: "/standardMethod/addStandardMethod", //添加标准方法 |
| | | upStandardMethod: "/standardMethod/upStandardMethod", //修改标准方法 |
| | | delStandardMethod: "/standardMethod/delStandardMethod", //删除标准方法 |
| | | importStandardDetails: "/standardMethod/importStandardDetails", // 导入标准明细 |
| | | } |
| | | |
| | | const StandardTemplate = { |
| | |
| | | selectDepartment: "/department/selectDepartment", //人员架构树 |
| | | addDepartment: "/department/addDepartment", //添加部门 |
| | | delDepartment: "/department/delDepartment", //删除部门 |
| | | showUserById: "/department/showUserById", //根据选择的树展示相关的人员 |
| | | selectDepartmentLim: "/department/selectDepartmentLim", //获取部门树 |
| | | addDepartmentLims: "/department/addDepartmentLims", //添加部门 |
| | | delDepartmentLims: "/department/delDepartmentLims", //删除部门 |
| | | } |
| | | |
| | | const report = { |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | }, |
| | | 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] |
| | |
| | | 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: { |
| | |
| | | <el-input v-else-if="getInspectionValueType(n.i) == 2" class="table_input" type="textarea" |
| | | v-model="n.v.v" |
| | | :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" |
| | | @change="saveInsContext()" /> |
| | | @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" /> |
| | | <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v" |
| | | :disabled="state>1" @visible-change="e=>getDic(e,n.i)" @change="saveInsContext()"> |
| | | :disabled="state>1" @visible-change="e=>getDic(e,n.i)" |
| | | @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)"> |
| | | <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option> |
| | | </el-select> |
| | | <span :style="`font-family:${n.v.ff} !important;`" |
| | |
| | | <span :style="`font-family:${n.v.ff} !important;`">{{getTell(n.i)}}</span> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='最终值' && state==1"> |
| | | <el-input class="table_input" type="textarea" |
| | | <!-- <el-input class="table_input" type="textarea" |
| | | :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" |
| | | v-model="n.v.v" @change="saveInsContext()" v-if="getInspectionValueType(n.i) == 2"></el-input> |
| | | <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v" |
| | | :disabled="state>1" @visible-change="e=>getDic(e,n.i)" @change="saveInsContext()"> |
| | | <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option> |
| | | </el-select> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span> |
| | | </el-select> --> |
| | | <span :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span> |
| | | </template> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span> |
| | | </div> |
| | |
| | | </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"> |
| | |
| | | if (b[0].r == a.r) { |
| | | b.forEach(c => { |
| | | if (c.c == a.c) { |
| | | if (!isNaN(parseFloat(c.v.v))) { |
| | | var tableCode = '' |
| | | for (var d in this.comparisonList) { |
| | | if (c.c == this.comparisonList[d].value) { |
| | |
| | | break |
| | | } |
| | | } |
| | | if(this.getInspectionValueType(item.i)==1){ |
| | | if (!isNaN(parseFloat(c.v.v))) { |
| | | comValue[(tableCode + (c.r + 1))] = parseFloat(c.v.v) |
| | | } |
| | | }else{ |
| | | comValue[(tableCode + (c.r + 1))] = c.v.v |
| | | } |
| | | } |
| | | }) |
| | |
| | | let comp = ask.map((m, i) => { |
| | | if (m.includes('=')) { |
| | | return res == m.split('=')[1] |
| | | } |
| | | if (m.includes('≥')) { |
| | | } else if (m.includes('≥')) { |
| | | return res >= m.split('≥')[1] |
| | | } |
| | | if (m.includes('≤')) { |
| | | }else if (m.includes('≤')) { |
| | | return res <= m.split('≤')[1] |
| | | } |
| | | if (m.includes('<')) { |
| | | }else if (m.includes('<')) { |
| | | return res < m.split('<')[1] |
| | | } |
| | | if (m.includes('>')) { |
| | | }else if (m.includes('>')) { |
| | | return res > m.split('>')[1] |
| | | } |
| | | }) |
| | | if(this.getInspectionValueType(item.i)==1){ |
| | | if (comp.every(m => m)) { |
| | | item.v.v = 1 |
| | | } else { |
| | | item.v.v = 0 |
| | | } |
| | | } |
| | | this.saveInsContext() |
| | | } |
| | |
| | | valueList.forEach(b => { |
| | | str = str.replace(b.name, b.value) |
| | | }) |
| | | if (item.v.f.includes('/') > -1) { |
| | | if (item.v.f.includes('/')) { |
| | | if (Object.getOwnPropertyNames(comValue).length == valueList.length) { |
| | | comResult = eval(str) |
| | | } else { |
| | | comResult = '' |
| | | } |
| | | } else { |
| | | if(this.getInspectionValueType(item.i)==1){ |
| | | comResult = eval(str) |
| | | }else{ |
| | | comResult = str |
| | | } |
| | | } |
| | | break; |
| | | } |
| | |
| | | if (a[0].r == item.r && comResult != '') { |
| | | for (var b in a) { |
| | | if (a[b].c == item.c) { |
| | | try{ |
| | | let val = parseFloat(comResult.toFixed(3)) |
| | | a[b].v.v = isNaN(val) ? '' : val |
| | | }catch(e){ |
| | | a[b].v.v = comResult |
| | | } |
| | | break |
| | | } |
| | | } |
| | |
| | | }, |
| | | methods: { |
| | | async setEditor(option) { |
| | | console.log(`output->option`,option) |
| | | if (this.docEditor !== null) { |
| | | this.docEditor.destroyEditor(); |
| | | this.docEditor = null; |
| | |
| | | <el-dialog title="数据导入" :visible.sync="uploadDia" width="500px"> |
| | | <div style="margin: 0 auto;"> |
| | | <el-upload ref="upload" drag :action="javaApi + inputUrl" :headers="token" :file-list="fileList" name="file" |
| | | :auto-upload="false" accept=".csv" :limit="1" :on-change="beforeUpload" :on-success="onSuccess" |
| | | :auto-upload="false" :accept="data.accept===undefined?'.csv':data.accept" :limit="1" :on-change="beforeUpload" :on-success="onSuccess" |
| | | :on-error="onError" :data="{param: data.uploadStr}"> |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> |
| | |
| | | }, |
| | | 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, |
| | |
| | | this.uploadDia = true |
| | | }, |
| | | beforeUpload(file, fileList) { |
| | | if (file.raw.type != 'text/csv') { |
| | | console.log(file.raw.type); |
| | | if (file.raw.type != (this.data.inputType===undefined?'text/csv':this.data.inputType)) { |
| | | this.$message.error('上传文件格式不正确'); |
| | | this.$refs.upload.clearFiles() |
| | | return false; |
| | |
| | | this.$message.error('未输入启用日期') |
| | | return |
| | | } |
| | | if(!this.formData.deviceStatus){ |
| | | if(this.formData.deviceStatus==='' || this.formData.deviceStatus===null){ |
| | | this.$message.error('未选择当前状态') |
| | | return |
| | | } |
| | |
| | | background-color: white; |
| | | padding: 15px; |
| | | } |
| | | |
| | | .el-tree{ |
| | | height: calc(100% - 37px); |
| | | overflow-y: auto; |
| | |
| | | user-select: none; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .sort{ |
| | | width: 80% !important; |
| | | overflow: hidden; |
| | |
| | | <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'name' }" node-key="id" |
| | | :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" |
| | | @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false" |
| | | :default-expanded-keys="expandedKeys" |
| | | :default-checked-keys="[1]"> |
| | | :default-expanded-keys="expandedKeys" :default-checked-keys="defaultCheckedKeys"> |
| | | <div class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <el-row style="width: 100%;"> |
| | | <el-col :span="21" :class="{sort:node.level>3}"> |
| | |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">人员名称:</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请输入" clearable v-model="componentData.entity.name"></el-input></div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="componentData.entity.name" |
| | | @keyup.enter.native="refreshTable()" @clear="refreshTable"></el-input> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px;width: 120px;"> |
| | | <el-button size="small" @click="refresh()">重 置</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button> |
| | | <div class="search_label" v-if="upUserDepardLimsIdPower"> |
| | | <el-button type="primary" size="small" @click="selectUserDia = true">添加</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row class="standard_table" v-loading="tableLoad"> |
| | | <ValueTable ref="ValueTable" :url="$api.department.showUserById" :componentData="componentData" /> |
| | | <ValueTable ref="ValueTable" :url="$api.user.selectUserList" :componentData="componentData" :delUrl="$api.user.delUserDepardLimsId"/> |
| | | </el-row> |
| | | </div> |
| | | <el-dialog title="架构新增" :visible.sync="addDia" width="400px"> |
| | |
| | | <el-button type="primary" @click="addStandardTree" :loading="addLoad">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="选择用户" :visible.sync="selectUserDia" width="70%"> |
| | | <div class="body" style="height: 60vh;" v-if="selectUserDia"> |
| | | <ValueTable ref="ValueTable2" :url="$api.user.selectUserList" :componentData="componentData2"/> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="selectUserDia = false">取 消</el-button> |
| | | <el-button type="primary" @click="selectUser">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | datathirdParty:[{ |
| | | id: 1, |
| | | label: '一级 1', |
| | | children: [{ |
| | | id: 4, |
| | | label: '二级 1-1', |
| | | children: [{ |
| | | id: 9, |
| | | label: '三级 1-1-1' |
| | | }, { |
| | | id: 10, |
| | | label: '三级 1-1-2' |
| | | }] |
| | | }] |
| | | }, { |
| | | id: 2, |
| | | label: '一级 2', |
| | | children: [{ |
| | | id: 5, |
| | | label: '二级 2-1' |
| | | }, { |
| | | id: 6, |
| | | label: '二级 2-2' |
| | | }] |
| | | }, { |
| | | id: 3, |
| | | label: '一级 3', |
| | | children: [{ |
| | | id: 7, |
| | | label: '二级 3-1' |
| | | }, { |
| | | id: 8, |
| | | label: '二级 3-2' |
| | | }] |
| | | }], |
| | | datathirdParty: [], |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | |
| | | treeLoad: false, |
| | | addPower: false, |
| | | tableLoad: false, |
| | | delStandardProduct: false, |
| | | addStandardProduct: false, |
| | | componentData: { |
| | | entity: { |
| | | name:'', |
| | | departId:'', |
| | | departLimsId: '', |
| | | orderBy: { |
| | | field: 'id', |
| | | order: 'asc' |
| | |
| | | isIndex: true, |
| | | showSelect: false, |
| | | select: false, |
| | | do: [], |
| | | isPage: false, |
| | | do: [{ |
| | | id: 'delete', |
| | | font: '删除', |
| | | type: 'text', |
| | | method: 'doDiy' |
| | | }], |
| | | tagField: { |
| | | state: { |
| | | select: [{ |
| | | value: 1, |
| | | type: 'success', |
| | | label: '启用' |
| | | }, { |
| | | value: 0, |
| | | type: 'danger', |
| | | label: '停用' |
| | | }] |
| | | } |
| | | }, |
| | | selectField: {}, |
| | | }, |
| | | expandedKeys: [] |
| | | expandedKeys: [], |
| | | selectUserDia: false, |
| | | componentData2: { |
| | | entity: { |
| | | orderBy: { |
| | | field: 'id', |
| | | order: 'asc' |
| | | } |
| | | }, |
| | | isIndex: true, |
| | | showSelect: true, |
| | | select: true, |
| | | do: [], |
| | | tagField: { |
| | | state: { |
| | | select: [{ |
| | | value: 1, |
| | | type: 'success', |
| | | label: '启用' |
| | | }, { |
| | | value: 0, |
| | | type: 'danger', |
| | | label: '停用' |
| | | }] |
| | | } |
| | | }, |
| | | selectField: {}, |
| | | upUserDepardLimsIdPower: true |
| | | }, |
| | | defaultCheckedKeys:[] |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | this.selectTreeList() |
| | | }, |
| | | methods: { |
| | | |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.name.indexOf(value) !== -1; |
| | |
| | | } |
| | | this.selectTree = data2.replace(' - ', '') |
| | | this.addOb.fatherId = val.id; |
| | | this.componentData.entity.departId = val.id; |
| | | this.componentData.entity.departLimsId = val.id; |
| | | this.refreshTable() |
| | | }, |
| | | getNodeParent(val) { |
| | |
| | | type: "error" |
| | | }).then(() => { |
| | | this.treeLoad = true |
| | | this.$axios.post(this.$api.department.delDepartment, { |
| | | this.$axios.post(this.$api.department.delDepartmentLims, { |
| | | id: data.id |
| | | }).then(res => { |
| | | if (res.code == 201) return |
| | |
| | | }, |
| | | selectTreeList() { |
| | | this.treeLoad = true |
| | | this.$axios.get(this.$api.department.selectDepartment).then(res => { |
| | | this.$axios.get(this.$api.department.selectDepartmentLim).then(res => { |
| | | this.list = res.data |
| | | this.refresh() |
| | | this.list.forEach(a => { |
| | | a.children.forEach(b => { |
| | | b.children.forEach(c => { |
| | | this.expandedKeys.push(c.id) |
| | | }) |
| | | this.expandedKeys.push(b.id) |
| | | }) |
| | | }) |
| | | this.treeLoad = false |
| | | this.componentData.entity.departId = this.list[0].id; |
| | | this.selectTree = '全部' |
| | | this.defaultCheckedKeys = [this.list[0].id] |
| | | this.componentData.entity.departLimsId = this.list[0].id; |
| | | this.selectTree = this.list[0].name |
| | | this.refreshTable() |
| | | }) |
| | | }, |
| | |
| | | return |
| | | } |
| | | this.addLoad = true |
| | | this.$axios.post(this.$api.department.addDepartment, this.addOb, { |
| | | this.$axios.post(this.$api.department.addDepartmentLims, this.addOb, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | |
| | | getPower() { |
| | | let power = JSON.parse(sessionStorage.getItem('power')) |
| | | let add = false |
| | | let upStandardProduct = false |
| | | let delStandardMethod = false |
| | | let delStandardProduct = false |
| | | let addStandardProduct = false |
| | | let delStandardTree = false |
| | | let upUserDepardLimsId = false |
| | | let del = false |
| | | for (var i = 0; i < power.length; i++) { |
| | | if (power[i].menuMethod == 'addStandardTree') { |
| | | if (power[i].menuMethod == 'addDepartmentLims') { |
| | | add = true |
| | | } |
| | | if (power[i].menuMethod == 'upStandardProductList') { |
| | | upStandardProduct = true |
| | | } |
| | | if (power[i].menuMethod == 'delStandardMethodByFLSSM') { |
| | | delStandardMethod = true |
| | | } |
| | | if (power[i].menuMethod == 'delStandardProductByIds') { |
| | | delStandardProduct = true |
| | | } |
| | | if (power[i].menuMethod == 'addStandardProduct') { |
| | | addStandardProduct = true |
| | | } |
| | | if (power[i].menuMethod == 'delStandardTree') { |
| | | if (power[i].menuMethod == 'delDepartmentLims') { |
| | | delStandardTree = true |
| | | } |
| | | if (power[i].menuMethod == 'upUserDepardLimsId') { |
| | | upUserDepardLimsId = true |
| | | } |
| | | if(power[i].menuMethod=='delUserDepardLimsId'){ |
| | | del = true |
| | | } |
| | | } |
| | | if(!del){ |
| | | this.componentData.do.splice(0, 1) |
| | | } |
| | | this.addPower = add |
| | | this.upStandardProduct = upStandardProduct |
| | | this.delStandardMethod = delStandardMethod |
| | | this.delStandardProduct = delStandardProduct |
| | | this.addStandardProduct = addStandardProduct |
| | | this.delStandardTree = delStandardTree |
| | | this.upUserDepardLimsIdPower = upUserDepardLimsId |
| | | }, |
| | | selectUser() { |
| | | let selects = this.$refs.ValueTable2.multipleSelection |
| | | if (selects.length == 0) { |
| | | this.$message.error('未选择数据') |
| | | return |
| | | } |
| | | var ids = [] |
| | | selects.forEach(a=>{ |
| | | ids.push(a.id) |
| | | }) |
| | | this.selectUserDia = false |
| | | this.$axios.post(this.$api.user.upUserDepardLimsId,{ |
| | | ids: JSON.stringify(ids), |
| | | id: this.componentData.entity.departLimsId |
| | | }).then(res=>{ |
| | | if (res.code === 201) { |
| | | return |
| | | } |
| | | this.$message.success('添加成功') |
| | | this.refreshTable() |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | if(this.currentPage==1){ |
| | | this.loading = true |
| | | } |
| | | this.$axios.post(this.$api.user.selectUserList,{ |
| | | this.$axios.post(this.$api.user.selectPersonnelOverview,{ |
| | | page: { |
| | | current: this.currentPage, |
| | | size: this.pageSize |
| | |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="padding-left: 20px;">标准方法</el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <el-button size="medium" @click="$refs.ValueTable.openUpload()" v-if="inPower"> |
| | | <i class="el-icon-upload2" style="color: #3A7BFA;"></i> |
| | | <span style="color: #3A7BFA;">导入</span></el-button> |
| | | <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">新增</el-button> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <div class="table"> |
| | | <ValueTable ref="ValueTable" :url="$api.standardMethod.selectStandardMethodList" |
| | | :delUrl="$api.standardMethod.delStandardMethod" :upUrl="$api.standardMethod.upStandardMethod" |
| | | :componentData="componentData" :key="upIndex" /> |
| | | :componentData="componentData" :key="upIndex" :inputUrl="$api.standardMethod.importStandardDetails"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | }, |
| | | }, |
| | | requiredAdd: ['code', 'name', 'isProduct', 'isUse', 'nameEn'], |
| | | requiredUp: ['code', 'name', 'isProduct', 'isUse', 'nameEn'] |
| | | requiredUp: ['code', 'name', 'isProduct', 'isUse', 'nameEn'], |
| | | accept: '.xlsx', |
| | | inputType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' |
| | | }, |
| | | entityCopy: {}, |
| | | upIndex: 0, |
| | | addDia: false, |
| | | addPower: true |
| | | addPower: true, |
| | | inPower: true, |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | let up = false |
| | | let del = false |
| | | let add = false |
| | | let inPower = false |
| | | for (var i = 0; i < power.length; i++) { |
| | | if (power[i].menuMethod == 'addStandardMethod') { |
| | | add = true |
| | |
| | | if (power[i].menuMethod == 'upStandardMethod') { |
| | | up = true |
| | | } |
| | | if (power[i].menuMethod == 'importStandardDetails') { |
| | | inPower = true |
| | | } |
| | | } |
| | | if (!del) { |
| | | this.componentData.do.splice(1, 1) |
| | |
| | | this.componentData.do.splice(0, 1) |
| | | } |
| | | this.addPower = add |
| | | this.inPower = inPower |
| | | }, |
| | | openAdd() { |
| | | this.$refs.ValueTable.openAddDia(this.$api.standardMethod.addStandardMethod); |
| | |
| | | <div class="search_thing"> |
| | | <div class="search_label" style="width:90px">交接人员:</div> |
| | | <div class="search_input"> |
| | | <el-select v-model="connectPerson" placeholder="请选择" style="width: 100%;"> |
| | | <el-select v-model="connectPerson" placeholder="请选择" style="width: 100%;" filterable> |
| | | <el-option |
| | | v-for="item in personList" |
| | | :key="item.value" |
| | |
| | | <el-col class="search_thing" style="width: 95%;"> |
| | | <div class="search_label"><span class="required-span" v-show="distributeData.type==2">* </span>指派人员:</div> |
| | | <div class="search_input"> |
| | | <el-select v-model="distributeData.userId" placeholder="请选择" size="small" style="width: 100%;" clearable> |
| | | <el-select v-model="distributeData.userId" placeholder="请选择" size="small" style="width: 100%;" clearable filterable> |
| | | <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | do: [ |
| | | { |
| | | id: 'handleWeave', |
| | | font: '在线编制', |
| | | font: '编制', |
| | | type: 'text', |
| | | method: 'handleWeave', |
| | | disabFun: (row, index) => { |
| | |
| | | title: row.entrustCode + ".docx", |
| | | lang: 'zh-CN', |
| | | isPrint: true, |
| | | user: { id: 1, name: userName}, |
| | | user_id: 1, |
| | | user_name: userName, |
| | | editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + row.entrustCode + ".docx" |
| | | } |
| | | }) |
| | |
| | | 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()) |
| | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | |
| | | |
| | | .standard .el-table .warning-row .cell { |
| | | color: #bababa; |
| | | } |
| | | |
| | | .el-table-filter__list{ |
| | | max-height: 400px; |
| | | overflow-y: auto; |
| | | } |
| | | </style> |
| | | |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <!-- <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 |
| | |
| | | </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> |
| | |
| | | <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;"> |
| | |
| | | <!-- <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;"> |
| | |
| | | <!-- <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> |
| | |
| | | <!-- <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%;"> |
| | |
| | | <!-- <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> |
| | |
| | | </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" |
| | | 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" filter-placement="bottom-start"></el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="检验项子项" min-width="140" show-overflow-tooltip |
| | | :filters="filters1" :filter-multiple="false" column-key="inspectionItemSubclass" filter-placement="bottom-start"></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" filter-placement="bottom-start"></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> |
| | |
| | | </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"> |
| | |
| | | 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: { |
| | |
| | | this.selectEnumByCategoryForInspectionValueType() |
| | | this.selectEnumByCategoryForSonLaboratory() |
| | | this.getStandardTemplate() |
| | | this.selectStandardMethods() |
| | | }, |
| | | methods: { |
| | | filterNode(value, data) { |
| | |
| | | this.addProductDia = false |
| | | }, |
| | | rowClick(row, column, event) { |
| | | this.currentPage = 1; |
| | | this.tableLoad2 = true |
| | | this.standardId = row.id |
| | | this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, { |
| | |
| | | this.productList.forEach(a => { |
| | | if (a.state == 1) this.toggleSelection(a) |
| | | }) |
| | | }, 200) |
| | | }, 300) |
| | | this.tableLoad2 = false |
| | | }) |
| | | }, |
| | |
| | | // 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 |
| | |
| | | this.sectionUpDia = false |
| | | this.currentPage0 = 1; |
| | | this.getList() |
| | | this.rowClick({ |
| | | id: this.standardId |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | |
| | | return this.$message.error('请选择实验室、样品') |
| | | } |
| | | await this.getList() |
| | | this.selectStandardMethods() |
| | | this.moreEdit = true |
| | | }, |
| | | selectStandardMethods() { |
| | |
| | | this.$message.success('已保存') |
| | | this.currentPage0 = 1; |
| | | this.getList() |
| | | this.rowClick({ |
| | | id: this.standardId |
| | | }) |
| | | // this.moreInfo = { |
| | | // ask:'', |
| | | // tell:'', |
| | |
| | | }, |
| | | 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) |
| | | } |
| | | }) |
| | |
| | | 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 |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | 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> |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-around; |
| | | background: #F5F7FB; |
| | | background: #edeff2; |
| | | border-radius: 8px 8px 8px 8px; |
| | | color: #999; |
| | | font-size: 14px; |
| | |
| | | margin-left: 10px; |
| | | } |
| | | .hoverType{ |
| | | background: rgba(58,123,250,0.05); |
| | | background: rgba(58,123,250,0.03); |
| | | } |
| | | .year-table{ |
| | | width: 100%; |
| | |
| | | } |
| | | }, |
| | | mounted(){ |
| | | this.init() |
| | | this.timers&&clearInterval(this.timers); |
| | | setInterval(this.init,1000*60*5) |
| | | setInterval(this.init(),1000*60*5) |
| | | }, |
| | | methods:{ |
| | | init(){ |
| | |
| | | } |
| | | }, |
| | | mounted(){ |
| | | // this.init() |
| | | this.init() |
| | | this.timers&&clearInterval(this.timers); |
| | | setInterval(this.init,1000*60*5) |
| | | setInterval(this.init(),1000*60*5) |
| | | }, |
| | | methods:{ |
| | | init(){ |
| | |
| | | <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 |
| | |
| | | <el-button size="small" @click="refresh()">重 置</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <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> |
| | |
| | | :componentData="componentData" :key="upIndex" /> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="架构新增" :visible.sync="addDia0" width="400px"> |
| | | <el-dialog title="架构新增" :visible.sync="addDia" width="400px"> |
| | | <div class="body"> |
| | | <el-row style="line-height: 50px;"> |
| | | <el-col :span="6" style="text-align: right;"> |
| | |
| | | </el-row> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addDia0 = false">取 消</el-button> |
| | | <el-button @click="addDia = false">取 消</el-button> |
| | | <el-button type="primary" @click="addStandardTree" :loading="addLoad">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | <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" |
| | |
| | | font: '编辑', |
| | | type: 'text', |
| | | method: 'doDiy', |
| | | field: ['createUserName', 'updateUserName', 'roleName', '角色=roleId', '密码=password'] |
| | | field: ['createUserName', 'updateUserName', 'roleName', '角色=roleId', '密码=password', |
| | | '姓名EN=nameEn','年龄=age','邮箱=email','单位=company','签名=pictureUrl','本人照=signatureUrl'] |
| | | }], |
| | | tagField: { |
| | | state: { |
| | |
| | | if (power[i].menuMethod == 'delDepartment') { |
| | | delStandardTree = true |
| | | } |
| | | if (power[i].menuMethod == 'addPersonUser') { |
| | | if (power[i].menuMethod == 'selectCompaniesList') { |
| | | addUserPower = true |
| | | } |
| | | } |
| | |
| | | } |
| | | let arr = [] |
| | | this.currentCompaniesList.forEach(b=>{ |
| | | this.companiesList.forEach(a=>{ |
| | | /* this.companiesList.forEach(a=>{ |
| | | if(a.companyId===b){ |
| | | console.log(a) |
| | | } |
| | | }) |
| | | }) */ |
| | | let obj = this.companiesList.find(a=>a.companyId==b) |
| | | arr.push(obj) |
| | | }) |
| | |
| | | return |
| | | } |
| | | this.$message.success('操作成功') |
| | | this.refresh() |
| | | 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 |
| | |
| | | i: "font icon-erjidaohang", |
| | | u: "a6-personnel-detail", |
| | | g: "6.2 人员", |
| | | p: "selectUserList" |
| | | p: "selectDepartmentLim" |
| | | }, { |
| | | v: "人员培训", |
| | | i: "font icon-erjidaohang", |