瀏覽代碼

完善花材导入

wangning 5 年之前
父節點
當前提交
bec9878e84
共有 1 個文件被更改,包括 612 次插入371 次删除
  1. 612 371
      ghs/src/views/item-class/add.vue

+ 612 - 371
ghs/src/views/item-class/add.vue

@@ -1,416 +1,657 @@
 <style lang="scss" scoped>
-    .app-list-content{
-        min-width: 1000px;
+.app-list-content {
+  min-width: 1000px;
+}
+.left-box {
+  width: 30%;
+  height: 100%;
+}
+.content-box {
+  width: 5%;
+  height: 100%;
+  .switchover-box {
+    div {
+      width: 50px;
+      height: 50px;
+      margin-top: 20px;
+      color: #797979;
+      border: 1px solid #dadada;
+      font-weight: 700;
+      font-size: 36px;
+      cursor: pointer; //小手
     }
-    .left-box{
-        width: 30%;
-        height: 100%;
-    }
-    .content-box{
-        width: 5%;
-        height: 100%;
-        .switchover-box{
-            div{
-                width: 50px;
-                height: 50px;
-                margin-top: 20px;
-                color: #797979;
-                border: 1px solid #dadada;
-                font-weight: 700;
-                font-size: 36px;
-                cursor:pointer;  //小手
-            }
-        }
+  }
+}
+.right-box {
+  width: 65%;
+  height: 100%;
+}
+.title {
+  width: calc(100% - 2px);
+  height: 40px;
+  /*border: 1px solid #eee;*/
+  border: 1px solid #dadada;
+}
+.center-box {
+  margin-top: 20px;
+  height: calc(100% - 64px);
+  .class-list {
+    width: 30%;
+    height: 100%;
+    border: 1px solid #dadada;
+    overflow: scroll;
+    div {
+      height: 40px;
+      cursor: pointer; //小手
+      &.active {
+        color: #ffffff;
+        background: #00ccff;
+      }
     }
-    .right-box{
-        width: 65%;
-        height: 100%;
+    & > .class_name {
+      background: #ccc;
     }
-    .title{
-        width: calc(100% - 2px);
+  }
+  .item-box {
+    position: relative;
+    width: 65%;
+    height: 100%;
+    border: 1px solid #dadada;
+    padding: 0 10px;
+    .item-seek-box {
+      height: 80px;
+      border-bottom: 1px solid #dadada;
+      input {
+        width: calc(100% - 60px);
+        padding: 0 10px;
+        height: 40px;
+        border: none;
+        background: #f1f2f6;
+      }
+      .item-seek-btn {
+        width: 100px;
         height: 40px;
-        /*border: 1px solid #eee;*/
-        border: 1px solid #dadada;
+        color: #ffffff;
+        background: #169bd5;
+        cursor: pointer; //小手
+      }
     }
-    .center-box{
-        margin-top: 20px;
-        height: calc(100% - 64px);
-        .class-list{
-            width: 30%;
-            height: 100%;
-            border: 1px solid #dadada;
-            overflow: scroll;
-            div{
-                height: 40px;
-                cursor:pointer;  //小手
-                &.active{
-                    color: #ffffff;
-                    background: #00ccff;
-                }
-            }
-            &>.class_name{
-                background: #ccc;
-            }
-        }
-        .item-box{
-            position: relative;
-            width: 65%;
-            height: 100%;
-            border: 1px solid #dadada;
-            padding: 0 10px;
-            .item-seek-box{
-                height: 80px;
-                border-bottom: 1px solid #dadada;
-                input{
-                    width: calc(100% - 60px);
-                    padding: 0 10px;
-                    height: 40px;
-                    border: none;
-                    background: #f1f2f6;
-                }
-                .item-seek-btn{
-                    width: 100px;
-                    height: 40px;
-                    color: #ffffff;
-                    background: #169bd5;
-                    cursor:pointer;  //小手
-                }
-            }
-            .infinite-list-title{
-                height: 40px;
-            }
-            .infinite-list{
-                height: calc(100% - 40px - 80px);
-                .infinite-list-item{
-                    height: 60px;
-                    cursor:pointer;  //小手
-                    span{
-                        margin: 0 10px;
-                    }
-                    img{
-                        width: 50px;
-                        height: 50px;
-                    }
-                }
-            }
-            .item-menu-box{
-                position: absolute;
-                left: 0;
-                bottom: 0;
-                width: calc(100% - 20px);
-                height: 40px;
-                padding: 0 10px;
-                background: #f7f7f7;
-                border-top: 1px solid #dadada;
-            }
-        }
-        .unSlect{
-            color: #b3b3b3;
-        }
-        .select{
-            color: #169bd5;
+    .infinite-list-title {
+      height: 40px;
+    }
+    .infinite-list {
+      height: calc(100% - 40px - 80px);
+      .infinite-list-item {
+        height: 60px;
+        cursor: pointer; //小手
+        span {
+          margin: 0 10px;
         }
-        .disbale{
-            color: #eee;
-            cursor:not-allowed;
+        img {
+          width: 50px;
+          height: 50px;
         }
+      }
+    }
+    .item-menu-box {
+      position: absolute;
+      left: 0;
+      bottom: 0;
+      width: calc(100% - 20px);
+      height: 40px;
+      padding: 0 10px;
+      background: #f7f7f7;
+      border-top: 1px solid #dadada;
     }
+  }
+  .unSlect {
+    color: #b3b3b3;
+  }
+  .select {
+    color: #169bd5;
+  }
+  .disbale {
+    color: #eee;
+    cursor: not-allowed;
+  }
+}
 </style>
 <template>
-    <div class="flex-center-between app-list-content">
-        <div class="left-box">
-            <div class="flex-center-center title">平台花材</div>
-            <div class="flex-center-between center-box">
-                <div class="class-list">
-                    <div class="flex-center-center" v-for="(res, index) in leftClassList" :key="index" @click="classTabChange(res,index)" :class="{'class_name': leftTabCurrent == index}">{{res.name}}</div>
-                </div>
-                <div class="item-box">
-                    <div class="flex-center item-seek-box">
-                        <input type="text" placeholder="请输入花材名称,支持拼音首字母搜索">
-                        <div class="flex-center-center item-seek-btn">搜索</div>
-                    </div>
-                    <ul class="infinite-list" v-infinite-scroll="classIfyClick" style="overflow:auto">
-                        <li v-for="(value, index) in leftItemList" class="flex-center infinite-list-item" :key="index"  @click="leftSelect(value, index)">
-                            <span class="el-icon-success disbale" v-if="value.select == 1"></span>
-                            <span class="el-icon-success" :class="value.Uselect ? 'select' : 'unSlect'" v-else></span>
-                            <span>{{ index + 1 }}</span>
-                            <img :src="value.cover" alt="">
-                            <span>{{value.name}}</span>
-                        </li>
-                    </ul>
-                    <div class="flex-center item-menu-box">
-                        <el-checkbox @change="allSelectItem" v-model="checkedAll">全选</el-checkbox>
-                    </div>
-                </div>
-            </div>
+  <div class="flex-center-between app-list-content">
+    <div class="left-box">
+      <div class="flex-center-center title">平台花材</div>
+      <div class="flex-center-between center-box">
+        <div class="class-list">
+          <div
+            class="flex-center-center"
+            v-for="(res, index) in leftClassList"
+            :key="index"
+            @click="classTabChange(res,index)"
+            :class="{'class_name': leftTabCurrent == index}"
+          >{{res.name}}</div>
         </div>
-        <div class="flex-center-center content-box">
-            <div class="switchover-box">
-              <!-- 向右移动 -->
-                <div class="flex-center-center" @click="turnRight">→</div>
-                <!-- 向左移动 -->
-                <div class="flex-center-center" @click="turnLsft">←</div>
-            </div>
+        <div class="item-box">
+          <div class="flex-center item-seek-box">
+            <input
+              type="text"
+              placeholder="请输入花材名称,支持拼音首字母搜索"
+            >
+            <div class="flex-center-center item-seek-btn">搜索</div>
+          </div>
+          <ul
+            class="infinite-list"
+            v-infinite-scroll="classIfyClick"
+            style="overflow:auto"
+          >
+            <li
+              v-for="(value, index) in leftItemList"
+              class="flex-center infinite-list-item"
+              :key="index"
+              @click="leftSelect(value, index)"
+            >
+              <span
+                class="el-icon-success disbale"
+                v-if="value.select == 1"
+              ></span>
+              <span
+                class="el-icon-success"
+                :class="value.Uselect ? 'select' : 'unSlect'"
+                v-else
+              ></span>
+              <span>{{ index + 1 }}</span>
+              <img
+                :src="value.cover"
+                alt=""
+              >
+              <span>{{value.name}}</span>
+            </li>
+          </ul>
+          <div class="flex-center item-menu-box">
+            <el-checkbox
+              @change="allSelectItem"
+              v-model="checkedAll"
+            >全选</el-checkbox>
+          </div>
         </div>
-        <div class="right-box">
-            <div class="flex-center-center title">我的花材</div>
-            <div class="flex-center-between center-box">
-                <div class="item-box">
-                    <div class="flex-center infinite-list-title">
-                        <div style="width: 70px;text-align: center">选择</div>
-                        <div style="width: 70px;text-align: center">图片</div>
-                        <div style="width: 100px;text-align: center">名称</div>
-                        <div style="width: 100px;text-align: center">售价</div>
-                        <div style="width: 100px;text-align: center">初始库存</div>
-                        <div style="width: 100px;text-align: center">库存预警</div>
-                    </div>
-                    <ul class="infinite-list" v-infinite-scroll="rightScroll" style="height: calc(100% - 80px);overflow:auto">
-                        <li v-for="(item, index) in rightItemList" class="flex-center infinite-list-item" :key="index" @click="rightSelect(item, index)">
-                            <div style="width: 70px;text-align: center" >
-                                <span class="el-icon-success disbale"  v-if="item.select"></span>
-                                <span class="el-icon-success" v-else  :class="item.Uselect ? 'select' : 'unSlect'" ></span>
-                            </div>
-                            <div style="width: 70px;text-align: center">
-                                <img :src="item.cover" alt="">
-                            </div>
-                            <div style="width: 100px;text-align: center">
-                                <el-input style="width: 80px;" v-model="item.name" placeholder="请输入" :disabled="item.select"></el-input>
-                            </div>
-                            <div style="width: 100px;text-align: center">
-                                <el-input style="width: 80px" v-model="input" placeholder="请输入" :disabled="item.select"></el-input>
+      </div>
+    </div>
+    <div class="flex-center-center content-box">
+      <div class="switchover-box">
+        <!-- 向右移动 -->
+        <div
+          class="flex-center-center"
+          @click="turnRight"
+        >→</div>
+        <!-- 向左移动 -->
+        <div
+          class="flex-center-center"
+          @click="turnLsft"
+        >←</div>
+      </div>
+    </div>
+    <div class="right-box">
+      <div class="flex-center-center title">我的花材</div>
+      <div class="flex-center-between center-box">
+        <div class="item-box">
+          <div class="flex-center infinite-list-title">
+            <div style="width: 70px;text-align: center">选择</div>
+            <div style="width: 70px;text-align: center">图片</div>
+            <div style="width: 100px;text-align: center">名称</div>
+            <div style="width: 100px;text-align: center">售价</div>
+            <div style="width: 100px;text-align: center">初始库存</div>
+            <div style="width: 100px;text-align: center">库存预警</div>
+          </div>
+          <ul
+            class="infinite-list"
+            v-infinite-scroll="rightScroll"
+            style="height: calc(100% - 80px);overflow:auto"
+          >
+            <li
+              v-for="(item, index) in rightItemList"
+              class="flex-center infinite-list-item"
+              :key="index"
+              @click="rightSelect(item, index)"
+            >
+              <div style="width: 70px;text-align: center">
+                <span
+                  class="el-icon-success disbale"
+                  v-if="item.select"
+                ></span>
+                <span
+                  class="el-icon-success"
+                  v-else
+                  :class="item.Uselect ? 'select' : 'unSlect'"
+                ></span>
+              </div>
+              <div style="width: 70px;text-align: center">
+                <img
+                  :src="item.cover"
+                  alt=""
+                >
+              </div>
+              <div style="width: 100px;text-align: center">
+                <el-input
+                  style="width: 80px;"
+                  v-model="item.uname"
+                  placeholder="请输入"
+                  :disabled="item.select"
+                  @click.stop=""
+                ></el-input>
+              </div>
+              <div style="width: 100px;text-align: center">
+                <el-input
+                  style="width: 80px"
+                  v-model="item.price"
+                  placeholder="请输入"
+                  :disabled="item.select"
+                  @click.stop=""
+                ></el-input>
 
-                            </div>
-                            <div style="width: 100px;text-align: center">
-                                <el-input style="width: 80px" v-model="input" placeholder="请输入" :disabled="item.select"></el-input>
+              </div>
+              <div style="width: 100px;text-align: center">
+                <el-input
+                  style="width: 80px"
+                  v-model="item.stock"
+                  placeholder="请输入"
+                  :disabled="item.select"
+                  @click.stop=""
+                ></el-input>
 
-                            </div>
-                            <div style="width: 100px;text-align: center">
-                                <el-input style="width: 80px" v-model="item.stockWarning" placeholder="请输入" :disabled="item.select"></el-input>
+              </div>
+              <div style="width: 100px;text-align: center">
+                <el-input
+                  style="width: 80px"
+                  v-model="item.stockWarning"
+                  placeholder="请输入"
+                  :disabled="item.select"
+                  @click.stop=""
+                ></el-input>
 
-                            </div>
-                        </li>
-                    </ul>
-                    <div class="flex-center item-menu-box">
-                        <div class="flex-center-center" style="width: 100px;height: 30px;color: #ffffff;background: #008ad3;border-radius: 5px">保存</div>
-                    </div>
-                </div>
-                <div class="class-list">
-                    <div class="flex-center-center " v-for="(res, index) in rightClassList" @click="rightTabClick(res, index)" :key="index" :class="{'class_name': rightTabCurrent == index}">{{res.name}}</div>
-                </div>
-            </div>
+              </div>
+            </li>
+          </ul>
+          <div class="flex-center item-menu-box">
+            <div
+              class="flex-center-center"
+              style="width: 100px;height: 30px;color: #ffffff;background: #008ad3;border-radius: 5px;cursor: pointer;"
+              @click="saveBtn"
+            >保存</div>
+          </div>
         </div>
+        <div class="class-list">
+          <div
+            class="flex-center-center "
+            v-for="(res, index) in rightClassList"
+            @click="rightTabClick(res, index)"
+            :key="index"
+            :class="{'class_name': rightTabCurrent == index}"
+          >{{res.name}}</div>
+        </div>
+      </div>
     </div>
+  </div>
 </template>
 <script>
-  import { mapGetters } from 'vuex';
+import { mapGetters } from 'vuex';
 
-  export default {
-    name: 'item_add',
-    components: {},
-    data() {
-      return {
-        count: 0,
-        input: 0,
-        checked:false,
-        checkedAll:false,
-        leftClassList:[],
-        leftTabCurrent: 0,
-        ptClassName: '',
-        ptClassId: '',
-        leftItemList: [],
-        pageNum: 1,
-        maxPage: 0,
-        rightClassList: [],
-        rightTabCurrent: 0,
-        ptRightName: '',
-        ptRightId: '',
-        pageNum1: 1,
-        rightItemList: [],
-        maxPage1: 0,
-      };
+export default {
+  name: 'item_add',
+  components: {},
+  data () {
+    return {
+      count: 0,
+      input: 0,
+      checked: false,
+      checkedAll: false,
+      leftClassList: [],
+      leftTabCurrent: 0,
+      ptClassName: '',
+      ptClassId: '',
+      leftItemList: [],
+      pageNum: 1,
+      maxPage: 0,
+      rightClassList: [],
+      rightTabCurrent: 0,
+      ptRightName: '',
+      ptRightId: '',
+      pageNum1: 1,
+      rightItemList: [],
+      maxPage1: 0,
+      rightItemList2: [],
+      leftCheckedList: [],
+      rightCheckedList: []
+    };
+  },
+  mounted () {
+    this.getLeftList();
+    this.getRightLst()
+  },
+  watch: {
+    leftCheckedList () {
+      if (this.leftItemList.length === this.leftCheckedList.length) {
+        this.checkedAll = true
+      } else {
+        this.checkedAll = false
+      }
     },
-    mounted(){
-      this.getLeftList();
-      this.getRightLst()
+    // ptClassId() {
+    //   this.getRightItemList()
+    // },
+    // ptRightId() {
+    //   this.getItemList()
+    // }
+    // leftItemList: {
+    //   handler (newVal) {
+    //      newVal.forEach(item => {
+    //      if (item.Uselect && item.select !== 1) {
+    //        this.leftCheckedList.push(item)
+    //      }
+    //    })
+    //   },
+    //   deep: true
+    // },
+    // leftItemList () {
+    //   this.leftItemList.forEach(item => {
+    //     if (item.Uselect && item.select !== 1) {
+    //       this.leftCheckedList.push(item)
+    //     }
+    //   })
+    //   deep: true
+
+    // }
+  },
+  computed: {
+    // leftCheckedList () {
+    //   let list = [];
+    //   if (this.leftItemList) {
+    //     this.leftItemList.forEach(item => {
+    //       if (item.Uselect && item.select !== 1) {
+    //         list.push(item)
+    //       }
+    //     })
+    //   }
+    //   return list
+    // },
+    // rightCheckedList () {
+    //   let list = [];
+    //   if (this.rightItemList) {
+    //     this.rightItemList.forEach(item => {
+    //       if (item.Uselect) {
+    //         list.push(item)
+    //       }
+    //     })
+    //   }
+    //   return list
+    // }
+  },
+  methods: {
+    getLeftList () {
+      this.$service.ghsItemClass.getAllClass().then(res => {
+        console.log(res)
+        this.leftClassList = res.list
+        this.ptClassName = res.list[0].name
+        this.ptClassId = res.list[0].id
+        this.getItemList()
+      })
+    },
+    getRightLst () {
+      this.$service.itemClass.getAllClass().then(res => {
+        console.log(res)
+        this.rightClassList = res.list
+        this.ptRightName = res.list[0].name
+        this.ptRightId = res.list[0].id
+        this.getRightItemList()
+      }).catch(err => { })
     },
-    watch: {
-      leftCheckedList() {
-        if(this.leftItemList.length === this.leftCheckedList.length) {
-          this.checkedAll = true
+    getItemList () {
+      let data = {
+        page: this.pageNum,
+        pageSize: 10,
+        name: this.ptClassName,
+        classId: this.ptClassId
+      }
+      this.$service.ptItem.list(data).then(res => {
+        console.log(res)
+        res.list.forEach(item => { 
+          item.Uselect = false
+          item.flag = true
+          item.price = '0'
+          item.stockWarning = '0'
+          item.stock = '0'
+          item.uname = item.name
+        })
+        if (this.pageNum != 1) {
+          this.leftItemList = this.leftItemList.concat(res.list)
         } else {
-          this.checkedAll = false
+          this.leftItemList = res.list
         }
-      }
+        this.maxPage = res.moreData
+      }).catch(err => { })
     },
-    computed: {
-      leftCheckedList() {
-        let list = [];
-        if(this.leftItemList) {
-          this.leftItemList.forEach(item => {
-            if(item.Uselect && item.select !== 1) {
-              list.push(item)
-            }
-          })
-        }
-        return list
-      },
-      rightCheckedList() {
-        let list = [];
-        if(this.rightItemList) {
-          this.rightItemList.forEach(item => {
-            if(item.Uselect) {
-              list.push(item)
-            }
-          })
-        }
-        return list
+    getRightItemList () {
+      let data = {
+        page: this.pageNum1,
+        pageSize: 10,
+        classId: this.ptRightId
       }
-    },
-    methods: {
-      getLeftList(){
-        this.$service.ghsItemClass.getAllClass().then(res => {
-          console.log(res)
-          this.leftClassList = res.list
-          this.ptClassName = res.list[0].name
-          this.ptClassId = res.list[0].id
-          this.getItemList()
+      this.$service.item.list(data).then(res => {
+        console.log(res)
+        res.list.forEach(item => { 
+          item.select = true
+          item.uname = item.name
         })
-      },
-      getRightLst() {
-          this.$service.itemClass.getAllClass().then(res => {
-              console.log(res)
-              this.rightClassList = res.list
-              this.ptRightName = res.list[0].name
-              this.ptRightId = res.list[0].id
-              this.getRightItemList()
-          }).catch(err => {})
-      },
-      getItemList() {
-          let data = {
-              page: this.pageNum,
-              pageSize: 10,
-             name: this.ptClassName,
-             classId: this.ptClassId
+        if (this.pageNum1 != 1) {
+          this.rightItemList = this.rightItemList.concat(res.list)
+        } else {
+          this.rightItemList = res.list
+        }
+        this.rightItemList2 = this.deepClone(this.rightItemList)
+        this.maxPage1 = res.moreData
+      }).catch(err => { })
+    },
+    allSelectItem (e) {
+      if (this.checkedAll) {
+        this.leftItemList.forEach(item => {
+          if (item.select != 1) {
+            item.Uselect = true
           }
-          this.$service.ptItem.list(data).then(res => {
-              console.log(res)
-              res.list.forEach(item => item.Uselect = false)
-              if(this.pageNum != 1) {
-                  this.leftItemList = this.leftItemList.concat(res.list)
-              } else {
-                  this.leftItemList = res.list
-              }
-              this.maxPage = res.moreData
-          }).catch(err => {})
-      },
-      getRightItemList() {
-          let data = {
-              page: this.pageNum1,
-              pageSize: 10,
-              classId: this.ptRightId
+        })
+      } else {
+        this.leftItemList.forEach(item => {
+          if (item.select != 1) {
+            item.Uselect = false
           }
-          this.$service.item.list(data).then(res => {
-              console.log(res)
-              res.list.forEach(item => {item.select = true})
-              if(this.pageNum1 != 1) {
-                this.rightItemList = this.rightItemList.concat(res.list)
-              } else {
-                this.rightItemList = res.list
-              }
-              this.maxPage1 = res.moreData
-          }).catch(err => {})
-      },
-      allSelectItem(e){
-        if(this.checkedAll) {
-          this.leftItemList.forEach(item => {
-            if(item.select != 1) {
-              item.Uselect = true
-            }
-          })
-        } else{
-          this.leftItemList.forEach(item => {
-            if(item.select != 1) {
-              item.Uselect = false
-            }
-          })
-        }
-      },
-      load () {
-        this.count += 2
-      },
-      classTabChange(item,index) {
+        })
+      }
+    },
+    load () {
+      this.count += 2
+    },
+    classTabChange (item, index) {
+       if(this.rightItemList.length !== this.rightItemList2.length) {
+        this.$confirm('有选中的花材,是否继续切换', '提示', {
+				type: 'warning'
+        }).then(() => {
           this.leftTabCurrent = index
-          console.log(item)
           this.ptClassName = item.name
           this.ptClassId = item.id
-          this.pageNum = 1
-          this.getItemList()
-      },
-      classIfyClick() {
-          this.pageNum++
-          console.log(this.pageNum, this.maxPage)
-          if(this.maxPage == 1) {
-              this.getItemList()
-          }
-      },
-      leftSelect(value, index) {
-        if(value.select != 1) {
-          this.leftItemList[index].Uselect = !this.leftItemList[index].Uselect
+          this.isSelect(item, index)
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消切换'
+          });   
+        });
+      } else {
+        this.leftTabCurrent = index
+        this.ptClassName = item.name
+        this.ptClassId = item.id
+        this.isSelect(item, index)
+      }
+    },
+    classIfyClick () {
+      this.pageNum++
+      console.log(this.pageNum, this.maxPage)
+      if (this.maxPage == 1) {
+        this.getItemList()
+      }
+    },
+    leftSelect (value, index) {
+      console.log(this.leftItemList, 'this.leftItemList')
+      this.leftCheckedList = []
+      if (value.select != 1) {
+        this.leftItemList[index].Uselect = !this.leftItemList[index].Uselect
+      }
+      this.leftItemList.forEach(item => {
+        if (item.Uselect && item.select !== 1) {
+          this.leftCheckedList.push(item)
         }
-      },
-      rightSelect(item,index) {
-        if(!item.select){
-          this.rightItemList[index].Uselect = !this.rightItemList[index].Uselect
+      })
+    },
+    rightSelect (item, index) {
+      this.rightCheckedList = []
+      if (!item.select) {
+        this.rightItemList[index].Uselect = !this.rightItemList[index].Uselect
+      }
+      this.rightItemList.forEach(item => {
+        if (item.Uselect) {
+          this.rightCheckedList.push(item)
         }
-        
-      },
-      rightTabClick(item, index) {
+      })
+    },
+    rightTabClick (item, index) {
+      if(this.rightItemList.length !== this.rightItemList2.length) {
+        this.$confirm('有选中的花材,是否继续切换', '提示', {
+				type: 'warning'
+        }).then(() => {
           this.rightTabCurrent = index
           this.ptRightName = item.name
           this.ptRightId = item.id
-          this.pageNum1 = 1
-          this.getRightItemList()
-      },
-      rightScroll() {
-          this.pageNum1++
-          console.log(this.pageNum1, this.maxPage1)
-          if(this.maxPage1 == 1) {
-              this.getRightItemList()
+          this.isSelect()
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消切换'
+          });   
+        });
+      } else {
+        this.rightTabCurrent = index
+        this.ptRightName = item.name
+        this.ptRightId = item.id
+        this.isSelect()
+      }
+    },
+    // 判断是否有选中
+    isSelect() {
+      console.log(this.rightItemList.length, this.rightItemList2.length)
+      this.pageNum = 1
+      this.pageNum1 = 1
+      this.getRightItemList()
+      this.getItemList()
+    },
+    rightScroll () {
+      this.pageNum1++
+      console.log(this.pageNum1, this.maxPage1)
+      if (this.maxPage1 == 1) {
+        this.getRightItemList()
+      }
+    },
+    // 向右移动
+    turnRight () {
+      if (this.leftCheckedList) {
+        let checkList = JSON.parse(JSON.stringify(this.leftCheckedList))
+        checkList.forEach(item => {
+          item.select = false
+          item.Uselect = false
+          let i = this.leftItemList.findIndex(val => val.id == item.id)
+          this.leftItemList.splice(i, 1)
+        })
+        this.rightItemList = [...checkList, ...this.rightItemList]
+        this.leftCheckedList = []
+      } else {
+        this.$message.warning('请先选择花材')
+      }
+    },
+    // 向左移动
+    turnLsft () {
+      if (this.rightCheckedList.length !== 0) {
+        console.log(this.rightCheckedList)
+        let checkList = JSON.parse(JSON.stringify(this.rightCheckedList))
+        checkList.forEach((item, index) => {
+          item.select = 2
+          item.Uselect = false
+          // this.rightItemList.splice(item, 1);
+          let i = this.rightItemList.findIndex(val => val.id == item.id)
+          console.log(i)
+          this.rightItemList.splice(i, 1)
+        })
+        this.leftItemList = [...checkList, ...this.leftItemList]
+        this.rightCheckedList = []
+      } else {
+        this.$message.warning('请先选择花材')
+      }
+    },
+    // 深拷贝
+    deepClone (target) {
+      let result
+      if (typeof target === 'object') {
+        if (Array.isArray(target)) {
+          result = []
+          for (const i in target) {
+            result.push(this.deepClone(target[i]))
           }
-      },
-      // 向右移动
-      turnRight() {
-        if(this.leftCheckedList.length !== 0) {
-          console.log(this.leftCheckedList, this.rightItemList)
-          let checkList = JSON.parse(JSON.stringify(this.leftCheckedList))
-          checkList.forEach((item, index) => {
-            item.select = false
-            item.Uselect = false
-            this.leftItemList.splice(item, 1);
-          })
-          this.rightItemList = [...checkList, ...this.rightItemList]
-          this.leftCheckedList = []
-        } else {
-          this.$message.warning('请先选择花材')
-        }
-      },
-      // 向左移动
-      turnLsft() {
-        if(this.rightCheckedList.length !== 0) {
-          console.log(this.rightCheckedList)
-          let checkList = JSON.parse(JSON.stringify(this.rightCheckedList))
-          checkList.forEach((item, index) => {
-            item.select = 2
-            item.Uselect = false
-            this.rightItemList.splice(item, 1);
-          })
-          this.leftItemList = [...checkList, ...this.leftItemList]
-          this.rightCheckedList = []
+        } else if (target === null) {
+          result = null
+        } else if (target.constructor === RegExp) {
+          result = target
         } else {
-          this.$message.warning('请先选择花材')
+          result = {}
+          for (const i in target) {
+            result[i] = this.deepClone(target[i])
+          }
         }
+      } else {
+        result = target
       }
+      return result
     },
-  };
+    // 保存
+    saveBtn () {
+      let list = [],
+          num = 0,
+          param = [],
+          obj = {}
+      console.log(this.rightItemList2, this.rightItemList)
+      // this.rightItemList2.forEach(item => {
+      //   this.rightItemList.forEach((value, index) => {
+      //     if (item.id === value.id) {
+      //       num++
+      //       list = this.rightItemList.splice(index, 1)
+      //     }
+      //   })
+      // })
+      this.rightItemList.forEach(item => {
+        if(item.flag == true) {
+          list.push(item)
+        }
+      })
+      console.log(list)
+      list.forEach(item => {
+        obj.itemId = item.id
+        obj.classId = this.ptRightId
+        obj.price = item.price
+        obj.stockWarning = item.stockWarning
+        obj.stock = item.stock
+        obj.name = item.uname
+        param.push(obj)
+      })
+      console.log(JSON.stringify(param))
+      this.$service.item.batchAdd({data: JSON.stringify(param)}).then(res => {
+        console.log(res)
+        this.isSelect()
+      }).catch(err => {})
+    }
+  },
+};
 </script>