loulijun2021
2023-02-12 adb74c51618faf025fe1d46bf6b22db895c2608f
src/views/zzmx/gylx.vue
@@ -3,8 +3,8 @@
    <div class="body" :style="{height:mainHeight+'px'}">
      <div class="bodyTopButtonGroup">
        <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">新增</el-button>
        <!--        <el-button type="primary" icon="el-icon-upload2" @click="upload">导入</el-button>-->
        <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">新增</el-button>
        <!--        <el-button v-waves type="primary" icon="el-icon-upload2" @click="upload">导入</el-button>-->
      </div>
      <div class="bodyTopFormGroup">
@@ -13,7 +13,7 @@
          :model="form"
          label-width="100px"
          inline
          style="display: flex;justify-content: space-between"
          style="display: flex;"
        >
          <div class="elForm">
            <el-form-item label="工艺路线编码" style=" display: flex;">
@@ -29,9 +29,9 @@
              <el-input v-model="form.createuser" style="width: 200px" placeholder="请输入" />
            </el-form-item>
          </div>
          <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened?'5%':'10%'}">
            <el-button type="primary" icon="el-icon-search" @click="search">查询</el-button>
            <el-button type="info" icon="el-icon-refresh" @click="reset">重置</el-button>
          <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
            <el-button v-waves type="primary" icon="el-icon-search" @click="search">查询</el-button>
            <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">重置</el-button>
          </div>
        </el-form>
        <div
@@ -94,11 +94,11 @@
          >
            <template slot-scope="{row}">
              <div v-if="row.enable==='Y'">
                <svg-icon icon-class="circleYes" style="margin-right: 2px" />
                <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
                是
              </div>
              <div v-if="row.enable==='N'">
                <svg-icon icon-class="circleNo" style="margin-right: 2px" />
                <i class="el-icon-info" style="margin-right: 2px" />
                否
              </div>
            </template>
@@ -126,15 +126,16 @@
                <el-tooltip class="item" effect="dark" content="预览" placement="top">
                  <i
                    class="el-icon-view"
                    style="margin-right:15px;cursor: pointer;color:#42b983  "
                    :style="{color:$store.state.settings.theme}"
                    style="margin-right:15px;cursor: pointer;"
                    @click="edit('edit',row)"
                  />
                </el-tooltip>
                <el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">
                  <i class="el-icon-delete" style="margin-right:15px;" @click="del(row)" />
                  <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" style="margin-right:15px;" @click="del(row)" />
                </el-tooltip>
                <el-tooltip v-del-tab-index class="item" effect="dark" content="复制" placement="top">
                  <i class="el-icon-document-copy" style="cursor: pointer;color:#42b983" @click="copy('copy',row)" />
                  <i :style="{color:$store.state.settings.theme}" class="el-icon-document-copy" style="cursor: pointer;color:#42b983" @click="copy('copy',row)" />
                </el-tooltip>
              </div>
            </template>
@@ -154,6 +155,7 @@
    </div>
    <el-dialog
      v-el-drag-dialog
      :title="operation==='add'?'新增':(operation==='edit'?'预览':'复制')"
      :visible.sync="dialogVisible"
      width="1000px"
@@ -239,7 +241,7 @@
                  />
                </el-tag>
                <!--                </el-tooltip>-->
                <!--                {{ tag.editDisabled }}-->
                <!--                left:tag.stepname===selectedName?'191px':'141px',-->
                <i
                  v-if="index!==0&&tag.editDisabled&&operation!=='edit'"
@@ -276,6 +278,7 @@
            <el-button
              v-if="operation!=='edit'"
              v-waves
              type="success"
              :disabled="addDisabled"
              class="tagSuccess"
@@ -289,10 +292,11 @@
      </el-form>
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
          <el-button v-if="operation==='edit'" @click="dialogVisibleCancel">返 回</el-button>
          <el-button v-if="operation!=='edit'" @click="dialogVisibleCancel">取 消</el-button>
          <el-button v-if="operation==='edit'" v-waves @click="dialogVisibleCancel">返 回</el-button>
          <el-button v-if="operation!=='edit'" v-waves @click="dialogVisibleCancel">取 消</el-button>
          <el-button
            v-if="operation!=='edit'"
            v-waves
            type="primary"
            :loading="$store.state.app.buttonIsDisabled"
            :disabled="$store.state.app.buttonIsDisabled"
