微商相册自动转发

可以在微商相册自动转发并且修改价格

// ==UserScript==
// @name         微商相册自动转发
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  可以在微商相册自动转发并且修改价格
// @author       CaloxNg
// @license      GPL-v3.0
// @include      /https://www.szwego.com/.*/
// @icon         https://img.alicdn.com/imgextra/i4/O1CN01FOwagl1XBpyVA2QVy_!!6000000002886-2-tps-512-512.png
// @run-at       document-start
// @grant        none
// ==/UserScript==
//使用说明
//选择多图列表模式
//1.手动一键填充:
//1.1打开商品编辑页,输入分类名称,输入价格倍数,点击手动一键填充即可
//2.开始直接转发
//2.1打开到店面,滑动到哪里就从哪里开始转发
//2.2填入店面地址,如果开了日期筛选就选是,否则选否,输入分类名称,输入价格倍数,点击开始直接转发即可
//3.开始到底转发
//3.1打开到店面
//3.2填入店面地址,如果开了日期筛选就选是,否则选否,输入分类名称,输入价格倍数,点击开始直接到底转发即可

; (function () {
  //页面资源加载完毕,脚本开始执行
  window.onload = function () {
    //创建插件界面---------------------------------
    // 1.创建地址输入框
    let diZhiInput = document.createElement('input')
    diZhiInput.setAttribute('type', 'text')
    diZhiInput.setAttribute('placeholder', '请输入分类名称')
    diZhiInput.style.position = 'fixed'
    diZhiInput.style.bottom = '290px'
    diZhiInput.style.right = '20px'
    diZhiInput.style.zIndex = '9999'
    document.body.appendChild(diZhiInput)

    // 1.创建地址输入框

    // 2.创建日期过滤单选框
    let dateFilter = document.createElement('div')
    dateFilter.style.position = 'fixed'
    dateFilter.style.bottom = '240px'
    dateFilter.style.right = '55px'
    dateFilter.style.zIndex = '9999'
    // 日期过滤单选框创建单选框标题
    let title = document.createElement('p')
    title.textContent = '是否开启日期筛选:'
    dateFilter.append(title)
    // 日期过滤单选框创建单选框标题
    // 日期过滤单选框创建是选项
    let yesOption = document.createElement('input')
    yesOption.setAttribute('type', 'radio')
    yesOption.setAttribute('name', 'dateFilter')
    yesOption.setAttribute('value', 'yes') //选中是的值
    yesOption.id = 'yesOption'
    yesOption.checked = true // 设置默认选中的选项
    let yesLabel = document.createElement('label')
    yesLabel.textContent = '是'
    yesLabel.setAttribute('for', 'yesOption')
    dateFilter.append(yesOption)
    dateFilter.append(yesLabel)
    // 日期过滤单选框创建是选项
    // 日期过滤单选框创建否选项
    let noOption = document.createElement('input')
    noOption.setAttribute('type', 'radio')
    noOption.setAttribute('name', 'dateFilter')
    noOption.setAttribute('value', 'no') //选中否的值
    noOption.id = 'noOption'
    let noLabel = document.createElement('label')
    noLabel.textContent = '否'
    noLabel.setAttribute('for', 'noOption')
    dateFilter.append(noOption)
    dateFilter.append(noLabel)
    // 日期过滤单选框创建否选项
    // 添加至页面
    document.body.append(dateFilter)
    // 2.创建日期过滤单选框

    // 3.创建分类输入框
    let categoryInput = document.createElement('input')
    categoryInput.setAttribute('type', 'text')
    categoryInput.setAttribute('placeholder', '请输入分类名称')
    categoryInput.style.position = 'fixed'
    categoryInput.style.bottom = '220px'
    categoryInput.style.right = '20px'
    categoryInput.style.zIndex = '9999'
    document.body.appendChild(categoryInput)
    // 3.创建分类输入框

    // 4.创建价格倍数输入框
    let priceInput = document.createElement('input')
    priceInput.setAttribute('type', 'number')
    priceInput.setAttribute('placeholder', '请输入价格倍数')
    priceInput.style.position = 'fixed'
    priceInput.style.bottom = '190px'
    priceInput.style.right = '20px'
    priceInput.style.zIndex = '9999'
    document.body.appendChild(priceInput)
    // 4.创建价格倍数输入框

    // 5.创建手动填充
    let shoudongbtn = document.createElement('button')
    shoudongbtn.innerHTML = '手动一键填充'
    shoudongbtn.style.position = 'fixed'
    shoudongbtn.style.bottom = '160px'
    shoudongbtn.style.right = '105px'
    shoudongbtn.style.zIndex = '9999'
    document.body.appendChild(shoudongbtn)
    // 5.创建手动填充

    // 6.创建直接转发按钮
    let fastbtn = document.createElement('button')
    fastbtn.innerHTML = '开始直接转发'
    fastbtn.style.position = 'fixed'
    fastbtn.style.bottom = '130px'
    fastbtn.style.right = '105px'
    fastbtn.style.zIndex = '9999'
    document.body.appendChild(fastbtn)
    // 6.创建直接转发按钮

    // 7.创建到底转发按钮
    let btn = document.createElement('button')
    btn.innerHTML = '开始到底转发'
    btn.style.position = 'fixed'
    btn.style.bottom = '130px'
    btn.style.right = '20px'
    btn.style.zIndex = '9999'
    document.body.appendChild(btn)
    // 7.创建到底转发按钮
    //创建插件界面---------------------------------

    //手动填充---------------------------------
    shoudongbtn.addEventListener('click', function () {
      //获取分类标签
      let fenleibiaoqian = categoryInput.value
      //获取价格倍数
      let jiagebeishu = parseFloat(priceInput.value)
      //如果分类标签(去除空格)与价格倍数不为空
      if (fenleibiaoqian.trim() !== '' && jiagebeishu !== '') {
        //获取分类标签
        let fenleibtn0 = document.querySelector('.weui_cell_ft')
        //如果分类标签不为空,则点击
        if (fenleibtn0 != null) {
          fenleibtn0.click()
        }
        //分类页面加载等待2秒进行
        setTimeout(function () {
          //分类页面获取所有的分类标签
          let fenlei0 = document.querySelectorAll('.f12.word-break.g3')
          //如果分类标签不为空
          if (fenlei0 != null) {
            //遍历所有分类标签
            for (let i = 0; i < fenlei0.length; i++) {
              //判断分类标签是否为目标标签
              if (fenlei0[i].textContent === fenleibiaoqian) {
                //如果是则点击,跳出循环
                fenlei0[i].click()
                break
              }
            }
            //保存分类
            let fenleisaveBtn0 = document.querySelector(
              '.weui_btn.weui_btn_primary'
            )
            if (fenleisaveBtn0 != null) {
              fenleisaveBtn0.click()
            }
          }
          // 详情页面加载等待2秒进行
          setTimeout(function () {
            // 获取详情描述框
            let xiangqing0 = document.querySelector('.weui_textarea')
            //如果详情不等于空
            if (xiangqing0 != null) {
              let xinjiage0 = 0
              //获得价格框
              let sj0 = document.querySelector(
                '.weui_input.text-right.error-color'
              )
              //获取详情内容
              let jiuneirong0 = xiangqing0.value
              //用正则表达式获取到带图标价格
              let daichuli0 = jiuneirong0.match(/(\d+)💰|💰(\d+)/)
              if (daichuli0 != null) {
                //获取纯价格
                let yuanjiage0 = daichuli0[1] || daichuli0[2]
                //新价格
                xinjiage0 = yuanjiage0 * jiagebeishu
                //把详情内容的价格进行替换得到新内容
                jiuneirong0 = jiuneirong0.replace(yuanjiage0, xinjiage0)
              }
              //用正则表达式匹配原市场
              let daichuli02 = jiuneirong0.match(
                /原(价)?(本地)?(市场)?(💰)?(\d+)/
              )
              if (daichuli02 != null) {
                //获取原市场
                let yuanshichang0 = daichuli02[5]
                //新市场
                let xinshichang0 = yuanshichang0 * jiagebeishu
                //把详情内容的价格进行替换得到新内容
                jiuneirong0 = jiuneirong0.replace(yuanshichang0, xinshichang0)
              }
              //把新内容替换进详情描述框
              changeReactInputValue(xiangqing0, jiuneirong0)
              //把新价格替换进售价输入框
              if (sj0 != null) {
                changeReactInputValue(sj0, xinjiage0)
              }
              // 点击保存按钮
              let saveBtn0 = document.querySelector('.wgoo-button__content')
              if (saveBtn0 != null) {
                saveBtn0.click()
              }
            }
          }, 2000)
        }, 2000)
      } else {
        alert('分类和倍数不能为空')
      }
    })
    //手动填充---------------------------------

    // 定义变量
    let isRunning = false // 运行状态
    let timer = null // 定时器
    let list = [] // 商品列表
    let index = 1 //循环取商品变量
    let scrollTop
    let scrollHeight
    let clientHeight

    //直接转发---------------------------------
    // 开始直接转发按钮被点击
    fastbtn.addEventListener('click', function () {
      let dizhi = diZhiInput.value
      let fenleibiaoqian = categoryInput.value
      let jiagebeishu = parseFloat(priceInput.value)
      let isDateFilterOn = document.querySelector(
        "input[name='dateFilter']:checked"
      ).value
      if (
        dizhi.trim() !== '' &&
        fenleibiaoqian.trim() !== '' &&
        jiagebeishu !== ''
      ) {
        //1.1判断运行状态
        if (isRunning) {
          // 如果正在执行,停止执行
          clearTimeout(timer)
          //按钮名称改为开始执行
          fastbtn.innerHTML = '开始直接转发'
          //运行状态改为停止
          isRunning = false
          diZhiInput.removeAttribute('readonly')
          categoryInput.removeAttribute('readonly')
          priceInput.removeAttribute('readonly')
          yesOption.disabled = false
          noOption.disabled = false
        } else {
          // 如果没有执行,开始执行
          //按钮名称改为开始执行
          diZhiInput.setAttribute('readonly', true)
          categoryInput.setAttribute('readonly', true)
          priceInput.setAttribute('readonly', true)
          yesOption.disabled = true
          noOption.disabled = true
          fastbtn.innerHTML = '停止直接转发'
          //运行状态改为开始
          isRunning = true
          //网站滚动到底部,传入index做为商品循环起始
          timer = setTimeout(() => {
            scrollToBottom0(
              index,
              dizhi,
              isDateFilterOn,
              fenleibiaoqian,
              jiagebeishu
            )
          }, 1000)
        }
      } else {
        alert('设置不能为空')
      }
    })
    //直接转发---------------------------------

    //到底转发---------------------------------
    // 开始到底转发按钮被点击
    btn.addEventListener('click', function () {
      let dizhi = diZhiInput.value
      let fenleibiaoqian = categoryInput.value
      let jiagebeishu = parseFloat(priceInput.value)
      let isDateFilterOn = document.querySelector(
        "input[name='dateFilter']:checked"
      ).value
      if (
        dizhi.trim() !== '' &&
        fenleibiaoqian.trim() !== '' &&
        jiagebeishu !== ''
      ) {
        //1.1判断运行状态
        if (isRunning) {
          // 如果正在执行,停止执行
          clearTimeout(timer)
          //按钮名称改为开始执行
          btn.innerHTML = '开始到底转发'
          //运行状态改为停止
          isRunning = false
          diZhiInput.removeAttribute('readonly')
          categoryInput.removeAttribute('readonly')
          priceInput.removeAttribute('readonly')
          yesOption.disabled = false
          noOption.disabled = false
        } else {
          // 如果没有执行,开始执行
          //按钮名称改为开始执行
          diZhiInput.setAttribute('readonly', true)
          categoryInput.setAttribute('readonly', true)
          priceInput.setAttribute('readonly', true)
          yesOption.disabled = true
          noOption.disabled = true
          btn.innerHTML = '停止到底转发'
          //运行状态改为开始
          isRunning = true
          //网站滚动到底部,传入index做为商品循环起始
          timer = setTimeout(() => {
            scrollToBottom(
              index,
              dizhi,
              isDateFilterOn,
              fenleibiaoqian,
              jiagebeishu
            )
          }, 1000)
        }
      } else {
        alert('设置不能为空')
      }
    })
    //到底转发---------------------------------

    // -------------------方法封装--------------------------------
    // js修改内容方法,inputDom为元素,newText为内容
    function changeReactInputValue(inputDom, newText) {
      let lastValue = inputDom.value
      inputDom.value = newText
      let event = new Event('input', { bubbles: true })
      event.simulated = true
      let tracker = inputDom._valueTracker
      if (tracker) {
        tracker.setValue(lastValue)
      }
      inputDom.dispatchEvent(event)
    }

    // 直接转发
    function scrollToBottom0(
      index,
      dizhi,
      isDateFilterOn,
      fenleibiaoqian,
      jiagebeishu
    ) {
      //判断页面是否在店面
      let test0 = window.location.href
      if (test0 === dizhi) {
        //判断页面是否需要日期过滤
        if (isDateFilterOn == 'yes') {
          //判断页面是否在日期范围
          if (document.querySelector('.wgoo-tag__editor') != null) {
            //所有商品放到list集合中
            list = document.querySelectorAll('a.f-flex.f-flex-wrap')
            //开始循环,传入index做为商品循环起始
            if (list.length != 0) {
              timer = setTimeout(() => {
                startLoop0(
                  index,
                  dizhi,
                  isDateFilterOn,
                  fenleibiaoqian,
                  jiagebeishu
                )
              }, 1000)
            } else {
              timer = setTimeout(() => {
                scrollToBottom0(
                  index,
                  dizhi,
                  isDateFilterOn,
                  fenleibiaoqian,
                  jiagebeishu
                )
              }, 6000)
            }
          } else {
            // 如果正在执行,停止执行
            clearTimeout(timer)
            //按钮名称改为开始执行
            fastbtn.innerHTML = '开始直接转发'
            //运行状态改为停止
            isRunning = false
            diZhiInput.removeAttribute('readonly')
            categoryInput.removeAttribute('readonly')
            priceInput.removeAttribute('readonly')
            yesOption.disabled = false
            noOption.disabled = false
            alert('页面变了')
            return
          }
        } else {
          //不用日期过滤
          //所有商品放到list集合中
          list = document.querySelectorAll('a.f-flex.f-flex-wrap')
          //开始循环,传入index做为商品循环起始
          if (list.length != 0) {
            timer = setTimeout(() => {
              startLoop00(
                index,
                dizhi,
                isDateFilterOn,
                fenleibiaoqian,
                jiagebeishu
              )
            }, 1000)
          } else {
            timer = setTimeout(() => {
              scrollToBottom0(
                index,
                dizhi,
                isDateFilterOn,
                fenleibiaoqian,
                jiagebeishu
              )
            }, 6000)
          }
        }
      } else {
        // 如果正在执行,停止执行
        clearTimeout(timer)
        //按钮名称改为开始执行
        fastbtn.innerHTML = '开始直接转发'
        //运行状态改为停止
        isRunning = false
        diZhiInput.removeAttribute('readonly')
        categoryInput.removeAttribute('readonly')
        priceInput.removeAttribute('readonly')
        yesOption.disabled = false
        noOption.disabled = false
        alert('页面变了')
        return
      }
    }
    // 直接转发

    // 直接转发,循环处理商品
    function startLoop0(
      index,
      dizhi,
      isDateFilterOn,
      fenleibiaoqian,
      jiagebeishu
    ) {
      if (list.length == 0) {
        // 如果正在执行,停止执行
        clearTimeout(timer)
        //按钮名称改为开始执行
        fastbtn.innerHTML = '开始直接转发'
        //运行状态改为停止
        isRunning = false
        diZhiInput.removeAttribute('readonly')
        categoryInput.removeAttribute('readonly')
        priceInput.removeAttribute('readonly')
        yesOption.disabled = false
        noOption.disabled = false
        alert('请从从店面页启动脚本')
        return
      }
      //判断索引是否大于集合长度
      if (index > list.length) {
        // 如果正在执行,停止执行
        clearTimeout(timer)
        //按钮名称改为开始执行
        fastbtn.innerHTML = '开始直接转发'
        //运行状态改为停止
        isRunning = false
        diZhiInput.removeAttribute('readonly')
        categoryInput.removeAttribute('readonly')
        priceInput.removeAttribute('readonly')
        yesOption.disabled = false
        noOption.disabled = false
        alert('执行完成')
        return
      }
      //由后往前从集合中取出一个元素
      let one0 = list[list.length - index]
      //获得元素中的内容
      let price0 = one0.querySelector(
        '.word-break.ellipsis-two.f14.g3'
      ).textContent
      //判断元素中是否包含💰
      if (!price0.includes('💰')) {
        // 不包含💰,跳过当次循环,开始下一条
        index++
        timer = setTimeout(() => {
          scrollToBottom0(
            index,
            dizhi,
            isDateFilterOn,
            fenleibiaoqian,
            jiagebeishu
          )
        }, 1000)
        return
      }
      //判断元素是否已添加
      if (one0.querySelector('.ellipsis-one.warn-color.f10')) {
        // 已添加,跳过当次循环,开始下一条
        index++
        timer = setTimeout(() => {
          scrollToBottom0(
            index,
            dizhi,
            isDateFilterOn,
            fenleibiaoqian,
            jiagebeishu
          )
        }, 1000)
        return
      }

      // 点击编辑按钮
      let editBtn0 = one0.querySelector('.link.wsxc_edit.custom_bury')
      if (editBtn0 != null) {
        editBtn0.click()
      }

      // 等待编辑页面加载完成
      timer = setTimeout(function () {
        // 点击分类按钮
        let fenleibtn0 = document.querySelector('.weui_cell_ft')
        if (fenleibtn0 != null) {
          fenleibtn0.click()
        }
        // 等待分类页面加载完成
        timer = setTimeout(function () {
          //分类页面获取所有的分类标签
          let fenlei0 = document.querySelectorAll('.f12.word-break.g3')
          if (fenlei0 != null) {
            //遍历所有分类标签
            for (let i = 0; i < fenlei0.length; i++) {
              //判断分类标签是否为潮鞋
              if (fenlei0[i].textContent === fenleibiaoqian) {
                //如果是则点击,跳出循环
                fenlei0[i].click()
                break
              }
            }
            //保存分类
            let fenleisaveBtn0 = document.querySelector(
              '.weui_btn.weui_btn_primary'
            )
            if (fenleisaveBtn0 != null) {
              fenleisaveBtn0.click()
            }
          }

          // 等待详情页面加载完成
          timer = setTimeout(function () {
            // 获取详情描述框
            let xiangqing0 = document.querySelector('.weui_textarea')
            let xinjiage0 = 0
            //获取售价输入框
            if (xiangqing0 != null) {
              let sj0 = document.querySelector(
                '.weui_input.text-right.error-color'
              )
              //获取详情内容
              let jiuneirong0 = xiangqing0.value
              //用正则表达式获取到带图标价格
              let daichuli0 = jiuneirong0.match(/(\d+)💰|💰(\d+)/)
              if (daichuli0 != null) {
                //获取纯价格
                let yuanjiage0 = daichuli0[1] || daichuli0[2]
                //新价格
                xinjiage0 = yuanjiage0 * jiagebeishu
                //把详情内容的价格进行替换得到新内容
                jiuneirong0 = jiuneirong0.replace(yuanjiage0, xinjiage0)
              }
              //用正则表达式匹配原市场
              let daichuli02 = jiuneirong0.match(
                /原(价)?(本地)?(市场)?(💰)?(\d+)/
              )
              if (daichuli02 != null) {
                //获取原市场
                let yuanshichang0 = daichuli02[5]
                //新市场
                let xinshichang0 = yuanshichang0 * jiagebeishu
                //把详情内容的价格进行替换得到新内容
                jiuneirong0 = jiuneirong0.replace(yuanshichang0, xinshichang0)
              }
              //把新内容替换进详情描述框
              changeReactInputValue(xiangqing0, jiuneirong0)
              //把新价格替换进售价输入框
              if (sj0 != null) {
                changeReactInputValue(sj0, xinjiage0)
              }
              // 点击保存按钮
              let saveBtn0 = document.querySelector('.wgoo-button__content')
              if (saveBtn0 != null) {
                saveBtn0.click()
                //等待5s开始执行
                timer = setTimeout(() => {
                  index++
                  scrollToBottom0(
                    index,
                    dizhi,
                    isDateFilterOn,
                    fenleibiaoqian,
                    jiagebeishu
                  )
                }, 10000)
              }
            } else {
              //等待5s开始执行
              timer = setTimeout(() => {
                scrollToBottom0(
                  index,
                  dizhi,
                  isDateFilterOn,
                  fenleibiaoqian,
                  jiagebeishu
                )
              }, 10000)
            }
          }, 2000)
        }, 2000)
      }, 6000)
    }
    // 直接转发,循环处理商品

    // 到底转发,滚动到底部,传入index做为商品循环起始
    function scrollToBottom(
      index,
      dizhi,
      isDateFilterOn,
      fenleibiaoqian,
      jiagebeishu
    ) {
      //判断页面是否在店面
      let test = window.location.href
      if (test === dizhi) {
        //判断页面是否需要日期过滤
        if (isDateFilterOn == 'yes') {
          //判断页面是否在日期范围
          if (document.querySelector('.wgoo-tag__editor') != null) {
            scrollTop = document.documentElement.scrollTop
            scrollHeight = document.documentElement.scrollHeight
            clientHeight = document.documentElement.clientHeight
            //判断是否到达底部,传入index做为商品循环起始
            if (scrollTop + clientHeight < scrollHeight) {
              //没有到达底部,滚动到底部,5秒后再次执行判断
              window.scrollTo(0, scrollHeight)
              timer = setTimeout(() => {
                scrollToBottom(
                  index,
                  dizhi,
                  isDateFilterOn,
                  fenleibiaoqian,
                  jiagebeishu
                )
              }, 6000)
            } else {
              //已经到达底部,获取商品列表
              //所有商品放到list集合中
              list = document.querySelectorAll('a.f-flex.f-flex-wrap')
              //开始循环,传入index做为商品循环起始
              if (list.length != 0) {
                timer = setTimeout(() => {
                  startLoop(
                    index,
                    dizhi,
                    isDateFilterOn,
                    fenleibiaoqian,
                    jiagebeishu
                  )
                }, 1000)
              } else {
                timer = setTimeout(() => {
                  scrollToBottom(
                    index,
                    dizhi,
                    isDateFilterOn,
                    fenleibiaoqian,
                    jiagebeishu
                  )
                }, 6000)
              }
            }
          } else {
            // 如果正在执行,停止执行
            clearTimeout(timer)
            //按钮名称改为开始执行
            btn.innerHTML = '开始到底转发'
            //运行状态改为停止
            isRunning = false
            diZhiInput.removeAttribute('readonly')
            categoryInput.removeAttribute('readonly')
            priceInput.removeAttribute('readonly')
            yesOption.disabled = false
            noOption.disabled = false
            alert('页面变了')
            return
          }
        } else {
          //不用日期过滤
          scrollTop = document.documentElement.scrollTop
          scrollHeight = document.documentElement.scrollHeight
          clientHeight = document.documentElement.clientHeight
          //判断是否到达底部,传入index做为商品循环起始
          if (scrollTop + clientHeight < scrollHeight) {
            //没有到达底部,滚动到底部,6秒后再次执行判断
            window.scrollTo(0, scrollHeight)
            timer = setTimeout(() => {
              scrollToBottom(
                index,
                dizhi,
                isDateFilterOn,
                fenleibiaoqian,
                jiagebeishu
              )
            }, 6000)
          } else {
            //已经到达底部,获取商品列表
            //所有商品放到list集合中
            list = document.querySelectorAll('a.f-flex.f-flex-wrap')
            //开始循环,传入index做为商品循环起始
            if (list.length != 0) {
              timer = setTimeout(() => {
                startLoop(
                  index,
                  dizhi,
                  isDateFilterOn,
                  fenleibiaoqian,
                  jiagebeishu
                )
              }, 1000)
            } else {
              timer = setTimeout(() => {
                scrollToBottom(
                  index,
                  dizhi,
                  isDateFilterOn,
                  fenleibiaoqian,
                  jiagebeishu
                )
              }, 6000)
            }
          }
        }
      } else {
        // 如果正在执行,停止执行
        clearTimeout(timer)
        //按钮名称改为开始执行
        btn.innerHTML = '开始到底转发'
        //运行状态改为停止
        isRunning = false
        diZhiInput.removeAttribute('readonly')
        categoryInput.removeAttribute('readonly')
        priceInput.removeAttribute('readonly')
        yesOption.disabled = false
        noOption.disabled = false
        alert('页面变了')
        return
      }
    }
    //到底转发,滚动到底部,传入index做为商品循环起始
    // 到底转发,循环处理商品
    function startLoop(
      index,
      dizhi,
      isDateFilterOn,
      fenleibiaoqian,
      jiagebeishu
    ) {
      if (list.length == 0) {
        // 如果正在执行,停止执行
        clearTimeout(timer)
        //按钮名称改为开始执行
        btn.innerHTML = '开始到底转发'
        //运行状态改为停止
        isRunning = false
        diZhiInput.removeAttribute('readonly')
        categoryInput.removeAttribute('readonly')
        priceInput.removeAttribute('readonly')
        yesOption.disabled = false
        noOption.disabled = false
        alert('请从从店面页启动脚本')
        return
      }
      //判断索引是否大于集合长度
      if (index > list.length) {
        // 如果正在执行,停止执行
        clearTimeout(timer)
        //按钮名称改为开始执行
        btn.innerHTML = '开始到底转发'
        //运行状态改为停止
        isRunning = false
        diZhiInput.removeAttribute('readonly')
        categoryInput.removeAttribute('readonly')
        priceInput.removeAttribute('readonly')
        yesOption.disabled = false
        noOption.disabled = false
        alert('执行完成')
        return
      }
      //由后往前从集合中取出一个元素
      let one = list[list.length - index]
      //获得元素中的内容
      let price = one.querySelector(
        '.word-break.ellipsis-two.f14.g3'
      ).textContent
      //判断元素中是否包含💰
      if (!price.includes('💰')) {
        // 不包含💰,跳过当次循环,开始下一条
        index++
        timer = setTimeout(() => {
          scrollToBottom(
            index,
            dizhi,
            isDateFilterOn,
            fenleibiaoqian,
            jiagebeishu
          )
        }, 1000)
        return
      }
      //判断元素是否已添加
      if (one.querySelector('.ellipsis-one.warn-color.f10')) {
        // 已添加,跳过当次循环,开始下一条
        index++
        timer = setTimeout(() => {
          scrollToBottom(
            index,
            dizhi,
            isDateFilterOn,
            fenleibiaoqian,
            jiagebeishu
          )
        }, 1000)
        return
      }

      // 点击编辑按钮
      let editBtn = one.querySelector('.link.wsxc_edit.custom_bury')
      if (editBtn != null) {
        editBtn.click()
      }

      // 等待编辑页面加载完成
      timer = setTimeout(function () {
        // 点击分类按钮
        let fenleibtn = document.querySelector('.weui_cell_ft')
        if (fenleibtn != null) {
          fenleibtn.click()
        }
        // 等待分类页面加载完成
        timer = setTimeout(function () {
          //分类页面获取所有的分类标签
          let fenlei = document.querySelectorAll('.f12.word-break.g3')
          if (fenlei != null) {
            //遍历所有分类标签
            for (let i = 0; i < fenlei.length; i++) {
              //判断分类标签是否为潮鞋
              if (fenlei[i].textContent === fenleibiaoqian) {
                //如果是则点击,跳出循环
                fenlei[i].click()
                break
              }
            }
            //保存分类
            let fenleisaveBtn = document.querySelector(
              '.weui_btn.weui_btn_primary'
            )
            if (fenleisaveBtn != null) {
              fenleisaveBtn.click()
            }
          }

          // 等待详情页面加载完成
          timer = setTimeout(function () {
            // 获取详情描述框
            let xiangqing = document.querySelector('.weui_textarea')
            let xinjiage = 0
            //获取售价输入框
            if (xiangqing != null) {
              let sj = document.querySelector(
                '.weui_input.text-right.error-color'
              )
              //获取详情内容
              let jiuneirong = xiangqing.value
              //用正则表达式获取到带图标价格
              let daichuli = jiuneirong.match(/(\d+)💰|💰(\d+)/)
              if (daichuli != null) {
                //获取纯价格
                let yuanjiage = daichuli[1] || daichuli[2]
                //新价格
                xinjiage = yuanjiage * jiagebeishu
                //把详情内容的价格进行替换得到新内容
                jiuneirong = jiuneirong.replace(yuanjiage, xinjiage)
              }
              //用正则表达式匹配原市场
              let daichuli2 = jiuneirong.match(
                /原(价)?(本地)?(市场)?(💰)?(\d+)/
              )
              if (daichuli2 != null) {
                //获取原市场
                let yuanshichang = daichuli2[5]
                //新市场
                let xinshichang = yuanshichang * jiagebeishu
                //把详情内容的价格进行替换得到新内容
                jiuneirong = jiuneirong.replace(yuanshichang, xinshichang)
              }
              //把新内容替换进详情描述框
              changeReactInputValue(xiangqing, jiuneirong)
              //把新价格替换进售价输入框
              if (sj != null) {
                changeReactInputValue(sj, xinjiage)
              }
              // 点击保存按钮
              let saveBtn = document.querySelector('.wgoo-button__content')
              if (saveBtn != null) {
                saveBtn.click()
                //等待5s开始执行
                timer = setTimeout(() => {
                  index++
                  scrollToBottom(
                    index,
                    dizhi,
                    isDateFilterOn,
                    fenleibiaoqian,
                    jiagebeishu
                  )
                }, 10000)
              }
            } else {
              //等待5s开始执行
              timer = setTimeout(() => {
                scrollToBottom(
                  index,
                  dizhi,
                  isDateFilterOn,
                  fenleibiaoqian,
                  jiagebeishu
                )
              }, 10000)
            }
          }, 2000)
        }, 2000)
      }, 6000)
    }
    // 到底转发,循环处理商品
    // -------------------方法封装--------------------------------
  }
})()