晏有为
2024-05-23 22b1e8c61b4cf049f1c980aea459f3b90620a1b0
Merge branch 'master' of http://114.132.189.42:9002/r/center-lims-before
已修改21个文件
591 ■■■■■ 文件已修改
index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/App.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-ins-order/add.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-inspect-order-plan/Inspection.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tool/onlyoffice.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tool/value-table.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/a6-device-management.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/a6-personnel-detail.vue 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/a6-personnel-overview.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/a7-standard-method.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b1-inspect-order-plan.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b1-inspection-order.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b1-report-preparation.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b2-standard.vue 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b3-classes.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b4-daily-business-statistics.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b4-inspection-item-statistics.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b4-sample-defects.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/person-manage.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/js/menu.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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/App.vue
@@ -312,4 +312,8 @@
    height: 300px;
  }
  .el-table-filter__list-item{
    font-size: 12px;
    line-height: 32px;
  }
</style>
src/assets/api/controller.js
@@ -35,6 +35,7 @@
const user = {
    selectUserList: "/user/selectUserList", //获取用户列表
  selectPersonnelOverview: "/user/selectPersonnelOverview", // 资源要求-人员总览
    selectRoleList: "/role/selectRoleList", //获取角色列表
    updateUser: "/user/updateUser", //修改用户信息
    addUser: "/user/addUser", //添加用户信息
@@ -51,6 +52,8 @@
    getUserNow: "/user/getUserNow", //获取当前登录的客户信息
    getUserInfo: "/user/getUserInfo", //获取当前登录的用户信息
  upUserPassword: "/user/upUserPassword", //修改用户密码
  upUserDepardLimsId: "/user/upUserDepardLimsId", //修改人员明细所在组织架构
  delUserDepardLimsId: "/user/delUserDepardLimsId", //删除人员明细所在组织架构
}
const dataReporting = {
@@ -181,9 +184,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 = {
@@ -192,6 +197,7 @@
    addStandardMethod: "/standardMethod/addStandardMethod", //添加标准方法
    upStandardMethod: "/standardMethod/upStandardMethod", //修改标准方法
    delStandardMethod: "/standardMethod/delStandardMethod", //删除标准方法
  importStandardDetails: "/standardMethod/importStandardDetails", // 导入标准明细
}
const StandardTemplate = {
@@ -231,7 +237,9 @@
  selectDepartment: "/department/selectDepartment", //人员架构树
  addDepartment: "/department/addDepartment", //添加部门
  delDepartment: "/department/delDepartment", //删除部门
  showUserById: "/department/showUserById", //根据选择的树展示相关的人员
  selectDepartmentLim: "/department/selectDepartmentLim", //获取部门树
  addDepartmentLims: "/department/addDepartmentLims", //添加部门
  delDepartmentLims: "/department/delDepartmentLims", //删除部门
}
const report = {
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
@@ -241,9 +241,10 @@
                    <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;`"
@@ -272,14 +273,14 @@
                    <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>
@@ -319,7 +320,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">
@@ -843,7 +844,6 @@
                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) {
@@ -851,7 +851,12 @@
                            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
                      }
                    }
                  })
@@ -865,24 +870,22 @@
                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()
              }
@@ -922,14 +925,18 @@
                  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;
              }
@@ -937,8 +944,12 @@
                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
                    }
                  }
src/components/tool/onlyoffice.vue
@@ -57,7 +57,6 @@
  },
  methods: {
    async setEditor(option) {
      console.log(`output->option`,option)
      if (this.docEditor !== null) {
        this.docEditor.destroyEditor();
        this.docEditor = null;
src/components/tool/value-table.vue
@@ -309,7 +309,7 @@
    <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>
@@ -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,
@@ -961,7 +964,8 @@
        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;
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/a6-personnel-detail.vue
@@ -10,6 +10,7 @@
        background-color: white;
        padding: 15px;
    }
  .el-tree{
    height: calc(100% - 37px);
    overflow-y: auto;
@@ -56,6 +57,7 @@
        user-select: none;
    overflow-y: auto;
    }
  .sort{
    width: 80% !important;
    overflow: hidden;
@@ -112,8 +114,7 @@
            <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}">
@@ -137,17 +138,19 @@
          <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">
@@ -166,6 +169,15 @@
                <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>
@@ -177,41 +189,7 @@
        },
        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'
@@ -229,12 +207,11 @@
                treeLoad: false,
                addPower: false,
                tableLoad: false,
                delStandardProduct: false,
                addStandardProduct: false,
                componentData: {
                    entity: {
            name:'',
            departId:'',
            departLimsId: '',
                        orderBy: {
                            field: 'id',
                            order: 'asc'
@@ -244,13 +221,57 @@
                    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() {
@@ -258,7 +279,6 @@
            this.selectTreeList()
        },
        methods: {
            filterNode(value, data) {
                if (!value) return true;
                return data.name.indexOf(value) !== -1;
@@ -285,7 +305,7 @@
                }
                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) {
@@ -299,7 +319,7 @@
                    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
@@ -316,18 +336,18 @@
            },
            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()
                })
            },
@@ -337,7 +357,7 @@
                    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'
                    }
@@ -367,38 +387,57 @@
            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>
src/components/view/a6-personnel-overview.vue
@@ -166,7 +166,7 @@
        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
src/components/view/a7-standard-method.vue
@@ -42,6 +42,9 @@
      <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>
@@ -65,7 +68,7 @@
    <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>
@@ -165,12 +168,15 @@
            },
          },
          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() {
@@ -195,6 +201,7 @@
        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
@@ -205,6 +212,9 @@
          if (power[i].menuMethod == 'upStandardMethod') {
            up = true
          }
          if (power[i].menuMethod == 'importStandardDetails') {
            inPower = true
          }
        }
        if (!del) {
          this.componentData.do.splice(1, 1)
@@ -213,6 +223,7 @@
          this.componentData.do.splice(0, 1)
        }
        this.addPower = add
        this.inPower = inPower
      },
      openAdd() {
        this.$refs.ValueTable.openAddDia(this.$api.standardMethod.addStandardMethod);
src/components/view/b1-inspect-order-plan.vue
@@ -170,7 +170,7 @@
            <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"
src/components/view/b1-inspection-order.vue
@@ -181,7 +181,7 @@
                        <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>
src/components/view/b1-report-preparation.vue
@@ -183,7 +183,7 @@
          do: [
              {
              id: 'handleWeave',
              font: '在线编制',
              font: '编制',
              type: 'text',
              method: 'handleWeave',
              disabFun: (row, index) => {
@@ -355,7 +355,8 @@
            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"
          }
        })
@@ -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/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;
  }
@@ -138,6 +145,11 @@
  .standard .el-table .warning-row .cell {
    color: #bababa;
  }
  .el-table-filter__list{
    max-height: 400px;
    overflow-y: auto;
  }
</style>
@@ -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"
            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>
@@ -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
            })
        })
        }
      },
@@ -1297,7 +1322,6 @@
          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,7 +174,7 @@
          <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>
@@ -184,7 +184,7 @@
          :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;">
@@ -196,7 +196,7 @@
        </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>
@@ -204,7 +204,7 @@
      <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"
@@ -289,7 +289,8 @@
            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: {
@@ -477,7 +478,7 @@
          if (power[i].menuMethod == 'delDepartment') {
            delStandardTree = true
          }
          if (power[i].menuMethod == 'addPersonUser') {
          if (power[i].menuMethod == 'selectCompaniesList') {
            addUserPower = true
          }
        }
@@ -630,11 +631,11 @@
        }
        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)
          })
@@ -652,10 +653,13 @@
            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
static/js/menu.js
@@ -298,7 +298,7 @@
            i: "font icon-erjidaohang",
            u: "a6-personnel-detail",
            g: "6.2 人员",
            p: "selectUserList"
            p: "selectDepartmentLim"
        }, {
            v: "人员培训",
            i: "font icon-erjidaohang",