@@ -308,12 +312,15 @@
import Pagination from '@/components/Pagination'
import { AddUpdateRoute, DeleteRoute, RouteSearch, StepSelect, ViewRoute } from '@/api/zzmx'
import { validateCode } from '@/utils/global'
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
export default {
  name: 'GYLX',
  components: {
    Pagination
  },
  directives: { elDragDialog, waves },
  data() {
    return {
      isIpad: false,
@@ -414,8 +421,6 @@
    },
    // 输入框确认事件
    handleInputConfirm(tag) {
      console.log(tag, 111)
      console.log(this.autocompleteValue, 2)
      // 1.选择内容不能为空
      if (this.autocompleteValue.trim().length < 1) {
        return this.$message.info('选择内容不能为空!')
@@ -444,16 +449,15 @@
      if (flag2) {
        return this.$message.info('此工序已选,请选择其它工序!')
      }
      console.log(this.routeArr, 9)
      this.routeArr.forEach((item, index) => {
        if (this.autocompleteValue.trim() === item.stepname) {
          console.log(tag.stepname === item.stepname, 353535)
          this.routeSelectedArr.push({
            stepcode: item.stepcode,
            stepname: item.stepname,
            value: item.value
          })
          console.log(this.routeSelectedArr, 7)
          this.routeArr.splice(index, 1)
        }
      })
@@ -461,34 +465,30 @@
      // 将值替换到原tag位置上
      this.dynamicTags.forEach((item, index) => {
        if ((index + 1) === tag.seq) {
          console.log(tag)
          item.stepname = this.autocompleteValue
          item.effect = 'dark'
        }
        item.editDisabled = true
      })
      console.log(this.dynamicTags, 234)
      this.clickSelected = this.dynamicTags.findIndex(i => i.effect === 'dark') + 1
      this.addDisabled = false
      this.editDisabled = true
      this.selectedName = ''
    },
    // tag点击修改按钮
    tagEdit(tag) {
      console.log(tag, 2)
      this.autocompleteValue = ''
      this.dynamicTags.forEach(item => {
        item.stepname = item.stepname.trim()
        item.editDisabled = false
        if (item.seq !== tag.seq) {
          item.editDisabled = false
          // item.stepcode = this.routeArr.find(it=>it.stepcode=tag.stepcode).stepcode
          // return this.$message.info('请先填写或选择工艺!')
          item.effect = 'light'
        } else {
          item.effect = 'dark'
        }
      })
      // if (tag.stepname === '') {
      //   this.dynamicTags[0].stepcode=
      // }
      // if (tag.stepname.toString().length > 0 && tag.editDisabled) {
      if (tag.stepname !== '') {
        const routeSelectedArr = this.routeSelectedArr.find(item => item.stepname === tag.stepname)
@@ -500,7 +500,6 @@
          }
        )
      }
      // }
      this.addDisabled = true
      this.selectedName = tag.stepname
@@ -512,31 +511,27 @@
    },
    // tag点击事件
    elTagClick(tag) {
      console.log(tag, 1)
      this.clickSelected = tag.seq
      if (tag.effect === 'dark') {
        tag.effect = 'light'
        this.clickSelected = ''
      } else {
        this.dynamicTags.forEach(item => {
          item.effect = 'light'
        })
        if (tag.effect === 'light') {
          tag.effect = 'dark'
        } else if (tag.effect === 'dark') {
          tag.effect = 'light'
      if (this.dynamicTags.every(i => i.editDisabled)) {
        this.clickSelected = tag.seq
        if (tag.effect === 'dark') {
        } else {
          this.dynamicTags.forEach(item => {
            item.effect = 'light'
          })
          if (tag.effect === 'light') {
            tag.effect = 'dark'
          } else if (tag.effect === 'dark') {
            tag.effect = 'light'
          }
        }
      }
      console.log(this.$el)
      // console.log(this.$el.style.color = 'red')
    },
    // 处理tag关闭事件
    handleTagClose(tag) {
      console.log(tag)
      // 当选中的步骤被删除时
      if (tag.seq === this.clickSelected) {
        this.clickSelected = ''
      if (tag.effect === 'dark') {
        this.clickSelected = this.dynamicTags.length - 1
      }
      this.dynamicTags.forEach((item, index) => {
        if (item.seq === tag.seq) {
@@ -545,6 +540,7 @@
      })
      const routeSelectedArr = this.routeSelectedArr.find(item => item.stepname === tag.stepname)
      if (routeSelectedArr !== undefined) {
        this.routeArr.push(
          {
@@ -557,49 +553,34 @@
      this.routeArr = this.routeArr.filter((currentValue, currentIndex, selfArr) => {
        return selfArr.findIndex(item => item.stepcode === currentValue.stepcode) === currentIndex
      })
      console.log(this.dynamicTags, 1)
      // 重新排序
      this.dynamicTags.forEach((item, index) => {
        item.editDisabled = true
        item.seq = index + 1
        // item.stepcode = 'Step' + ((index + 1).toString().length === 2 ? (index + 1) : '0' + (index + 1))
        item.stepcode = ''
        item.effect = index === this.dynamicTags.length - 1 ? 'dark' : 'light'
      })
      if (this.clickSelected === '') {
        this.selectedName = ''
      }
      this.addDisabled = false
    },
    // tag添加按钮
    showInput() {
      const seq = this.dynamicTags.findIndex(i => i.effect === 'dark') + 2
      // 先将每个的tag标签颜色改为浅色
      this.dynamicTags.forEach(i => {
        i.effect = 'light'
      })
      this.autocompleteValue = ''
      this.addDisabled = true
      this.editDisabled = false
      let seq = 0
      // 1.第一种情况   当未选中情况下或者选中最后一个的情况下
      if (this.clickSelected === '' || this.clickSelected === this.dynamicTags.length) {
        seq = this.dynamicTags.length + 1
        this.dynamicTags.push(
          {
            editDisabled: true,
            seq: seq,
            stepname: '',
            effect: 'light',
            // stepcode: ('Step' + (seq.toString().length === 2 ? seq : '0' + seq))
            stepcode: ''
          }
        )
      } else {
        // 2.第二种情况   当选中某个tag   将在tag后面添加
        seq = this.clickSelected + 1
        this.dynamicTags.splice(this.clickSelected, 0, { editDisabled: true, seq: seq, stepname: '', effect: 'light' })
        this.dynamicTags.forEach((item, index) => {
          item.seq = index + 1
          // item.stepcode = 'Step' + ((index + 1).toString().length === 2 ? (index + 1) : '0' + (index + 1))
          item.stepcode = ''
        })
      }
      this.dynamicTags.splice(this.clickSelected, 0, { editDisabled: true, seq: seq, stepname: '', effect: 'dark' })
      this.dynamicTags.forEach((item, index) => {
        item.seq = index + 1
        item.stepcode = ''
      })
      this.$nextTick(_ => {
        this.$refs['saveTagInput' + seq][0].focus()
      })
@@ -609,8 +590,6 @@
      this.dynamicTags.forEach((item, index) => {
        item.editDisabled = seq === index + 1
      })
      console.log(this.dynamicTags, 1)
    },
    // 获取工艺路线列表清单
@@ -710,26 +689,20 @@
        this.dialogForm.name = res[0].name
        this.dialogForm.enable = res[0].enable
        this.dialogForm.description = res[0].description
        // this.dialogForm.Data = row.description
        res[0].Data.forEach(item => {
        res[0].Data.forEach((item, index) => {
          this.dynamicTags.push(
            { seq: item.seq, stepname: item.stepname, stepcode: item.stepcode, editDisabled: true, effect: 'light' }
            { seq: item.seq, stepname: item.stepname, stepcode: item.stepcode, editDisabled: true, effect: index === res[0].Data.length - 1 ? 'dark' : 'light' }
          )
          this.routeSelectedArr.push({
            stepcode: item.stepcode,
            stepname: item.stepname,
            value: item.stepname
          })
          console.log(item, 2)
          console.log(this.routeArr)
          this.routeArr = this.routeArr.filter(i => i.stepcode !== item.stepcode)
        })
        this.addDisabled = false
        // { editDisabled: true, stepcode: '', seq: 1, stepname: ' ', effect: 'light' }
        this.clickSelected = this.dynamicTags.length
      })
    },
    // 对话框关闭事件