小小儁爺
8 小时以前 f704c69aac5df70067eb82cfa09554810b08f591
1.工价设置新增按钮级权限控制
已修改3个文件
415 ■■■■ 文件已修改
src/api/basicSettings.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicSettings/meterPrice.vue 310 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicSettings/powerDivider.vue 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/basicSettings.js
@@ -496,6 +496,22 @@
    params: data
  })
}
// 节拍工价审核
export function VerifyBeatRate(data) {
  return request({
    url: 'BasicSetting/VerifyBeatRate',
    method: 'post',
    data
  })
}
// 节拍工价反审核
export function NoVerifyBeatRate(data) {
  return request({
    url: 'BasicSetting/NoVerifyBeatRate',
    method: 'post',
    data
  })
}
// 产品编码查找关联的工艺信息
export function PartSelectRpute(data) {
src/views/basicSettings/meterPrice.vue
@@ -2,9 +2,36 @@
  <div>
    <div class="body" :style="{height:mainHeight+'px'}">
      <div class="bodyTopButtonGroup" style="justify-content: space-between">
        <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">新增</el-button>
        <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=25')">导入</el-button>
      <div class="bodyTopButtonGroup" style="height: 47px;">
        <el-button
          v-if="buttoncodeArr.includes('Add')"
          v-waves
          type="primary"
          icon="el-icon-circle-plus-outline"
          @click="add('add')"
        >新增</el-button>
        <el-button
          v-if="buttoncodeArr.includes('Verify')"
          v-waves
          type="success"
          icon="el-icon-circle-check"
          @click="Verify(false)"
        >批量审核</el-button>
        <el-button
          v-if="buttoncodeArr.includes('NoVerify')"
          v-waves
          type="warning"
          icon="el-icon-circle-close"
          @click="NoVerify(false)"
        >批量反审核</el-button>
        <el-button
          v-if="buttoncodeArr.includes('InExcel')"
          v-waves
          type="success"
          icon="el-icon-download"
          @click="$router.push('./../systemSetting/dataImport?fileCode=25')"
        >导入</el-button>
      </div>
      <div class="bodyTopFormGroup">
@@ -130,46 +157,149 @@
          :header-cell-style="this.$headerCellStyle"
          :cell-style="this.$cellStyle"
          @sort-change="sortChange"
          @selection-change="handleSelectionChange"
        >
          <el-table-column
            v-for="item in tableColumnSettingsArray"
            v-if="item.show"
            :key="item.id"
            :sortable="item.sortable"
            :prop="item.prop"
            :min-width="item.minWidth"
            :label="item.label"
            :width="item.width"
            show-tooltip-when-overflow
            :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
            type="selection"
            width="50"
            fixed
          />
          <el-table-column
            prop="rowNum"
            width="60"
            label="序号"
            fixed
          />
          <el-table-column
            prop="verifyuser"
            label="是否已审核"
            sortable="custom"
            width="120"
          >
            <template slot-scope="{row}">
              <div v-if="!row[item.prop]">/</div>
              <div v-else-if="item.prop==='eqp_value'||item.prop==='stand_value'">
                {{ row[item.prop] }} 秒
              </div>
              <div v-else>{{ row[item.prop] }}</div>
              <el-tag v-if="row.verifyuser" size="small" type="success">已审核</el-tag>
              <el-tag v-else size="small" type="danger">未审核</el-tag>
            </template>
          </el-table-column>
          <el-table-column
            prop="partcode"
            label="产品编码"
            sortable="custom"
            min-width="110"
          />
          <el-table-column
            prop="partname"
            label="产品名称"
            sortable="custom"
            min-width="110"
          />
          <el-table-column
            prop="partspec"
            label="产品规格"
            sortable="custom"
            min-width="110"
          />
          <el-table-column
            prop="stepname"
            label="工序名称"
            sortable="custom"
            width="110"
          />
          <el-table-column
            prop="unprice"
            label="计件单价"
            sortable="custom"
            width="110"
          />
          <el-table-column
            prop="verifyuser"
            label="审核人"
            sortable="custom"
            width="110"
          />
          <el-table-column
            prop="verifydate"
            label="审核日期"
            sortable="custom"
            width="160"
          />
          <el-table-column
            prop="lm_user"
            label="创建人员"
            sortable="custom"
            width="110"
          />
          <el-table-column
            prop="lm_date"
            label="创建时间"
            sortable="custom"
            width="160"
          />
          <!--          <el-table-column-->
          <!--            v-for="item in tableColumnSettingsArray"-->
          <!--            v-if="item.show"-->
          <!--            :key="item.id"-->
          <!--            :sortable="item.sortable"-->
          <!--            :prop="item.prop"-->
          <!--            :min-width="item.minWidth"-->
          <!--            :label="item.label"-->
          <!--            :width="item.width"-->
          <!--            show-tooltip-when-overflow-->
          <!--            :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              <div v-if="!row[item.prop]">/</div>-->
          <!--              <div v-else-if="item.prop==='eqp_value'||item.prop==='stand_value'">-->
          <!--                {{ row[item.prop] }} 秒-->
          <!--              </div>-->
          <!--              <div v-else>{{ row[item.prop] }}</div>-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <el-table-column
            label="操作"
            fixed="right"
            width="120"
            width="160"
          >
            <template slot-scope="{row}">
              <div class="operationClass">
                <el-tooltip class="item" effect="dark" content="编辑" placement="top">
                  <i
                <el-button
                  v-if="buttoncodeArr.includes('Update')&&!row.verifyuser"
                  type="text"
                    :style="{color:$store.state.settings.theme}"
                    class="el-icon-edit-outline"
                    @click="edit('edit',row)"
                  />
                </el-tooltip>
                <el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">
                  <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />
                </el-tooltip>
                >编辑</el-button>
                <!--                v-if="!buttoncodeArr.includes('Delete')"-->
                <el-button
                  v-if="buttoncodeArr.includes('Delete')&&!row.verifyuser"
                  type="text"
                  :style="{color: 'red'}"
                  @click="del(row)"
                >删除</el-button>
                <el-button
                  v-if="buttoncodeArr.includes('Verify')&&!row.verifyuser"
                  type="text"
                  :style="{color:$store.state.settings.theme}"
                  @click="Verify(true,row)"
                >审核</el-button>
                <el-button
                  v-if="buttoncodeArr.includes('NoVerify')&&row.verifyuser"
                  type="text"
                  :style="{color: 'red'}"
                  @click="NoVerify(true,row)"
                >反审核</el-button>
                <!--                <el-tooltip class="item" effect="dark" content="编辑" placement="top">-->
                <!--                  <i-->
                <!--                    :style="{color:$store.state.settings.theme}"-->
                <!--                    class="el-icon-edit-outline"-->
                <!--                    @click="edit('edit',row)"-->
                <!--                  />-->
                <!--                </el-tooltip>-->
                <!--                <el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">-->
                <!--                  <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />-->
                <!--                </el-tooltip>-->
              </div>
            </template>
          </el-table-column>
@@ -301,10 +431,10 @@
<script>
import Pagination from '@/components/Pagination'
import {
  BeatRateSearch, DeleteBeatRate,
  BeatRateSearch, DeleteBeatRate, NoVerifyBeatRate,
  PartSelect,
  PartSelectRpute,
  RouteSelectStep, SaveBeatRate
  RouteSelectStep, SaveBeatRate, VerifyBeatRate
} from '@/api/basicSettings'
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
@@ -340,7 +470,17 @@
      tableData: [],
      tableColumnSettingsArray: [
        // { minWidth: 50, width: false, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 隐藏列  show: false隐藏,true显示
        { minWidth: 25, width: 50, prop: 'rowNum', label: '序号', id: 2, show: true, fixed: 'left', sortable: false }, // custom
        { minWidth: 25, width: 50, prop: 'rowNum', label: '序号', id: 1, show: true, fixed: 'left', sortable: false }, // custom
        // {
        //   minWidth: false,
        //   width: 130,
        //   prop: 'verifyuser1',
        //   label: '是否已审核',
        //   id: 2,
        //   show: true,
        //   fixed: false,
        //   sortable: true
        // },
        {
          minWidth: 110,
          width: false,
@@ -419,8 +559,8 @@
          fixed: false,
          sortable: true
        }, {
          minWidth: 110,
          width: false,
          minWidth: false,
          width: 110,
          prop: 'stepname',
          label: '工序名称',
          id: 11,
@@ -429,8 +569,8 @@
          sortable: true
        },
        {
          minWidth: 110,
          width: false,
          minWidth: false,
          width: 110,
          prop: 'unprice',
          label: '计件单价',
          id: 12,
@@ -441,9 +581,29 @@
        {
          minWidth: false,
          width: 110,
          prop: 'verifyuser',
          label: '审核人',
          id: 13,
          show: true,
          fixed: false,
          sortable: true
        },
        {
          minWidth: false,
          width: 160,
          prop: 'verifydate',
          label: '审核日期',
          id: 14,
          show: true,
          fixed: false,
          sortable: true
        },
        {
          minWidth: false,
          width: 110,
          prop: 'lm_user',
          label: '创建人员',
          id: 13,
          id: 15,
          show: true,
          fixed: false,
          sortable: true
@@ -453,7 +613,7 @@
          width: 160,
          prop: 'lm_date',
          label: '创建时间',
          id: 14,
          id: 16,
          show: true,
          fixed: false,
          sortable: true
@@ -479,7 +639,11 @@
      editPartName: '', // 编辑时产品名称
      editRouteName: '', // 编辑时工艺路线名称
      editStepName: '', // 编辑时加工工序名称
      operation: ''
      operation: '',
      buttoncodeArr: [],
      multipleSelection: []
    }
  },
@@ -491,6 +655,9 @@
  },
  created() {
    this.handleRequest()
    console.log(this.$route.meta.buttoncode)
    this.buttoncodeArr = this.$route.meta.buttoncode.split(',')
  },
  mounted() {
    window.addEventListener('resize', this.getHeight)
@@ -632,6 +799,73 @@
        this.$message.info('已取消删除')
      })
    },
    // 审核
    Verify(boolean, row) {
      this.$confirm('是否确认审核?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        if (boolean) {
          VerifyBeatRate([row.id]).then(res => {
            if (res.code === '200') {
              this.$message.success('审核成功!')
              if (this.form.page > 1 && this.tableData.length === 1) {
                this.form.page--
              }
              this.getBeatRateSearch()
            }
          })
        } else {
          VerifyBeatRate(this.multipleSelection.filter(i => !i.verifyuser).map(i => i.id)).then(res => {
            if (res.code === '200') {
              this.$message.success('审核成功!')
              if (this.form.page > 1 && this.tableData.length === 1) {
                this.form.page--
              }
              this.getBeatRateSearch()
            }
          })
        }
      }).catch(() => {
        this.$message.info('已取消审核')
      })
    },
    // 反审核
    NoVerify(boolean, row) {
      this.$confirm('是否确认反审核?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        if (boolean) {
          NoVerifyBeatRate([row.id]).then(res => {
            if (res.code === '200') {
              this.$message.success('反审核成功!')
              if (this.form.page > 1 && this.tableData.length === 1) {
                this.form.page--
              }
              this.getBeatRateSearch()
            }
          })
        } else {
          NoVerifyBeatRate(this.multipleSelection.filter(i => i.verifyuser).map(i => i.id)).then(res => {
            if (res.code === '200') {
              this.$message.success('反审核成功!')
              if (this.form.page > 1 && this.tableData.length === 1) {
                this.form.page--
              }
              this.getBeatRateSearch()
            }
          })
        }
      }).catch(() => {
        this.$message.info('已取消反审核')
      })
    },
    handleSelectionChange(val) {
      this.multipleSelection = val
    },
    // 对话框关闭事件
    handleClose() {
      this.dialogForm.partcode = ''
src/views/basicSettings/powerDivider.vue
@@ -57,7 +57,7 @@
              <div style="display: flex;">
                <div
                  ref="scrollLeft"
                  style="border-right: 1px solid rgba(0,0,0,0.2);width:100%;
                  style="border-right: 1px solid rgba(0,0,0,0.2);width:260px;
                  overflow-y: auto;overflow-x:hidden;"
                  :style="{height:(tableHeight-40)+'px'}"
                  @scroll="scrollLeftScroll()"
@@ -81,66 +81,66 @@
                    @node-click="getLeftTreeNode"
                  />
                </div>
                <!--                <div-->
                <!--                  ref="scrollCenter"-->
                <!--                  style="width: calc(100% - 260px );padding-left: 10px;overflow-y: auto;"-->
                <!--                  :style="{height:(tableHeight-40)+'px'}"-->
                <!--                  @scroll="scrollCenterScroll()"-->
                <!--                  @mouseover="isScroll='center'"-->
                <!--                >-->
                <!--                  <div style=" ">-->
                <!--                    <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 按钮权限-->
                <!--                  </div>-->
                <div
                  ref="scrollCenter"
                  style="width: calc(100% - 260px );padding-left: 10px;overflow-y: auto;"
                  :style="{height:(tableHeight-40)+'px'}"
                  @scroll="scrollCenterScroll()"
                  @mouseover="isScroll='center'"
                >
                  <div style=" ">
                    <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 按钮权限
                  </div>
                <!--                  <el-checkbox-->
                <!--                    v-model="buttonIsChecked"-->
                <!--                    style="height: 26px;display:flex;align-items: center;margin-top:10px;width:200px"-->
                <!--                    @change=" handleCheckAllChange "-->
                <!--                  >全选-->
                <!--                  </el-checkbox>-->
                  <el-checkbox
                    v-model="buttonIsChecked"
                    style="height: 26px;display:flex;align-items: center;margin-top:10px;width:200px"
                    @change=" handleCheckAllChange "
                  >全选
                  </el-checkbox>
                <!--                  <div v-if="treeCenter.length>0">-->
                <!--                    <div v-for="(item,index) in treeCenter[0].children" :key="item.menucode">-->
                  <div v-if="treeCenter.length>0">
                    <div v-for="(item,index) in treeCenter[0].children" :key="item.menucode">
                <!--                      <div-->
                <!--                        v-if="!item.buttoncodelist"-->
                <!--                        style="margin-left: 40px;height:26px;display: flex;"-->
                <!--                      />-->
                      <div
                        v-if="!item.buttoncodelist"
                        style="margin-left: 40px;height:26px;display: flex;"
                      />
                <!--                      <el-checkbox-group-->
                <!--                        v-for="it in item.children"-->
                <!--                        v-if="item.expanded"-->
                <!--                        :key="it.menucode"-->
                <!--                        v-model="it.buttonChecked"-->
                <!--                        style="margin-left: 40px;height:26px;display: flex;"-->
                <!--                        @change="val=>handleCheckedButtonChange(val,it.menucode,it.buttonChecked)"-->
                <!--                      >-->
                      <el-checkbox-group
                        v-for="it in item.children"
                        v-if="item.expanded"
                        :key="it.menucode"
                        v-model="it.buttonChecked"
                        style="margin-left: 40px;height:26px;display: flex;"
                        @change="val=>handleCheckedButtonChange(val,it.menucode,it.buttonChecked)"
                      >
                <!--                        <el-checkbox-->
                <!--                          v-for="i in it.buttoncodelist"-->
                <!--                          :key="i"-->
                <!--                          :label="i"-->
                <!--                          style="display:flex;align-items: center;"-->
                <!--                        />-->
                <!--                      </el-checkbox-group>-->
                        <el-checkbox
                          v-for="i in it.buttoncodelist"
                          :key="i"
                          :label="i"
                          style="display:flex;align-items: center;"
                        />
                      </el-checkbox-group>
                <!--                    </div>-->
                    </div>
                <!--                  </div>-->
                  </div>
                <!--                </div>-->
                </div>
              </div>
            </el-tab-pane>
            <el-tab-pane label="APP端" name="APP">
              <div style="display: flex;">
                <div
                  ref="scrollLeft"
                  style="border-right: 1px solid rgba(0,0,0,0.2);width:100%;
                                            overflow-y: auto;overflow-x:hidden;"
                  :style="{height:(tableHeight-40)+'px'}"
                  @scroll="scrollLeftScroll()"
                  @mouseover="isScroll='left'"
                >
                  <!--                  ref="scrollLeft"-->
                  <!--                  @scroll="scrollLeftScroll()"-->
                  <div style=" ">
                    <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 菜单权限
                  </div>
@@ -279,10 +279,13 @@
        { menucode: '-1', menuname: '全部', children: result }
      ]
      console.log(this.treeCenter, 12)
      this.treeCenter[0].children.sort((a, b) => a.menu_seq - b.menu_seq)
      this.treeCenter[0].children.forEach(item => {
        if (item.children && item.children.length) {
          item.children.forEach(it => {
            // console.log(it.menucode === '0115')
            it.buttoncodelist = it.buttoncodelist !== '' && it.buttoncodelist !== null ? it.buttoncodelist.split(',') : []
            if (it.buttoncodelist && it.buttoncodelist.length > 0) {
              it.buttoncodelist = this.ButtonData.filter(j =>